[Guia]Guia De Programacion Pawn Basica (Actualizada)

Aprende lo que no sabes de este lenguaje y encuentra herramientas y códigos útiles.

Moderador: Ayudantes

Reglas del Foro
  • Si tu código es corto, no crees un tema nuevo para liberarlo, publica un mensaje en el tema [Funciones] ¡Publica tu código aquí!.
  • Si creas una guía, debes explicar el código claramente. Evita poner la explicación en forma de comentarios dentro del mismo y no olvides utilizar el BBCode correspondiente: [Pawn]Código aquí[/Pawn].
  • No postear códigos sin probar. Publicar códigos con errores (que impidan compilar el script para el cual está destinado) en este apartado es motivo de sanción.
  • Si tu código necesita plugins, includes u otros códigos adicionales para funcionar, debes mencionarlo en el mensaje.
  • Si has utilizado códigos de otros autores, recuerda colocar los créditos correspondientes. (El plagio es motivo de sanción).
  • Si tu aporte es para un GameMode en específico, debes publicar el tema en el apartado "Guías y Aportes para GameModes específicos".
Responder
Avatar de Usuario
AbelKnight
Aprendiz
Aprendiz
Mensajes: 427
Registrado: 07 Jun 2016 10:56
Ubicación: Inglaterra
Reputación: 5

08 Ene 2017 12:50

-hi Hola, el dia de hoy e decidido hacer esta pequeña guia para los nuevos en este lenguaje conocido como pawn y una razon por la cual e decidido hacer esto es por los muchos usuarios que acada rato dicen "Yo no se programar pawn nesesito ayuda" y bueno muchas veces se acostumbran que cuando tienen una duda o quieren un Script, van a la seccion de Pedidos y hacen un pedido de un Script, la mayoria de las veces mal escrito y que no se les entiende nada ya que no se explican bien... Es altamente recomendable que si estas aqui que aprendas a programar pawn... Bueno sin mas empezemos.

Primero que nada les dejo la Wiki una gran fuente de conocimiento en el lenguaje pawn...Los mejores Scripters aprendieron sobre pawn aqui -thumbup .


¿Qué es pawn?


El pawn es un lenguaje de programacion,este lenguaje de programacion es un deribado de otro muy conocido llamado C++, no entrare en detalles sobre este para evitar que se enrreden y que no se confundan. Si aprenden sobre el C++ les sera un poco mas simple aprender pawn.

Listo, ahora si vamos a inicar a aprender a programar pawn...

Iniciando en el pawn!

Iniciempos con algo sencillo... Al principio de todo siempre deben tener este #Include el cual debe estar en la primera linea. Por nada del mundo se les ocurra ponerlo abajo de otro #Include siempre debe estar al principio de todo, ese #Include es el siguiente...
 Codigo Pawno:
1

#include <a_samp>
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Recuerdo que este #Include debe estar arriba de todos los Includes para evitar errores... Bien ahora vamos con los #Define... Los define es otro problema de los novatos el cual aveces es el problema "Undefined" que significa "Indefinido" osea que estan usando un color como ej: 000x000 pero aun no lo tienen definido. Los define van haci...Esto, básicamente, carga el código de pawno / includes / a_samp.inc en la secuencia de comandos, por lo que todo lo que tiene que puede utilizar.
 Codigo Pawno:
1

#Define //(Lo que vas a definir sin el parentesis)
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Por ejemplo...
 Codigo Pawno:
1

#Define 000x000
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Ojo: Los define van abajo de los #Include.

Haci definen colores lo cual es de lo mas facil... Ahora les enseñare las variables...

¿Qué es una variable?


Una variable es básicamente un poco de memoria, que es donde se almacenan los datos y se puede cambiar y leer como sea necesario. Las variables son una o más células, una célula es de 32 bits (4 bytes) grandes y por defecto firmado para que puedan tienda a partir de -2147483648 a la 2147483647 (aunque -2147483648 no está bien definido en prenda y da resultados extraños si aparece). Una variable a partir de más de una célula se llama una matriz, las cadenas son un tipo especial de matriz en donde cada célula tiene un carácter de la cadena (o 4 caracteres en cadenas envasados, pero no están cubiertos aquí). Siendo mas claro las variables son un poco de codigo donde se almacenan datos que se usaran luego...

Tambien existen los Tags con los que se pueden crear diferentes tipos de variables, los tags son infinitos pero los que trae el Pawn, para definir una variable deben usar un Tag haci (Dependiendo la variable que quieran crear usan el Tag que vallan a usar).
 Codigo Pawno:
1

new Tag:Nombre; //Donde dice " Tag " es ahi donde van a colocar el Tag que vallan a utilizar dependiendo la variable que quieran hacer.
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
 Codigo Pawno:
1
2
3
4

new Float:MiFloat; //Una variable Float.
new File:MiFile; //Una variable File.
new bool:MyBool; //Una variable bool.
new MiInteger; //Una variable integer.
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 4
¿Como hacer una variable? Facil, para crear una variable aganlo haci...
 Codigo Pawno:
1

new mivariable;
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
O crear una variable para un Textdraw, haci seria...
 Codigo Pawno:
1

new Text:textdraw1; //Textdraw1 es lo que definira un textdraw que vas a crear luego.
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
¿Qué es un comando?

Listo ya vamos avanzando... Ahora que ya saben un par de cosas sobre pawn es hora de que aprendan algo y esto es aprender a crear comandos... Ahora hay dos procesadores de comandos y son los siguientes : ZCMD, Y_CMD y el de los novatos el Strcmd... Yo prefiero el ZCMD y es mejor que se acostumbren a usarlo, ya que el ZCMD es el procesador de comandos mas rapido que hay hasta el momento mas que Y_CMD pero la diferencia son solo milisegundos, no se acostumbren a usarlo y tampoco el Strcmd, el mejor es el ZCMD ya que al ser el mas rapido, es el mas simple de usar -happy bueno ahora solo les enseñare a hacer comandos ZCMD...
¿Como hacer un comando ZCMD?

Primero que nada deben tener el siguiente #Include zcmd instalado en su Pawno/Includes y deben tener en su GameMode el #Include zcmd, haci...

OJO: Los comandos ZCMD no van dentro de ningun Callback -clapping
 Codigo Pawno:
1

#Include <zcmd>
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Las 3 formas de hacer comandos son las siguientes...

zcmd(nombrecmd, playerid, params[])
CMD:nombrecmd(playerid, params[])
COMMAND:nombrecmd(playerid, params[])

Las funciones de un comando deben estar bajo la primera llave "{"

Haci...

 Codigo Pawno:
1
2
3
4
5

"text-strong">zcmd(nombrecmd, playerid, params[])
{ // Este { es la primera llave
// Aca debes poner las funciones del comando...
return 1; 
}
  Cantidad de llaves: Abiertas(2)-Cerradas(1) | Lineas Totales: 5


Ahora vamos con la segunda forma que es la siguiente...
 Codigo Pawno:
1
2
3
4
5

CMD:nombrecmd(playerid, params[])
{ // primera llave
// Aca van las funciones del comando.
return 1; 
}
  Cantidad de llaves: Abiertas(1)-Cerradas(1) | Lineas Totales: 5
Ahora la ultima forma...
 Codigo Pawno:
1
2
3
4
5

COMMAND:nombrecmd(playerid, params[])
{ // primera llave
// Aca van las funciones del comando.
return 1; 
}
  Cantidad de llaves: Abiertas(1)-Cerradas(1) | Lineas Totales: 5
Ahora les enseñare el ejemplo de un comando con la segunda forma de hacer comandos con el Zcmd...
 Codigo Pawno:
1
2
3
4
5
6

CMD:vida(playerid, params[])
{
SetPlayerHealth(playerid, 100); // Esto hara que el jugador que use el comando se le recupere la vida.
SendClientMessage(playerid, -1, "Ahora tienes tu barra de vida llena"); // Esto le enviara un mensage cuando su vida se llene.
return 1; 
}
  Cantidad de llaves: Abiertas(1)-Cerradas(1) | Lineas Totales: 6
Listo en la Wiki tienen mas funciones para agregarles a sus comandos. -dance4

Creditos

Gracias a la Wiki por los ejemplos y respuestas
Gracias a MasterDarkness por la publicacion de este tema y la traduccion de algunas cosas de la Wiki -thumbup

Gracias, si te sirvio dejame un +1 -good


Ultima actualizacion del post 27-01-2017

Última edición por AbelKnight el 27 Ene 2017 22:12, editado 6 veces en total.
SrLox
Aprendiz
Aprendiz
Mensajes: 71
Registrado: 12 Mar 2016 18:36
Reputación: 2

08 Ene 2017 15:44

Esto ya lo vi en otro foro. -fisch -fisch -sh_banned
Avatar de Usuario
AbelKnight
Aprendiz
Aprendiz
Mensajes: 427
Registrado: 07 Jun 2016 10:56
Ubicación: Inglaterra
Reputación: 5

08 Ene 2017 15:53

SrLox escribió:Esto ya lo vi en otro foro. -fisch -fisch -sh_banned
¿Otro foro?
Avatar de Usuario
MattHudson
Moderador Global
Moderador Global
Mensajes: 1654
Registrado: 31 Oct 2015 18:16
Ubicación: Argentina, Buenos Aires, San Miguel.
Contactar:
Reputación: 87

02 Feb 2017 20:32

Vi dos errores.

Ademas, aclara que es básico en el titulo. Y tambien añade que enseñas a usar ZCMD.
Puedes retirar tu nombre del titulo, ¿pa que ponerlo en el si ya aparece en el post y en el nombre del posteador?


Última reactivación por AbelKnight en 02 Feb 2017 20:32
Responder