duda sobre zcmd...
#1

Buenas a todos, tengo una duda... como hago para llamar al ocmando con zcmd, con OnPlayerCommandText se hacia de la siguiente manera: OnPlayerCommandText(playerid, "/comando"); , pero con zcmd como hago?.

desde ya muchas gracias.
Reply
#2

Tienes 2 formas, una mas rбpida que la otra. Mediante la callback "OnPlayerCommandText" nativa de SA-MP o bien directamente al comando. La segunda es la mas rбpida ya que no tiene que procesar el contenido que escribas en la llamada.

pawn Код:
#define LlamarComando_NATIVO(%0,%1,%2) CallLocalFunction("OnPlayerCommandText", "is", %0, "/"#%1" "%2)
Mientras que su forma de uso es algo como.

pawn Код:
LlamarComando_NATIVO(jugadorid, comando, parametros[]);
/*
jugadorid
    id del jugador que enviarб dicho comando
comando
    literalmente, el comando que se procesarб
parametros[]
    la informaciуn que esta despues del nombre del comando seguido de un espacio
*/
Ahora la forma mas rбpida, llamar directamente al comando sin tener que pasar por procesos "externos".

pawn Код:
#define LlamarComando_DIRECTO(%0,%1,%2) cmd_%1(%0, %2)
/*
%0
    jugadorid
%1
    comando
%2
    parбmetros
*/
Esa pequeсa macro causarб que el compilador muestre un error si se llama a un comando que no existe. Por una parte bien para evitar posibles futuros errores de gramбtica al querer usarla, pero por otro mal. Para solucionarlo usamos una macro que ocupe la funciуn nativa "CallLocalFunction" como la anterior, aunque claro, segurб siendo mas rбpida que la anterior.

pawn Код:
#define LlamarComando_DIRECTO(%0,%1,%2) CallLocalFunction("cmd_"#%1, "is", %0, %2)
/*
mismos parбmetros
*/
En todos los mйtodos, debes llamar el comando sin espacios si es posible, de lo contrario el IDE te advertirб y no podrбs compilar. Ademбs de que debe estar sin comillas mientras que los parбmetros si deben ir dentro de estas.
Reply
#3

Quote:
Originally Posted by DesingMyCry
Посмотреть сообщение
Tienes 2 formas, una mas rбpida que la otra. Mediante la callback "OnPlayerCommandText" nativa de SA-MP o bien directamente al comando. La segunda es la mas rбpida ya que no tiene que procesar el contenido que escribas en la llamada.

pawn Код:
#define LlamarComando_NATIVO(%0,%1,%2) CallLocalFunction("OnPlayerCommandText", "is", %0, "/"#%1" "%2)
Mientras que su forma de uso es algo como.

pawn Код:
LlamarComando_NATIVO(jugadorid, comando, parametros[]);
/*
jugadorid
    id del jugador que enviarб dicho comando
comando
    literalmente, el comando que se procesarб
parametros[]
    la informaciуn que esta despues del nombre del comando seguido de un espacio
*/
Ahora la forma mas rбpida, llamar directamente al comando sin tener que pasar por procesos "externos".

pawn Код:
#define LlamarComando_DIRECTO(%0,%1,%2) cmd_%1(%0, %2)
/*
%0
    jugadorid
%1
    comando
%2
    parбmetros
*/
Esa pequeсa macro causarб que el compilador muestre un error si se llama a un comando que no existe. Por una parte bien para evitar posibles futuros errores de gramбtica al querer usarla, pero por otro mal. Para solucionarlo usamos una macro que ocupe la funciуn nativa "CallLocalFunction" como la anterior, aunque claro, segurб siendo mas rбpida que la anterior.

pawn Код:
#define LlamarComando_DIRECTO(%0,%1,%2) CallLocalFunction("cmd_"#%1, "is", %0, %2)
/*
mismos parбmetros
*/
En todos los mйtodos, debes llamar el comando sin espacios si es posible, de lo contrario el IDE te advertirб y no podrбs compilar. Ademбs de que debe estar sin comillas mientras que los parбmetros si deben ir dentro de estas.
muchas gracias por la explicaicion DesingMyCry, me habia olvidado de CallLocalFunction .
saludos.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)