SA-MP Forums Archive
[Ajuda] Sistema de Registro - 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] Sistema de Registro (/showthread.php?tid=648005)



Sistema de Registro - GuiKommander - 14.01.2018

Peguei um sistema de registro e testei ele, sу que quando eu cadastro jб cria o arquivo na pasta Contas, mais quando eu vou acessar a conta a senha ta = 0 Ou seja, nгo tem senha, e quando eu digito 123456 q й a senha q coloquei fala que ta errada? WTF
PHP код:
#include    a_samp
#include    DOF2
#include    sscanf2
#include    zcmd
#define     DIALOG_REGISTRO         1
#define     DIALOG_LOGAR            2
// ----------------------------------- Cores
#define VERMELHO 0xFF0000AA
#define AMARELO  0xFFFF00FF
// ----
new texto;
new 
nome[MAX_PLAYER_NAME];
new 
Str[128];
new 
id;
// --------------------------- //
enum Informacoes
{
    
Senha,
    
Matou,
    
Morreu,
    
Celular[MAX_PLAYERS],
    
Promocao[MAX_PLAYERS],
    
Dinheiro
}
new 
Player[MAX_PLAYERS][Informacoes];
new 
Erro[MAX_PLAYERS];
main()
{
    print(
"Servidor Completo Feito por GuilhermePawn");
}
public 
OnGameModeInit()
{
    
SendRconCommand("hostname Zone Roleplay em Portuguкs [GM ЪNICA]");
    
SetGameModeText("ZR:RP v0.00001 BR");
    
SendRconCommand("mapname LS:RP");
    
SendRconCommand("language Portuguкs");
    return 
1;
}
public 
OnGameModeExit()
{
    
DOF2_Exit();
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    if(
DOF2_FileExists(Contas(playerid))) ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Vocк й Registrado, digite sua senha para logar!\nSe errar 5 vezes sua conta serб banida!""Confirma""Cancelar");
    else 
ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_INPUT"Registro""Vocк ainda nгo й Registrado, digite uma senha para se registrar!""Confirma""Cancelar");
    return 
1;
}
public 
OnPlayerDisconnect(playerid)
{
    
SalvarContas(playerid);
    return 
1;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == DIALOG_REGISTRO)
    {
        if(!
strval(inputtext)) return ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_INPUT"Registro""Digite apenas nъmeros!\nDigite sua senha novamente para se registrar!""Confirma""Cancelar");
        if(!
response) return Kick(playerid);
        else
        {
            
Player[playerid][Senha] = strval(inputtext);
            
SalvarContas(playerid);
            
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Vocк se cadastrou, agora й sу logar com sua senha registrada!""Confirma""Cancelar");
        }
    }
    if(
dialogid == DIALOG_LOGAR)
    {
        if(!
strval(inputtext)) return ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!""Confirma""Cancelar");
        if(!
response) return Kick(playerid);
        else
        {
            
Player[playerid][Senha] = DOF2_GetInt(Contas(playerid), "Senha");
            if(
strval(inputtext) == Player[playerid][Senha])
            {
                
Player[playerid][Matou] = DOF2_GetInt(Contas(playerid), "Matou");
                
Player[playerid][Morreu] = DOF2_GetInt(Contas(playerid), "Morreu");
                
Player[playerid][Dinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
                
Player[playerid][Celular] = DOF2_GetInt(Contas(playerid), "Celular");
                
Player[playerid][Promocao] = DOF2_GetInt(Contas(playerid), "Promocao");
                
GivePlayerMoney(playeridPlayer[playerid][Dinheiro]);
            }
            else
            {
                
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Vocк digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes sua conta serб banida!""Confirma""Cancelar");
                
Erro[playerid]++;
                if(
Erro[playerid] == 5)
                {
                    
SendClientMessage(playerid, -1"| ERRO | Vocк digitou sua senha 5 Vezes (errada) e levou Kick!");
                    
Kick(playerid);
                    return 
1;
                }
            }
        }
    }
    return 
1;
}
stock PlayerToPointFloat:radiusplayeridFloat:XFloat:YFloat:)
{
    new 
Float:oldpos], Float:temppos];
    
GetPlayerPosplayeridoldpos], oldpos], oldpos] );
    
temppos] = ( oldpos] -);
    
temppos] = ( oldpos] -);
    
temppos] = ( oldpos] -);
    if(( ( 
temppos] < radius ) && ( temppos] > -radius )) && (( temppos] < radius ) && ( temppos] > -radius )) && (( temppos] < radius ) && ( temppos] > -radius )) )
    {
        return 
1;
    }
    return 
0;
}
stock Contas(playerid)
{
    new 
arquivo[40], name[MAX_PLAYER_NAME];
    
GetPlayerName(playeridname32);
    
format(arquivo40"Contas/%s.ini"name);
    return 
arquivo;
}
stock SalvarContas(playerid)
{
    if(!
DOF2_FileExists(Contas(playerid))) DOF2_CreateFile(Contas(playerid));
    else
    {
        
Player[playerid][Dinheiro] = GetPlayerMoney(playerid);
        
DOF2_SetInt(Contas(playerid), "Senha"Player[playerid][Senha]);
        
DOF2_SetInt(Contas(playerid), "Matou"Player[playerid][Matou]);
        
DOF2_SetInt(Contas(playerid), "Morreu"Player[playerid][Morreu]);
        
DOF2_SetInt(Contas(playerid), "Dinheiro"Player[playerid][Dinheiro]);
        
DOF2_SetInt(Contas(playerid), "Celular"Player[playerid][Celular]);
        
DOF2_SetInt(Contas(playerid), "Promocao"Player[playerid][Promocao]);
        
DOF2_SaveFile();
    }
    return 
1;
}
CMD:sms(playeridparams[])
{
    if(
Player[playerid][Celular] == 1)
    {
        
SendClientMessage(playeridVERMELHO"| ERRO | Vocк nгo tem um Celular, compre um na loja de ъtilitarios");
    }
    if(
sscanf(params"us",id,texto))
    {
        
SendClientMessage(playerid,VERMELHO,"| ERRO | Digite: /SMS [Id] [Texto]");
    }
    else
    {
        if(
IsPlayerConnected(id)) return SendClientMessage(playeridVERMELHO"| ERRO | Jogador nгo conectado!");
        
GetPlayerName(playerid,nome,sizeof(nome));
        
format(Strsizeof(Str), "| SMS | Mensagem de: %s: %s",nome,texto);
        
SendClientMessage(id,-1,Str);
    }
    return 
1;
}
CMD:kit(playeridparams[])
{
        new 
gFile[44];
        if( 
DOF2_GetIntgFile"Promocao" ) == )
        {
            
SendClientMessage(playeridVERMELHO"| ERRO | Vocк jб pegou essa promoзгo!");
            return 
1;
        }
        else if( 
DOF2_GetIntgFile"Promocao" ) == )
        {
            
DOF2_SetIntgFile"Promocao");
            
GivePlayerMoney(playerid50000);
            
SendClientMessage(playeridAMARELO"| PROMOЗГO | Vocк pegou essa promoзгo uma vez, boa!");
        }
        return 
1;
}
CMD:testarposicao(playeridparams[])
{
        if(!
PlayerToPoint5.0playerid0.00.00.0))
        {
        
SendClientMessage(playeridVERMELHO"| ERRO | Vocк nгo estб nessa posiзгo");
        }
        return 
1;




Re: Sistema de Registro - DelK - 14.01.2018

[php] Coloque isso
PHP код:
Player[playerid][Senha] = strval(inputtext); 
Por isso
PHP код:
new String[25];
               
format(Stringsizeof(String), "%s"inputtext);
              
format(Player[playerid][pSenha], sizeof(String), String); 



Re: Sistema de Registro - GuiKommander - 14.01.2018

Tб dando a mesma coisa, passa outro Fs de registrar/Logar, Esse aн Sei nгo..


Re: Sistema de Registro - DelK - 14.01.2018

https://pastebin.com/SdmX0GZA
https://sampforum.blast.hk/showthread.php?tid=399081
https://sampforum.blast.hk/showthread.php?tid=346534


Re: Sistema de Registro - SpikeCompiler - 14.01.2018

Olha amigo, tirando fora sua dъvida, vejo que vocк estб com problemas em um sistema de registro, e aparentemente seu GameMode й modo roleplay, um modo de jogo que nгo й recomendado para iniciantes.


Re: Sistema de Registro - humildadeforever - 14.01.2018

Quote:
Originally Posted by GuiKommander
Посмотреть сообщение
Peguei um sistema de registro e testei ele, sу que quando eu cadastro jб cria o arquivo na pasta Contas, mais quando eu vou acessar a conta a senha ta = 0 Ou seja, nгo tem senha, e quando eu digito 123456 q й a senha q coloquei fala que ta errada? WTF
PHP код:
#include    a_samp
#include    DOF2
#include    sscanf2
#include    zcmd
#define     DIALOG_REGISTRO         1
#define     DIALOG_LOGAR            2
// ----------------------------------- Cores
#define VERMELHO 0xFF0000AA
#define AMARELO  0xFFFF00FF
// ----
new texto;
new 
nome[MAX_PLAYER_NAME];
new 
Str[128];
new 
id;
// --------------------------- //
enum Informacoes
{
    
Senha,
    
Matou,
    
Morreu,
    
Celular[MAX_PLAYERS],
    
Promocao[MAX_PLAYERS],
    
Dinheiro
}
new 
Player[MAX_PLAYERS][Informacoes];
new 
Erro[MAX_PLAYERS];
main()
{
    print(
"Servidor Completo Feito por GuilhermePawn");
}
public 
OnGameModeInit()
{
    
SendRconCommand("hostname Zone Roleplay em Portuguкs [GM ЪNICA]");
    
SetGameModeText("ZR:RP v0.00001 BR");
    
SendRconCommand("mapname LS:RP");
    
SendRconCommand("language Portuguкs");
    return 
1;
}
public 
OnGameModeExit()
{
    
DOF2_Exit();
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    if(
DOF2_FileExists(Contas(playerid))) ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Vocк й Registrado, digite sua senha para logar!\nSe errar 5 vezes sua conta serб banida!""Confirma""Cancelar");
    else 
ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_INPUT"Registro""Vocк ainda nгo й Registrado, digite uma senha para se registrar!""Confirma""Cancelar");
    return 
1;
}
public 
OnPlayerDisconnect(playerid)
{
    
SalvarContas(playerid);
    return 
1;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == DIALOG_REGISTRO)
    {
        if(!
strval(inputtext)) return ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_INPUT"Registro""Digite apenas nъmeros!\nDigite sua senha novamente para se registrar!""Confirma""Cancelar");
        if(!
response) return Kick(playerid);
        else
        {
            
Player[playerid][Senha] = strval(inputtext);
            
SalvarContas(playerid);
            
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Vocк se cadastrou, agora й sу logar com sua senha registrada!""Confirma""Cancelar");
        }
    }
    if(
dialogid == DIALOG_LOGAR)
    {
        if(!
strval(inputtext)) return ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!""Confirma""Cancelar");
        if(!
response) return Kick(playerid);
        else
        {
            
Player[playerid][Senha] = DOF2_GetInt(Contas(playerid), "Senha");
            if(
strval(inputtext) == Player[playerid][Senha])
            {
                
Player[playerid][Matou] = DOF2_GetInt(Contas(playerid), "Matou");
                
Player[playerid][Morreu] = DOF2_GetInt(Contas(playerid), "Morreu");
                
Player[playerid][Dinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
                
Player[playerid][Celular] = DOF2_GetInt(Contas(playerid), "Celular");
                
Player[playerid][Promocao] = DOF2_GetInt(Contas(playerid), "Promocao");
                
GivePlayerMoney(playeridPlayer[playerid][Dinheiro]);
            }
            else
            {
                
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Vocк digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes sua conta serб banida!""Confirma""Cancelar");
                
Erro[playerid]++;
                if(
Erro[playerid] == 5)
                {
                    
SendClientMessage(playerid, -1"| ERRO | Vocк digitou sua senha 5 Vezes (errada) e levou Kick!");
                    
Kick(playerid);
                    return 
1;
                }
            }
        }
    }
    return 
1;
}
stock PlayerToPointFloat:radiusplayeridFloat:XFloat:YFloat:)
{
    new 
Float:oldpos], Float:temppos];
    
GetPlayerPosplayeridoldpos], oldpos], oldpos] );
    
temppos] = ( oldpos] -);
    
temppos] = ( oldpos] -);
    
temppos] = ( oldpos] -);
    if(( ( 
temppos] < radius ) && ( temppos] > -radius )) && (( temppos] < radius ) && ( temppos] > -radius )) && (( temppos] < radius ) && ( temppos] > -radius )) )
    {
        return 
1;
    }
    return 
0;
}
stock Contas(playerid)
{
    new 
arquivo[40], name[MAX_PLAYER_NAME];
    
GetPlayerName(playeridname32);
    
format(arquivo40"Contas/%s.ini"name);
    return 
arquivo;
}
stock SalvarContas(playerid)
{
    if(!
DOF2_FileExists(Contas(playerid))) DOF2_CreateFile(Contas(playerid));
    else
    {
        
Player[playerid][Dinheiro] = GetPlayerMoney(playerid);
        
DOF2_SetInt(Contas(playerid), "Senha"Player[playerid][Senha]);
        
DOF2_SetInt(Contas(playerid), "Matou"Player[playerid][Matou]);
        
DOF2_SetInt(Contas(playerid), "Morreu"Player[playerid][Morreu]);
        
DOF2_SetInt(Contas(playerid), "Dinheiro"Player[playerid][Dinheiro]);
        
DOF2_SetInt(Contas(playerid), "Celular"Player[playerid][Celular]);
        
DOF2_SetInt(Contas(playerid), "Promocao"Player[playerid][Promocao]);
        
DOF2_SaveFile();
    }
    return 
1;
}
CMD:sms(playeridparams[])
{
    if(
Player[playerid][Celular] == 1)
    {
        
SendClientMessage(playeridVERMELHO"| ERRO | Vocк nгo tem um Celular, compre um na loja de ъtilitarios");
    }
    if(
sscanf(params"us",id,texto))
    {
        
SendClientMessage(playerid,VERMELHO,"| ERRO | Digite: /SMS [Id] [Texto]");
    }
    else
    {
        if(
IsPlayerConnected(id)) return SendClientMessage(playeridVERMELHO"| ERRO | Jogador nгo conectado!");
        
GetPlayerName(playerid,nome,sizeof(nome));
        
format(Strsizeof(Str), "| SMS | Mensagem de: %s: %s",nome,texto);
        
SendClientMessage(id,-1,Str);
    }
    return 
1;
}
CMD:kit(playeridparams[])
{
        new 
gFile[44];
        if( 
DOF2_GetIntgFile"Promocao" ) == )
        {
            
SendClientMessage(playeridVERMELHO"| ERRO | Vocк jб pegou essa promoзгo!");
            return 
1;
        }
        else if( 
DOF2_GetIntgFile"Promocao" ) == )
        {
            
DOF2_SetIntgFile"Promocao");
            
GivePlayerMoney(playerid50000);
            
SendClientMessage(playeridAMARELO"| PROMOЗГO | Vocк pegou essa promoзгo uma vez, boa!");
        }
        return 
1;
}
CMD:testarposicao(playeridparams[])
{
        if(!
PlayerToPoint5.0playerid0.00.00.0))
        {
        
SendClientMessage(playeridVERMELHO"| ERRO | Vocк nгo estб nessa posiзгo");
        }
        return 
1;

Irei apontar alguns erros que encontrei aqui e te explicar, mais ou menos, como corrigir. Caso algum bug ainda persista ou apareзa algum erro na hora de compilar, avise-me. Nгo compilei e nгo testei, pois nгo estou em casa, entгo estou sem o sa-mp server. Hб tambйm algumas observaзхes importantes, atente-se a elas.

CУDIGO ANTIGO COMENTADO
PHP код:
SalvarContas(playerid)
{
    
/* esta parte do cуdigo estб errada, pois ele verifica se existe a conta e, caso nгo exista, ele somente cria,
    mas nгo salva os dados.... sу vai salvar os dados caso jб exista a conta*/
    
if(!DOF2_FileExists(Contas(playerid))) DOF2_CreateFile(Contas(playerid));
    else
    {
        
Player[playerid][Dinheiro] = GetPlayerMoney(playerid);
        
DOF2_SetInt(Contas(playerid), "Senha"Player[playerid][Senha]);
        
DOF2_SetInt(Contas(playerid), "Matou"Player[playerid][Matou]);
        
DOF2_SetInt(Contas(playerid), "Morreu"Player[playerid][Morreu]);
        
DOF2_SetInt(Contas(playerid), "Dinheiro"Player[playerid][Dinheiro]);
        
DOF2_SetInt(Contas(playerid), "Celular"Player[playerid][Celular]);
        
DOF2_SetInt(Contas(playerid), "Promocao"Player[playerid][Promocao]);
        
DOF2_SaveFile();
    }
    return 
1;

CУDIGO CORRIGIDO
PHP код:
SalvarContas(playerid)
{
    if(!
DOF2_FileExists(Contas(playerid)))
    {
        
DOF2_CreateFile(Contas(playerid)); 
    }
    
Player[playerid][Dinheiro] = GetPlayerMoney(playerid);
    
DOF2_SetInt(Contas(playerid), "Senha"Player[playerid][Senha]);
    
DOF2_SetInt(Contas(playerid), "Matou"Player[playerid][Matou]);
    
DOF2_SetInt(Contas(playerid), "Morreu"Player[playerid][Morreu]);
    
DOF2_SetInt(Contas(playerid), "Dinheiro"Player[playerid][Dinheiro]);
    
DOF2_SetInt(Contas(playerid), "Celular"Player[playerid][Celular]);
    
DOF2_SetInt(Contas(playerid), "Promocao"Player[playerid][Promocao]);
    
DOF2_SaveFile();
    return 
1;

OBSERVAЗХES/SUGESTХES

- Crie a conta na hora do registro e jб seta a senha no arquivo. Depois, na hora de SalvarConta, й sу verificar se ela existe;
- Nгo й necessбrio colocar a senha para ficar salvando toda vez que o jogador desconectar. Vocк sу precisa alterar a senha no arquivo quando o jogador usar um cmd como /mudarsenha e coisas do tipo;
- Tambйm nгo й necessбrio vocк ficar guardando a senha com Player[playerid][Senha], pois nгo й algo que vai precisar usar o tempo todo, como nнvel de admin e dinheiro, por exemplo.


CУDIGO CONFORME MINHA SUGESTГO
PHP код:
SalvarContas(playerid)
{
    if(
DOF2_FileExists(Contas(playerid)))
    {
        
Player[playerid][Dinheiro] = GetPlayerMoney(playerid);
           
//DOF2_SetInt(Contas(playerid), "Senha", Player[playerid][Senha]); (PODE DELETAR ESSA LINHA, CONFORME A DICA!!!)
        
DOF2_SetInt(Contas(playerid), "Matou"Player[playerid][Matou]);
        
DOF2_SetInt(Contas(playerid), "Morreu"Player[playerid][Morreu]);
        
DOF2_SetInt(Contas(playerid), "Dinheiro"Player[playerid][Dinheiro]);
        
DOF2_SetInt(Contas(playerid), "Celular"Player[playerid][Celular]);
        
DOF2_SetInt(Contas(playerid), "Promocao"Player[playerid][Promocao]);
        
DOF2_SaveFile();
    }
    return 
1;

CУDIGO ANTIGO COMENTADO

PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == DIALOG_REGISTRO)
    {
        
// aqui que deveria estar o if(!response) return Kick(playerid); e depois o if(!strval(....
        // acredito que usar IsNumeric em vez de strval aqui й uma opзгo melhor
        
if(!strval(inputtext)) return ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_INPUT"Registro""Digite apenas nъmeros!\nDigite sua senha novamente para se registrar!""Confirma""Cancelar");
        if(!
response) return Kick(playerid);
        
// nгo hб necessidade jб que vocк usou 'return' em cima
        
else
        {
            
Player[playerid][Senha] = strval(inputtext);
            
// aqui й uma boa hora para se criar a conta
            
SalvarContas(playerid);
            
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Vocк se cadastrou, agora й sу logar com sua senha registrada!""Confirma""Cancelar");
        }
    }
    if(
dialogid == DIALOG_LOGAR)
    {
        
// primeiro vem o if(!response)  e dps o !strval(inputtext)
        
if(!strval(inputtext)) return ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!""Confirma""Cancelar");
        if(!
response) return Kick(playerid);
        else
        {
            
Player[playerid][Senha] = DOF2_GetInt(Contas(playerid), "Senha");
            if(
strval(inputtext) == Player[playerid][Senha])
            {
                
Player[playerid][Matou] = DOF2_GetInt(Contas(playerid), "Matou");
                
Player[playerid][Morreu] = DOF2_GetInt(Contas(playerid), "Morreu");
                
Player[playerid][Dinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
                
Player[playerid][Celular] = DOF2_GetInt(Contas(playerid), "Celular");
                
Player[playerid][Promocao] = DOF2_GetInt(Contas(playerid), "Promocao");
                
GivePlayerMoney(playeridPlayer[playerid][Dinheiro]);
            }
            else
            {
                
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Vocк digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes sua conta serб banida!""Confirma""Cancelar");
                
Erro[playerid]++;
                if(
Erro[playerid] == 5)
                {
                    
SendClientMessage(playerid, -1"| ERRO | Vocк digitou sua senha 5 Vezes (errada) e levou Kick!");
                    
Kick(playerid);
                    return 
1;
                }
            }
        }
    }
    return 
1;

CУDIGO CORRIGIDO

PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    switch(
dialogid)
    {
        case 
DIALOG_REGISTRO:
        {
            if(!
response) return Kick(playerid);
            if(!
strlen(inputtext) || !IsNumeric(inputtext)) return ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_INPUT"Registro""Digite apenas nъmeros!\nDigite sua senha novamente para se registrar!""Confirma""Cancelar");
            
Player[playerid][Senha] = strval(inputtext);
             
DOF2_CreateFile(Contas(playerid));
             
DOF2_SetInt(Contas(playerid), "Senha"strval(inputtext));
             
DOF2_SaveFile();
             
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Vocк se cadastrou, agora й sу logar com sua senha registrada!""Confirma""Cancelar");
            return 
1;
        }
         case 
DIALOG_LOGAR:
        {
            if(!
response) return Kick(playerid);
            if(!
strlen(inputtext) || !IsNumeric(inputtext)) return ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!""Confirma""Cancelar");
            new 
senha DOF2_GetInt(Contas(playerid), "Senha");
            if(
strval(inputtext) == senha)
            {
                
Player[playerid][Matou] = DOF2_GetInt(Contas(playerid), "Matou");
                
Player[playerid][Morreu] = DOF2_GetInt(Contas(playerid), "Morreu");
                
Player[playerid][Dinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
                
Player[playerid][Celular] = DOF2_GetInt(Contas(playerid), "Celular");
                
Player[playerid][Promocao] = DOF2_GetInt(Contas(playerid), "Promocao");
                
GivePlayerMoney(playeridPlayer[playerid][Dinheiro]);
            }
            else
            {
                
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Vocк digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes sua conta serб banida!""Confirma""Cancelar");
                
Erro[playerid]++;
                if(
Erro[playerid] == 5)
                {
                    
SendClientMessage(playerid, -1"| ERRO | Vocк digitou sua senha 5 Vezes (errada) e levou Kick!");
                    
Kick(playerid);
                    return 
1;
                }
            }
            return 
1;
        }
    }
    return 
1;

ADICIONE AO FINAL DO GM

PHP код:
IsNumeric(const string[])
{
    for (new 
0strlen(string); ji++)
    {
        if (
string[i] > '9' || string[i] < '0') return 0;
    }
    return 
1;

OUTRA OBSERVAЗГO

Й importante vocк colocar o cуdigo abaixo em OnPlayerConnect, antes dos dialogs de login/registro, para evitar "bugs" com outros jogadores que logam e assumem ID igual a algum outro jogador que errou a senha vбrias vezes e deslogou.

PHP код:
Erro[playerid] = 0

Quote:
Originally Posted by SpikeCompiler
Посмотреть сообщение
Olha amigo, tirando fora sua dъvida, vejo que vocк estб com problemas em um sistema de registro, e aparentemente seu GameMode й modo roleplay, um modo de jogo que nгo й recomendado para iniciantes.
Eu comecei a estudar pawn antes de completar 12 anos. Meu estudo foi comeзar a programar um GM RP do 0. Pode ser mais difнcil no comeзo, mas os resultados surgem mais rбpido do que ficar editando. Vale a pena.