05/11/2020 23:02
(02/11/2020 22:05)RodrigoMSR Escreveu: Esse problema é conhecido como RT (relógio travado) e não tem volta quando acontece.
Uma forma de detectar quando o jogador está dessincronizado (talvez não funcione, dependendo do APK):
https://portalsamp.com/showthread.php?tid=49
Rodrigo,
Eu fiz algo errado?
Eu do PC to tomando kick por RT:
inicio da GM
Código:
// tempo parado 1
static
bool:IsPlayerSynced[MAX_PLAYERS],
PlayerAmmo[MAX_PLAYERS],
PlayerUpdateTick[MAX_PLAYERS];
OnPlayerUpdate
Código:
// tempo parado 2
if(LogadoRec[playerid] == false)
{
// detect if player is synced
if(gettime() > PlayerUpdateTick[playerid]) {
static current_weapon, current_ammo;
PlayerUpdateTick[playerid] = gettime() + 2;
GetPlayerWeaponData(playerid, 0, current_weapon, current_ammo);
IsPlayerSynced[playerid] = (current_ammo != PlayerAmmo[playerid]);
SetPlayerAmmo(playerid, current_weapon, !current_ammo);
PlayerAmmo[playerid] = current_ammo;
}
// tempo parado 3
// punish player unsynced
if(IsPlayerSynced[playerid] == false) {
SendClientMessage(playerid, COLOR_LIGHTRED, "TEMPO PARADO, DESCONECTADO!");
new PlayerIP[20];
GetPlayerIp(playerid, PlayerIP, sizeof PlayerIP);
BlockIpAddress(PlayerIP, 3 * 60 * 1000);
}
}
OnPlayerConnect
Código:
IsPlayerSynced[playerid] = true; // tempo parado 4