[Ajuda] Sistema de Registro
#1

Pessoal, estou fazendo um sistema de registro mas n to conseguindo '-'

Fiz td certinho, as dialogs, etc... Mas na pasta das contas, a senha do player fica com uma letra estranha (nao eh letra, eh tipo de uma chavinha, sei la).

Eu me registro depois eu reseto o server e o login funciona (se eu acertar a senha que registrei, eu spawno), porem isso so acontece apenas na primeira vez, pois em seguida (depois do primeiro login), eu olho dnv a pasta e a senha esta assim "(null)", ai quando vou logar pela segunda vez(ou mais), nao importa a senha que coloco, o sistema aceita!

--'

Ajuda?

Minha OnDilalogResponse:
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new Nome[30], str[128];
    GetPlayerName(playerid, Nome, 30);
    format(str, 128, CONTAS, Nome);
    if(dialogid == DIALOG_REGISTRO)
    {
        if(response)
        {
            ArrayDados[playerid][pSenha] = strlen(inputtext);
            DOF2_CreateFile(str);
            DOF2_SetString(str, "Senha", ArrayDados[playerid][pSenha]);
            DOF2_SetInt(str, "Level", ArrayDados[playerid][pLevel]);
            DOF2_SetInt(str, "Sono", ArrayDados[playerid][pSono]);
            DOF2_SetInt(str, "Dinheiro", ArrayDados[playerid][pDinheiro]);
            DOF2_SetInt(str, "Procurados", ArrayDados[playerid][pProcurados]);
            DOF2_SetInt(str, "Multas", ArrayDados[playerid][pMultas]);
            DOF2_SetInt(str, "Prisao", ArrayDados[playerid][pPrisao]);
            DOF2_SetInt(str, "HabTerrestre", ArrayDados[playerid][pHabTerrestre]);
            DOF2_SetInt(str, "HabNautica", ArrayDados[playerid][pHabNautica]);
            DOF2_SetInt(str, "HabArmas", ArrayDados[playerid][pHabArmas]);
            DOF2_SaveFile();
            ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,".::Login::.","Digite sua senha para logar (apenas numeros):","Logar","Cancelar");
        }
        else
        {
            new msgkick[128];
            format(msgkick,128, "O Player %s foi Kickado(Nao se Registrou)", Nome);
            SendClientMessageToAll(COR_VERMELHO, msgkick);
            Kick(playerid);
        }
    }
    if(dialogid == DIALOG_LOGIN)
    {
        if(response)
        {
            DOF2_GetString(str, "Senha", ArrayDados[playerid][pSenha]);
            if(ArrayDados[playerid][pSenha]==strlen(inputtext))
            {
                DOF2_GetString(str, "Senha", ArrayDados[playerid][pSenha]);
                ArrayDados[playerid][pLevel] = DOF2_GetInt(str, "Level");
                ArrayDados[playerid][pSono] = DOF2_GetInt(str, "Sono");
                ArrayDados[playerid][pDinheiro] = DOF2_GetInt(str, "Dinheiro");
                ArrayDados[playerid][pProcurados] = DOF2_GetInt(str, "Procurados");
                ArrayDados[playerid][pMultas] = DOF2_GetInt(str, "Multas");
                ArrayDados[playerid][pPrisao] = DOF2_GetInt(str, "Prisao");
                ArrayDados[playerid][pHabTerrestre] = DOF2_GetInt(str, "HabTerrestre");
                ArrayDados[playerid][pHabNautica] = DOF2_GetInt(str, "HabNautica");
                ArrayDados[playerid][pHabArmas] = DOF2_GetInt(str, "HabArmas");
                SpawnPlayer(playerid);
            }
            else
            {
                Kick(playerid);
            }
        }
        else
        {
            new msglogin[128];
            format(msglogin, 128, "O Player %s foi Kickado(Nao Logou!)", Nome);
            SendClientMessageToAll(COR_VERMELHO, msglogin);
            Kick(playerid);
        }
    }
    return 1;
}
PS: O Sistema compila!
Reply
#2

Troque ArrayDados[playerid][pSenha] = strlen(inputtext);
por format(ArrayDados[playerid][pSenha], sizeof(ArrayDados[playerid][pSenha], inputtext);
Reply
#3

Registro
pawn Код:
ArrayDados[playerid][pSenha] = strlen(inputtext);
substitua por ...
pawn Код:
format(ArrayDados[playerid][pSenha], 128, inputtext);
Login
pawn Код:
if(ArrayDados[playerid][pSenha]==strlen(inputtext))
substitua por
pawn Код:
if(!strcmp(ArrayDados[playerid][pSenha], inputtext, false) && strlen(inputtext) > 0)
Reply
#4

Quote:
Originally Posted by Kuddy
Посмотреть сообщение
Troque ArrayDados[playerid][pSenha] = strlen(inputtext);
por format(ArrayDados[playerid][pSenha], sizeof(ArrayDados[playerid][pSenha], inputtext);
Deu isso:

pawn Код:
C:\Users\Usuario\Desktop\Server SAMP 0.3z\gamemodes\GM2.pwn(296) : error 001: expected token: "]", but found "-identifier-"
C:\Users\Usuario\Desktop\Server SAMP 0.3z\gamemodes\GM2.pwn(296) : warning 215: expression has no effect
C:\Users\Usuario\Desktop\Server SAMP 0.3z\gamemodes\GM2.pwn(296) : error 001: expected token: ";", but found "]"
C:\Users\Usuario\Desktop\Server SAMP 0.3z\gamemodes\GM2.pwn(296) : error 029: invalid expression, assumed zero
C:\Users\Usuario\Desktop\Server SAMP 0.3z\gamemodes\GM2.pwn(296) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.
@EDIT

Ahh, usei o
pawn Код:
format(ArrayDados[playerid][pSenha], 128, inputtext);
e compilou, vou testar!

@EDIT2

Funcionou mais ou menos, perem agora tenho q sair
Mais tarde crio outro topico para falar do bug

+REP pros 2
Reply
#5

PHP код:
if(ArrayDados[playerid][pSenha]==strlen(inputtext)) 
isso confirma que 111111 й igual a 222222, ou seja vocк esta comparando o tamanho da senha e nгo o "conteъdo"
Assim como:
PHP код:
 ArrayDados[playerid][pSenha] = strlen(inputtext); 
Vocк esta salvando o tamanho da senha..

O correto seria:
PHP код:
//para registrar
formatArrayDados[playerid][pSenha], 30inputtext );

//para logar
if( !strcmpArrayDados[playerid][pSenha], inputtext ) )
      
//logou
else
     
//errou 
Reply
#6

Quote:
Originally Posted by Nickvj7
Посмотреть сообщение
Registro
pawn Код:
ArrayDados[playerid][pSenha] = strlen(inputtext);
substitua por ...
pawn Код:
format(ArrayDados[playerid][pSenha], 128, inputtext);
Login
pawn Код:
if(ArrayDados[playerid][pSenha]==strlen(inputtext))
substitua por
pawn Код:
if(!strcmp(ArrayDados[playerid][pSenha], inputtext, false) && strlen(inputtext) > 0)
Agora to no cel, assim que chegar em casa testo e edito aqui ok?
Reply
#7

Quote:
Originally Posted by Foodinha
Посмотреть сообщение
Agora to no cel, assim que chegar em casa testo e edito aqui ok?
@EDIT

Quase deu certo, ele salvou a senha (porem somente as 3 primeiras letras) e o resto das informacoes ficaram com outros numeros (era para estar 0, pois nao alterei nenhum desses valores), tipo:

Код:
Senha = tes
Level = 101
Sono = 115
Dinheiro = 0
Procurados = 101
Multas = 0
Prisao = 0
HabTerrestre = 0
HabNautica = 0
HabArmas = 0
e novamente depois do segundo login, a Senha fica (null). :/
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)