Tengo un error, que cualquier comando es el primero.
#1

El primero comando de
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
new string[256];
//blablabla
return 1;
}
es /Ayuda, pero si pongo /adhasjdakdhakjsld, cosa que no existe, me sale ese tambien, he probado borrarlo, y entonces sale lo mismo, solo que con /Comandos :S Es decir, el primero comando sale buggeado, he revisado todo el OnPlayerCommandText, pero todo esta bien, todo con callbacks, con ;, con todo.. pero no se que pasa.. aqui esta:
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    new string[256];
    new cmd[256];
    new sendername[MAX_PLAYER_NAME];
    //new playername[MAX_PLAYER_NAME];
    //new giveplayer[MAX_PLAYER_NAME];
    if(strcmp(cmd, "/Ayuda", true) == 0)
    {
        SendClientMessage(playerid, COLOR_TITULO, "____________________|| Ayuda ||____________________");
bueno, no pongo mas porque da igual. aver si encuentran el error, yo estare aсadiendo cosas..
Reply
#2

Antes de usar el comando necesitas usar strtok y agregar el index (Sуlo si usas comandos con parбmetros):

pawn Код:
new idx;

cmd = strtok(cmdtext, idx);
Ademбs el string y el cmd son muy grandes, el cmd no tiene que pasar de 20 celdas si usas strtok y el string no tiene que pasar de 128 celdas, es para evitar uso excesivo de la memoria.

pawn Код:
new cmd[20];
new string[128];
new idx;

cmd = strtok(cmdtext, idx);
Reply
#3

OnPlayerCommandText no tiene un return 1 sino return 0, el primero es despuйs de un comando.
Reply
#4

Gracias, solo era aсadir
pawn Код:
strtok(const string[], &index)
{
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
        index++;
    }

    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
        result[index - offset] = string[index];
        index++;
    }
    result[index - offset] = EOS;
    return result;
}
bueno lo saque del LARP, Infierno:
lo que dije se suma a lo suyo.
Cristian: aunque sea eso, no importa mucho xD
Reply
#5

No significa que no importe mucho, es que es asн. Te recomiendo que lo cambies por un mensaje:

return 0 por return SendClientMessage(playerid, 0xffffffff, "Este comando no existe.");
Reply
#6

Entonces el return lo que hace es el Server Unknown command? PD:gracias por decirmelo, eso andaba buscando tambien ya acabe para comprar armas por dinero y chaleco i vida, i el reinicio de armas(sin dinero xD) ahora pondre eso, bueno, maсana zZzZ
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)