![]() |
[Ajuda] DOF2 - 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] DOF2 (/showthread.php?tid=3930) |
DOF2 - sabio - 28/08/2023 Bom dia! Estou fazendo o sistema de salvamento do meu servidor utilizando DOF2, Fiz o salvamento através do OnPlayerDisconnect, tudo certo até então, porém quando a host é desligada manualmente ou não, os dados não são salvos. Então fiz um loop na OnGameModeExit, percorrendo todos os players logados e salvando. Código PHP: for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++) { Mas mesmo assim não salva. Se alguém puder me ajudar com a solução ou me dizendo onde eu errei. RE: DOF2 - strelo - 28/08/2023 Bom dia! Parece que você está tentando resolver um problema de salvamento de dados em um servidor utilizando o DOF2. Seu código parece estar no caminho certo, mas pode haver algumas razões pelas quais os dados não estão sendo salvos corretamente. Vou tentar ajudar a identificar possíveis problemas e propor soluções: VerificarLogin Array: Certifique-se de que o array VerificarLogin está sendo preenchido corretamente ao identificar um jogador conectado e autenticado. Se ele não estiver sendo preenchido corretamente, os jogadores não serão identificados para salvamento. Indíces de Jogador: Lembre-se de que os índices de jogador em SA-MP começam em 0 e vão até o máximo de jogadores menos um. No seu loop, você está iterando até GetPlayerPoolSize(), que provavelmente retorna o número máximo de jogadores mais um. Certifique-se de ajustar seu loop para i < j em vez de i <= j. Função SalvarDados: Verifique se a função SalvarDados está corretamente definida e executando o salvamento de maneira adequada. Certifique-se de que os dados relevantes estejam sendo passados corretamente para a função e que o salvamento esteja ocorrendo sem erros. Debugging: Para identificar onde o problema pode estar ocorrendo, é recomendável adicionar mensagens de depuração ao seu código. Isso pode ajudar a verificar se o loop está sendo executado corretamente e se as condições estão sendo atendidas. Erros no Salvamento: Verifique os logs do seu servidor para possíveis mensagens de erro relacionadas ao salvamento. Isso pode fornecer informações valiosas sobre o que está acontecendo de errado. Timing: Lembre-se de que o tempo disponível na função OnGameModeExit pode ser limitado, dependendo da quantidade de jogadores conectados. Certifique-se de que o tempo de execução das operações de salvamento não exceda o tempo disponível. Aqui está uma versão corrigida do seu loop: Código: for (new i = 0, j = GetMaxPlayers(); i < j; i++) { Certifique-se de verificar todos esses pontos e realizar testes cuidadosos. Caso o problema persista, você pode precisar revisar sua implementação da função SalvarDados. RE: DOF2 - White_Blue - 29/08/2023 O DOF2 é bem chato para salvar na OnGameModeExit, pois o DOF2 é muito lento e quando você desliga o servidor, não dá tempo de salvar tudo, ainda mais se seu código de salvamento é mal feito. |