Curso de Pawno =D
3 participantes
Que te parece el curso?
Curso de Pawno =D
Bueno gente, me decidi a poner este curso de pawno. Como no fui a ninguna escuela de profesores ni nada de eso por ahi les cuesta mucho mis explicaciones xd, pero me esforzare al maximo.
Bueno, primero lo primero:
El Pawno (o Pawn en ingles) es una modificacion del C++, especializada en la creacion y modificacion de objetos. Ademas de cambiar la interface y facilitar el aprendizaje, el Pawno es una herramienta de programacion muy utilizada por los juegos en MultiPlayer para crear servidores, como ser SA:MP. Conserva de su predecesor, el C++, la forma de inicializar funciones, includes y los tipicos Brackets o Llaves ({}) y Parentesis (()) para mostrar inicio o finalizacion de una funcion o callback. Tambien una buena y muy importante diferencia, es que el Pawno esta desarrollado para diferenciar Mayusculas de Minusculas, siendo "Jugador_1" una string(explicado mas adelante) diferente a "JuGaDoR_1".
Las funciones o Functions (ingles) son las declaraciones de que se lleva acabo algo, y las especificaciones de como, cuando, donde, etc. Un ejemplo de Funcion, es "IsPlayerConnected", esta funcion es bastante util en comandos "strtok" (veremos mas adelante), porque puede comprobar si el jugador especificado entre parentesis (()) esta conectado o no. Las funciones tienen normalmente 3 partes: Declaracion, Parametros y Coneccion. Pongo un ejemplo de cada una. Analizemos este caso:
Bueno, por ahora termino y espero sus respuestas y dudas al respecto .
Bueno, primero lo primero:
¿Que es el pawno?
El Pawno (o Pawn en ingles) es una modificacion del C++, especializada en la creacion y modificacion de objetos. Ademas de cambiar la interface y facilitar el aprendizaje, el Pawno es una herramienta de programacion muy utilizada por los juegos en MultiPlayer para crear servidores, como ser SA:MP. Conserva de su predecesor, el C++, la forma de inicializar funciones, includes y los tipicos Brackets o Llaves ({}) y Parentesis (()) para mostrar inicio o finalizacion de una funcion o callback. Tambien una buena y muy importante diferencia, es que el Pawno esta desarrollado para diferenciar Mayusculas de Minusculas, siendo "Jugador_1" una string(explicado mas adelante) diferente a "JuGaDoR_1".
¿Que es una funcion o Function?
Las funciones o Functions (ingles) son las declaraciones de que se lleva acabo algo, y las especificaciones de como, cuando, donde, etc. Un ejemplo de Funcion, es "IsPlayerConnected", esta funcion es bastante util en comandos "strtok" (veremos mas adelante), porque puede comprobar si el jugador especificado entre parentesis (()) esta conectado o no. Las funciones tienen normalmente 3 partes: Declaracion, Parametros y Coneccion. Pongo un ejemplo de cada una. Analizemos este caso:
- Código:
SetPlayerSkin(playerid, 280);
Bueno, por ahora termino y espero sus respuestas y dudas al respecto .
Re: Curso de Pawno =D
emm no entendi
87GNR87- Taxista
- Cantidad de envíos : 74
Edad : 33
Localización : Paradise City.
Empleo /Ocio : Guitarrista.
Humor : Negro.
Fecha de inscripción : 14/07/2008
87GNR87- Taxista
- Cantidad de envíos : 74
Edad : 33
Localización : Paradise City.
Empleo /Ocio : Guitarrista.
Humor : Negro.
Fecha de inscripción : 14/07/2008
Re: Curso de Pawno =D
pongo bueno por q no entendilo de SetPlayerSkin(playerid, 280); te puedes explicar mejor? algo mas sencillo
y otra pregunta q es c++?
y otra pregunta q es c++?
narcox- Taxista
- Cantidad de envíos : 67
Fecha de inscripción : 31/07/2008
Re: Curso de Pawno =D
entendi entendi entendi esto es como el comando /s [b]
narcox- Taxista
- Cantidad de envíos : 67
Fecha de inscripción : 31/07/2008
Re: Curso de Pawno =D
U.U q malo soy xd
y otra cosa mas q no entiendo es lo de las llaves ( {} ) como se donde ahy q ponerlas
y otra cosa mas q no entiendo es lo de las llaves ( {} ) como se donde ahy q ponerlas
narcox- Taxista
- Cantidad de envíos : 67
Fecha de inscripción : 31/07/2008
Re: Curso de Pawno =D
Es muy sencillo si analizaras!!!!!!!
se abren despues de un IF, un ELSE, de un PUBLIC, se cierran despues de un RETURN o del fin de un IF o un ELSE
se abren despues de un IF, un ELSE, de un PUBLIC, se cierran despues de un RETURN o del fin de un IF o un ELSE
Re: Curso de Pawno =D
ya entiendo
narcox- Taxista
- Cantidad de envíos : 67
Fecha de inscripción : 31/07/2008
Re: Curso de Pawno =D
Las llaves significan el contenido (principio { y fin }) de una funcion (los ifs son funciones tambien)
Re: Curso de Pawno =D
y cuando nos enseñaras a hacer comandos ???? (o ahy algo mas facil q eso?) si lo ahy explica
yo kiero hacer un interior ya ise la casa en el blue hell y la puerta...(mmm no se como hacer para q kede pegada al suelo :S siempre keda flotando) ademas de eso solo me faltan los comandos
yo kiero hacer un interior ya ise la casa en el blue hell y la puerta...(mmm no se como hacer para q kede pegada al suelo :S siempre keda flotando) ademas de eso solo me faltan los comandos
narcox- Taxista
- Cantidad de envíos : 67
Fecha de inscripción : 31/07/2008
Re: Curso de Pawno =D
entiendo todotodo!. QUE BIEN.
87GNR87- Taxista
- Cantidad de envíos : 74
Edad : 33
Localización : Paradise City.
Empleo /Ocio : Guitarrista.
Humor : Negro.
Fecha de inscripción : 14/07/2008
Re: Curso de Pawno =D
tambien deberias enseñarnos a usar el dcmd es muy util
narcox- Taxista
- Cantidad de envíos : 67
Fecha de inscripción : 31/07/2008
Re: Curso de Pawno =D
Okok, ahora me pongo a escribir el DCMD.
No tengo idea de que es la D, pero CMD es obviamente Comando. El funcionamiento es muy dificil de entender, pero una vez que le agarras la vuelta, es mejor que casi cualquier otro tipo de comando. Un DCMD se divide en dos partes: Declaracion (que se encuentra dentro de OnPlayerCommandText) y Funcion (que se encuentra fuera de OnPlayerCommandText).
Declaracion
Tomemos como un ejemplo simple el "/yo". Para los que no lo conocen, el "/yo" es un comando que se utiliza para mandar mensajes de acciones en 3ra persona. Analizemos la declaracion:
Bueno, en primer lugar, se define que el comando es de tipo DCMD (dcmd()). Esto sirve para que la funcion sea reconocida como dicho tipo de comando. Despues, en los parametros, se define en primer lugar, el identificador del comando (yo), sin la barra (/) ni las comillas (""). Despues se define el tamaño (o el StringSize) del comando, tambien sin contar la barra. En este caso pondremos 2, ya que Y (1) y O (2), son dos letras. Por ultimo definimos la String a la que se comparará el comando. En este ultimo parametro, siempre va CMDTEXT, ya que define que solo si la string es un comando (ahi esta la barra) es aceptado. En cualquier caso contrario (el comando es diferente, la longitud es distinta), retorna automaticamente en 1 (return 1).
Funcion
Analizemos esto:
Bueno, lo pongo todo como en una lista:
1. Se define que la funcion se ejecutara una vez activado el DCMD (dcmd) yo (_yo). Tambien hay 2 parametros. El primero, es la id del jugador que ejecuto el comando. El segundo, que aca esta lo interesante, son los parametros posteriores al comando (ejemplo: "/yo come con la mano", "come con la mano" son los params). Se puede anular la necesidad de params poniendo una linea al principio de la funcion como esta:
2. Analizandolo:
-if: Ya todos saben
-!strlen(params): strlen es una funcion que mide la longitud de una string (params). El signo ! delante de el significa NO, es decir que si no hay longitud de la string, osea que es inexistente
-return SendClientMessage....: Retorna mandando un mensaje al jugador con el correcto uso
3. Crea una string llamada string () con una longitud maxima de 256 caracteres.
4. Crea una string llamada Nombre_Jugador con una longitud maxima de MAX_PLAYER_NAME, osea la longitud maxima del nombre de un jugador por defecto del samp
5. Toma el nombre del jugador y lo "guarda" dentro de la string MAX_PLAYER_NAME
6. Aca hay una nueva funcion, FORMAT. Lo que hace esta fabulosa funcion, es modificar una string (string previamente creada) agregandole variables que pueden ser numeros (%d), palabras o frases (%s) o floats (numeros con decimales) (%0.0f, creo). Despues se definen en orden a que string/int (numero)/float pertenece la variable. En este caso crea un texto con el nombre del jugador delante y los parametros despues. Un ejemplo: Juanito tipea "/yo mira la tele". El format creara una oracion parecida a esta: "Juanito mira la tele".
7. Envia a todos los jugadores la string modificada mediante la funcion FORMAT.
8. Si todo se ha realizado correctamente, retorna y finaliza la funcion.
----------------------------------------------------------------------------------------------------------
Bueno, espero que les haya servido.
Nota: Como se puede utilizar
Aviso: Si no se eliminan los params o el playerid, y no son utilizados, dara siempre una warning de "Function is never used"
No tengo idea de que es la D, pero CMD es obviamente Comando. El funcionamiento es muy dificil de entender, pero una vez que le agarras la vuelta, es mejor que casi cualquier otro tipo de comando. Un DCMD se divide en dos partes: Declaracion (que se encuentra dentro de OnPlayerCommandText) y Funcion (que se encuentra fuera de OnPlayerCommandText).
Declaracion
Tomemos como un ejemplo simple el "/yo". Para los que no lo conocen, el "/yo" es un comando que se utiliza para mandar mensajes de acciones en 3ra persona. Analizemos la declaracion:
- Código:
dcmd(yo, 2, cmdtext);
Bueno, en primer lugar, se define que el comando es de tipo DCMD (dcmd()). Esto sirve para que la funcion sea reconocida como dicho tipo de comando. Despues, en los parametros, se define en primer lugar, el identificador del comando (yo), sin la barra (/) ni las comillas (""). Despues se define el tamaño (o el StringSize) del comando, tambien sin contar la barra. En este caso pondremos 2, ya que Y (1) y O (2), son dos letras. Por ultimo definimos la String a la que se comparará el comando. En este ultimo parametro, siempre va CMDTEXT, ya que define que solo si la string es un comando (ahi esta la barra) es aceptado. En cualquier caso contrario (el comando es diferente, la longitud es distinta), retorna automaticamente en 1 (return 1).
Funcion
Analizemos esto:
- Código:
dcmd_yo(playerid, params[])//1
{
if(!strlen(params)) return SendClientMessage(playerid, COLOR_WHITE, "Prueba usando /yo [accion en 3ra persona]"); //2
new string[256]; //3
new Nombre_Jugador[MAX_PLAYER_NAME]; //4
GetPlayerName(playerid, Nombre_Jugador, sizeof(Nombre_Jugador)); //5
format(string, sizeof(string), "%s %s", Nombre_Jugador, params); //6
SendClientMessageToAll(COLOR_RED, string); //7
return 1; //8
}
Bueno, lo pongo todo como en una lista:
1. Se define que la funcion se ejecutara una vez activado el DCMD (dcmd) yo (_yo). Tambien hay 2 parametros. El primero, es la id del jugador que ejecuto el comando. El segundo, que aca esta lo interesante, son los parametros posteriores al comando (ejemplo: "/yo come con la mano", "come con la mano" son los params). Se puede anular la necesidad de params poniendo una linea al principio de la funcion como esta:
- Código:
#pragma unused params
2. Analizandolo:
-if: Ya todos saben
-!strlen(params): strlen es una funcion que mide la longitud de una string (params). El signo ! delante de el significa NO, es decir que si no hay longitud de la string, osea que es inexistente
-return SendClientMessage....: Retorna mandando un mensaje al jugador con el correcto uso
3. Crea una string llamada string () con una longitud maxima de 256 caracteres.
4. Crea una string llamada Nombre_Jugador con una longitud maxima de MAX_PLAYER_NAME, osea la longitud maxima del nombre de un jugador por defecto del samp
5. Toma el nombre del jugador y lo "guarda" dentro de la string MAX_PLAYER_NAME
6. Aca hay una nueva funcion, FORMAT. Lo que hace esta fabulosa funcion, es modificar una string (string previamente creada) agregandole variables que pueden ser numeros (%d), palabras o frases (%s) o floats (numeros con decimales) (%0.0f, creo). Despues se definen en orden a que string/int (numero)/float pertenece la variable. En este caso crea un texto con el nombre del jugador delante y los parametros despues. Un ejemplo: Juanito tipea "/yo mira la tele". El format creara una oracion parecida a esta: "Juanito mira la tele".
7. Envia a todos los jugadores la string modificada mediante la funcion FORMAT.
8. Si todo se ha realizado correctamente, retorna y finaliza la funcion.
----------------------------------------------------------------------------------------------------------
Bueno, espero que les haya servido.
Nota: Como se puede utilizar
- Código:
#pragma unused params
- Código:
#pragma unused playerid
Aviso: Si no se eliminan los params o el playerid, y no son utilizados, dara siempre una warning de "Function is never used"
Re: Curso de Pawno =D
entendiiiiiii soy un huevooooo(bueno no mas q tu)
entendi mas esto q lo se SetPlayerSkin(bla bla bla) sigue sigue sigue mas cosass estoy hambreinto de pawno
entendi mas esto q lo se SetPlayerSkin(bla bla bla) sigue sigue sigue mas cosass estoy hambreinto de pawno
narcox- Taxista
- Cantidad de envíos : 67
Fecha de inscripción : 31/07/2008
Re: Curso de Pawno =D
explica el for kiero saber usarlo
narcox- Taxista
- Cantidad de envíos : 67
Fecha de inscripción : 31/07/2008
Permisos de este foro:
No puedes responder a temas en este foro.
|
|