[Duda] strcmp strock dcmd zcmd -
pax01 - 30.01.2013
Tengo una duda respecto a lo siguiente:
їQuй significa cada cosa? їPara quй sirven? їComo me doy cuenta cual es cada uno?
Espero con ansias alguna respuesta.
Gracias.
Saludos !
Respuesta: [Duda] strcmp strock dcmd zcmd -
CaptainMactavish - 30.01.2013
strcmp es una funciуn para comparar textos, se usa mucho en OnPlayerCommandText para comparar el comando ingresado. Por ejemplo:
pawn Код:
if(strcmp(cmdtext, "/kill", true) == 0)
{
SetPlayerHealth(playerid, 0);
return 1;
}
Traducido serнa: si el comando ingresado es /kill se le pone la vida en 0, en otras palabras lo matas.
strtok es una funciуn para separar una variables string en partes de acuerdo a la posiciуn del caracter " " (espacio). Se utiliza mayormente en comandos con parбmetros.
pawn Код:
if(strcmp(cmd, "/kick", true) == 0)
{
new tmp[128];
tmp = strtok(cmdtext, idx);
if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /kick [playerid]");
Kick(strval(tmp));
return 1;
}
En este caso, strtok fue utilizado para encontrar la ID luego del comando, en este caso /kick.
dcmd es un procesador viejo creado por DracoBlue, no se utiliza demasiado ya que en tйrminos de velocidad de ejecuciуn de cуdigo es bastante lento, pero es bastante prбctico y portable, no necesita include solo esto arriba de todo:
pawn Код:
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
zcmd es el procesador de comandos que estб mбs estandarizado, a diferencia de dcmd necesita un include para funcionar, pero en tйrminos de velocidad es muy rбpido y fбcil de utilizar.
Post original de zcmd:
https://sampforum.blast.hk/showthread.php?tid=91354
Re: [Duda] strcmp strock dcmd zcmd -
ThePhenix - 30.01.2013
Strcmp se usa para comparar dos strings.
strock era usado, probablemente se lo usa aъn para revisar si un jugador ha entrado correctamente los parбmetros de algъn comando o no...
DCMD, ZCMD, YCMD: Son procesadores de comandos.(Para mi el mejor es ZCMD).
Re: Respuesta: [Duda] strcmp strock dcmd zcmd -
pax01 - 30.01.2013
Quote:
Originally Posted by CaptainMactavish
strcmp es una funciуn para comparar textos, se usa mucho en OnPlayerCommandText para comparar el comando ingresado. Por ejemplo:
pawn Код:
if(strcmp(cmdtext, "/kill", true) == 0) { SetPlayerHealth(playerid, 0); return 1; }
Traducido serнa: si el comando ingresado es /kill se le pone la vida en 0, en otras palabras lo matas.
strtok es una funciуn para separar una variables string en partes de acuerdo a la posiciуn del caracter " " (espacio). Se utiliza mayormente en comandos con parбmetros.
pawn Код:
if(strcmp(cmd, "/kick", true) == 0) { new tmp[128]; tmp = strtok(cmdtext, idx); if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /kick [playerid]");
Kick(strval(tmp)); return 1; }
En este caso, strtok fue utilizado para encontrar la ID luego del comando, en este caso /kick.
dcmd es un procesador viejo creado por DracoBlue, no se utiliza demasiado ya que en tйrminos de velocidad de ejecuciуn de cуdigo es bastante lento, pero es bastante prбctico y portable, no necesita include solo esto arriba de todo:
pawn Код:
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
zcmd es el procesador de comandos que estб mбs estandarizado, a diferencia de dcmd necesita un include para funcionar, pero en tйrminos de velocidad es muy rбpido y fбcil de utilizar.
Post original de zcmd: https://sampforum.blast.hk/showthread.php?tid=91354
|
Todo aclarado, gracias por la brevedad de la respuesta.
Un saludo.
Re: [Duda] strcmp strock dcmd zcmd -
adri1 - 30.01.2013
strcmp = Sirve para comparar dos textos ej:
Код:
if(strcmp(cmdtext, "/admins", true) == 0)
Quiere decir: "Si el texto ingresado (cmdtext) es igual a "/admins", se ejecutarб tales cosas
strtok = Es una funciуn para obtener los paramйtros de un comando strcmp
dcmd = Es tan solo un define de strcmp, es lento si lo comparamos con zcmd.
zcmd = Para mi actualmenete es el mejor procesador de comandos.
Mi recomendaciуn: zcmd + sscanf
Respuesta: [Duda] strcmp strock dcmd zcmd -
Glimma - 30.01.2013
Quote:
Originally Posted by CaptainMactavish
strcmp es una funciуn para comparar textos, se usa mucho en OnPlayerCommandText para comparar el comando ingresado. Por ejemplo:
pawn Код:
if(strcmp(cmdtext, "/kill", true) == 0) { SetPlayerHealth(playerid, 0); return 1; }
Traducido serнa: si el comando ingresado es /kill se le pone la vida en 0, en otras palabras lo matas.
strtok es una funciуn para separar una variables string en partes de acuerdo a la posiciуn del caracter " " (espacio). Se utiliza mayormente en comandos con parбmetros.
pawn Код:
if(strcmp(cmd, "/kick", true) == 0) { new tmp[128]; tmp = strtok(cmdtext, idx); if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /kick [playerid]");
Kick(strval(tmp)); return 1; }
En este caso, strtok fue utilizado para encontrar la ID luego del comando, en este caso /kick.
dcmd es un procesador viejo creado por DracoBlue, no se utiliza demasiado ya que en tйrminos de velocidad de ejecuciуn de cуdigo es bastante lento, pero es bastante prбctico y portable, no necesita include solo esto arriba de todo:
pawn Код:
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
zcmd es el procesador de comandos que estб mбs estandarizado, a diferencia de dcmd necesita un include para funcionar, pero en tйrminos de velocidad es muy rбpido y fбcil de utilizar.
Post original de zcmd: https://sampforum.blast.hk/showthread.php?tid=91354
|
Muy buena respuesta MacTavish.
Ah, pax01, como podrбs ver en el ejemplo que puso MacTavish, en una parte utiliza strlen, si uno utiliza zcmd con sscanf, el sscanf reemplazarнa el strlen y el unformat, їse entiende?
Respuesta: [Duda] strcmp strock dcmd zcmd -
Fluid016 - 30.01.2013
Quote:
Originally Posted by DeadSkyTkb
Muy buena respuesta MacTavish.
Ah, pax01, como podrбs ver en el ejemplo que puso MacTavish, en una parte utiliza strlen, si uno utiliza zcmd con sscanf, el sscanf reemplazarнa el strlen y el unformat, їse entiende?
|
No lo confundas йl si quiere puede utilizar zcmd y en ves sscanf strlen.
Respuesta: [Duda] strcmp strock dcmd zcmd -
Glimma - 30.01.2013
Por eso dije, "si uno utiliza zcmd con sscanf", nunca dije "si uno utiliza zcmd".
Respuesta: [Duda] strcmp strock dcmd zcmd -
Fluid016 - 30.01.2013
Quote:
Originally Posted by DeadSkyTkb
Por eso dije, "si uno utiliza zcmd con sscanf", nunca dije "si uno utiliza zcmd".
|
A lo que me refiero, que puede usar strlen por el principio hasta que sepa un poco de pawn.
Y luego empiece a usar funciones externas.
PD: estoy en msn