21/04/2023 23:41
(21/04/2023 22:10)Daniell_Samp Escreveu:(21/04/2023 20:31)Carlos Victor Escreveu: Primeiramente, você está fazendo um papelão em colocar essa coisa na OnPlayerUpdate, uma callback que é constantemente chamada, em média 30 vezes por segundo, podendo causar um grande lag em seu servidor e alto consumo de processamento, para evitar esse problema aí, melhor criar um timer ou então, tirar isso daí e salvar a organização quando o jogador receber TAG ou quando ele desconectar.
n consegui compreeender ;-; tem outra public pra fazer isso ?
Se você está salvando na callback OnPlayerUpdate, tire imediatamente. A OnPlayerUpdate é chamada milhares de vezes durante a execução do programa, causando graves problemas de performance. Para salvar, você pode simplesmente criar duas funções para salvar os dados quando o player desconectar na OnPlayerDisconnect e carregar os dados na OnPlayerSpawn.
Ou criar um timer que faça o salvamento em X segundos.
Exemplo usando timer:
Código PHP:
new _TimerSave[MAX_PLAYERS] = 0;
forward SaveData(playerid);
public SaveData(playerid) {
// Código do salvamento aqui
return 1;
}
public OnPlayerSpawn(playerid) {
_TimerSave[playerid] = SetTimerEx("SaveData", 5000, true, "i", playerid); // Executa o código dentro da callback "SaveData" à cada 5 segundos...
return 1;
}
public OnPlayerDisconnect(playerid, reason) {
KillTimer(_TimerSave[playerid]);
return 1;
}
Exemplo salvando o jogador ao desconectar e carregando os dados quando ele conectar:
Código PHP:
stock SaveData(playerid) {
// Código do salvamento aqui
return 1;
}
stock LoadData(playerid) {
// Código do carregamento de dados aqui
return 1;
}
public OnPlayerSpawn(playerid) {
LoadData(playerid);
return 1;
}
public OnPlayerDisconnect(playerid, reason) {
SaveData(playerid);
return 1;
}
Não estou disponível para realizar serviços relacionados ao SA-MP e não costumo responder a mensagens privadas, a menos que estejam relacionadas à moderação do fórum.