02.12.2013, 12:10
Quote:
|
По-моему, лучше отлавливать 'Messages received', и получать разность каждую секунду.
Acks sent постепенно достигнет значения в 3000, и тогда будет плохо. А 'Messages received', на мой взгляд, самый надежный. |
PHP Code:
#include <a_samp>
new NET_Bytes[MAX_PLAYERS];
new NET_Warning[MAX_PLAYERS char];
new NET_Timer=-1;
public OnFilterScriptInit()
{
NET_Timer=SetTimer("NET", 955, 1);
return 1;
}
public OnFilterScriptExit()
{
KillTimer(NET_Timer);
NET_Timer=-1;
return 1;
}
public OnPlayerConnect(playerid)
{
NET_Warning{playerid}=0;
NET_Bytes[playerid]=0;
return 1;
}
forward NET();//В секундный таймер
public NET()
{
new pack[1024],pa[12];
for(new playerid=MAX_PLAYERS;playerid--;)if(IsPlayerConnected(playerid))
{
GetPlayerNetworkStats(playerid,pack,sizeof(pack));
new packet=strfind(pack,"Bytes received:")+16;
strmid(pa,pack,packet,packet+12);
packet=strval(pa);
if((packet-NET_Bytes[playerid]) > 3000)//3000 изменить на ваше желаемое.
{
++NET_Warning{playerid};
if(NET_Warning{playerid} == 2)
{
Kick(playerid);
print("Paket");
}
}
else NET_Warning{playerid}=0;
NET_Bytes[playerid]=packet;
}
}


