[Ajuda] Ajuda com Sistema de Login em DOF2
#1

Eu estava criando esse sistema de login em DOF2 e deu tudo certo, exceto pela senha que esta salvando como "0".
PHP код:
#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2
enum Info
{
    
Senha,
    
Matou,
    
Morreu,
}
public 
OnPlayerConnect(playerid)
{
    new 
Arq[32], Nome[MAX_PLAYER_NAME];
    
GetPlayerName(playerid, Nome, 32);
    
format(Arq, 40, "Contas/%s.ini", Nome);
    if(
DOF2_FileExists(Arq))
    {
        new 
string[256];
        
format(string, sizeof(string), "Olб %s,\nDigite sua senha para fazer o login.", Nome);
        
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Sistema de Login", string, "Login", "Sair");
    }
    else
    {
        
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Sistema de Registro", "Bem vindo ao Zombie Outbreak,\nDigite uma senha para registrar.\nSua senha deve ter no minino 6 caracteres", "Registrar", "Sair");
    }
    return 
1;
}
public 
OnPlayerDisconnect(playerid, reason)
{
    new 
Arq[40], Nome[MAX_PLAYER_NAME];
    
GetPlayerName(playerid, Nome, 32);
    
format(Arq, 40, "Contas/%s.ini", Nome);
    if(
DOF2_FileExists(Arq))
    {
        
DOF2_SetInt(Arq, "Senha", Player[playerid][Senha]);
        
DOF2_SetInt(Arq, "Matou", Player[playerid][Matou]);
        
DOF2_SetInt(Arq, "Morreu", Player[playerid][Morreu]);
        
DOF2_SaveFile();
    }
    return 
1;
}
public 
OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new 
Arq[40], Nome[MAX_PLAYER_NAME];
    
GetPlayerName(playerid, Nome, 32);
    
format(Arq, 40, "Contas/%s.ini", Nome);
    if(
dialogid == DIALOG_REGISTER)
    {
        if(!
response)
        {
            
Kick(playerid);
            return 
1;
        }
        else
        {
            
Player[playerid][Senha] = strval(inputtext);
            
DOF2_CreateFile(Arq);
            
DOF2_SetInt(Arq, "Senha", Player[playerid][Senha]);
            
DOF2_SetInt(Arq, "Matou", Player[playerid][Matou]);
            
DOF2_SetInt(Arq, "Morreu", Player[playerid][Morreu]);
            
DOF2_SaveFile();
            
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Sistema de Login", "Registro feito com sucesso!\nAgora faзa login na sua conta.", "Login", "Sair");
        }
    }
    if(
dialogid == DIALOG_LOGIN)
    {
        if(!
response)
        {
            
Kick(playerid);
            return 
1;
        }
        else
        {
            
Player[playerid][Senha] = DOF2_GetInt(Arq, "Senha");
            if(
strval(inputtext) == Player[playerid][Senha])
            {
                
Player[playerid][Matou] = DOF2_GetInt(Arq, "Matou");
                
Player[playerid][Morreu] = DOF2_GetInt(Arq, "Morreu");
                
SpawnPlayer(playerid);
            }
            else
            {
                
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Sistema de Login - Erro", "Senha Incorreta.\nDigite corretamente sua senha", "Login", "Sair");
                
Erro[playerid]++;
                new 
string[256];
                
format(string, sizeof(string), "Senha Incorreta - Limite %s/3", Erro[playerid]);
                
SendClientMessage(playerid, COLOR_RED, string);
                if(
Erro[playerid] == 3)
                {
                    
Kick(playerid);
                    return 
1;
                }
            }
        }
    }
    return 
1;
} 
E as informaзхes estгo salvando assim
PHP код:
Senha = 0
Matou 
= 0
Morreu 
= 0 
Agradeзo desde jб a ajuda ^^

__________________________________________________ _______________________________________________
Reply
#2

Senha й uma string, entгo deve ser criada desta forma:
PHP код:
    Senha[/*Numero de celulas aqui*/] 
Para salva-la deve-se usar
PHP код:
DOF2_SetString(Arq, "Senha", Player[playerid][Senha]); 
E finalmente, para carrega-la
PHP код:
DOF2_GetStringEx(Arq, "Senha", Player[playerid][Senha], /*Numero de celulas aqui*/); 
Reply
#3

Lembre-se que se vocк utilizar o famoso Hash do plugin Whirlpool o nє de cйlulas, independentemente da senha, serб 129.
Se for com o Hash nativo do samp 0.3.7, o nє de cйlulas й 65.
Reply
#4

Quote:
Originally Posted by Day_
Посмотреть сообщение
Senha й uma string, entгo deve ser criada desta forma:
PHP код:
    Senha[/*Numero de celulas aqui*/] 
Para salva-la deve-se usar
PHP код:
DOF2_SetString(Arq, "Senha", Player[playerid][Senha]); 
E finalmente, para carrega-la
PHP код:
DOF2_GetStringEx(Arq, "Senha", Player[playerid][Senha], /*Numero de celulas aqui*/); 
Pelo que eu entendi, era pra fazer isso
PHP код:
{
    new 
Arq[40], Name[MAX_PLAYER_NAME];
    
GetPlayerName(playerid, Name, 32);
    
format(Arq, 40, "Contas/%s.ini", Name);
    if(
dialogid == DIALOG_REGISTER)
    {
        if(!
response)
        {
            
Kick(playerid);
            return 
1;
        }
        else
        {
            
Player[playerid][Senha] = strval(inputtext);
            
DOF2_CreateFile(Arq);
             
DOF2_SetString(Arq, "Senha", Player[playerid][Senha]);
            
DOF2_SetInt(Arq, "Matou", Player[playerid][Matou]);
            
DOF2_SetInt(Arq, "Morreu", Player[playerid][Morreu]);
            
DOF2_SaveFile();
            
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Sistema de Login", "Registro feito com sucesso!\nAgora faзa login na sua conta.", "Login", "Sair");
        }
    }
    if(
dialogid == DIALOG_LOGIN)
    {
        if(!
response)
        {
            
Kick(playerid);
            return 
1;
        }
        else
        {
             
Player[playerid][Senha] = DOF2_GetStringEx(Arq, "Senha", Player[playerid][Senha], 32);
            if(
strval(inputtext) == Player[playerid][Senha])
            {
                
Player[playerid][Matou] = DOF2_GetInt(Arq, "Matou");
                
Player[playerid][Morreu] = DOF2_GetInt(Arq, "Morreu");
                
SpawnPlayer(playerid);
            }
            else
            {
                
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Sistema de Login - Erro", "Senha Incorreta.\nDigite corretamente sua senha", "Login", "Sair");
                
Erro[playerid]++;
                new 
string[256];
                
format(string, sizeof(string), "Senha Incorreta - Limite %s/3", Erro[playerid]);
                
SendClientMessage(playerid, COLOR_RED, string);
                if(
Erro[playerid] == 3)
                {
                    
Kick(playerid);
                    return 
1;
                }
            }
        }
    }
    return 
1;
} 
Mas o arquivo estб salvando como
PHP код:
Senha = null)
Matou = 0
Morreu 
= 0 
Reply
#5

PHP код:
{ 
    new 
Arq[40], Name[MAX_PLAYER_NAME]; 
    
GetPlayerName(playerid, Name, 32); 
    
format(Arq, 40, "Contas/%s.ini", Name); 
    if(
dialogid == DIALOG_REGISTER) 
    { 
        if(!
response) 
        { 
            
Kick(playerid); 
            return 
1; 
        } 
        else 
        { 
            
DOF2_CreateFile(Arq); 
             
DOF2_SetString(Arq, "Senha", inputtext); 
            
DOF2_SetInt(Arq, "Matou", Player[playerid][Matou]); 
            
DOF2_SetInt(Arq, "Morreu", Player[playerid][Morreu]); 
            
DOF2_SaveFile(); 
            
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Sistema de Login", "Registro feito com sucesso!\nAgora faзa login na sua conta.", "Login", "Sair"); 
        } 
    } 
    if(
dialogid == DIALOG_LOGIN) 
    { 
        if(!
response) 
        { 
            
Kick(playerid); 
            return 
1; 
        } 
        else 
        { 
             
Player[playerid][Senha] = DOF2_GetStringEx(Arq, "Senha", Player[playerid][Senha], 32); 
            if(
strval(inputtext) == Player[playerid][Senha]) 
            { 
                
Player[playerid][Matou] = DOF2_GetInt(Arq, "Matou"); 
                
Player[playerid][Morreu] = DOF2_GetInt(Arq, "Morreu"); 
                
SpawnPlayer(playerid); 
            } 
            else 
            { 
                
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Sistema de Login - Erro", "Senha Incorreta.\nDigite corretamente sua senha", "Login", "Sair"); 
                
Erro[playerid]++; 
                new 
string[256]; 
                
format(string, sizeof(string), "Senha Incorreta - Limite %s/3", Erro[playerid]); 
                
SendClientMessage(playerid, COLOR_RED, string); 
                if(
Erro[playerid] == 3) 
                { 
                    
Kick(playerid); 
                    return 
1; 
                } 
            } 
        } 
    } 
    return 
1; 
} 
Reply
#6

Quote:
Originally Posted by Day_
Посмотреть сообщение
Senha й uma string, entгo deve ser criada desta forma:
PHP код:
    Senha[/*Numero de celulas aqui*/] 
Para salva-la deve-se usar
PHP код:
DOF2_SetString(Arq, "Senha", Player[playerid][Senha]); 
E finalmente, para carrega-la
PHP код:
DOF2_GetStringEx(Arq, "Senha", Player[playerid][Senha], /*Numero de celulas aqui*/); 
Resolvido
PHP код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new 
Arq[40], Name[MAX_PLAYER_NAME];
    
GetPlayerName(playerid, Name, 32);
    
format(Arq, 40, "Contas/%s.ini", Name);
    if(
dialogid == DIALOG_REGISTER)
    {
        if(!
response)
        {
            
Kick(playerid);
            return 
1;
        }
        else
        {
            
Player[playerid][Senha] = strval(inputtext);
            
DOF2_CreateFile(Arq);
             
DOF2_SetString(Arq, "Senha", Player[playerid][Senha]);
            
DOF2_SetInt(Arq, "Matou", Player[playerid][Matou]);
            
DOF2_SetInt(Arq, "Morreu", Player[playerid][Morreu]);
            
DOF2_SaveFile();
            
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Sistema de Login", "Registro feito com sucesso!\nAgora faзa login na sua conta.", "Login", "Sair");
        }
    }
    if(
dialogid == DIALOG_LOGIN)
    {
        if(!
response)
        {
            
Kick(playerid);
            return 
1;
        }
        else
        {
             
DOF2_GetStringEx(Arq, "Senha", Player[playerid][Senha], 65);
            if(
strval(inputtext) == Player[playerid][Senha])
            {
                
Player[playerid][Matou] = DOF2_GetInt(Arq, "Matou");
                
Player[playerid][Morreu] = DOF2_GetInt(Arq, "Morreu");
                
SpawnPlayer(playerid);
            }
            else
            {
                
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Sistema de Login - Erro", "Senha Incorreta.\nDigite corretamente sua senha", "Login", "Sair");
                
Erro[playerid]++;
                new 
string[256];
                
format(string, sizeof(string), "Senha Incorreta - Limite %s/3", Erro);
                
SendClientMessage(playerid, COLOR_RED, string);
                if(
Erro[playerid] == 3)
                {
                    
Kick(playerid);
                    return 
1;
                }
            }
        }
    }
    return 
1;
} 
Obrigado pela ajuda ^^

__________________________________________________ _______________________________________________
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)