Advertisement
iPLEOMAX

"arec.inc" (V1) (iPLEOMAX)

Aug 11th, 2011
1,166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.47 KB | None | 0 0
  1. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=//
  2. /* ANTI-RECONNECT - © iPLEOMAX 2011 */
  3. /* Do not remove the credits!       */
  4. //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=//
  5.  
  6. #if !defined _samp_included
  7.     #tryinclude <a_samp>
  8.     #if !defined _samp_included
  9.         #error a_samp.inc must be included before using this.
  10.     #endif
  11. #endif
  12.  
  13. /*
  14. native ARKick(playerid);
  15. native ARConnect(playerid);
  16. native ARDisconnect(playerid);
  17. native ARIgnore(playerid);
  18. */
  19.  
  20. #define ARConnect(%0) AR_OnPlayerConnect(%0)
  21. #define ARDisconnect(%0) AR_OnPlayerDisconnect(%0)
  22. #define ARIgnore(%0) IPDATA[%0][Ignore] = true
  23.  
  24. #define MAX_R_ATTEMPTS 3
  25. //Continously Disconnect and Connect, how many times should it happen before crashing him? Default: 3
  26. #define STATUS_SECONDS 20
  27. //Time before the Success/Fail Message is shown. Default: 20
  28. #define RESET_CHECK 10
  29. //Time after the IP which is saved in var gets reset. (If you set it 0, it will save forever until the slot gets a new player)
  30.  
  31. #define PUB:%1(%2) forward %1(%2); public %1(%2) //Thanks to "Mean" I got it from him.
  32.  
  33. enum IP_DATA
  34. {
  35.     IP_ADDRESS[16],
  36.     bool:Crashing,
  37.     bool:Ignore
  38. };
  39.  
  40. new
  41.     IPDATA[MAX_PLAYERS][IP_DATA],
  42.     Text:CrashTD,
  43.     JoinAttempts,
  44.     JoinIP[16]
  45. ;
  46.  
  47. PUB:AR_OnPlayerConnect(playerid)
  48. {
  49.     new CurIP[16]; GetPlayerIp(playerid, CurIP, sizeof CurIP);
  50.     for(new i=0; i<MAX_PLAYERS; i++)
  51.     {
  52.         if(strlen(IPDATA[i][IP_ADDRESS]) > 2 && !strcmp(CurIP,IPDATA[i][IP_ADDRESS],false))
  53.         {
  54.             printf("[info] ID %i possibly reconnected after Kick.",playerid);
  55.             CrashPlayer(playerid, CurIP);
  56.             break;
  57.         }
  58.     }
  59.     if (!strcmp(CurIP, JoinIP, false))
  60.     {
  61.         JoinAttempts++;
  62.         if (JoinAttempts >= MAX_R_ATTEMPTS)
  63.         {
  64.             CrashPlayer(playerid, CurIP);
  65.         }
  66.     } else JoinAttempts = 0;
  67.     GetPlayerIp(playerid, JoinIP, sizeof(JoinIP));
  68.     return true;
  69. }
  70.  
  71. PUB:AR_OnPlayerDisconnect(playerid)
  72. {
  73.     TextDrawHideForPlayer(playerid, CrashTD);
  74.     IPDATA[playerid][Crashing] = false;
  75.     IPDATA[playerid][Ignore] = false;
  76.     return true;
  77. }
  78.  
  79. PUB:CrashPlayer(playerid, playerIP[])
  80. {
  81.     if(IPDATA[playerid][Crashing]) return true;
  82.     IPDATA[playerid][Crashing] = true;
  83.     printf("[info] Attempting to crash ID%i with IP:[%s] (ANTI-RECONNECT)",playerid,playerIP);
  84.     GameTextForPlayer(playerid, "~HAX#",1000,3); // 1337 K1dz l1k3 $p@mz!1!1
  85.     GameTextForPlayer(playerid, "~DIE*** ~HAHA",1000,3);
  86.     GameTextForPlayer(playerid, "SUCKER! ~xD",1000,3);
  87.     TextDrawDestroy(CrashTD);
  88.     CrashTD = TextDrawCreate(320,240,"~WTF");
  89.     TextDrawShowForPlayer(playerid, CrashTD);
  90.     SetTimerEx("CrashStatus",STATUS_SECONDS*1000,false,"ds",playerid,playerIP);
  91.     return true;
  92. }
  93.  
  94. PUB:CrashStatus(playerid, playerIP[])
  95. {
  96.     new CurIP[16]; GetPlayerIp(playerid, CurIP, sizeof CurIP);
  97.     if(IsPlayerConnected(playerid) && !strcmp(CurIP,playerIP,false))
  98.     { printf("[info] Unable to crash ID%i. [FAIL]",playerid); }
  99.     else
  100.     { printf("[info] Crashed ID %i [%s]. [SUCCESS]",playerid,playerIP); }
  101.     return true;
  102. }
  103.  
  104. PUB:ARKick(playerid)
  105. {
  106.     if(!IPDATA[playerid][Ignore])
  107.     {
  108.         GetPlayerIp(playerid, IPDATA[playerid][IP_ADDRESS], 16);
  109.         new rchck = RESET_CHECK;
  110.         if(rchck != 0) SetTimerEx("ResetIPSlot", RESET_CHECK*1000, false, "d", playerid);
  111.     }
  112.     printf("[AR-iPLEOMAX]: ARKick has been used on ID %i",playerid);
  113.     Kick(playerid);
  114.     return true;
  115. }
  116.  
  117. PUB:ResetIPSlot(ipslotid)
  118. {
  119.     printf("[info] Resetted saved IP Slot %i [%s]",ipslotid, IPDATA[ipslotid][IP_ADDRESS]);
  120.     format(IPDATA[ipslotid][IP_ADDRESS],16,"_");
  121.     return true;
  122. }
  123.  
  124. /* Enjoy! */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement