Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums



(Advanced Search)

Forum Statistics
» Members: 6,505
» Latest member: lucasmillerfeb2022
» Forum threads: 2,233
» Forum posts: 12,033

Full Statistics

Online Users
There are currently 556 online users.
» 0 Member(s) | 554 Guest(s)
Google, Bing

Latest Threads
Command does not work in-...
Forum: Pawn Scripting
Last Post: PANZEHIR_
4 hours ago
» Replies: 0
» Views: 17
White Screen
Forum: Support
Last Post: Phat202146_real
2024-11-21, 02:50 PM
» Replies: 0
» Views: 28
I get error 021 using y_h...
Forum: Pawn Scripting
Last Post: daniscript18
2024-11-18, 11:34 PM
» Replies: 0
» Views: 49
Il reste des français sur...
Forum: French/Fran?ais
Last Post: tysanio
2024-11-18, 05:39 AM
» Replies: 2
» Views: 449
Object creation issues
Forum: Programming
Last Post: K1271
2024-11-15, 11:51 PM
» Replies: 0
» Views: 48
Is the SAMP Hosting the s...
Forum: General Discussions
Last Post: OperaGX
2024-11-14, 09:33 PM
» Replies: 0
» Views: 63
Run time error 19: "File ...
Forum: Pawn Scripting
Last Post: Rexey
2024-11-14, 03:50 AM
» Replies: 0
» Views: 59
How to Compile Your Gamem...
Forum: Tutorials
Last Post: thelante
2024-11-13, 08:50 AM
» Replies: 3
» Views: 450
Modeller wanted
Forum: Development Updates
Last Post: acc.gangbeni
2024-11-11, 05:10 PM
» Replies: 9
» Views: 16,449
SA:MP forum offline
Forum: Portuguese/Portugu?s
Last Post: weslley_script
2024-11-09, 05:27 PM
» Replies: 7
» Views: 9,898

 
  Games - Discounts, Giveaways, Free
Posted by: Wolf - 2019-04-19, 06:37 AM - Forum: Chat - Replies (1)

Thread for sharing major discounts or free giveaways of games.



If you love the Assassin's creed franchise:?

https://register.ubisoft.com/acu-notreda...away/en-US

Ends on the 25th of April!


  Anything WW related
Posted by: Wolf - 2019-04-19, 06:31 AM - Forum: Life - Replies (8)

Thread for the Word War junkies.


  Military technology
Posted by: Wolf - 2019-04-19, 06:30 AM - Forum: Tech - Replies (6)

Thread to discuss about the technology behind the modern military tools (Guns, Aircrafts, Big guns, Tanks, Navy).





Please refrain from going into the political standpoint, thanks.


  Anything aircraft related
Posted by: Wolf - 2019-04-19, 06:21 AM - Forum: Life - Replies (2)

Thread to discuss about anything that lifts a human being off the ground, be it choppers, gliders, personal aircrafts, commercial airplanes as well as military aircrafts.





I myself am a military jets enthusiast.


  [ESP] YSI Secrets
Posted by: #Fede - 2019-04-19, 12:31 AM - Forum: Programaci?n - Replies (5)

Esta es una traduccion de esta gu?a?para VisualTexture



?Introduccion

Hay una gran cantidad de temas que hablan sobre gran parte de YSI, pero generalmente se ignoran peque?os detalles de YSI. El punto de este tema es mostrar la mayor?a de estos detalles para facilitar el desarrollo a la hora de trabajar con YSI.







GLOBAL_TAG_TYPES

Esto es usado en el lugar de los argumentos de una funci?n, por ejemplo, "printf" esta definido as?:



Code:
native printf(const format[], {Float,_}:...);



Usando "{Float,_}" significa que la funcion acepta un rango desde variables "Float" hasta "_" (Integers). Pero que hay de otras como "Text:", "Group:" o "Menu:". Podrias escribir as?:



Code:
native printf(const format[], {Float, Text, Menu, _}:...);



Pero YSI incluye GLOBAL_TAG_TYPES, una definicion que permite ahorrarnos esa tarea al agregar la mayoria de tags de variables.



Code:
native printf(const format[], GLOBAL_TAG_TYPES:...);



Que se transformaria en esto en el preprocessor:



Code:
native printf(const format[], {_, Language, Bit, Text, Menu, Style, XML, Bintree, Group, Timer, File, Float, Text3D}:...);







PP_LOOP

"PP_LOOP" es un loop preprocessor, lo que significa que genera multiples bloques de codigo, por ejemplo:

Code:
PP_LOOP<5>(printf("hi");)()

Compilara como

Code:
printf("hi");printf("hi");printf("hi");printf("hi");printf("hi");



La definicion de este macro es esta:

Code:
PP_LOOP<veces>(texto/codigo a imprimir)(separador)



Otro ejemplo de PP_LOOP:

Code:
PP_LOOP<10>(55)(, )



Compilaria como:

Code:
55, 55, 55, 55, 55, 55, 55, 55, 55, 55



Notese la falta de ',' al final ya que no esta separando nada.







__COMPILER_PASS

El compilador PAWN hace dos etapas de pre-processing. Es raro que esto sea un problema, pero si necesitas saber en que etapa esta corriendo el compilador puedes hacer:



Code:
#if __COMPILER_PASS == 0

#else // 1 para la segunda etapa

#endif



De manera alternativa, puedes usar:



Code:
#if COMPILER_1ST_PASS

#else // Si es la segunda etapa (COMPILER_2ND_PASS)

#endif







y_cell



Esta es una libreria para una rapida manipulacion de bits en cells:



Code:
Cell_ReverseBits(cell);



Invierte todos los bits de la cell:



Ejemplo: 0b11110000000000000000000000000000

Pasa a: 0b00000000000000000000000000001111



Ejemplo: 0b10110011100011110000111110000010

Pasa a: 0b01000001111100001111000111001101



Ejemplo: 0b01010101010101010101010101010101

Pasa a: 0b10101010101010101010101010101010



Code:
Cell_ReverseNibbles(cell);

Invierte todos los nibbles de una cell.



Ejemplo: 0x12345678

Pasa a: 0x87654321



Ejemplo: 0x010F0703

Pasa a: 0x3070F010



Ejemplo: 0xF0F0F0F0

Pasa a: 0x0F0F0F0F



Code:
Cell_CountBits(cell);

Cuenta todos los '1' de una cell.



Ejemplo: 0

Retorna: 0



Ejemplo: 1

Retorna: 1



Ejemplo: 0x01010101

Retorna: 4







Keywords

La mayoria de gente sabe que YSI agrega "foreach" al lenguaje PAWN, aqui una lista de otras keywords a?adidas:



task - Timer que siempre esta corriendo mientras el servidor esta encendido (y_timers)



Code:
task Ping[1000]()

{

? ? printf("Pong!");

}



ptask - Similar a la keyword task, pero tiene el parametro de playerid. (y_timers)



Code:
ptask PlayerPing[1000](playerid)

{

? ? printf("Ping %d", playerid);

}



loadtext - Carga strings localizados en un archivo para mostrar texto (y_text)

Code:
loadtext core[ysi_properties];



remote - Una funcion publica que puede ser llamada desde otros scripts con verificaci?n de par?metros en la compilaci?n (y_remote)



Code:
remote MyFunc(a, b[])

{

}



broadcastfunc - Llama una funcion remota en todos los otros scripts (y_remote)

Code:
broadcastfunc MyFunc(42, "Hello world!");



inline - Declara una funci?n dentro de otra funci?n, con acceso a las variables de la funci?n (y_inline)



Code:
stock Outer(a)

{

? ? inline Inner(b)

? ? {

? ? ? ? printf("%d %d", a, b);

? ? }

}



using - Pasar una funci?n de inline a otra funci?n como un callback (y_inline)

Code:
INI_Parse(file, using inline Local_Parse);



hook - Usar un callback m?ltiples veces en m?ltiples archivos son conflicto (y_hooks)



Code:
hook OnPlayerConnect(playerid)

{

}



global - Corriendo multiples scripts, solo uno debe cargar la funci?n. Esto declara la funci?n como global, as? todos los scripts pueden usarla pero solo uno debe cargarla. (y_master)



Code:
global AC_GiveWeapon(playerid, weaponid, ammo)

{

}



Su diferencia con remote es que esta es solo es llamada en un script mientras que remote es llamada en todos los scripts.



foreign - Informa que esa funci?n se encuentra en otro script. (y_master)

Code:
foreign AC_GiveWeapon(playerid, weaponid, ammo);







OnScriptInit y OnScriptExit (y_serverinit)

Tiene el mismo funcionamiento que OnGameModeInit/Exit o OnFilterScriptInit, una opci?n ?til para inicializar c?digo sin importar si se esta en un Filterscript o en una Gamemode.



Code:
public OnScriptInit()

{

}



public OnScriptExit()

{

}







Asignaci?n din?mica de memoria (y_malloc)

Usando YSI puedes alocar y liberar memoria cuando quieras:

Code:
main()

{

? new Alloc:a = malloc(1000); // Reservamos mil celdas de memoria.



? mset(a, 0, 50); // Escribimos "50" en el primer slot.



? // Pasamos nuestro array a nuestra funcion.

? func(mget(a, 0), Malloc_SlotSize(a));



? // Y por ultimo liberamos la memoria (o nos quedaremos sin memoria)

? free(a);

}

func(arr[], size)

{

? ? for (new i = 0; i != size; ) printf("%d", arr[i]);

}







Restringiendo conexiones (y_flooding)

Puedes limitar el m?ximo de conexiones que pueden realizarse a tu servidor desde la misma IP:

Code:
SetMaxConnections(3);



Esto permitir? que se conecten hasta 3 personas desde la misma IP. Si otra mas intenta entrar, autom?ticamente no podr?n lograr conectarse. Puedes cambiar el m?ximo y la acci?n al superar el limite.



Code:
SetMaxConnections(5, e_FLOOD_ACTION_BAN);

Esto limitara las conexiones a 5, y si otra persona intenta entrar la IP sera baneada y los jugadores sufriran timeout.


  • e_FLOOD_ACTION_BLOCK -> No permite mas conexiones (default)

  • e_FLOOD_ACTION_KICK? -> Kickea a todos usando esta IP.

  • e_FLOOD_ACTION_BAN? ->? Banea la IP, los jugadores sufriran timeout.

  • e_FLOOD_ACTION_FBAN? ->? Banea la IP y kickea a los jugadores conectados con esta IP.






Variables temporales

A veces necesitas una variable por una fracci?n de segundo. YSI ya trae 3 variables para evitar crear mas de estas: I@, J@ y Q@[YSI_MAX_STRING].

Code:
#define ReturnPlayerHealth(%0) (GetPlayerHealth((%0), Float:I@), Float:I@)

#define ReturnPlayerName(%0) (GetPlayerName((%0), Q@, 24), Q@)

Estas variables son globales, y no se puede confiar si mantiene los mismos datos luego de llamar una funci?n, as? que esto podria no funcionar:

Code:
J@ = 123;

FuncionAleatoria();

printf("%d", J@);

No hay manera de saber si FuncionAleatoria modifica el valor de J@.







Funciones acortadas

YSI tiene unas cuantas funciones acortadas, principalmente para utilizarlas en los macros.
  • U@ -> setproperty

  • V@ -> getpropery

  • W@ -> CallRemoteFunction

  • P@ -> CallLocalFunction

  • O@ -> SetTimerEx

  • K@ -> SetTimer (Parece no funcionar en YSI 5)






Prints de desbug

Si compilas tu Gamemode con alguna libreria de YSI y algun nivel de _DEBUG activo, al iniciar tu servidor YSI imprimir? informacion especifica dependiendo del nivel asignado.



Code:
#include <a_samp>

#define _DEBUG 3

#include <YSI_Coding\y_inline>



El numero despu?s del _DEBUG es el nivel de debug. Existen 8 niveles.
  • 0 -> Nada de debug.

  • 1 -> Muestra las llamadas a funciones publicas (callbacks y timers)

  • 2 -> Muestra las llamadas a las funciones de la API (Funciones principales de YSI)

  • 3 -> Muestra las llamadas a stocks de YSI. (Funciones secundarias de YSI)

  • 4 -> Muestra las llamadas a funciones internas de YSI

  • 5 -> Muestra informaci?n extra de debug entre funciones.

  • 6 -> Muestra informaci?n de loops (Prints entre loops)

  • 7 -> Muestra informaci?n de loops (Prints en loops)


Deber?as evitar utilizar el niveles 6-7, solo al iniciar el servidor ya generara unos cuantos MB de datos en el log.



Para imprimir tus propios mensajes de debug usa "P:<Nivel>(Mensaje)":

Code:
P:5("Este mensaje sera imprimido en el nivel 5 para arriba");







Prints especiales

Ademas de los 8 niveles mencionados arriba, hay algunos niveles especiales:

Code:
P:F("Mensaje de error fatal");

// Imprime "*** YSI Fatal Error: <Tu mensaje>" y hace 5 beeps para alertar del error.

Code:
P:E("Mensaje de error");

// Imprime "*** YSI Error: <Tu mensaje>" y hace 3 beeps para alertar del error

Code:
P:W("Mensaje de advertencia");

// Imprime "*** YSI Warning: <Tu mensaje>" y hace un solo beep para alertar del error.

Code:
P:I("Mensaje de informacion");

// Imprime "*** YSI Info: <Tu mensaje>", no hace ningun beep. Similar a P:0.



Estos prints especiales siempre estan activos al compilar debido a que le dan informaci?n importante al usuario sobre errores en el codigo; no es solo informaci?n random de debug. De igual manera, pueden desactivarse poniendo esto en el c?digo:

Code:
state ysi_debug : off;







Prints dinamicos

Con y_debug puede usarse _DEBUG con valor -1, esto activa la posibilidad de modificar el nivel de debug en ejecuci?n, entonces, esto:

Code:
P:3("Message");

Compila como:

Code:
if (gDebugLevel >= 3) printf("Message");



Para cambiar el nivel en ejecucion, simplemente se usa esto:

Code:
DebugLevel(3);



Colocandolo en 0 desactiva la mayoria de prints de desbug (excepto los especiales mostrados arriba). Ademas, es posible obtener el nivel de debug.

Code:
new nivel = DebugLevel();







Tags especiales

YSI introduce dos tipos especiales de tags para funciones. Estos pueden ser utilizados para optimizar c?digos en ciertas circunstancias:
  • void - Gente que conozca el lenguaje de C reconocer? esto como "no return", en resumen; La funci?n no retorna nada.

    Code:
    void:Func()

    {

    ? ? // No return.

    }

    Usando y_master, este tag genera el c?digo mas r?pido, y da un error si se usa return en la funci?n.?



  • string - Este es un tag usado en todo YSI, no solo como un tipo de return. Cualquier cosa con el tag "String:" es solo un string normal, y es completamente compatible con strings regulares, pero hay veces que es util para el compilador saber la diferencia entre un string y un array.

    Code:
    string:Func(string:a[], b[])

    {

    ? ? //Funcion que toma un string (a) y un array (b) y retorna un string.

    }






IS_IN_RANGE

YSI incluye una funcion muy util para simplificar la verificaci?n de valores. Como su nombre indica, la funci?n sirve para comprobar si algo esta dentro de un rango.

Code:
if(IS_IN_RANGE(abc, 1, 100))



Este c?digo comprueba si abc esta entre 1 y 100, devolviendo true si esta o false si no.







RUN_TIMING

Esta es una manera simplificada de obtener estad?sticas al comparar dos c?digos PAWN.

Code:
RUN_TIMING("Version 1 ()")

{

? ? a = b  5;

}

RUN_TIMING("Version 2 (=)")

{

? ? a = b;

? ? a = 5;

}



Imprimira algo as? en la consola:

Code:
Timing "Version 1 ()"...

? ? ? ? ? Mean = 78.00ns

? ? ? ? ? Mode = 76.00ns

? ? ? ? Median = 78.00ns

? ? ? ? ?Range = 9.00ns

Timing "Version 2 (=)"...

? ? ? ? ? Mean = 94.00ns

? ? ? ? ? Mode = 94.00ns

? ? ? ? Median = 94.00ns

? ? ? ? ?Range = 15.00ns



Si no sabes de estad?stica, elige la que tenga el menor "Mean", o mejor aprende estad?stica.?



Hay un segundo par?metro opcional que es el numero de loops si el experimento fue muy r?pido o muy corto.

Code:
RUN_TIMING("Version 2 (=)", 100)







Cr?ditos:
  • Ada32 - Escribir la gu?a en ingles originalmente

  • #Fede - Traducci?n de la gu?a?


  This is my private copy of the installers anda wiki files of samp
Posted by: Atom - 2019-04-19, 12:00 AM - Forum: Chat - Replies (4)

Hi all

I had my personal copy of the entire SA:MP wiki, today without realizing it, my VPS was depleted where I had it hosted, so I am moving it to Github.

I'm uploading everything, some things are still missing but in a few hours they will be available in the repository, I hope they give good use.

Note: I will notify you when it is completed



Repository link: https://github.com/RealAtom/SA-MP-BACKUP


  Where's my vehicle enthusiasts?
Posted by: AkiraR - 2019-04-18, 11:18 PM - Forum: Life - Replies (28)

The title is self-explanatory and to the point. What vehicle do you own and have you done anything with it? I would love pictures, and read stories about whatcha got. If this thread gets booming - I got a thread elsewhere for an online catalog w/ a lot of good websites for em that I'll share among us all.?


I once had an 1983 Chevy Cavalier (1st gen w/ FI), and used it for auto-cross racing. Unfortunately, I wasn't as knowledged as I am now otherwise I'd of upgraded a lot in it.

I'll attach an image when I get home
#atwork.


Star [TUTORIAL] pawn para samp en sublime text
Posted by: Frank Gambino - 2019-04-18, 11:17 PM - Forum: Programaci?n - Replies (8)

Guia hecha originalmente por MattHudson



Acerca de



Sublime Text 3 es un editor de texto altamente personalizable con muchas caracter?sticas geniales, que no puedes usar con el editor Pawno est?ndar o Notepad . S? que ya hay un mont?n de tutoriales sobre esto, pero no expl?citamente c?mo instalar los paquetes muy bien, lo que puede ser confuso para los principios y las instrucciones sobre el uso del programa.

  • Puede personalizar completamente el editor a algo con lo que se siente c?modo.



  • Escribir c?digo es m?s r?pido debido a la terminaci?n autom?tica y una correcci?n autom?tica inteligente.



  • Tu c?digo se ver? mucho m?s limpio con la sangr?a limpia que ofrece.



  • Una gran cantidad de atajos de teclado ?tiles (personalizables) para escribir c?digo m?s f?cilmente.



  • Tambi?n funciona con muchos otros idiomas.



  • Sublime Text est? disponible para Windows, OS X y Linux.




Caractericas ticas?



Autocompletar



Imagen externa







Algunos esquemas de color?



Imagen externa

Imagen externa

Imagen externa





Algunos accesos de teclado pre-hechos

http://docs.sublimetext.info/en/latest/r...s_win.html







instalacion



Haga clic aqu? -Descarga la ?ltima versi?n de Sublime Text.

Haga clic aqu? para descargar el sintaxis?de Sublime Text.





Sintaxis instalando



Descarga e instalaci?n Sublime Text 3

Descarga la sintaxis de texto sublime.

Archivo de la sintaxis en Tu unidad de disco duro: \ Usuarios \ Tu nombre de usuario \ AppData \ Roaming \ Texto sublime 3 \ Paquetes gratuitos (SI NO SE VENDE LA CARPETA SUBLIME TEXT 3 ES ROAMING, ESCRIBAN LA DIRECCI?N EN LA BARRA DE DIRECCI?N? )

Abre Texto Sublime 3 (o reinicialo si estaba abierto)

Ve a Preferencias> Control de paquetes y elije Instalar Paquete y espera hasta que se abra una nueva ventana.

Busca "pe?n" y haz clic en Sintaxis de pe?n, luego espera en tu propia instancia (progreso en la esquina inferior izquierda)

Ahora puedes cambiar la sintaxis en un lugar en la esquina inferior derecha o en "Ver> Sintaxis> Pe?n"



Ahora puedes probar el mensaje SendClientMessage para ver si la funci?n de auto-completado funciona. Si no funciona, los pasos err?neamente.



Instalancion del compilador



Ve a "Herramientas> Construir sistema> Nuevo sistema de compilaci?n"



Remplaza el c?digo por este

Quote: {

"cmd": ["pawncc.exe", "-i includes", "$ file", "-; "],

"path": "C: / path / to / pawno / folder"

}





Cambia "" C: / path / to / pawno / folder "a donde tengas tu compilador (es la carpeta donde est? el Pawno que tu sueles / quieres usar). Recuerda usar" / "y no" \ "porque si no el compilador dara un error.



Guarda el archivo en alg?n lugar de tu PC y cierra la ventana.



Reincia el programa.



Selecciona tu compilador: "Herramientas> Crear sistema> Nombre que elegiste"

Ahora puedes usar Control B para compilar el c?digo (tecla predeterminada)





Felicidades terminaste el tutorial.





Instrucciones extras.



?C?mo cambiar el bot?n del compilador?

Ve a "Preferencias> Vinculaciones de teclas"

Busca la palabra "construir" usando Control F

Reemplaza la tecla con la que quieras (Ej: f5) y copia la l?nea entera y pegala en el otro lado de la ventana entre los corchetes.

Guarda el archivo y reinicia Sublime Text 3.





?C?mo cambiar el esquema de colores?

Ve a "Preferencias> Esquema de color"

Y elije el que mas te guste. ?No te gusta ninguno? lee la siguiente pregunta.



?Como obtengo nuevos esquemas de colores?

Ve a "Preferencias> Control de paquetes" y elije "Instalar paquete"

Puedes elegir entre esos.



Tabulaci?n

Ve a "Ver> Sangr?a"

Recomiendo Ancho de Pesta?a: 4 (es el mas usado ...)

La tabulaci?n puede ser usada con "Ctrl [" y "Ctrl ]" o con el bot?n TAB.



creditos

-mantequilla De Cacahuete (Creador original del post en ingles)

- MattHudson (fue el que tradujo todo el post)


  Dark theme for the forum
Posted by: Charlie - 2019-04-18, 10:09 PM - Forum: Questions and Suggestions - Replies (1)

I believe I'm right in saying that there are plans for a redesign of the forum. Would it be possible to have a dark version of whatever the final design is so then we can switch between them whenever.


  [Showcase/Mapp] Attic
Posted by: Apex - 2019-04-18, 08:18 PM - Forum: Videos and Screenshots - Replies (1)

Mapping of a basic attic with normal textures, no environment made.

My contact on discord is Apex#0687



[Image: sa-mp-015.png]



[Image: sa-mp-016.png]



[Image: sa-mp-017.png]



[Image: sa-mp-018.png]



[Image: sa-mp-019.png]