[Ajuda] Sistema De Registro E Login!
#1

Olб A Todos! !

Queria Pedir A Ajuda De Vocкs Sobre Um Erro Que Ta Dando Para Se Registrar E Logar, Registro Com Letras E Nъmeros!
Aн Que Ta O Problema, Quando Eu Registro Ta Certo, Mas Vai No Login E Diz Que A Senha Ta Errada!


Registro:

PHP код:
          if(dialogid == Dialog_Registro)
          {
               if(!
response) return Kick(playerid);
            
                if(
response)
                {
            
                       
GetPlayerName(playerid,nome,24);
                    
format(arquivo,50,Contas,nome);
            
                       
DOF2_CreateFile(arquivo);
                    
DOF2_SetString(arquivo,"Senha",inputtext);
            
                    
Player[playerid][Senha] = strlen(inputtext);
                       
Player[playerid][Score] = DOF2_SetInt(arquivo,"Score",0);
                    
Player[playerid][Dinheiro] = DOF2_SetInt(arquivo,"Dinheiro",50000);
                    
Player[playerid][Admin] = DOF2_SetInt(arquivo"Admin",0);
                    
Player[playerid][VIP] = DOF2_SetInt(arquivo"VIP",0);
                    
Player[playerid][Registrado] = DOF2_SetInt(arquivo"Registrado",1);
                    
                    
DOF2_SetInt(arquivo"Idioma"Player[playerid][Idioma]);
                       new 
len strlen(inputtext);
                       if(
len || len 20) return ShowPlayerDialog(playeridDialog_Registro ,DIALOG_STYLE_INPUT"•»XxRevolutioNxX Registro«•""{D61111}Sua Senha Deve Conter No Mнnimo 5 Caracteres!\nE No Mбximo 20!\nTente Novamente!","Registrar","");
                    return 
ShowPlayerDialog(playeridDialog_Login ,DIALOG_STYLE_INPUT"•»XxRevolutioNxX Login«•""Digite Sua Senha Para Entrar!.","Entrar","");
                    }
                
        } 
Login:

PHP код:
        if(dialogid == Dialog_Login)
        {
            if(!
response) return Kick(playerid);
            if(
response)
            {
              
            
GetPlayerName(playerid,nome,24);
            
            
format(arquivo,50,Contas,nome);
            if(
strcmp(Player[playerid][Senha], DOF2_GetString(arquivo,"Senha"), true) == 0)
            {
                if(!
strlen(inputtext)){
                    
SendClientMessage(playeridVermelho"[BMR]» Digite Sua Senha!.");
                    return 
ShowPlayerDialog(playeridDialog_LoginDIALOG_STYLE_INPUT"•»XxRevolutioNxX Login«•","Senha Incorreta, Insira A Senha Correta!\nTente Novamente!","Entrar","");
                }
                
                   
GetPlayerName(playerid,nome,24);
                  
format(arquivo,50,Contas,nome);
                
SetPlayerScore(playerid,DOF2_GetInt(arquivo"Score"));
                
GivePlayerMoney(playerid,DOF2_GetInt(arquivo"Dinheiro"));
                
Player[playerid][Matou] = DOF2_GetInt(arquivo"Matou");
                
Player[playerid][Morreu] = DOF2_GetInt(arquivo"Morreu");
                
Player[playerid][Admin] = DOF2_GetInt(arquivo"Admin");
                
Player[playerid][VIP] = DOF2_GetInt(arquivo"VIP");
                
Player[playerid][Idioma] = DOF2_GetInt(arquivo"Idioma");
                
Player[playerid][Registrado] = DOF2_GetInt(arquivo"Registrado");
                
//
                
                
BloqueioSpawn[playerid] = 0;
                
                
SendClientMessage(playeridVerde"{19B519}[BMR]» {FFFFFF}Logado Com Sucesso!.");
                }else{
                
ShowPlayerDialog(playeridDialog_LoginDIALOG_STYLE_INPUT"•»XxRevolutioNxX Login«•","Senha Incorreta, Insira A Senha Correta!\nTente Novamente!","Entrar","");
                
SendClientMessage(playeridVermelho,"{19B519}[BMR]» {D61111}Vocк Digitou Uma Senha Incorreta!.");
                
Erro[playerid]++;
                if(
Erro[playerid] == 5){
                
                    
GetPlayerName(playerid,nome,24);
                      
format(arquivo,50,Contas,nome);
                    
SetPlayerScore(playerid,DOF2_GetInt(arquivo"Score"));
                    
GivePlayerMoney(playerid,DOF2_GetInt(arquivo"Dinheiro"));
                    
Player[playerid][Matou] = DOF2_GetInt(arquivo"Matou");
                    
Player[playerid][Morreu] = DOF2_GetInt(arquivo"Morreu");
                    
Player[playerid][Admin] = DOF2_GetInt(arquivo"Admin");
                    
Player[playerid][VIP] = DOF2_GetInt(arquivo"VIP");
                    
Player[playerid][Idioma] = DOF2_GetInt(arquivo"Idioma");
                    
Player[playerid][Registrado] = DOF2_GetInt(arquivo"Registrado");
                    new 
string[150], Jogador[MAX_PLAYER_NAME];
                    
GetPlayerName(playeridJogadorsizeof(Jogador));
                    
format(stringsizeof(string), "{19B519}[BMR]» {1AAAC7}O Jogador {FFFFFF}%s {D61111}Foi Kickado Por Errar 5 Vezes A Senha!."Jogador);
                    
SendClientMessageToAll(Verdestring);
                    
Kick(playerid);
                    return 
1;
                }
            }
            }
        } 
Sou Meio Novato Entгo Desculpe O Cуdigo KKKk !
Se Alguйm Saber Oque Й O Erro, Ficarei Agradecido!
Obrigado A Todos!
Reply
#2

Testa e ve se da certo:

LOGIN
PHP код:
if(dialogid == Dialog_Login
        { 
            if(!
response) return Kick(playerid); 
            if(
response
            { 
               
            
GetPlayerName(playerid,nome,24); 
             
            
format(arquivo,50,Contas,nome); 
            if(!
strcmp(inputtextDOF2_GetString(arquivo,"Senha"), false)) 
            { 
                
GetPlayerName(playerid,nome,24); 
                  
format(arquivo,50,Contas,nome); 
                
SetPlayerScore(playerid,DOF2_GetInt(arquivo"Score")); 
                
GivePlayerMoney(playerid,DOF2_GetInt(arquivo"Dinheiro")); 
                
Player[playerid][Matou] = DOF2_GetInt(arquivo"Matou"); 
                
Player[playerid][Morreu] = DOF2_GetInt(arquivo"Morreu"); 
                
Player[playerid][Admin] = DOF2_GetInt(arquivo"Admin"); 
                
Player[playerid][VIP] = DOF2_GetInt(arquivo"VIP"); 
                
Player[playerid][Idioma] = DOF2_GetInt(arquivo"Idioma"); 
                
Player[playerid][Registrado] = DOF2_GetInt(arquivo"Registrado"); 
                
// 
                 
                
BloqueioSpawn[playerid] = 0
                 
                
SendClientMessage(playeridVerde"{19B519}[BMR]» {FFFFFF}Logado Com Sucesso!.");
            } 
            else
            { 
                
ShowPlayerDialog(playeridDialog_LoginDIALOG_STYLE_INPUT"•»XxRevolutioNxX Login«•","Senha Incorreta, Insira A Senha Correta!\nTente Novamente!","Entrar",""); 
                
SendClientMessage(playeridVermelho,"{19B519}[BMR]» {D61111}Vocк Digitou Uma Senha Incorreta!."); 
                
Erro[playerid]++; 
                if(
Erro[playerid] == 5){ 
                 
                    
GetPlayerName(playerid,nome,24); 
                      
format(arquivo,50,Contas,nome); 
                    
SetPlayerScore(playerid,DOF2_GetInt(arquivo"Score")); 
                    
GivePlayerMoney(playerid,DOF2_GetInt(arquivo"Dinheiro")); 
                    
Player[playerid][Matou] = DOF2_GetInt(arquivo"Matou"); 
                    
Player[playerid][Morreu] = DOF2_GetInt(arquivo"Morreu"); 
                    
Player[playerid][Admin] = DOF2_GetInt(arquivo"Admin"); 
                    
Player[playerid][VIP] = DOF2_GetInt(arquivo"VIP"); 
                    
Player[playerid][Idioma] = DOF2_GetInt(arquivo"Idioma"); 
                    
Player[playerid][Registrado] = DOF2_GetInt(arquivo"Registrado"); 
                    new 
string[150], Jogador[MAX_PLAYER_NAME]; 
                    
GetPlayerName(playeridJogadorsizeof(Jogador)); 
                    
format(stringsizeof(string), "{19B519}[BMR]» {1AAAC7}O Jogador {FFFFFF}%s {D61111}Foi Kickado Por Errar 5 Vezes A Senha!."Jogador); 
                    
SendClientMessageToAll(Verdestring); 
                    
Kick(playerid); 
                    return 
1
                } 
            } 
            } 
        } 
REGISTRO
PHP код:
if(dialogid == Dialog_Registro
          { 
               if(!
response) return Kick(playerid); 
             
                if(
response
                { 
             
                    
GetPlayerName(playerid,nome,24); 
                    
format(arquivo,50,Contas,nome); 
             
                    
DOF2_CreateFile(arquivo); 
                    
DOF2_SetString(arquivo,"Senha",inputtext); 
             
                    
Player[playerid][Senha] = strlen(inputtext); 
                    
Player[playerid][Score] = DOF2_SetInt(arquivo,"Score",0); 
                    
Player[playerid][Dinheiro] = DOF2_SetInt(arquivo,"Dinheiro",50000); 
                    
Player[playerid][Admin] = DOF2_SetInt(arquivo"Admin",0); 
                    
Player[playerid][VIP] = DOF2_SetInt(arquivo"VIP",0); 
                    
Player[playerid][Registrado] = DOF2_SetInt(arquivo"Registrado",1); 
                     
                    
DOF2_SetInt(arquivo"Idioma"Player[playerid][Idioma]); 
                    new 
len strlen(inputtext); 
                    if(
len || len 20) return ShowPlayerDialog(playeridDialog_Registro ,DIALOG_STYLE_INPUT"•»XxRevolutioNxX Registro«•""{D61111}Sua Senha Deve Conter No Mнnimo 5 Caracteres!\nE No Mбximo 20!\nTente Novamente!","Registrar",""); 
                    return 
ShowPlayerDialog(playeridDialog_Login ,DIALOG_STYLE_INPUT"•»XxRevolutioNxX Login«•""Digite Sua Senha Para Entrar!.","Entrar",""); 
                    } 
                 
        } 
Reply
#3

@EDIT

Consegui Obrigado Pela Ajuda !
Reply
#4

existem algumas falhas no seu script exemplo porque vocк seta os valores nas variбveis se vocк esta kickando o player ? porque vocк coloca if(!response) Kick(playerid); e logo depois if(response) se vocк verificou if(!response) oque sobra ?

PHP код:
if(dialogid == Dialog_Login
{
    if(!
response) return Kick(playerid); 
    if(
strcmp(inputtextDOF2_GetString(arquivo,"Senha"))==0
    {
        
        
GetPlayerName(playerid,nome,24); 
        
format(arquivo,50,Contas,nome); 
        
SetPlayerScore(playerid,DOF2_GetInt(arquivo"Score")); 
        
GivePlayerMoney(playerid,DOF2_GetInt(arquivo"Dinheiro")); 
        
Player[playerid][Matou] = DOF2_GetInt(arquivo"Matou"); 
        
Player[playerid][Morreu] = DOF2_GetInt(arquivo"Morreu"); 
        
Player[playerid][Admin] = DOF2_GetInt(arquivo"Admin"); 
        
Player[playerid][VIP] = DOF2_GetInt(arquivo"VIP"); 
        
Player[playerid][Idioma] = DOF2_GetInt(arquivo"Idioma"); 
        
Player[playerid][Registrado] = DOF2_GetInt(arquivo"Registrado"); 
        
// 
        
BloqueioSpawn[playerid] = 0
        
SendClientMessage(playeridVerde"{19B519}[BMR]» {FFFFFF}Logado Com Sucesso!.");
    } 
    else
    {
        
ShowPlayerDialog(playeridDialog_LoginDIALOG_STYLE_INPUT"•»XxRevolutioNxX Login«•","Senha Incorreta, Insira A Senha Correta!\nTente Novamente!","Entrar",""); 
        
SendClientMessage(playeridVermelho,"{19B519}[BMR]» {D61111}Vocк Digitou Uma Senha Incorreta!."); 
        
Erro[playerid]++; 
        if(
Erro[playerid] == 5){ 
            new 
string[150]; 
            
GetPlayerName(playeridnome24);  // espero que a variavel nome esteja criada..
            
format(stringsizeof(string), "{19B519}[BMR]» {1AAAC7}O Jogador {FFFFFF}%s {D61111}Foi Kickado Por Errar 5 Vezes A Senha!."nome); 
            
SendClientMessageToAll(Verdestring); 
            
Kick(playerid); 
            return 
1
        } 
    } 

if(
dialogid == Dialog_Registro
{
     
    if(!
response) return Kick(playerid); 
    
GetPlayerName(playerid,nome,24); 
    
format(arquivo,50,Contas,nome); 
    
DOF2_CreateFile(arquivo); 
    
DOF2_SetString(arquivo,"Senha",inputtext); 
    
Player[playerid][Senha] = strlen(inputtext); 
    
Player[playerid][Score] = DOF2_SetInt(arquivo,"Score",0); 
    
Player[playerid][Dinheiro] = DOF2_SetInt(arquivo,"Dinheiro",50000); 
    
Player[playerid][Admin] = DOF2_SetInt(arquivo"Admin",0); 
    
Player[playerid][VIP] = DOF2_SetInt(arquivo"VIP",0); 
    
Player[playerid][Registrado] = DOF2_SetInt(arquivo"Registrado",1); 
    
DOF2_SetInt(arquivo"Idioma"Player[playerid][Idioma]); 
    new 
len strlen(inputtext); 
    if(
len || len 20) return ShowPlayerDialog(playeridDialog_Registro ,DIALOG_STYLE_INPUT"•»XxRevolutioNxX Registro«•""{D61111}Sua Senha Deve Conter No Mнnimo 5 Caracteres!\nE No Mбximo 20!\nTente Novamente!","Registrar",""); 
    return 
ShowPlayerDialog(playeridDialog_Login ,DIALOG_STYLE_INPUT"•»XxRevolutioNxX Login«•""Digite Sua Senha Para Entrar!.","Entrar",""); 

Reply
#5

Sistema de login e registro feito com DOF2. Fiz agora, irei continuar ele depois, essa й a estrutura bбsica pra quem quer criar seu prуprio sistema de login/registro.


dof2 standard check/login:
pawn Код:
#include <a_samp>
#include <Dof2>

enum _:D_DIALOGS
{
    D_REGISTRO = 1,
    D_LOGIN
}

enum P_ENUM
{
    Nome[MAX_PLAYER_NAME],
    Senha[32],
    Money, Skin,
    Float:vida, Float:colete
};

new
    pData[MAX_PLAYERS][P_ENUM],
    gPath[32]
;

main()
{
    printf("\ngm0.0.3.pwn\n");
}

public OnGameModeInit()
{
        // testando sistema;
    // OnPlayerConnect(0);
    // OnDialogResponse(0, D_REGISTRO, 1, 0, "senha123456");
    // OnDialogResponse(0, D_LOGIN, 1, 0, "senha123456");
    return 1;
}

public OnGameModeExit()
{
    DOF2_Exit();
    return 1;
}

public OnPlayerConnect(playerid)
{

    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(gPath, sizeof(gPath), "Users\%s.ini", pName);

    if( DOF2_FileExists(gPath) )
    {
        // Exibe dialogo para logar
        printf("Arquivo existe!: %s\a\n", gPath);
        ShowPlayerDialog(playerid, D_LOGIN, DIALOG_STYLE_PASSWORD, "Logando...", "Digite sua senha para entrar no servidor!\n", "Entrar", "Quit");
    }
    else
    {
        // Exibe dialogo para registrar
        printf("Arquivo nгo existe!: %s\a\n", gPath);
        ShowPlayerDialog(playerid, D_REGISTRO, DIALOG_STYLE_PASSWORD, "Registrando...", "Digite uma senha para se registrar no servidor!\n", "Registrar", "Quit");
    }
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{

    switch(dialogid)
    {
        case D_LOGIN:
        {
            switch(response)
            {
                case 0:{} // Clicou em quit
                case 1: // Clicou em entra
                {
                    new pName[MAX_PLAYER_NAME];
                    GetPlayerName(playerid, pName, sizeof(pName));
                    format(gPath, sizeof(gPath), "Users\%s.ini", "leandro");

                    if(DOF2_CheckLogin(gPath, inputtext))
                    {
                        printf("[Logou]::::: %s\n", gPath);

                        // logou na conta
                    }
                    else
                    {
                        printf("[Senha incorreta]::::: %s\n", gPath);
                        // Senha incorreta
                    }
                }
            }
        }
        case D_REGISTRO:
        {

            switch(response)
            {
                case 0: {} //
                case 1:
                {
                    new pName[MAX_PLAYER_NAME];
                    GetPlayerName(playerid, pName, sizeof(pName));
                    format(gPath, sizeof(gPath), "Users\%s.ini", pName);

                    DOF2_CreateFile(gPath, inputtext); // Registra uma nova conta com senha
                    DOF2_SaveFile();

                    printf("[Registrou]::::: %s\n", gPath);
                    ShowPlayerDialog(playerid, 4444, DIALOG_STYLE_MSGBOX, "Resgistrado!", "Obrigado por registrar-se\nTenha um bom jogo!", "C. Panel", "Jogar");
                }
            }
        }
    }
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)