[Duda] strcmp strock dcmd zcmd
#1

Tengo una duda respecto a lo siguiente:
  • strcmp
  • strock
  • dcmd
  • zcmd
їQuй significa cada cosa? їPara quй sirven? їComo me doy cuenta cual es cada uno?

Espero con ansias alguna respuesta.
Gracias.

Saludos !
Reply
#2

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
Reply
#3

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).
Reply
#4

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.
Reply
#5

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
Reply
#6

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?
Reply
#7

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.
Reply
#8

Por eso dije, "si uno utiliza zcmd con sscanf", nunca dije "si uno utiliza zcmd".
Reply
#9

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
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)