[Ajuda] Reset de contas
#1

Pode ser algo que tenha passado despercebido porem ja to ficando com raiva disso .
Criei um sistema de registro , ate ai beleza , entro no servidor salva certinho .
Ate mesmo na scriptfiles se eu nao desligar o console e reconectar ele carrega todas as informacoes completamente certinho.
Agora se eu desligo o console quando eu ligar e logar novamente ele simplismente reseta todas variaveis salva, na pasta e no jogo .

Code de carregamento e salvamento.
PHP код:
CallBacK::DonCarrega[playerid]
{
    
format(EmGeralsizeof(EmGeral), ContaSalva DonPegaNome(playerid));
    if(
DOF2_FileExists(EmGeral))
    {
       
DOF2_ParseFile (EmGeral, -1true);
       
DOF2_GetInt(EmGeral,"Dinheiro",PlayerInfo[playerid][Dinheiro]);
       
DOF2_GetInt(EmGeral,"Nivel",PlayerInfo[playerid][Nivel]);
       
DOF2_GetInt(EmGeral,"Respeito",PlayerInfo[playerid][Respeito]);
       
DOF2_GetBool(EmGeral,"Sexo"PlayerInfo[playerid][Sexo]);
       
DOF2_GetInt(EmGeral,"Skin",PlayerInfo[playerid][Skin]);
       
PlayerInfo[playerid][Pos][0] = DOF2_GetFloat(EmGeral,"X");
       
PlayerInfo[playerid][Pos][1] = DOF2_GetFloat(EmGeral,"Y");
       
PlayerInfo[playerid][Pos][2] = DOF2_GetFloat(EmGeral,"Z");
       
DOF2_GetInt(EmGeral,"Interior",PlayerInfo[playerid][Interior]);
       
DOF2_GetInt(EmGeral,"TJogado",PlayerInfo[playerid][TempoJogado]);
       
DOF2_GetInt(EmGeral,"Emprego",PlayerInfo[playerid][Emprego]);
    }
    
/*else
    {
       DOF2_CreateFile(EmGeral);
       DOF2_GetInt(EmGeral,"Dinheiro",PlayerInfo[playerid][Dinheiro]);
       DOF2_GetInt(EmGeral,"Nivel",PlayerInfo[playerid][Nivel]);
       DOF2_GetInt(EmGeral,"Respeito",PlayerInfo[playerid][Respeito]);
       DOF2_GetBool(EmGeral,"Sexo", PlayerInfo[playerid][Sexo]);
       DOF2_GetInt(EmGeral,"Skin",PlayerInfo[playerid][Skin]);
       PlayerInfo[playerid][Pos][0] = DOF2_GetFloat(EmGeral,"X");
       PlayerInfo[playerid][Pos][1] = DOF2_GetFloat(EmGeral,"Y");
       PlayerInfo[playerid][Pos][2] = DOF2_GetFloat(EmGeral,"Z");
       DOF2_GetInt(EmGeral,"Interior",PlayerInfo[playerid][Interior]);
       DOF2_GetInt(EmGeral,"TJogado",PlayerInfo[playerid][TempoJogado]);
       DOF2_GetInt(EmGeral,"Emprego",PlayerInfo[playerid][Emprego]);
    }*/
    
return true;
}
CallBacK::DonSalva[playerid]
{
    
GetPlayerPos(playeridPlayerInfo[playerid][Pos][0], PlayerInfo[playerid][Pos][1], PlayerInfo[playerid][Pos][2]);
    
PlayerInfo[playerid][Interior] = GetPlayerInterior(playerid);
    
PlayerInfo[playerid][Skin] = GetPlayerSkin(playerid);
    
    
format(EmGeralsizeof(EmGeral), ContaSalva DonPegaNome(playerid));
    if(
DOF2_FileExists(EmGeral))
    {
        
DOF2_SetInt(EmGeral,"Dinheiro",PlayerInfo[playerid][Dinheiro]);
        
DOF2_SetInt(EmGeral,"Nivel",PlayerInfo[playerid][Nivel]);
        
DOF2_SetInt(EmGeral,"Respeito",PlayerInfo[playerid][Respeito]);
        
DOF2_SetBool(EmGeral,"Sexo"PlayerInfo[playerid][Sexo]);
        
DOF2_SetInt(EmGeral,"Skin",PlayerInfo[playerid][Skin]);
        
DOF2_SetFloat(EmGeral,"X"PlayerInfo[playerid][Pos][0]);
        
DOF2_SetFloat(EmGeral,"Y"PlayerInfo[playerid][Pos][1]);
        
DOF2_SetFloat(EmGeral,"Z"PlayerInfo[playerid][Pos][2]);
        
DOF2_SetInt(EmGeral,"Interior",PlayerInfo[playerid][Interior]);
        
DOF2_SetInt(EmGeral,"TJogado",PlayerInfo[playerid][TempoJogado]);
        
DOF2_SetInt(EmGeral,"Emprego",PlayerInfo[playerid][Emprego]);
        
DOF2_SaveFile();
    }
    else
    {
        
DOF2_CreateFile(EmGeral);
        
DOF2_SetInt(EmGeral,"Dinheiro",PlayerInfo[playerid][Dinheiro]);
        
DOF2_SetInt(EmGeral,"Nivel",PlayerInfo[playerid][Nivel]);
        
DOF2_SetInt(EmGeral,"Respeito",PlayerInfo[playerid][Respeito]);
        
DOF2_SetBool(EmGeral,"Sexo"PlayerInfo[playerid][Sexo]);
        
DOF2_SetInt(EmGeral,"Skin",PlayerInfo[playerid][Skin]);
        
DOF2_SetFloat(EmGeral,"X"PlayerInfo[playerid][Pos][0]);
        
DOF2_SetFloat(EmGeral,"Y"PlayerInfo[playerid][Pos][1]);
        
DOF2_SetFloat(EmGeral,"Z"PlayerInfo[playerid][Pos][2]);
        
DOF2_SetInt(EmGeral,"Interior",PlayerInfo[playerid][Interior]);
        
DOF2_SetInt(EmGeral,"TJogado",PlayerInfo[playerid][TempoJogado]);
        
DOF2_SetInt(EmGeral,"Emprego",PlayerInfo[playerid][Emprego]);
        
DOF2_SaveFile();
    }
    return 
true;

Complemento sistema de registro sгo as dialogs .
PHP код:
case DIALOG_REGISTER:
           {
                if(!
response)return Kick(playerid);
                
format(EmGeralsizeof(EmGeral), ContaSalva DonPegaNome(playerid));
                
PlayerInfo[playerid][Dinheiro] = GRANAINICIAL;
                
PlayerInfo[playerid][Nivel] = NIVELINICIAL;
                
PlayerInfo[playerid][Respeito] = 0;
                
PlayerInfo[playerid][TempoJogado] = 0;
                
PlayerInfo[playerid][Respeito] = 0;
                
PlayerInfo[playerid][Pos][0] = POSPADRAO1;
                
PlayerInfo[playerid][Pos][1] = POSPADRAO2;
                
PlayerInfo[playerid][Pos][2] = POSPADRAO3;
                
PlayerInfo[playerid][Emprego] = 0;
                
PlayerInfo[playerid][Interior] = 0;
                
ShowPlayerDialog(playeridDIALOG_SEXODIALOG_STYLE_LIST"{FFFFFF}Qual seu sexo ?""Masculino\nFeminino""Selecionar"#);
           
}
           case 
DIALOG_LOGIN:
           {
                if(!
response)return Kick(playerid);
                
format(EmGeralsizeof(EmGeral), ContaSalva DonPegaNome(playerid));
                if(!
strcmp(inputtext,DOF2_GetString(EmGeral,"Senha"),true))
                {
                     
DonCarrega(playerid);
                     
SetSpawnInfo(playerid0PlayerInfo[playerid][Skin], PlayerInfo[playerid][Pos][0], PlayerInfo[playerid][Pos][1], PlayerInfo[playerid][Pos][2], 000000);
                     
SpawnPlayer(playerid);
                }
                else
                {
                     if(
PlayerInfo[playerid][Tentativa] == 4) return Kick(playerid);
                     
PlayerInfo[playerid][Tentativa] ++;
                     
format(Stringsizeof String"{FFFFFF}Olб {FF0000}%s{FFFFFF} seja bem-vindo ao {436EEE}Brasil RolePlay{FFFFFF} .\n\n\nSenhor(a) possui conta em nosso {FF0000}banco de dados{FFFFFF}.\nDigite sua senha para logar.\n{FF0000}Bom jogo.{FFFFFF}"DonPegaNome(playerid));
                     
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Brasil RolePlay"String"Logar""{FF0000}Sair{FFFFFF}");
                }
           }
           case 
DIALOG_SEXO:
           {
                if(!
response)return ShowPlayerDialog(playeridDIALOG_SEXODIALOG_STYLE_LIST"{FFFFFF}Qual seu sexo ?""Masculino\nFeminino""Selecionar"#);
                
switch (listitem)
                {
                     case 
0:
                     {
                         
PlayerInfo[playerid][Sexo] = true;
                         
SetPlayerSkin(playeridSKININICIAL);
                         
PlayerInfo[playerid][Skin] = SKININICIAL;
                         
SpawnPlayer(playerid);
                         
SetSpawnInfo(playerid0PlayerInfo[playerid][Skin], PlayerInfo[playerid][Pos][0], PlayerInfo[playerid][Pos][1], PlayerInfo[playerid][Pos][2], 000000);
                         
SpawnPlayer(playerid);
                     }
                     case 
1:
                     {
                        
PlayerInfo[playerid][Sexo] = false;
                        
SetPlayerSkin(playeridSKININICIALF);
                        
PlayerInfo[playerid][Skin] = SKININICIALF;
                        
SpawnPlayer(playerid);
                        
SetSpawnInfo(playerid0PlayerInfo[playerid][Skin], PlayerInfo[playerid][Pos][0], PlayerInfo[playerid][Pos][1], PlayerInfo[playerid][Pos][2], 000000);
                        
SpawnPlayer(playerid);
                    }
                }
           }
           case 
DIALOG_EMPREGO:
           {
                if(!
response)return true;
                
format(Stringsizeof String,"{FFFFFF}Parabйns agora vocк trabalha de {FF0000}%s{FFFFFF}."Empregos[listitem+1][Nome]);
                
SendClientMessage(playerid, -1String);
                
PlayerInfo[playerid][Emprego] = listitem+1;
           } 
Ah antes que eu esqueзa eu quero ajuda nгo quero nego chorando que eu to usando DOF . Vlw
Reply
#2

Antes de qualquer coisa, porque usar DOF2... (Zoas )

@topic

Como estб as callback's OnGameModeInit/Exit (ou atй no Main()).
Se isso ocorre sу ao desligar o console o problema deve estar dentro de uma das duas, nгo?
Reply
#3

PHP код:
CallBacK::OnGameModeExit[]
{
    
DOF2_Exit();
    return 
1;

Da citadas apenas isto nada mais .
Reply
#4

Os dados sгo resetados OU ao iniciar o GM OU ao ser finalizado, lуgico.
Tente criar a conta normalmente e modificar os dados salvos (dinheiro, nнvel, etc).
Feito isso, desliga o console e veja se as informaзхes salvas ainda estгo lб.
Depois ligue o GM, abra o arquivo e veja se as informaзхes mudaram tambйm.
Sгo apenas essas duas hipуteses que vejo, nгo faz sentido resetar desta forma.
Reply
#5

Acredito que nгo resolverб, mas vale tentar:

Код:
public OnGameModeExit()
{
	foreach(new i : Player)
	{
		DonSalva[i];
	}
	return 1;
}
Reply
#6

Faзa um timer que salva todas as contas em certo tempo, uso e recomendo.
Reply
#7

[I]
Quote:
Originally Posted by F1N4L
Посмотреть сообщение
Os dados sгo resetados OU ao iniciar o GM OU ao ser finalizado, lуgico.
Tente criar a conta normalmente e modificar os dados salvos (dinheiro, nнvel, etc).
Feito isso, desliga o console e veja se as informaзхes salvas ainda estгo lб.
Depois ligue o GM, abra o arquivo e veja se as informaзхes mudaram tambйm.
Sгo apenas essas duas hipуteses que vejo, nгo faz sentido resetar desta forma.
Quote:
Originally Posted by AuhMaru
Посмотреть сообщение
Acredito que nгo resolverб, mas vale tentar:

Код:
public OnGameModeExit()
{
	foreach(new i : Player)
	{
		DonSalva;
	}
	return 1;
}


Vlw erro bisonho .
tinha visto alguns tutoriais da msm maneira que fiz a hora que eu me toquei que a posiзгo nгo estava bugando notei que o carregamento esta errado.
Correto :
PHP код:
PlayerInfo[playerid][Dinheiro] = DOF2_GetInt(EmGeral,"Dinheiro");
       
PlayerInfo[playerid][Nivel] = DOF2_GetInt(EmGeral,"Nivel");
       
PlayerInfo[playerid][Respeito] = DOF2_GetInt(EmGeral,"Respeito");
       
PlayerInfo[playerid][Sexo] = DOF2_GetBool(EmGeral,"Sexo");
       
PlayerInfo[playerid][Skin] = DOF2_GetInt(EmGeral,"Skin");
       
PlayerInfo[playerid][Pos][0] = DOF2_GetFloat(EmGeral,"X");
       
PlayerInfo[playerid][Pos][1] = DOF2_GetFloat(EmGeral,"Y");
       
PlayerInfo[playerid][Pos][2] = DOF2_GetFloat(EmGeral,"Z");
       
PlayerInfo[playerid][Interior] = DOF2_GetInt(EmGeral,"Interior");
       
PlayerInfo[playerid][TempoJogado] = DOF2_GetInt(EmGeral,"TJogado");
       
PlayerInfo[playerid][Emprego] = DOF2_GetInt(EmGeral,"Emprego"); 
Reply
#8

Nossa... Nem reparei que tava tentando passar por referкncia! LOOOOOOOL
Como eu disse, nгo faz sentido resetar ao iniciar/finalizar o console, sendo que mal tem a callback pra isso!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)