19/12/2022 22:09
(Esta mensagem foi modificada pela última vez a: 19/12/2022 22:11 por White_Blue.)
(19/12/2022 21:23)Carlos Victor Escreveu: Legal a iniciativa, portanto cria timer para cada jogador, dependendo do tanto de jogadores tem em um servidor, vai ocasionar em um uso de processamento alto, causando lag no servidor.
Você poderia simplesmente criar um timer global e fazer um loop dentro dessa timer, de forma simples, fácil e rápido.
Código:public OnGameModeInit()
{
SetTimer("OnVerifyMoneyHack", 1000, true);
return 1;
}
forward OnVerifyMoneyHack();
public OnVerifyMoneyHack()
{
for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) {
if(GetPlayerMoney(i) != PlayerInfo[i][pMoney])
{
ResetPlayerMoney(i);
GivePlayerMoney(i, PlayerInfo[i][pMoney]);
}
}
return 1;
}
Dessa forma, além de diminuir o processamento, vai pegar todos os jogadores conectados, você pode também adicionar novas verificações, novos métodos, e também usar um looping mais otimizado, usar um foreach por exemplo.
Funcionaria em teoria, entretanto, é mais otimizado como dito acima você usar `foreach` ao invés do loop `for` comum e também é mais otimizado você não chamar o timer na OnGameModeInit, mas sim criar um playertimer e chamar na OnPlayerConnect e depois executar um KillTimer na OnPlayerDisconnect.
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.