[Ajuda] Comando.
#1

Quando utilizo este comando ele sу aceita acima de 6 numeros/letras mas nгo hб nada empatando.

Oque pode ser?
pawn Код:
CMD:login(playerid,cmdtext[])
    {
        if(IsPlayerConnected(playerid))
        {
            new tmppass[64];
            if(gPlayerLogged[playerid] == 1)
            {
                MSG(playerid, COLOR_WHITE, "SERVER: Vocк jб estб logado.");
                return 1;
            }
            tmp = strtok(cmdtext, idx_toxi);
            if(!strlen(tmp))
            {
                MSG(playerid, COLOR_GRAD1, "USE: /login [senha]");
                return 1;
            }
            strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
            Encrypt(tmppass);
            OnPlayerLogin(playerid,tmppass);
        }
        return 1;
    }
Comeзou a aparecer depois que converti de strcmp para zcmd.
Reply
#2

Use sscanf invйs de strtok
Reply
#3

Quote:
Originally Posted by Joao Pedro
Посмотреть сообщение
Use sscanf invйs de strtok
Sу hб esta maneira?

Nгo tem como modificar o strtok para funcionar perfeitamente nгo?

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;
}
Reply
#4

Na verdade nгo sei se o erro й por este motivo, mas por questгo de organizaзгo e optimizaзгo do cуdigo e atй para seu crescimento em Pawn, use sscanf. Pode ser que resolva seu erro tambйm
Reply
#5

Quote:
Originally Posted by Joao Pedro
Посмотреть сообщение
Na verdade nгo sei se o erro й por este motivo, mas por questгo de organizaзгo e optimizaзгo do cуdigo e atй para seu crescimento em Pawn, use sscanf. Pode ser que resolva seu erro tambйm
Jб tem comandos em sscanf, porйm, estou convertendo o the godfather.. Ai os comandos dele sгo todos em strtok. Imagina a trabalhera kk.

Me ajuda a identificar o erro? Nгo й sу neste comando nгo.. Sгo em todos que usam parametros!

@edit

Nгo a como fazer uma ediзгo na funзгo strtok para ela resultar no sscanf?

Simplificando:
A strtok seria como um atalho para a utilizaзгo do sscanf.
Reply
#6

Quote:
Originally Posted by HumildadeAgain
Посмотреть сообщение
Nгo a como fazer uma ediзгo na funзгo strtok para ela resultar no sscanf?

Simplificando:
A strtok seria como um atalho para a utilizaзгo do sscanf.
Nгo =x
Reply
#7

Quote:
Originally Posted by Joao Pedro
Посмотреть сообщение
Nгo =x
Vish, vou tentar fazer uma "macumba" para ver se da certo.

Qualquer coisa eu posto aqui se deu certo ou nгo!

@edit

Nгo sei por que este preconceito todo que a galera tem com o GF!
Baixei a versгo original dele, terminei de traduzir ontem e estou convertendo/atualizando as funзхes (sу a strtok que estou com preguiзa shuahusa) e parece ser uma boa base tanto para um gm como para estudos (principalmente para mim! Pois nгo tenho muito tempo com SA-MP, sу usava PHP - HTML - CSS).

Joгo Pedro, vocк й muito atencioso! Espero poder contar com vocк para caso de duvidas/sugestхes.
Reply
#8

Tente isso
pawn Код:
CMD:login(playerid, params[]) {
    if(!IsPlayerConnected(playerid)) return 1;
    if(gPlayerLogged[playerid] == 1) return MSG(playerid, COLOR_WHITE, "SERVER: Vocк jб estб logado.");
    if(!strval(params)) return 1;
    if(strval(params) < 6) return 1;
    Encrypt(params);
    OnPlayerLogin(playerid, params);
    return 1;
}
Ele detecta os devidos 6 caracteres, e nгo utiliza strtok
Reply
#9

Quote:
Originally Posted by Dwayne-Pheonix
Посмотреть сообщение
Tente isso
pawn Код:
CMD:login(playerid, params[]) {
    if(!IsPlayerConnected(playerid)) return 1;
    if(gPlayerLogged[playerid] == 1) return MSG(playerid, COLOR_WHITE, "SERVER: Vocк jб estб logado.");
    if(!strval(params)) return 1;
    if(strval(params) < 6) return 1;
    Encrypt(params);
    OnPlayerLogin(playerid, params);
    return 1;
}
Ele detecta os devidos 6 caracteres, e nгo utiliza strtok
o problema nгo й esse amigo..

o problema й que o comando sу estб executando quando a senha possuн acima de 6 caracteres sendo que nгo hб nenhuma funзгo empatando o mesmo.
Reply
#10

Retire
pawn Код:
if(strval(params) < 6) return 1;
e verifique OnPlayerLogin
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)