#include #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 #define COLOR_RED 0xAA3333AA #define COLOR_YELLOW 0xFFFF00AA #define COLOR_WHITE 0xFFFFFFAA #define COLOR_GREEN 0x00FF00AA forward xPing(); new mPing; public OnFilterScriptInit() { print("\n[-----------------] [-----------------]"); print(" Ping Kicker [Pixels^]"); print("[-----------------] [-----------------]\n"); mPing = 500; SetTimer("xPing",500,1); return 1; } public OnPlayerCommandText(playerid,cmdtext[]) { if(!IsPlayerAdmin(playerid)) return 0; dcmd(PingMax,7,cmdtext); return 1; } dcmd_PingMax(playerid,params[]) { new string[128]; if(!strlen(params)) { SendClientMessage(playerid,COLOR_WHITE,"[Sintax] /PingMax [Integer: Ping]"); return 1; } if(!IsNumeric(params)) { SendClientMessage(playerid,COLOR_RED,"[Error] The Ping must be an integer."); return 1; } mPing = strval(params); format(string,sizeof(string),"[Success] Max allowed ping has been changed to %d.",strval(params)); SendClientMessage(playerid,COLOR_GREEN,string); return 1; } IsNumeric(const string[]) { for (new i = 0, j = strlen(string); i < j; i++) if (string[i] > '9' || string[i] < '0') return 0; return 1; } public xPing() { for(new i=0; i mPing) { Count[i]++; if(Count[i] > 2) { GetPlayerName(i,player,24); format(string,sizeof(string),"* [Ping] %s has been kicked from the server due to ping over %d.",player,mPing); Kick(i); } } } }