[Ajuda] Conta Resetando Quando Desliga Servidor Pelo Console
#1

Galera й seguinte, quando eu desligo o servidor pelo Console, ele ta resetando tudo, por exemplo, digamos que eu criei um comando para dar Score, dei 10 de score, ai eu fecho o servidor pelo console, ai ao em vez de estar Level = 10 ele fica Level = 0 eu nгo sei por que estб acontecendo sendo que... quando eu deslogo pelo /q ele salva de boas, alguйm me ajuda nisso, por favor
Reply
#2

O seu cуdigo de salvamento estб no OnPlayerDisconnect?

Se sim, tente usar esse cуdigo dentro do OnGameModeExit para que o OnPlayerDisconnect seja chamado pra cada jogador quando desligar o servidor pelo console.
Код:
for (new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
	{
		if (IsPlayerConnected(i))
		{
			OnPlayerDisconnect(i, 1);
		}
	}
Mas й sempre melhor salvar esse tipo de coisa logo que for atualizado no jogo (por exemplo, sempre que der score ou dinheiro, salvar o novo valor diretamente) em vez de fazer o salvamento apenas quando o jogador se desconectar.
Reply
#3

Mano, ainda nгo estб salvando, olha o meu comando e olha como eu estou salvando.

PHP код:
CMD:level(playerid)
{
    
SetPlayerScore(playerid10);
    
PlayerInfo[playerid][pLevel] = 10;
    return 
1;
}

stock SalvarPlayer(playerid)
{
    new 
Arquivo[40], string[200],
      
dia,mes,ano,hora,mins,seg;
      
getdate(ano,mes,dia);
    
gettime(hora,mins,seg);
    
format(Arquivosizeof(Arquivo), "Contas/%s.ini"NomePlayer(playerid));
    if(
DOF2_FileExists(Arquivo))
    {
        
PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
        
DOF2_SetInt(Arquivo"Level"PlayerInfo[playerid][pLevel]);
        
DOF2_SetInt(Arquivo"AdminLevel"PlayerInfo[playerid][pAdmin]);
        
DOF2_SetString(Arquivo,"Funcao",PlayerInfo[playerid][pFuncao]);
        
DOF2_SetInt(Arquivo,"DonateRank",PlayerInfo[playerid][pVIP]);
        
DOF2_SetInt(Arquivo,"ConnectedTime"PlayerInfo[playerid][pConnectTime]);
        
DOF2_SetInt(Arquivo,"Muted"PlayerInfo[playerid][pMuted]);
        
DOF2_SetInt(Arquivo,"Money"PlayerInfo[playerid][pCash]);
        
DOF2_SetInt(Arquivo,"Kills"PlayerInfo[playerid][pKills]);
        
DOF2_SetInt(Arquivo,"Deaths"PlayerInfo[playerid][pDeaths]);
        
DOF2_SetInt(Arquivo,"DiasVIP",PlayerInfo[playerid][pDiaVIP]);
        
DOF2_SetInt(Arquivo,"diasvip",PlayerInfo[playerid][pDiasvip]);
        
DOF2_SetInt(Arquivo,"MesVIP",PlayerInfo[playerid][pMesVIP]);
        
DOF2_SetInt(Arquivo,"AnoVIP",PlayerInfo[playerid][pAnoVIP]);
        
DOF2_SetInt(Arquivo,"Jailed"PlayerInfo[playerid][pJailed]);
        
DOF2_SetBool(Arquivo,"Observacao",PlayerInfo[playerid][pObservacao]);
        
DOF2_SetInt(Arquivo,"Avisos"PlayerInfo[playerid][pWarns]);
           
format(stringsizeof(string),"%02d/%02d/%d as %02d:%02d:%02d",dia,mes,ano,hora,mins,seg);
        
DOF2_SetString(Arquivo,"LU"string);
        
DOF2_SetInt(Arquivo,"AcP"PlayerInfo[playerid][pAcP]);
        
DOF2_SetBool(Arquivo,"Radio",PlayerInfo[playerid][pRadio]);

        
DOF2_SaveFile();
    }
    return 
1;

Reply
#4

Coloca:
Quote:

SalvarPlayer(playerid);

na
Quote:

public OnPlayerDisconnect(playerid, reason)

Reply
#5

Quote:
Originally Posted by capron
Посмотреть сообщение
Coloca:

na
Jб tem isso mano, como eu disse, ele salva quando o player se desconecta, dando /q mas se for desligar o servidor pelo Console, ele reseta.
Reply
#6

PHP код:
CMD:level(playerid)
{
    
SetPlayerScore(playerid10);
    
PlayerInfo[playerid][pLevel] = 10;
    
SalvarPlayer(playerid);
    return 
1;

Reply
#7

Quote:
Originally Posted by capron
Посмотреть сообщение
PHP код:
CMD:level(playerid)
{
    
SetPlayerScore(playerid10);
    
PlayerInfo[playerid][pLevel] = 10;
    
SalvarPlayer(playerid);
    return 
1;

Ta, isso foi o que o FelipeUmpierre falou, setar e jб salvar, mas tipo, esse comando eu sу criei para teste, pois nгo й apenas o Score/Level que reseta.

Uma coisa que eu estava pensando era... eu colocar o SalvarPlayer(playerid); na public OnPlayerUpdate mas jб ouvi falarem que nгo й recomendado, verdade ou nгo?
Reply
#8

Quote:
Originally Posted by WiliHacking
Посмотреть сообщение
Ta, isso foi o que o FelipeUmpierre falou, setar e jб salvar, mas tipo, esse comando eu sу criei para teste, pois nгo й apenas o Score/Level que reseta.

Uma coisa que eu estava pensando era... eu colocar o SalvarPlayer(playerid); na public OnPlayerUpdate mas jб ouvi falarem que nгo й recomendado, verdade ou nгo?
Isso pode causar um lag no seu servidor, geralmente a callbacok OnPlayerUpdate й chamada cerca de 10x por segundo.

Tente usar
PHP код:
for (new 0<= GetPlayerPoolSize(); i++)
{
    if (
IsPlayerConnected(i))
    {
        
SalvarPlayer(i);
    }

Na callback OnGameModeExit
Reply
#9

Quote:
Originally Posted by WiliHacking
Посмотреть сообщение
Ta, isso foi o que o FelipeUmpierre falou, setar e jб salvar, mas tipo, esse comando eu sу criei para teste, pois nгo й apenas o Score/Level que reseta.

Uma coisa que eu estava pensando era... eu colocar o SalvarPlayer(playerid); na public OnPlayerUpdate mas jб ouvi falarem que nгo й recomendado, verdade ou nгo?
Mas, nгo vejo problema em salvar todos, funciona normalmente..

Nгo й recomendado pois o OnPlayerUpdate й chamado a cada 30 milissegundos, ou seja muito rбpido. As vezes pode causar lag.
Reply
#10

Quote:
Originally Posted by FallweN
Посмотреть сообщение
Isso pode causar um lag no seu servidor, geralmente a callbacok OnPlayerUpdate й chamada cerca de 10x por segundo.

Tente usar
PHP код:
for (new 0<= GetPlayerPoolSize(); i++)
{
    if (
IsPlayerConnected(i))
    {
        
SalvarPlayer(i);
    }

Na callback OnGameModeExit
Ainda nгo ta dando.

@edit Eu vou tirar umas print para vocкs verem.
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)