Advertisement
EdoKing

EDWARD ROSE ™️

Dec 22nd, 2019
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. =====================
  2. Edward Rose
  3. =====================
  4.  
  5. #include "a_samp.inc"
  6.  
  7. new var[MAX_PLAYERS] = {-1,...}, warns[MAX_PLAYERS] = {0,...}, bool:npc[MAX_PLAYERS] = {false,...}, MAX_PLAYERS_ = MAX_PLAYERS;
  8. public OnFilterScriptInit()
  9. {
  10. SendRconCommand("reloadbans");
  11. return 1;
  12. }
  13. public OnPlayerConnect(playerid)
  14. {
  15. if(CountIP(GetIP(playerid)) >= 6) return BanAll(playerid), 0;
  16. MAX_PLAYERS_ = playerid > MAX_PLAYERS_ ? playerid : GetHighestID(),
  17. npc[playerid] = bool:IsPlayerNPC(playerid),
  18. var[playerid] = SetTimerEx("BSS",2500,false,"i",playerid),
  19. warns[playerid] = 0;
  20. return 1;
  21. }
  22. public OnPlayerDisconnect(playerid, reason)
  23. {
  24. MAX_PLAYERS_ = GetHighestID(playerid);
  25. if(npc[playerid]) npc[playerid] = false;
  26. if(var[playerid] != -1)
  27. {
  28. KillTimer(var[playerid]);
  29. var[playerid] = -1;
  30. }
  31. warns[playerid] = 0;
  32. return 1;
  33. }
  34. stock CountIP(ip[])
  35. {
  36. new c = 0;
  37. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && !strcmp(GetIP(i),ip)) c++;
  38. return c;
  39. }
  40. forward BSS(playerid);
  41. public BSS(playerid)
  42. {
  43. new i = GetPlayerPing(playerid);
  44. if(i <= 0 || i >= 50000)
  45. {
  46. if(warns[playerid] >= 1) BanAll(playerid);
  47. else warns[playerid]++, var[playerid] = SetTimerEx("BSS",1500,false,"i",playerid);
  48. }
  49. return 0;
  50. }
  51. stock GetIP(playerid)
  52. {
  53. new ip[16];
  54. GetPlayerIp(playerid,ip,sizeof(ip));
  55. return ip;
  56. }
  57. stock BanAll(playerid)
  58. {
  59. new ip[32];
  60. GetPlayerIp(playerid,ip,sizeof(ip));
  61. for(new i = 0, p = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && !npc[i])
  62. {
  63. p = GetPlayerPing(i);
  64. if(i == playerid || !strcmp(ip,GetIP(i)) || p <= 0 || p >= 50000)
  65. {
  66. BanEx(i,"Bot");
  67. if(var[i] != -1)
  68. {
  69. KillTimer(var[i]);
  70. var[i] = -1;
  71. }
  72. }
  73. }
  74. format(ip,sizeof(ip),"banip %s",ip);
  75. return SendRconCommand(ip);
  76. }
  77. stock GetHighestID(exceptof = INVALID_PLAYER_ID)
  78. {
  79. new h = 0;
  80. for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && i != exceptof && i > h) h = i;
  81. return h;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement