[Ajuda] BUG NO SISTEMA LOGAR E SEXO
#1

Eu estou criando meu servidor e me deparei com um bug qnd registra pergunta a senha email e o sexo. pronto dps de registrado se eu der GMX ou reniciar gm ou apenas deslogar e voltar a conta fica criada mais fica aparecendo para colocar dnv o sexo e o email podem me ajudar?


PHP код:
public OnPlayerRequestClass(playeridclassid)
{
    new 
Arquivo[40];
    new 
string[255];
    
format(Arquivosizeof(Arquivo), "ArquivosGM/Contas/%s.ini"Nome(playerid));
    if(
DOF2_FileExists(Arquivo))
    {
        
format(stringsizeof(string),"SERVER: Vocк sу pode errar a senha 3(trкs) vezes.\nBem-vindo ao Nova Vida Portuguesa RPG  \n Nick: %s\nStatus da conta: Registrada.\n\ndigite sua senha para logar."Nome(playerid));
        
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Nova Vida Portuguesa - RPG | Login"string"Logar""Cancelar");
    }
    else
    {
        
format(stringsizeof(string),"Seja bem vindo ao Nova Vida Portuguesa \n Nick: %s\nStatus da conta: Nгo Registrada.\n\ndigite uma senha para se registrar."Nome(playerid));
        
ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_PASSWORD"Nova Vida Portuguesa | Registro"string"Registrar""Cancelar");
    }
    
ClearChatbox(playerid10);
    
SetPlayerInterior(playerid0);
    
    
TextDrawShowForPlayer(playeridTextdraw0);
    
TextDrawShowForPlayer(playeridTextdraw1);
    
TextDrawShowForPlayer(playeridTextdraw2);
    
TextDrawShowForPlayer(playeridTextdraw3);
    
TextDrawShowForPlayer(playeridTextdraw4);
    
    
InterpolateCameraPos(playerid1992.643066, -1199.38647469.5172881992.643066, -1199.38647469.5172883000);
    
InterpolateCameraLookAt(playerid1996.424926, -1196.12280269.7320631990.572143, -1199.39465364.9663233000);
    return 
1;

E


PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    new 
string[255];
    
    switch (
dialogid)
    {
        case 
DIALOG_REGISTRO:
        {
            if(
response)
            {
                if(
strlen(inputtext) < || strlen(inputtext) > 16 &&!strlen(inputtext))
                {
                    
SendClientMessage(playeridCOLOR_LIGHTRED"Senha com no minimo 5 caracteres ou no mбximo 16.");
                    
format(stringsizeof(string),"Seja bem vindo ao Nova Vida Portuguesa - RPG \nNick: %s\nStatus da conta: Nгo Registrada.\n\ndigite uma senha para se registrar."Nome(playerid));
                    
ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_PASSWORD"Nova Vida Portuguesa - RPG | Registro"string"Registrar""Cancelar");
                    return 
1;
                }
                new 
Arquivo[40];
                
format(Arquivosizeof(Arquivo), "ArquivosGM/Contas/%s.ini"Nome(playerid));
                
DOF2_CreateFile(Arquivo);
                
DOF2_SetString(Arquivo"Password"inputtext);
                
DOF2_SetInt(Arquivo"Level"0);
                
DOF2_SetInt(Arquivo"AdminLevel"0);
                
DOF2_SetInt(Arquivo"Registered"0);
                
DOF2_SetInt(Arquivo"Tutorial"0);
                
DOF2_SetInt(Arquivo"Sex"0);
                
DOF2_SetInt(Arquivo"Char"0);
                
DOF2_SetInt(Arquivo"Kills"0);
                
DOF2_SetInt(Arquivo"Deaths"0);
                
DOF2_SetInt(Arquivo"Money"0);
                
DOF2_SetString(Arquivo,"Email",PlayerInfo[playerid][pEmail]);
                
DOF2_SaveFile();
                
SendClientMessage(playeridCOR_SUCESSO"SERVER: Conta registrada com sucesso.");
                
format(stringsizeof(string),"SERVER: Vocк sу pode errar a senha 3(trкs) vezes.\nBem-vindo ao Nova vida portuguesa - RPG %s\nStatus da conta: Registrada.\n\ndigite sua senha para logar."Nome(playerid));
                
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Nova vida portuguesa  - RPG | Login"string"Logar""Cancelar");
                return 
1;
            }
            else
            {
                
Kick(playerid);
            }
        }
        case 
DIALOG_LOGIN:
        {
            if(
response)
            {
                if(!
strlen(inputtext))
                {
                    
SendClientMessage(playerid0x33FF00AA"SERVER: Conta registrada com sucesso.");
                    
format(stringsizeof(string),"SERVER: Vocк sу pode errar a senha 3(trкs) vezes.\nBem-vindo ao Nova vida portuguesa  - RPG %s\nStatus da conta: Registrada.\n\ndigite sua senha para logar."Nome(playerid));
                    
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Nova vida portuguesa  - RPG | Login"string"Logar""Cancelar");
                    return 
1;
                }
                new 
Arquivo[40];
                
format(Arquivosizeof(Arquivo), "ArquivosGM/Contas/%s.ini"Nome(playerid));
                if(!
strcmp(inputtext,DOF2_GetString(Arquivo,"Password"),false))
                {
                    
CarregarPlayer(playerid);
                    return 
1;
                }
                else
                {
                    
format(stringsizeof string,
                    
"Aviso: A senha digitada estб incorreta (%d de 3 tentativas)."ErrouSenha[playerid]);
                    
SendClientMessage(playeridCOLOR_LIGHTREDstring);
                    
format(stringsizeof(string),"SERVER: Vocк sу pode errar a senha 3(trкs) vezes.\nBem-vindo ao Nova vida portuguesa  - RPG %s\nStatus da conta: Registrada.\n\ndigite sua senha para logar."Nome(playerid));
                    
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Nova vida portuguesa  - RPG | Login"string"Logar""Cancelar");
                    
ErrouSenha[playerid]+= 1;
                    if(
ErrouSenha[playerid] == 4)
                    {
                        
Kick(playerid);
                        return 
1;
                    }
                }
            }
            else
            {
                
Kick(playerid);
            }
        }
    }
    
     if(
dialogid == DIALOG_SEXO)
    {
        if(
response == 0)
        {
            return 
true;
          }
           if(
response >= 1)
        {
            if(
listitem == 0)
            {
                
ClearChatbox(playerid10);
                
PlayerInfo[playerid][pSex] = 1;
                
PlayerInfo[playerid][pChar] = 26;
                
SendClientMessage(playeridCOLOR_SAMP"* O seu personagem й do sexo {33CCFF}Masculino.");
                
format(stringsizeof string"{00B9F6}Olб %s, digite seu email corretamente, pois ele poderб servir para vocк trocar sua senha"Nome(playerid));
                
ShowPlayerDialog(playeridDIALOG_EMAILDIALOG_STYLE_INPUT"Digite seu email"string"Validar""");
            }
        
/*    if(listitem == 1)
            {
                ClearChatbox(playerid, 10);
                PlayerInfo[playerid][pSex] = 2;
                PlayerInfo[playerid][pChar] = 87;
                SendClientMessage(playerid, COLOR_SAMP, "'                    O seu personagem й do sexo {FFFF80}Homossexual.");
                format(string, sizeof string, "{00B9F6}Olб %s, digite seu email corretamente, pois ele poderб servir para vocк trocar sua senha", Nome(playerid));
                ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Digite seu email", string, "Validar", "");
            }*/
            
if(listitem == 1)
            {
                
ClearChatbox(playerid10);
                
PlayerInfo[playerid][pSex] = 3;
                
PlayerInfo[playerid][pChar] = 41;
                
SendClientMessage(playeridCOLOR_SAMP"* O seu personagem й do {FF66FF}Feminino.");
                
format(stringsizeof string"{00B9F6}Olб %s, digite seu email corretamente, pois ele poderб servir para vocк trocar sua senha"Nome(playerid));
                
ShowPlayerDialog(playeridDIALOG_EMAILDIALOG_STYLE_INPUT"Digite seu email"string"Validar""");
            }
        }
        return 
1;
    }
    
    if(
dialogid == DIALOG_TUTO)
    {
        if(
response == 1)
        {
            
PlayerInfo[playerid][pTut] = 1;
            
SpawnPlayer(playerid);
            
ClearChatbox(playerid10);
            
SendClientMessage(playerid, -1"[Logado]:Bem vindo ao Nova Vida Portuguesa");
        }
        return 
0x01;
    }
    
    if(
dialogid == DIALOG_EMAIL)
    {
         if(!
EmailValido(inputtext))
        {
            
format(stringsizeof string,
            
"{00B9F6}Olб %s, digite seu email corretamente, pois ele poderб servir para vocк trocar sua senha\n\n\
            {FF0000}Email invбlido"
Nome(playerid));
            
ShowPlayerDialog(playeridDIALOG_EMAILDIALOG_STYLE_INPUT"Digite seu email"string"Validar""");
        }
        else
        {
            
ClearChatbox(playerid10);
            
format(PlayerInfo[playerid][pEmail], 128inputtext);
            
format(stringsizeof string"{00B9F6}Ok, seu email й: {FFFFFF}%s{00B9F6}."inputtext);
            
SendClientMessage(playerid, -1string);
            
               new 
message[] = "Aparte do tutorial estб em construзгo.";
            
ShowPlayerDialog(playeridDIALOG_TUTODIALOG_STYLE_MSGBOX"LEIA AS REGRAS",message,"Avanзar","");
        }
        return 
0;
    }
    return 
1;

Reply
#2

Coloquei o Salvardados para a coisa do meu gm, eu ja isso soque ele nao vai pro jogo qnd eu cliko em logar
aparece aquilo do « » Spawn
Reply
#3

No momento do registro apenas salva a senha do player e nada sobre email nem sexo.
Reply
#4

Eu quando coloco a senha o bagulho desaparece e fica o < > spawn eu queria que spawna-se logo sabem como faz isso?
Reply
#5

Quote:
Originally Posted by HelderPT
Посмотреть сообщение
Eu quando coloco a senha o bagulho desaparece e fica o < > spawn eu queria que spawna-se logo sabem como faz isso?
SpawnPlayer
Reply
#6

Um simples spawnplayer faz a diferenзa xd obrigado John ;-; + rep
Reply
#7

Cara fiz rapidinho pra tu, se tiver um bug, me fala oque que ta dando, que ajudo vocк.
PHP код:
#include <a_samp>
#include <DOF2>

public OnFilterScriptExit()
{
    
DOF2_Exit();
    return 
1;
}
#define REGISTRO 0
#define LOGIN    1
enum PlayerInfo
{
    
Senha,
    
Skin,
    
Grana,
    
Level
}
new 
pInfo[MAX_PLAYERS][PlayerInfo];

new 
ErrouPass[MAX_PLAYERS];

public 
OnPlayerConnect(playerid)
{
    if(!
DOF2_FileExists(Conta(playerid))) // Porque o ! ?? Porque esse ! Quer dizer 'nгo' no Pawn, e no caso aqui !Existe Ou seja, Nгo Existe o arquivo
    
{
    
ShowPlayerDialog(playeridREGISTRODIALOG_STYLE_INPUT"Senha""Digite uma senha para registrar""Ok""Cancelar");
    }
    else 
// Caso existir irб retornar o Login.
    
{
    
ShowPlayerDialog(playeridLOGINDIALOG_STYLE_INPUT"Senha""Digite a sua senha para logar""Ok""Cancelar");
    }
    
CarregarConta(playerid);
    return 
1;
}
public 
OnPlayerSpawn(playerid)
{
    
SetPlayerSkin(playeridpInfo[playerid][Skin]);
    
SetTimerEx("AtualizarConta"1000true"i"playerid);
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    
SalvarConta(playerid);
    return 
1;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == REGISTRO)
    {
       if(!
response) return Kick(playerid);
       if(
strlen(inputtext) < || strlen(inputtext) > 20) return SendClientMessage(playerid, -1"| ERRO | Pelomenos entre 4 e 20 caracteres!");
       
pInfo[playerid][Senha] = DOF2_SetString(Conta(playerid), "Senha"inputtext);
       
pInfo[playerid][Skin] = DOF2_SetInt(Conta(playerid), "Skin"230); // mendigo
       
pInfo[playerid][Grana] = DOF2_SetInt(Conta(playerid), "Grana"1000); // 100 reais
       
pInfo[playerid][Level] = DOF2_SetInt(Conta(playerid), "Level"1); // 1 de level
       
DOF2_SaveFile(); // Quando fazer uma modificaзгo sempre salve na ultima linha.
    
}
    if(
dialogid == LOGIN)
    {
       if(!
response) return Kick(playerid);
       if(
strlen(inputtext) < || strlen(inputtext) > 20) return SendClientMessage(playerid, -1"| ERRO | Pelomenos entre 4 e 20 caracteres!");
       if(
strcmp(inputtextDOF2_GetString(Conta(playerid), "Senha"), true)) // Irб verificar se a senha dele for igual a que ele registrou
       
{
          
SendClientMessage(playerid, -1"| INFO | Logado com sucesso.");
       }
       else
       {
          if(
ErrouPass[playerid] == 3)
          {
          
SendClientMessage(playerid, -1"| KICK | Vocк recebeu 3 avisos e levou Kick!");
          }
          else
          {
          new 
erros[80];
          
ErrouPass[playerid] ++;
          
format(erros80"| AVISOS | %d de 3"ErrouPass[playerid]);
          
SendClientMessage(playerid, -1erros);
          }
       }
    }
    return 
0;
}
static 
CarregarConta(playerid)
{
    
pInfo[playerid][Skin] = DOF2_GetInt(Conta(playerid), "Skin");
    
pInfo[playerid][Grana] = DOF2_GetInt(Conta(playerid), "Grana");
    
pInfo[playerid][Level] = DOF2_GetInt(Conta(playerid), "Level");
    
GivePlayerMoney(playeridpInfo[playerid][Grana]);
    
SetPlayerScore(playeridpInfo[playerid][Level]);
    return 
1;
}
static 
SalvarConta(playerid)
{
    
DOF2_SetInt(Conta(playerid), "Skin"pInfo[playerid][Skin]);
    
DOF2_SetInt(Conta(playerid), "Grana"pInfo[playerid][Grana]);
    
DOF2_SetInt(Conta(playerid), "Level"pInfo[playerid][Level]);
    
GetPlayerSkin(pInfo[playerid][Skin]);
    
GetPlayerMoney(pInfo[playerid][Grana]);
    
GetPlayerScore(pInfo[playerid][Level]);
    
DOF2_SaveFile();
    return 
1;
}
static 
Conta(playerid)
{
    new 
File[44], Nome[MAX_PLAYER_NAME];
    
GetPlayerName(playeridNome20);
    
format(File44"/Contas/%s.ini"Nome);
    return 
File;
}
forward AtualizarConta(playerid);
public 
AtualizarConta(playerid)
{
    
SalvarConta(playerid);
    return 
1;

Reply
#8

So acho que nao e uma boa ideia um timer que salva a conta do player a cada 1 segundo vai da lag
Reply
#9

Opa amigo, nгo sei resolver seu problema, porйm notei algo no seu sistema, й bom para vocк melhorar.

PHP код:
    TextDrawShowForPlayer(playeridTextdraw0); 
    
TextDrawShowForPlayer(playeridTextdraw1); 
    
TextDrawShowForPlayer(playeridTextdraw2); 
    
TextDrawShowForPlayer(playeridTextdraw3); 
    
TextDrawShowForPlayer(playeridTextdraw4); 
Com certeza, vocк crio 4 variбveis assim:

PHP код:
new Text:Textdraw1;
new 
Text:Textdraw2;
new 
Text:Textdraw3;
new 
Text:Textdraw4
Nгo й mesmo? otimize utilizando apenas uma variбvel:

PHP код:
new Text:Textdraw[4];

    
TextDrawShowForPlayer(playeridTextdraw[0]); 
    
TextDrawShowForPlayer(playeridTextdraw[1]); 
    
TextDrawShowForPlayer(playeridTextdraw[2]); 
    
TextDrawShowForPlayer(playeridTextdraw[3]); 
<3
Reply
#10

Quote:
Originally Posted by SpikeCompiler
Посмотреть сообщение
Opa amigo, nгo sei resolver seu problema, porйm notei algo no seu sistema, й bom para vocк melhorar.

PHP код:
    TextDrawShowForPlayer(playeridTextdraw0); 
    
TextDrawShowForPlayer(playeridTextdraw1); 
    
TextDrawShowForPlayer(playeridTextdraw2); 
    
TextDrawShowForPlayer(playeridTextdraw3); 
    
TextDrawShowForPlayer(playeridTextdraw4); 
Com certeza, vocк crio 4 variбveis assim:

PHP код:
new Text:Textdraw1;
new 
Text:Textdraw2;
new 
Text:Textdraw3;
new 
Text:Textdraw4
Nгo й mesmo? otimize utilizando apenas uma variбvel:

PHP код:
new Text:Textdraw[4];
    
TextDrawShowForPlayer(playeridTextdraw[0]); 
    
TextDrawShowForPlayer(playeridTextdraw[1]); 
    
TextDrawShowForPlayer(playeridTextdraw[2]); 
    
TextDrawShowForPlayer(playeridTextdraw[3]); 
<3
Ainda dб para otimizar mais. Como por exemplo:

PHP код:
new Text:Textdraw[4];
for(new 
04i++) { TextDrawShowForPlayer(playeridTextdraw[i]); } 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)