#include #define MAX_PING 350 #define ProtectAdmins true #define RefreshRate 1000 forward PingTimer(); new CanPing[MAX_PLAYERS][2]; public OnFilterScriptInit() { print("\n----------------------------------"); print(" Ramjet's Ping Kicker. v1.0"); print("----------------------------------\n"); SetTimer("PingTimer", RefreshRate, true); return 1; } public PingTimer() { print("Running."); for(new i; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(CanPing[i][1] && !CanPing[i][0]) { CanPing[i][1] = false; CanPing[i][0] = true; continue; } if(CanPing[i][0]) { new ping = GetPlayerPing(i); if(ping >= MAX_PING) { if(ProtectAdmins && IsPlayerAdmin(i)) return; new pname[MAX_PLAYER_NAME], string[256]; GetPlayerName(i, pname, sizeof(pname)); format(string, sizeof(string), "YOU (%s) have been booted from the server (Pink Kicked (%dms)).", pname, ping); SendClientMessage(i, 0xFFFF00AA, string); Kick(i); } } } } } public OnPlayerSpawn(playerid) { if(!CanPing[playerid][0]) CanPing[playerid][1] = true; return 1; } public OnPlayerConnect(playerid) { for(new i; i < sizeof(CanPing[]); i++) CanPing[playerid][i] = false; return 1; }