05.12.2017, 00:30
Quote:
Jogadores desincronizados vгo continuar mandando atualizaзхes, por isso ainda й possнvel vк-los se movendo, entгo a callback vai continuar sendo chamada.
|
Quote:
A melhor coisa que eu consegui fazer atй agora foi isso.
Mas nгo tenho certeza se й seguro. Code:
#include <a_samp> new PacketAltoAvisos[MAX_PLAYERS]; public OnPlayerConnect(playerid) { PacketAltoAvisos[playerid] = 0; return 1; } public OnPlayerUpdate(playerid) { if(!IsPlayerNPC(playerid)) { new szString[144], Float:Pocket, Nome[24]; GetPlayerPacketloss(playerid,Pocket); if(Pocket >= 8.0) { PacketAltoAvisos[playerid] ++; if(PacketAltoAvisos[playerid] >= 8) { GetPlayerName(playerid, Nome, 24); format(szString, sizeof(szString), "[Aviso]: %s(id:%d) Possнvelmente estб de RT - Packet Loss: %0.1f", Nome, playerid, Pocket); SendClientMessageToAll(-1, szString); } } else PacketAltoAvisos[playerid] = 0; } return 1; } stock GetPlayerPacketloss(playerid,&Float:packetloss) { /* Returns the packetloss percentage of the given playerid - Made by Fusez */ if(!IsPlayerConnected(playerid)) return 0; new nstats[400+1], nstats_loss[20], start, end; GetPlayerNetworkStats(playerid, nstats, sizeof(nstats)); start = strfind(nstats,"packetloss",true); end = strfind(nstats,"%",true,start); strmid(nstats_loss, nstats, start+12, end, sizeof(nstats_loss)); packetloss = floatstr(nstats_loss); return 1; } |