Portal SAMP
[Ajuda] Salvar dados na OnGameModeExit - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Salvar dados na OnGameModeExit (/showthread.php?tid=3571)

Páginas: 1 2


Salvar dados na OnGameModeExit - GabrielCampos - 04/05/2023

Boa tarde! Estou fazendo o sistema de salvamento do meu servidor utilizando DOF2, Fiz o salvamento através do OnPlayerDisconnect certinho e está funcionando corretamente, mas eu gostaria de saber quando por acaso a host ou até mesmo o cmd fechar sozinho e o player estiver conectado ele acaba nao salvando os dados. Teria como eu colocar um sistema de salvamento quando acontecer isso também? Acaso a host cair, der algum problema e etc...

Obrigado


RE: Salvar dados na OnGameModeExit - xbruno1000x - 04/05/2023

Isso não é um problema mobile, portanto foi movido para a área correta.

Você precisa criar um looping na OnGameModeExit percorrendo todos jogadores e salvando seus dados.


RE: Salvar dados na OnGameModeExit - GabrielCampos - 04/05/2023

(04/05/2023 13:59)xbruno1000x Escreveu: Isso não é um problema mobile, portanto foi movido para a área correta.

Você precisa criar um looping na OnGameModeExit percorrendo todos jogadores e salvando seus dados.

Perdão por postar na área incorreta, falta de atenção minha. 

Poderia me mostrar um exemplo por gentileza para eu pegar como base ?


RE: Salvar dados na OnGameModeExit - AndradeScripter - 04/05/2023

(04/05/2023 17:01)GabrielCampos Escreveu:
(04/05/2023 13:59)xbruno1000x Escreveu: Isso não é um problema mobile, portanto foi movido para a área correta.

Você precisa criar um looping na OnGameModeExit percorrendo todos jogadores e salvando seus dados.

Perdão por postar na área incorreta, falta de atenção minha. 

Poderia me mostrar um exemplo por gentileza para eu pegar como base ?

Em OnGameModeExit:

Código:
for(new i=0; i<MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(PlayerDados[i][Logado])//Sua variavel do player logado
            {
                 SalvarConta(i);//Adapte sua Gm
            }
        }
    }



RE: Salvar dados na OnGameModeExit - GabrielCampos - 04/05/2023

(04/05/2023 19:46)AndradeScripter Escreveu:
(04/05/2023 17:01)GabrielCampos Escreveu:
(04/05/2023 13:59)xbruno1000x Escreveu: Isso não é um problema mobile, portanto foi movido para a área correta.

Você precisa criar um looping na OnGameModeExit percorrendo todos jogadores e salvando seus dados.

Perdão por postar na área incorreta, falta de atenção minha. 

Poderia me mostrar um exemplo por gentileza para eu pegar como base ?

Em OnGameModeExit:

Código:
for(new i=0; i<MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(PlayerDados[i][Logado])//Sua variavel do player logado
            {
                 SalvarConta(i);//Adapte sua Gm
            }
        }
    }
Agradeço muito  Big Grin


RE: Salvar dados na OnGameModeExit - Juniioor_Limma - 20/05/2023

(04/05/2023 13:59)xbruno1000x Escreveu: Isso não é um problema mobile, portanto foi movido para a área correta.

Você precisa criar um looping na OnGameModeExit percorrendo todos jogadores e salvando seus dados.

O mano, o meu também está acontecendo a mesma coisa não está salvando os dados quando o servidor reinicia etc, então eu fiz isso como você mandou o rapaz fazer só que continua não salvando.

public OnGameModeExit()
{
 for(new i=0; i<MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(PlayerInfo[i][Logado] == 1)
            {
                SalvarDados(i);//Adapte sua Gm
            }
        }
    }
    DOF2_Exit();
 return 1;
}


RE: Salvar dados na OnGameModeExit - White_Blue - 22/05/2023

Creio que não há lógica em salvar os dados na OnGameModeExit, tendo em vista que quando a mesma é chamada e o jogador é reconectado, a OnPlayerDisconnect é chamada.


RE: Salvar dados na OnGameModeExit - Carlos Victor - 25/05/2023

Quando a callback OnGameModeExit é chamada os jogadores não são reconectados, é necessário salvar os dados nela dos jogadores que estejam online, e também ela só será chamada em caso de desligamento manual pelo painel ou então GMX.

Código:
Código PHP:
public OnGameModeExit()
{
    for(new 
0GetPlayerPoolSize(); <= ji++) {
        if(
IsPlayerConnected(i) && PlayerInfo[i][Logado])
        {
            
SalvarDados(i);
            
SendClientMessage(i, -1"O servidor foi desligado manualmente e seus dados foram salvos.");
        }
    }
    return 
1;




RE: Salvar dados na OnGameModeExit - Juniioor_Limma - 28/05/2023

(25/05/2023 12:06)Carlos Victor Escreveu: Quando a callback OnGameModeExit é chamada os jogadores não são reconectados, é necessário salvar os dados nela dos jogadores que estejam online, e também ela só será chamada em caso de desligamento manual pelo painel ou então GMX.

Código:
Código PHP:
public OnGameModeExit()
{
    for(new 
0GetPlayerPoolSize(); <= ji++) {
        if(
IsPlayerConnected(i) && PlayerInfo[i][Logado])
        {
            
SalvarDados(i);
            
SendClientMessage(i, -1"O servidor foi desligado manualmente e seus dados foram salvos.");
        }
    }
    return 
1;


E se eu colocar esse, e não funcionar?

(22/05/2023 20:48)White_Blue Escreveu: Creio que não há lógica em salvar os dados na OnGameModeExit, tendo em vista que quando a mesma é chamada e o jogador é reconectado, a OnPlayerDisconnect é chamada.

Então, o que eu devo fazer?


RE: Salvar dados na OnGameModeExit - Carlos Victor - 28/05/2023

Citar:E se eu colocar esse, e não funcionar?

Vai funcionar, quando a callback OnGameModeExit for chamada, vai rodar um looping em todos os jogadores e claro, se eles estiverem conectados e logados (utilizei um variável aleatória) vão ter seus dados salvos. Eu te dei apenas um exemplo, você deverá adaptar a suas funções e variáveis.

Citar:Então, o que eu devo fazer?

Você deve salvar os dados dos jogadores na callback OnGameModeExit por que ela não chama a OnPlayerDisconnect como dito pelo @White_Blue, acredito que ela tenha se confundido.