LeXuZ_

Ping kicker

May 9th, 2015
385
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 1.45 KB | None | 0 0
  1. #define FILTERSCRIPT
  2. #define SCM SendClientMessage
  3. #include <a_samp>
  4. #define MAX_PING 600
  5. #define C_R     "{0000FF}"
  6. new Ping[MAX_PLAYERS];
  7. new PingTimer[MAX_PLAYERS];
  8.  
  9. public OnFilterScriptInit()
  10. {
  11.     for(new i = 0; i < MAX_PLAYERS; i++)
  12.     {
  13.     PingTimer[i] = SetTimerEx("pingchecktimer", 2000, true, "i", i);
  14.     }
  15.     return 1;
  16. }
  17.  
  18. public OnFilterScriptExit()
  19. {
  20.     for(new i = 0; i < MAX_PLAYERS; i++)
  21.     {
  22.     KillTimer(PingTimer[i]);
  23.     }
  24.     return 1;
  25. }
  26.  
  27. public OnPlayerConnect(playerid)
  28. {
  29.     PingTimer[playerid] = SetTimerEx("pingchecktimer", 2000, true, "i", playerid);
  30.     return 1;
  31. }
  32.  
  33. public OnPlayerDisconnect(playerid, reason)
  34. {
  35.     KillTimer(PingTimer[playerid]);
  36.     return 1;
  37. }
  38.  
  39. forward pingchecktimer(playerid);
  40. public pingchecktimer(playerid)
  41. {
  42.     new str[128];
  43.     Ping[playerid] = GetPlayerPing(playerid);
  44.     if(IsPlayerAdmin(playerid) && Ping[playerid] > MAX_PING)
  45.     {
  46.         format(str, sizeof str, "You have had a ping spike! Current Ping: %d", GetPlayerPing(playerid));
  47.         SendClientMessage(playerid, -1, str);
  48.     }
  49.     else if(Ping[playerid] > MAX_PING)
  50.     {
  51.         format(str, sizeof str, ""C_R"You have been kicked for high ping (%d)", Ping[playerid]);
  52.         KickWithMessage(playerid, str);
  53.     }
  54.     return 1;
  55. }
  56.  
  57. forward KickPublic(playerid);
  58. public KickPublic(playerid)
  59. {
  60.     Kick(playerid);
  61.     return 1;
  62. }
  63.  
  64. stock KickWithMessage(playerid, message[])
  65. {
  66.     SCM(playerid, -1, message);
  67.     SetTimerEx("KickPublic", 100, 0, "d", playerid);
  68. }
Advertisement
Add Comment
Please, Sign In to add comment