SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 14/01/2018, 11:02 AM   #1
GuiKommander
Huge Clucker
 
Join Date: Dec 2016
Posts: 489
Reputation: 11
Default Sistema de Registro

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 Code:
#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;

GuiKommander is offline   Reply With Quote
Old 14/01/2018, 11:14 AM   #2
DelK
Huge Clucker
 
DelK's Avatar
 
Join Date: Apr 2017
Location: Brazil
Posts: 342
Reputation: 30
Default Re: Sistema de Registro

[php] Coloque isso
PHP Code:
Player[playerid][Senha] = strval(inputtext); 
Por isso
PHP Code:
new String[25];
               
format(Stringsizeof(String), "%s"inputtext);
              
format(Player[playerid][pSenha], sizeof(String), String); 
__________________
  • Perfect City - RPG
DelK is offline   Reply With Quote
Old 14/01/2018, 11:55 AM   #3
GuiKommander
Huge Clucker
 
Join Date: Dec 2016
Posts: 489
Reputation: 11
Default Re: Sistema de Registro

Tá dando a mesma coisa, passa outro Fs de registrar/Logar, Esse aí Sei não..
GuiKommander is offline   Reply With Quote
Old 14/01/2018, 12:33 PM   #4
DelK
Huge Clucker
 
DelK's Avatar
 
Join Date: Apr 2017
Location: Brazil
Posts: 342
Reputation: 30
Default Re: Sistema de Registro

https://pastebin.com/SdmX0GZA
http://forum.sa-mp.com/showthread.php?t=399081
http://forum.sa-mp.com/showthread.php?t=346534
__________________
  • Perfect City - RPG
DelK is offline   Reply With Quote
Old 14/01/2018, 01:17 PM   #5
SpikeCompiler
Huge Clucker
 
SpikeCompiler's Avatar
 
Join Date: Dec 2017
Location: Rio de Janeiro - RJ
Posts: 263
Reputation: 14
Default Re: Sistema de Registro

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.
SpikeCompiler is offline   Reply With Quote
Old 14/01/2018, 02:24 PM   #6
humildadeforever
High-roller
 
humildadeforever's Avatar
 
Join Date: Jan 2011
Location: Santo André - SP
Posts: 2,253
Reputation: 325
Default Re: Sistema de Registro

Quote:
Originally Posted by GuiKommander View Post
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 Code:
#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 Code:
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 Code:
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 Code:
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 Code:
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 Code:
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 Code:
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 Code:
Erro[playerid] = 0


Quote:
Originally Posted by SpikeCompiler View Post
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.
__________________

"Antes de querer ensinar, tenha a certeza de que você já aprendeu"


Sunset RolePlay:



Make a change, make the world a better place. Cause tomorrow could be one day too late. - One Day Too Late (Skillet)

humildadeforever is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[FilterScript] Sistema de Login/Registro com recuperação pelo email Sistema feito em mysql Marllun Lançamentos/Releases 11 20/11/2017 01:30 AM
[Ajuda] Sistema de Registro biell Português/Portuguese 6 29/09/2014 10:04 PM
[Ajuda] Sistema de registro sofina Português/Portuguese 9 06/02/2014 11:25 AM
[Tutorial] Sistema de Registro + Profissão + Sistema de Administração Nake01 Lançamentos/Releases 19 02/03/2012 09:30 PM


All times are GMT. The time now is 01:20 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.