Advertisement
ANDR3X

Anti Aimbot

Jul 19th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.15 KB | None | 0 0
  1. /**
  2.  * Creator  : ANDR3X
  3.  * For      : KillZone.fr
  4.  * Credits  : Zeex for ZCMD
  5.  */
  6.  
  7. /**
  8.  * INCLUDES
  9.  */
  10. #include <zcmd>
  11.  
  12. /**
  13.  * DEFINES
  14.  */
  15. #if !defined KEY_AIM
  16.     #define KEY_AIM                     (128)
  17. #endif
  18.  
  19. #if !defined HOLDING
  20.     #define HOLDING(%0)                 ((newkeys & (%0)) == (%0))
  21. #endif
  22.  
  23. #if !defined PRESSED
  24.     #define PRESSED(%0)                 (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  25. #endif
  26.  
  27. #if !defined RELEASED
  28.     #define RELEASED(%0)                (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
  29. #endif
  30.  
  31. #if !defined ALTCOMMAND
  32.     #define ALTCOMMAND:%1->%2;          COMMAND:%1(playerid, params[]) \
  33.                                         return cmd_%2(playerid, params);
  34. #endif
  35.  
  36. /**
  37.  * VARIABLES
  38.  */
  39. enum e_AimbotInfo
  40. {
  41.     bool: e_ON,
  42.     bool: e_KeyPressed,
  43.     e_Velocity[2]
  44. }
  45. new AimbotInfo[MAX_PLAYERS][e_AimbotInfo];
  46.  
  47. /**
  48.  * COMMANDS
  49.  */
  50. ALTCOMMAND:aimbot->aim;
  51. CMD:aim(playerid, params[])
  52. {
  53.     new id;
  54.     if(sscanf(params,"u", id))
  55.         return SendClientMessage(playerid, -1, "/aimbot <Pseudo / ID>");
  56.    
  57.     if(!IsPlayerConnected(id))
  58.         return SendClientMessage(playerid, -1, "Ce joueur n'est pas connecté");
  59.  
  60.     // vérifier si "id" est spawn
  61.  
  62.     if(AimbotInfo[id][e_ON])
  63.         return SendClientMessage(playerid, -1, "Veuillez réessayer");
  64.  
  65.     // Message aux admins (%s suspicion aimbot sur %s)
  66.     AimbotInfo[id][e_ON] = true;
  67.     return 1;
  68. }
  69.  
  70. /**
  71.  * HOOKED CALLBACKS
  72.  */
  73. // OnPlayerUpdate
  74. public OnPlayerUpdate(playerid)
  75. {
  76.     if(IsPlayerConnected(playerid))
  77.     {
  78.         if(AimbotInfo[playerid][e_Velocity][0] == 1)
  79.         {
  80.             AddPlayerVelocityDirection(AimbotInfo[playerid][e_Velocity][1], playerid, -0.9);
  81.         }
  82.         if(AimbotInfo[playerid][e_ON])
  83.         {
  84.             new id = GetPlayerTargetPlayer(playerid);
  85.             if(id != INVALID_PLAYER_ID)
  86.             {
  87.                 OnPlayerTarget(playerid, id);
  88.             }
  89.         }
  90.     }
  91.     #if defined AIM_OnPlayerUpdate
  92.         return AIM_OnPlayerUpdate(playerid);
  93.     #else
  94.         return 1;
  95.     #endif
  96. }
  97. #if defined AIM_OnPlayerUpdate
  98.     forward AIM_OnPlayerUpdate(playerid);
  99. #endif
  100. #if defined _ALS_OnPlayerUpdate
  101.     #undef OnPlayerUpdate
  102. #else
  103.     #define _ALS_OnPlayerUpdate
  104. #endif
  105. #define OnPlayerUpdate AIM_OnPlayerUpdate
  106.  
  107. // OnPlayerKeyStateChange
  108. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  109. {
  110.     if(HOLDING(KEY_AIM) && PRESSED(KEY_FIRE))
  111.         AimbotInfo[playerid][e_KeyPressed] = true;
  112.  
  113.     if((RELEASED(KEY_FIRE) || RELEASED(KEY_AIM)) && AimbotInfo[playerid][e_KeyPressed] == true)
  114.         AimbotInfo[playerid][e_KeyPressed] = false;
  115.  
  116.     #if defined AIM_OnPlayerKeyStateChange
  117.         return AIM_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  118.     #else
  119.         return 1;
  120.     #endif
  121. }
  122. #if defined AIM_OnPlayerKeyStateChange
  123.     forward AIM_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  124. #endif
  125. #if defined _ALS_OnPlayerKeyStateChange
  126.     #undef OnPlayerKeyStateChange
  127. #else
  128.     #define _ALS_OnPlayerKeyStateChange
  129. #endif
  130. #define OnPlayerKeyStateChange AIM_OnPlayerKeyStateChange
  131.  
  132. // OnPlayerConnect
  133. public OnPlayerConnect(playerid)
  134. {
  135.     AimbotInfo[playerid][e_Velocity][0] = 0;
  136.     AimbotInfo[playerid][e_Velocity][1] = 0;
  137.  
  138.     #if defined AIM_OnPlayerConnect
  139.         return AIM_OnPlayerConnect(playerid);
  140.     #else
  141.         return 1;
  142.     #endif
  143. }
  144. #if defined AIM_OnPlayerConnect
  145.     forward AIM_OnPlayerConnect(playerid);
  146. #endif
  147. #if defined _ALS_OnPlayerConnect
  148.     #undef OnPlayerConnect
  149. #else
  150.     #define _ALS_OnPlayerConnect
  151. #endif
  152. #define OnPlayerConnect AIM_OnPlayerConnect
  153.  
  154. // OnPlayerDeath
  155. public OnPlayerDeath(playerid, killerid, reason)
  156. {
  157.     if(AimbotInfo[playerid][e_ON])
  158.         AimbotInfo[playerid][e_ON] = false;
  159.  
  160.     #if defined AIM_OnPlayerDeath
  161.         return AIM_OnPlayerDeath(playerid, killerid, reason);
  162.     #else
  163.         return 1;
  164.     #endif
  165. }
  166. #if defined AIM_OnPlayerDeath
  167.     forward AIM_OnPlayerDeath(playerid, killerid, reason);
  168. #endif
  169. #if defined _ALS_OnPlayerDeath
  170.     #undef OnPlayerDeath
  171. #else
  172.     #define _ALS_OnPlayerDeath
  173. #endif
  174. #define OnPlayerDeath AIM_OnPlayerDeath
  175.  
  176. /**
  177.  * CALLBACKS
  178.  */
  179. forward ResetAimbot(targetID, Float:x, Float:y, Float:z, Float: hp);
  180. public ResetAimbot(targetID, Float:x, Float:y, Float:z, Float: hp)
  181. {
  182.     AimbotInfo[targetID][e_Velocity][0] = 0;
  183.     AimbotInfo[targetID][e_Velocity][1] = 0;
  184.  
  185.     SetPlayerPos(targetID, x, y, z);
  186.     SetPlayerHealth(targetID, hp);
  187. }
  188.  
  189. forward OnPlayerTarget(cheaterID, targetID);
  190. public OnPlayerTarget(cheaterID, targetID)
  191. {
  192.     if(AimbotInfo[cheaterID][e_ON] && AimbotInfo[cheaterID][e_KeyPressed])
  193.     {
  194.         new
  195.             Float: cheaterPos[3],
  196.             Float: targetPos[3],
  197.             Float: hp;
  198.        
  199.         GetPlayerHealth(targetID, hp);
  200.         SetPlayerHealth(targetID, 5000.0);
  201.  
  202.         GetPlayerPos(cheaterID, cheaterPos[0], cheaterPos[1], cheaterPos[2]);
  203.         GetPlayerPos(targetID, targetPos[0], targetPos[1], targetPos[2]);
  204.        
  205.         GetXYRightOfPlayer(cheaterID, 9.0, cheaterPos[0], cheaterPos[1]);
  206.         SetPlayerPos(targetID, cheaterPos[0], cheaterPos[1], cheaterPos[2] + 2.0);
  207.        
  208.         AimbotInfo[targetID][e_Velocity][0] = 1;
  209.         AimbotInfo[targetID][e_Velocity][1] = cheaterID;
  210.        
  211.         SetTimerEx("ResetAimbot", 300, 0, "dffff", targetID, targetPos[0], targetPos[1], targetPos[2], hp);
  212.         AimbotInfo[cheaterID][e_ON] = false;
  213.     }
  214. }
  215.  
  216. /**
  217.  * FUNCTIONS
  218.  */
  219. GetXYRightOfPlayer(playerid, Float: distance, &Float: x, &Float: y)
  220. {
  221.     new Float: a;
  222.     GetPlayerFacingAngle(playerid, a);
  223.  
  224.     a += 5.0;
  225.     x += floatmul(floatsin(-a, degrees), distance);
  226.     y += floatmul(floatcos(-a, degrees), distance);
  227. }
  228.  
  229. AddPlayerVelocityDirection(cheaterID, targetID, Float: power = -0.9)
  230. {
  231.     new
  232.         Float: x,
  233.         Float: y,
  234.         Float: z,
  235.         Float: a;
  236.    
  237.     GetPlayerVelocity(targetID, x, y, z);
  238.     GetPlayerFacingAngle(cheaterID, a);
  239.  
  240.     x += (power * floatcos(a, degrees));
  241.     y += (power * floatsin(a, degrees));
  242.    
  243.     SetPlayerVelocity(targetID, x, y, z);
  244. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement