[Guía] Como crear comandos con ZCMD y sscanf2 - Printable Version +- Burgershot (https://www.burgershot.gg) +-- Forum: Other languages (https://www.burgershot.gg/forumdisplay.php?fid=23) +--- Forum: Spanish/Español (https://www.burgershot.gg/forumdisplay.php?fid=24) +---- Forum: Programación (https://www.burgershot.gg/forumdisplay.php?fid=51) +---- Thread: [Guía] Como crear comandos con ZCMD y sscanf2 (/showthread.php?tid=1038) |
[Guía] Como crear comandos con ZCMD y sscanf2 - SKainer - 2020-04-15 [Presentación]
¡Hola a todos! Vengo aquí a presentar otra guía creada por mí para algunos novatos iniciando en el mundo del Pawn.
[¿Qué es ZCMD]
ZCMD es un procesador de comandos muy efectivo y rápido usado por muchísimos servidores para una mejor optimización.
[¿Qué es sscanf2]
sscanf2 (Plugin) es un usualmente usado como procesador de parámetros que trabaja muy bien de la mano de ZCMD.
[¿Cómo usar ZCMD?]
ZCMD puede ser usado de las siguientes formas:
PHP Code: zcmd(comando, playerid, params[]) Todas se escriben diferente, pero tienen el mismo resultado.
[Nota Importante] ZCMD no debe ir dentro de una función o callback. [Nota Importante] ZCMD siempre debe retornar verdadero (return 1) al final, como se muestra en los ejemplos o si no aparecerá el mensaje "Unknown Command" cuando se introduzca el comando. Ejemplo de uso:
PHP Code: CMD:mensaje(playerid, params[]) Funciona como si fuera una función, al menos así lo veo yo.
Ahora, incluyamos a sscanf2 y por qué va de la mano con ZCMD.
[¿Cómo usar SSCANF2?]
La sintáxis de sscanf2 sería algo así:
Code: sscanf(const data[], const format[], ...) const data[] = Ahí iría la data constante, es decir, la información constante que se introdujo, en este caso (ZCMD), usamos "params"
const format[] = Aquí van los especificadores (integers, floats, strings, etc) que se introducirán en los parámetros.
... = aquí se ponen las variables de los parámetrosPHP Code: CMD:dardinero(playerid, params[]) Ahora, ¡¿Qué acaba de pasar aquí?! Pasamos de ver sintáxis a un comando normal. Pues bueno, ahora explico qué pasa.
Fijemonos en estas líneas:
PHP Code: new idjugador, dinero; Así se usa usualmente el sscanf. Efectivamente usamos una condicional para que suceda lo siguiente: si los parámetros (params) son la id de un jugador y numeros integer, retornaremos verdadero. ¿Qué es "ud"? Son especificadores de datos, "u" sería la id de un jugador (o nombre) y "d" sería un integer. En "(params, "ud", idjugador, dinero)" podemos ver que también tenemos 2 variables (que creamos anteriormente) y ¿qué son? Pues son esos mismos datos especificados. Es decir, "u" es "idjugador" y "d" es "dinero", osea, idjugador es la id de un jugador y dinero es un integer. Es un poco confuso pero es entendible, también podemos observar que puse "!sscanf", qué es este operador (!)? Lo usamos para que tome un valor contrario, ya veremos para qué. Entonces tenemos la función Code: GivePlayerMoney(playerid, money) // Función por defecto Imagina que tu jugador escribe: /dardinero 6 1000 (6 sería la ID del jugador al que se le dará dinero) (1000 es la cantidad de dinero que se le dará a la id del jugador) Todo eso sucedería en un comando, sólo usa tu imaginación para crear todos los comandos y parámetros que desees. Imagina que un jugador escribe /dardinero 6 d (El jugador escribe un string y no un integer, eso no hará nada) Ahora cómo le decimos al jugador que los parámetros que está poniendo son inválidos? Pues atento a lo siguiente: PHP Code: CMD:dardinero(playerid, params[]) Con eso cuándo el jugador se equivoque de comandos retornará el mensaje que pusimos, para que se dé cuenta que está poniendo mal los parámetros indicados. [Nota] También existe la función "unformat" que viene con el sscanf2 por defecto, que actúa igual que la función sscanf. [Final]
Bueno, eso ha sido todo lo que puedo aportar hasta ahora, si me equivoqué en algo o expliqué algo mal háganmelo saber. - SKainer RE: [Guía] Como crear comandos con ZCMD y sscanf2 - DanielFz - 2020-08-10 Muchísimas gracias, venía días buscando una guía bien explicada de como usar estos, y que explicaran cada cosita, porque no me gusta utilizar algo en un script que no entiendo, porque si no lo entiendo no lo podré volver a usar, muchas gracias otra vez, creo que puedo dar +1, si no, pues no te doy ajaaj. RE: [Guía] Como crear comandos con ZCMD y sscanf2 - R4lpH - 2020-08-25 Has un tuto de como usar strcmp :) RE: [Guía] Como crear comandos con ZCMD y sscanf2 - SKainer - 2020-08-29 (2020-08-25, 01:22 PM)R4lpH Wrote: Has un tuto de como usar strcmp :) Tal vez haga un tutorial sobre las funciones de los strings RE: [Guía] Como crear comandos con ZCMD y sscanf2 - ImFlanny - 2021-05-29 Buena guía solo que te falto explicar lo de los parámetros muchos definen los parámetros cuando no se utilizan. Quote:CMD:mensaje(playerid, params[]) |