[Ajuda] Registro de conta
#1

Estou criando um sistema de registro simples, mas quando o player sai, as vezes buga e a senha fica assim:
Senha=g117

PHP код:
    new result[128];
    new 
arquivo[40];
    new 
name[MAX_PLAYER_NAME]; // Cria a variavel de nome
    
GetPlayerName(playeridname32);
    
format(arquivo40"Players/%s.ini"name);
    if(
dialogid == DIALOG_REGISTRO// Dialog registro
    
{
        if(!
response)
        {
            
Kick(playerid);
            return 
1;
        }
        
format(result,128"Senha digitada: %s."inputtext);
        
SendClientMessage(playerid,Brancoresult);
        
format(PlayerInfo[playerid][pSenha], 128inputtext);
        
DOF2_CreateFile(arquivo);
        
DOF2_SetString(arquivo"Senha"PlayerInfo[playerid][pSenha]);
        
DOF2_SetInt(arquivo"Admin"PlayerInfo[playerid][pAdmin]);
        
DOF2_SaveFile();
        return 
1;
    }
    if(
dialogid == DIALOG_LOGAR)
    {
           if(!
response)
        {
            
Kick(playerid);
            return 
1;
        }
           
format(PlayerInfo[playerid][pSenha], 128DOF2_GetString(arquivo"Senha"));
    
//    format(result,128, "Senha agora: %s e %s.", inputtext, PlayerInfo[playerid][pSenha]);
//        SendClientMessage(playerid,Branco, result);
        
if(!strcmp(inputtextPlayerInfo[playerid][pSenha], false))
        {
            
format(PlayerInfo[playerid][pAdmin], 128DOF2_GetString(arquivo"Admin"));
            
SendClientMessage(playerid, -1"Vocк foi logado com sucesso, Bem - vindo novamente!");
        }
        else 
//errou a senha
        
{
            
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Login""Status da conta : Registrada\n digite sua senha para logar!\nSe errar 5 vezes sua conta serб banida!""Logar""Cancelar");
            
format(result,128,"Vocк errou sua senha: %i/5"ERRO[playerid]);
            
SendClientMessage(playerid, -1result);
               
ERRO[playerid]++;
            if(
ERRO[playerid] == 5// se ele errar 5 vezes ele serб banido !
              
{
                   
SendClientMessage(playerid, -1"Vocк foi kickado por nгo logar!");
                   
Kickar(playerid);
                   return 
1;
             }
          }
    
    } 
PHP код:
public OnPlayerDisconnect(playeridreason)
{
    new 
arquivo[40];
    new 
name[MAX_PLAYER_NAME]; // Cria a variavel de nome
    
GetPlayerName(playeridname32);
    
format(arquivo40"Players/%s.ini"name);
    if(
DOF2_FileExists(arquivo)) // se o arquivo existir
    
{
          
DOF2_SetString(arquivo"Senha"PlayerInfo[playerid][pSenha]);
        
DOF2_SetInt(arquivo"Admin"PlayerInfo[playerid][pAdmin]);
        
DOF2_SaveFile();
    } 
Atй entгo tava tudo certinho... Nгo sei aonde errei.
Reply
#2

Percebi um erro e que vc ta setando Admin como um numero Inteiro e ta setando como string

PHP код:
format(PlayerInfo[playerid][pAdmin], 128DOF2_GetString(arquivo"Admin")); 
O Certo mesmo seria:

PHP код:
PlayerInfo[playerid][Admin] = DOF2::GetInt(arquivo"Admin"); 
Olha esse tutorial para fazer pSenha como uma array:

https://sampforum.blast.hk/showthread.php?tid=448081

Reply
#3

Eu realmente nгo tinha reparado nissooo, fiquei mais preocupado com a senha.

Eu jб vi esse e outros tutoriais kkk

Agora o problema msm й
PHP код:
public OnPlayerDisconnect(playeridreason

    new 
arquivo[40]; 
    new 
name[MAX_PLAYER_NAME];
    
GetPlayerName(playeridname32); 
    
format(arquivo40"Players/%s.ini"name); 
    if(
DOF2_FileExists(arquivo))
    { 
        
DOF2_SetString(arquivo"Senha"PlayerInfo[playerid][pSenha]); 
        
DOF2_SetInt(arquivo"Admin"PlayerInfo[playerid][pAdmin]); 
        
DOF2_SaveFile(); 
    } 
Reply
#4

PHP код:
DOF2_SetString(arquivo"Senha"PlayerInfo[playerid][pSenha], 128); 
Na linguagem SQL eu faзo desse modo nгo sei se com DOF2 vai funcionar

Tbm nгo era pra tб nada errado nessa parte

Reply
#5

O que eu achei engraзado й que, o registro estб igual ao disconect, nгo sei pq o erro...
Reply
#6

Criei um vetor e funcionou!

Obg pela ajuda.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)