[Ajuda] Galera problemas com dof2
#1

O dof2 esta bugando
de vez enquando aparece uma conta com tudo resetado mais a maioria quase todas salvam tudo normal


eu estava fazendo um timer na ongamemodeinit para salvar as contas, mas agora eu tirei esse time e fiz um loop na
OnPlayerUpdate

Sera q vai resolver ?

PHP Code:

public OnPlayerUpdate(playerid)
{
    for(new 
0i<MAX_PLAYERSi++)
    {
        
SalvarDados(i);
    }
    return 
1;

PHP Code:

stock SalvarDados
(playerid)
{
    new 
arquivo[50];
    
format(arquivo50"Contas/%s.ini",PegarNome(playerid));
     if(!
DOF2_FileExists(arquivo)) DOF2_CreateFile(arquivo);
     else
      {
          
format(Player[playerid][pSenha], 50DOF2_GetString(arquivo"senha"));
          
        
DOF2_SetString(arquivo"senha"Player[playerid][pSenha]);
        
DOF2_SetInt(arquivo"skin"GetPlayerSkin(playerid));
        
DOF2_SetInt(arquivo"dinheiro"GetPlayerMoney(playerid));
        
DOF2_SetInt(arquivo"adminlevel"Player[playerid][pAdminlevel]);
        
DOF2_SetInt(arquivo"vip"Player[playerid][pVip]);
        
DOF2_SetInt(arquivo"emprego"Player[playerid][pEmprego]);
        
DOF2_SetInt(arquivo"respeito"Player[playerid][pRespeito]);
        
DOF2_SetInt(arquivo"level"Player[playerid][pLevel]);
        
DOF2_SetInt(arquivo"preso"Player[playerid][pPreso]);
        
DOF2_SaveFile();
    }
    return 
true;

Vou testar aqui se vai resolver se alguem souber uma forma de resolver isso me qajuda aii pffffffffff
Reply
#2

Fecha por GMX, se for colocar no OnPlayerUpdate й loucura, vai ser chamado um loop de 1k de players em S a cada update q os players sofrerem, se vc fecha o servidor pelo console direto sem GMX, vai bugar, fecha com GMX.
Coloca esse code no OnGamemodeExit e salva normal pelo OnPlayerDisconnect.
Reply
#3

Quote:
Originally Posted by Felipealves
View Post
Fecha por GMX, se for colocar no OnPlayerUpdate й loucura, vai ser chamado um loop de 1k de players em S a cada update q os players sofrerem, se vc fecha o servidor pelo console direto sem GMX, vai bugar, fecha com GMX.
Coloca esse code no OnGamemodeExit e salva normal pelo OnPlayerDisconnect.
Assim?

PHP Code:
public OnGameModeExit()
{
    for(new 
0i<MAX_PLAYERSi++)
    {
        
SalvarDados(i);
    }
    
DOF2_Exit();
    return 
1;

Mano me veio uma coisa na cabeзa se ele salvar em quanto esta conectado mas nao spawnado ? pq as info dele so carrega se quando ele spawna, SERA ISSO ? Se for como posso resolver ? alguem
Reply
#4

Quote:
Originally Posted by moura98
View Post
PHP Code:

public OnPlayerUpdate(playerid)
{
    for(new 
0i<MAX_PLAYERSi++)
    {
        
SalvarDados(i);
    }
    return 
1;

Jesuuus, imagina o lag? kkkkkkkkkkkkkk
Reply
#5

PHP Code:
public OnGameModeInit()
{
    
SetTimer("SalvarTudo"1000false);
    return 
1;
}

forward SalvarTudo();
public 
SalvarTudo()
{
    for(new 
iMAX_PLAYERS; ++ i)
    {
        if(
IsPlayerConnected(i) && PlayerData[i][pLogado] == true)
        {
            
DOF2_SetInt(ContaPlayer(i), "Drogas"PlayerData[i][Drogas]);
        }
    }
    
SetTimer("SalvarTudo"1000false); // Eu recomendo usar o false, porque fica mais otimizado dentro do servidor.

Reply
#6

Quote:
Originally Posted by GuiKommander
View Post
PHP Code:
public OnGameModeInit()
{
    
SetTimer("SalvarTudo"1000false);
    return 
1;
}
forward SalvarTudo();
public 
SalvarTudo()
{
    for(new 
iMAX_PLAYERS; ++ i)
    {
        if(
IsPlayerConnected(i) && PlayerData[i][pLogado] == true)
        {
            
DOF2_SetInt(ContaPlayer(i), "Drogas"PlayerData[i][Drogas]);
        }
    }
    
SetTimer("SalvarTudo"1000false); // Eu recomendo usar o false, porque fica mais otimizado dentro do servidor.

vlw +rep
Reply
#7

Quote:
Originally Posted by moura98
View Post
essa variavel PlayerData[i][pLogado] nao precisa salvar no dof2 ne
Nгo. Essa variбvel seria setada para '' true '' quando o player conseguir logar(acertar senha na tela de login), uma forma muito boa de saber se o player estб na tela de ''login''.
Reply
#8

Quote:
Originally Posted by GuiKommander
View Post
Nгo. Essa variбvel seria setada para '' true '' quando o player conseguir logar(acertar senha na tela de login), uma forma muito boa de saber se o player estб na tela de ''login''.
exato como eu pensei, mas e bom tirar as duvidas hjehe valeuuu
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)