Curso de Pawno =D

Foro L4E :: Pawno :: Pawno

Ir abajo

Que te parece el curso?

50% 50% 
[ 2 ]
25% 25% 
[ 1 ]
0% 0% 
[ 0 ]
25% 25% 
[ 1 ]
0% 0% 
[ 0 ]
 
Votos Totales : 4

Curso de Pawno =D

Mensaje por Matthew el Mar Ago 05, 2008 1:53 pm

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:

¿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);
En este caso, "SetPlayerSkin" es la declaracion, porque "declara" que los parametros a continuacion son los que limitaran el cambio de skin para el jugador "playerid". Se separa de los parametros con un parentesis (() y se continua con estos. "playerid" y "280" son los parametros de la funcion declarada. Cada uno de estos tiene una funcion unica que limitara el cambio de skin para el jugador ("SetPlayerSkin"). En este caso, SetPlayerSkin tiene 2 parametros. El primero, la id del jugador que recibira el cambio, y el segundo la id del skin al que sera cambiado el jugador previamente señalado. Despues se terminan los parametros con otro parentesis ()) y se "conecta" con la linea siguiente con 1 ;, que declarara que la funcion ha finalizado y puede proseguirse con el resto del script. Otra cosa que estaria bueno aclarar, es que las funciones en el Pawno, estan en un 98% orientadas a las IDS, como ser 280 (un skin), 551 (un auto), 28 (un arma), 6 (un color de auto), 0 (una id), etc.

Bueno, por ahora termino y espero sus respuestas y dudas al respecto Wink.

_________________
Benditos sean los que pawnean, porque de ellos sera el reino del pawno
··
avatar
Matthew
Web Master
Web Master

Masculino Cantidad de envíos : 84
Localización : Frente al monitor
Empleo /Ocio : Pawner
Humor : Happy :d
Fecha de inscripción : 22/05/2008

Ver perfil de usuario http://www.l4eclan.foroes.org

Volver arriba Ir abajo

Re: Curso de Pawno =D

Mensaje por 87GNR87 el Mar Ago 05, 2008 2:02 pm

emm no entendi Mad No
avatar
87GNR87
Taxista
Taxista

Cantidad de envíos : 74
Edad : 28
Localización : Paradise City.
Empleo /Ocio : Guitarrista.
Humor : Negro.
Fecha de inscripción : 14/07/2008

Ver perfil de usuario

Volver arriba Ir abajo

Re: Curso de Pawno =D

Mensaje por Matthew el Mar Ago 05, 2008 2:23 pm

Deci que no entendiste xD

_________________
Benditos sean los que pawnean, porque de ellos sera el reino del pawno
··
avatar
Matthew
Web Master
Web Master

Masculino Cantidad de envíos : 84
Localización : Frente al monitor
Empleo /Ocio : Pawner
Humor : Happy :d
Fecha de inscripción : 22/05/2008

Ver perfil de usuario http://www.l4eclan.foroes.org

Volver arriba Ir abajo

Re: Curso de Pawno =D

Mensaje por 87GNR87 el Lun Ago 11, 2008 9:27 pm

todo.
avatar
87GNR87
Taxista
Taxista

Cantidad de envíos : 74
Edad : 28
Localización : Paradise City.
Empleo /Ocio : Guitarrista.
Humor : Negro.
Fecha de inscripción : 14/07/2008

Ver perfil de usuario

Volver arriba Ir abajo

Re: Curso de Pawno =D

Mensaje por narcox el Miér Ago 13, 2008 4:29 pm

pongo bueno por q no entendilo de SetPlayerSkin(playerid, 280); te puedes explicar mejor? algo mas sencillo

y otra pregunta q es c++?
avatar
narcox
Taxista
Taxista

Femenino Cantidad de envíos : 67
Fecha de inscripción : 31/07/2008

Ver perfil de usuario

Volver arriba Ir abajo

Re: Curso de Pawno =D

Mensaje por Matthew el Jue Ago 14, 2008 9:33 pm

C++ es un lenguaje de programacion, buscalo en google Wink.

_________________
Benditos sean los que pawnean, porque de ellos sera el reino del pawno
··
avatar
Matthew
Web Master
Web Master

Masculino Cantidad de envíos : 84
Localización : Frente al monitor
Empleo /Ocio : Pawner
Humor : Happy :d
Fecha de inscripción : 22/05/2008

Ver perfil de usuario http://www.l4eclan.foroes.org

Volver arriba Ir abajo

Re: Curso de Pawno =D

Mensaje por narcox el Mar Ago 19, 2008 7:19 pm

entendi entendi entendi esto es como el comando /s Very Happy[b]
avatar
narcox
Taxista
Taxista

Femenino Cantidad de envíos : 67
Fecha de inscripción : 31/07/2008

Ver perfil de usuario

Volver arriba Ir abajo

Re: Curso de Pawno =D

Mensaje por Matthew el Miér Ago 20, 2008 3:03 pm

El /s es un strtok, es 246 veces mas dificil que uno comun

_________________
Benditos sean los que pawnean, porque de ellos sera el reino del pawno
··
avatar
Matthew
Web Master
Web Master

Masculino Cantidad de envíos : 84
Localización : Frente al monitor
Empleo /Ocio : Pawner
Humor : Happy :d
Fecha de inscripción : 22/05/2008

Ver perfil de usuario http://www.l4eclan.foroes.org

Volver arriba Ir abajo

Re: Curso de Pawno =D

Mensaje por narcox el Miér Ago 20, 2008 7:52 pm

Sad U.U q malo soy xd


y otra cosa mas q no entiendo es lo de las llaves ( {} ) como se donde ahy q ponerlas
avatar
narcox
Taxista
Taxista

Femenino Cantidad de envíos : 67
Fecha de inscripción : 31/07/2008

Ver perfil de usuario

Volver arriba Ir abajo

Re: Curso de Pawno =D

Mensaje por Matthew el Jue Ago 21, 2008 3:09 pm

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

_________________
Benditos sean los que pawnean, porque de ellos sera el reino del pawno
··
avatar
Matthew
Web Master
Web Master

Masculino Cantidad de envíos : 84
Localización : Frente al monitor
Empleo /Ocio : Pawner
Humor : Happy :d
Fecha de inscripción : 22/05/2008

Ver perfil de usuario http://www.l4eclan.foroes.org

Volver arriba Ir abajo

Re: Curso de Pawno =D

Mensaje por narcox el Vie Ago 22, 2008 3:10 pm

ya entiendo Very Happy
avatar
narcox
Taxista
Taxista

Femenino Cantidad de envíos : 67
Fecha de inscripción : 31/07/2008

Ver perfil de usuario

Volver arriba Ir abajo

Re: Curso de Pawno =D

Mensaje por Matthew el Vie Ago 22, 2008 4:19 pm

Las llaves significan el contenido (principio { y fin }) de una funcion (los ifs son funciones tambien)

_________________
Benditos sean los que pawnean, porque de ellos sera el reino del pawno
··
avatar
Matthew
Web Master
Web Master

Masculino Cantidad de envíos : 84
Localización : Frente al monitor
Empleo /Ocio : Pawner
Humor : Happy :d
Fecha de inscripción : 22/05/2008

Ver perfil de usuario http://www.l4eclan.foroes.org

Volver arriba Ir abajo

Re: Curso de Pawno =D

Mensaje por narcox el Jue Ago 28, 2008 1:48 pm

y cuando nos enseñaras a hacer comandos ???? (o ahy algo mas facil q eso?) si lo ahy explica Very Happy

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 Very Happy
avatar
narcox
Taxista
Taxista

Femenino Cantidad de envíos : 67
Fecha de inscripción : 31/07/2008

Ver perfil de usuario

Volver arriba Ir abajo

Re: Curso de Pawno =D

Mensaje por 87GNR87 el Jue Ago 28, 2008 5:49 pm

entiendo todotodo!. QUE BIEN.
avatar
87GNR87
Taxista
Taxista

Cantidad de envíos : 74
Edad : 28
Localización : Paradise City.
Empleo /Ocio : Guitarrista.
Humor : Negro.
Fecha de inscripción : 14/07/2008

Ver perfil de usuario

Volver arriba Ir abajo

Re: Curso de Pawno =D

Mensaje por narcox el Jue Ago 28, 2008 7:29 pm

tambien deberias enseñarnos a usar el dcmd es muy util lol!
avatar
narcox
Taxista
Taxista

Femenino Cantidad de envíos : 67
Fecha de inscripción : 31/07/2008

Ver perfil de usuario

Volver arriba Ir abajo

Re: Curso de Pawno =D

Mensaje por Matthew el Jue Ago 28, 2008 9:47 pm

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:

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
que define que los parametros no son necesarios en el comando. ESTO ES MUY IMPORTANTE: La crucial diferencia entre los params del DMCD y la tmp (mas adelante lo explicare) del strtok, que es la variable del mismo, es que los params pueden alojar tanto NUMEROS como PALABRAS, en cuanto la TMP solo aloja numeros.

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 (Razz) 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
para anular los params, tambien se puede utilizar
Código:
#pragma unused playerid
para anular el playerid.

Aviso: Si no se eliminan los params o el playerid, y no son utilizados, dara siempre una warning de "Function is never used"

_________________
Benditos sean los que pawnean, porque de ellos sera el reino del pawno
··
avatar
Matthew
Web Master
Web Master

Masculino Cantidad de envíos : 84
Localización : Frente al monitor
Empleo /Ocio : Pawner
Humor : Happy :d
Fecha de inscripción : 22/05/2008

Ver perfil de usuario http://www.l4eclan.foroes.org

Volver arriba Ir abajo

Re: Curso de Pawno =D

Mensaje por narcox el Vie Ago 29, 2008 5:15 pm

entendiiiiiii soy un huevooooo(bueno no mas q tu)

entendi mas esto q lo se SetPlayerSkin(bla bla bla) sigue sigue sigue mas cosass Razz estoy hambreinto de pawno
avatar
narcox
Taxista
Taxista

Femenino Cantidad de envíos : 67
Fecha de inscripción : 31/07/2008

Ver perfil de usuario

Volver arriba Ir abajo

Re: Curso de Pawno =D

Mensaje por narcox el Sáb Ago 30, 2008 11:45 pm

explica el for Very Happy kiero saber usarlo
avatar
narcox
Taxista
Taxista

Femenino Cantidad de envíos : 67
Fecha de inscripción : 31/07/2008

Ver perfil de usuario

Volver arriba Ir abajo

Re: Curso de Pawno =D

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

Foro L4E :: Pawno :: Pawno

 
Permisos de este foro:
No puedes responder a temas en este foro.