SA-MP Forums Archive
[Ajuda] Senhas salvam como 0 - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Senhas salvam como 0 (/showthread.php?tid=568667)



Senhas salvam como 0 - TTheGustavo - 24.03.2015

Eu fiz esse sistema de registro e quando eu fui testar, as senhas salvavam como 0 e qualquer um poderia entrar com qualquer senha nas contas. Tentei algumas maneiras de resolver mas nгo deu certo e apelei para o Fуrum .


pawn Код:
#include <a_samp>
#include <DOF2>

//Sistema de Login

#define DIALOG_LOGIN    0001
#define DIALOG_REGISTRO 0002
#define DIALOG_CHECK    0003

enum
Info
{
    Senha,
    Dinheiro
};

new pInfo[MAX_PLAYERS][Info];
new Erro[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    new arquivo[40], Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nome, 32);
    format(arquivo, 40, "Contas/%s.ini", Nome);
    if(DOF2_FileExists(arquivo))
        {
            ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Sistema de Login", "Bem Vindo Novamente.\n Digite Sua Senha Para Efetuar o Login.", "Login", "Sair");
        }
    else
        {
            ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Sistema de Registro", "Bem Vindo ao Brasil New Start.\n Digite uma Senha Para Efetuar o Registro.\n A Senha Deve Conter Mais de 6 Caracteres.", "Registrar", "Sair");
        }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    new arquivo[40], Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nome, 32);
    format(arquivo, 40, "Contas/%s.ini", Nome);
    if(DOF2_FileExists(arquivo))
        {
            pInfo[playerid][Dinheiro] = GetPlayerMoney(playerid);
            DOF2_SetInt(arquivo, "Senha", pInfo[playerid][Senha]);
            DOF2_SetInt(arquivo, "Dinheiro", pInfo[playerid][Dinheiro]);
            DOF2_SaveFile();
        }
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new arquivo[40], Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nome, 32);
    format(arquivo, 40, "Contas/%s.ini", Nome);
    if(dialogid == DIALOG_REGISTRO)
        {
            if(!response)
                {
                    SendClientMessage(playerid, COR_VERMELHO, "Vocк Foi Desconectado Pelo Servidor por Nгo Efetuar o Registro.");
                    Kick(playerid);
                }
            if(strlen(inputtext) <= 6)
                {
                    ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Sistema de Registro", "Sua Senha Deve Conter Mais de 6 Caracteres.", "Registrar", "Sair");
                }
            else
                {
                    pInfo[playerid][Senha] = strval(inputtext);
                    DOF2_CreateFile(arquivo);
                    DOF2_SetInt(arquivo, "Senha", pInfo[playerid][Senha]);
                    DOF2_SetInt(arquivo, "Dinheiro", pInfo[playerid][Dinheiro]);
                    DOF2_SaveFile();
                    ShowPlayerDialog(playerid, DIALOG_CHECK, DIALOG_STYLE_PASSWORD, "Sistema de Registro", "Para Prosseguir, Confirme sua Senha.", "Confirmar", "Cancelar");
                }
        }
    if(dialogid == DIALOG_CHECK)
        {
            pInfo[playerid][Senha] = DOF2_GetInt(arquivo, "Senha");
            if(strval(inputtext) != pInfo[playerid][Senha])
                {
                    DOF2_RemoveFile(arquivo);
                    ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Sistema de Registro", "A Senhas Digitadas Nгo Correspondem.\n Digite Novamente.", "Registrar", "Sair");
                }
        }
    if(dialogid == DIALOG_LOGIN)
        {
            if(!response)
                {
                    SendClientMessage(playerid, COR_VERMELHO, "Vocк Foi Desconectado Pelo Servidor por Nгo Efetuar o Registro.");
                    Kick(playerid);
                }
            if(response)
                {
                    pInfo[playerid][Senha] = DOF2_GetInt(arquivo, "Senha");
                    if(strval(inputtext) == pInfo[playerid][Senha])
                        {
                            pInfo[playerid][Dinheiro] = DOF2_GetInt(arquivo, "Dinheiro");
                            GivePlayerMoney(playerid, pInfo[playerid][Dinheiro]);
                            SpawnPlayer(playerid);
                        }
                }
            if(response)
                {
                    pInfo[playerid][Senha] = DOF2_GetInt(arquivo, "Senha");
                    if(strval(inputtext) != pInfo[playerid][Senha])
                        {
                            ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Sistema de Login", "Senha Incorreta. Digite sua Senha Corretamente ou Serб Desconectado", "Login", "Sair");
                            Erro[playerid]++;
                            if(Erro[playerid] == 3)
                                {
                                    SendClientMessage(playerid, COR_VERMELHO, "Vocк Foi Desconectado Pelo Servidor por\n Errar Sua Senha 3 Vezes.");
                                    Kick(playerid);
                                }
                        }
                }
        }
    return 1;
}
Ele й muito simples e ainda estб incompleto, estou fazendo por partes e preciso resolver esse probleminha que apareceu.

Agradeзo desde jб.




______


Re: Senhas salvam como 0 - ipsLuan - 24.03.2015

Mude DOF2_SetInt para DOF2_SetString e veja se o resultado й o esperado.


Re: Senhas salvam como 0 - TTheGustavo - 24.03.2015

Ao invйs de 0 agora, fical (null)


Re: Senhas salvam como 0 - SkullFire - 24.03.2015

Veja a soluзгo postada pela Ana(humildadeforever)
https://sampforum.blast.hk/showthread.php?tid=540540


Re: Senhas salvam como 0 - Whoo - 24.03.2015

Vocк usa strlen e dps strval para guardar a senha ... pq ?


Re: Senhas salvam como 0 - Ever_SH - 24.03.2015

Use da seguinte maneira

DOF2_SetString(Local do Arquivo, "Senha", Variavel da Senha);


Re: Senhas salvam como 0 - n0minal - 24.03.2015

Quote:
Originally Posted by Whoo
Посмотреть сообщение
Vocк usa strlen e dps strval para guardar a senha ... pq ?
Pois й, e nenhuma das duas funзхes foram feitas pra isso.

STRLEN = Lenght of string = tamanho da string
STRVAL = String value = valor numйrico


Re: Senhas salvam como 0 - TTheGustavo - 24.03.2015

Mesma coisa, vou postar o que eu fiz ...

pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
    new arquivo[40], Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nome, 32);
    format(arquivo, 40, "Contas/%s.ini", Nome);
    if(DOF2_FileExists(arquivo))
        {
            pInfo[playerid][Dinheiro] = GetPlayerMoney(playerid);
            DOF2_SetString(arquivo, "Senha", pInfo[playerid][Senha]);
            DOF2_SetInt(arquivo, "Dinheiro", pInfo[playerid][Dinheiro]);
            DOF2_SaveFile();
        }
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new arquivo[40], Nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Nome, 32);
    format(arquivo, 40, "Contas/%s.ini", Nome);
    if(dialogid == DIALOG_REGISTRO)
        {
            if(!response)
                {
                    SendClientMessage(playerid, COR_VERMELHO, "Vocк Foi Desconectado Pelo Servidor por Nгo Efetuar o Registro.");
                    Kick(playerid);
                }
            if(strlen(inputtext) <= 6)
                {
                    ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Sistema de Registro", "Sua Senha Deve Conter Mais de 6 Caracteres.", "Registrar", "Sair");
                }
            else
                {
                    pInfo[playerid][Senha] = strval(inputtext);
                    DOF2_CreateFile(arquivo);
                    DOF2_SetString(arquivo, "Senha", pInfo[playerid][Senha]);
                    DOF2_SetInt(arquivo, "Dinheiro", pInfo[playerid][Dinheiro]);
                    DOF2_SaveFile();
                    ShowPlayerDialog(playerid, DIALOG_CHECK, DIALOG_STYLE_PASSWORD, "Sistema de Registro", "Para Prosseguir, Confirme sua Senha.", "Confirmar", "Cancelar");
                }
        }



Re: Senhas salvam como 0 - Ever_SH - 24.03.2015

Faзa assim:

format(VariaveldaSenha, 40, "%s", inputtext); //para pegar o que foi digitado

Depois para salvar

DOF2_SetString(Local do arquivo, "Senha", Variavel da Senha);


Re: Senhas salvam como 0 - n0minal - 24.03.2015

Criou o arquivo com DOF2_CreateFile?