Advertisement
Guest User

Anticheat

a guest
Mar 21st, 2011
3,074
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 7.14 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #if defined _GAC_included
  4.     #endinput
  5. #endif
  6. #define _GAC_included
  7.  
  8. #if defined FILTERSCRIPT
  9.  
  10.     stock GivePlayerWeaponEx(playerid,weaponid,ammo)
  11.     {
  12.         return CallToRemoteFunction("GivePlayerWeaponEx","iii",playerid,weaponid,ammo);
  13.     }
  14.  
  15.     #define GivePlayerWeapon GivePlayerWeaponEx
  16.  
  17. #else
  18.  
  19.     #define MAX_CLASS 300 // change if needed
  20.  
  21.     static
  22.         bool:PlayerWeapons[MAX_PLAYERS][47],
  23.         bool:Spawned[MAX_PLAYERS],
  24.         WeaponPickup[MAX_PICKUPS],
  25.         ClassWeapons[MAX_CLASS][3],
  26.         PlayerClass[MAX_PLAYERS];
  27.  
  28.  
  29.  
  30.     public OnPlayerConnect(playerid)
  31.     {
  32.           for(new i=0;i<47;i++) PlayerWeapons[playerid][i]=false; // clears the value
  33.           Spawned[playerid]=false;
  34.           return CallLocalFunction("GAC_OnPlayerConnect", "i", playerid);
  35.     }
  36.  
  37.     forward GAC_OnPlayerConnect(playerid);
  38.  
  39.     #if defined _ALS_OnPlayerConnect
  40.         #undef OnPlayerConnect
  41.     #else
  42.         #define _ALS_OnPlayerConnect
  43.     #endif
  44.     #define OnPlayerConnect GAC_OnPlayerConnect
  45.  
  46.  
  47.  
  48.     public OnPlayerSpawn(playerid)
  49.     {
  50.         for(new i;i<3;i++) PlayerWeapons[playerid][ClassWeapons[PlayerClass[playerid]][i]]=true;
  51.         SetTimerEx("RealSpawn",800,false,"i",playerid);
  52.         return CallLocalFunction("GAC_OnPlayerSpawn", "i", playerid);
  53.     }
  54.  
  55.     forward GAC_OnPlayerSpawn(playerid);
  56.     #if defined _ALS_OnPlayerSpawn
  57.         #undef OnPlayerSpawn
  58.     #else
  59.         #define _ALS_OnPlayerSpawn
  60.     #endif
  61.     #define OnPlayerSpawn GAC_OnPlayerSpawn
  62.  
  63.  
  64.     public OnPlayerStateChange(playerid, newstate, oldstate)
  65.     {
  66.         if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
  67.         {
  68.             switch(GetVehicleModel(GetPlayerVehicleID(playerid)))
  69.             {
  70.                 case 592,577,511,512,520,593,553,476,519,460,513,548,425,417,487,488,497,563,447,469: PlayerWeapons[playerid][46]=true;
  71.                 case 457: PlayerWeapons[playerid][2]=true;
  72.                 case 596,597,598,599: PlayerWeapons[playerid][25]=true;
  73.             }
  74.         }
  75.         return CallLocalFunction("GAC_OnPlayerStateChange", "iii", playerid, newstate, oldstate);
  76.     }
  77.  
  78.     forward GAC_OnPlayerStateChange(playerid,newstate,oldstate);
  79.     #if defined _ALS_OnPlayerStateChange
  80.         #undef OnPlayerStateChange
  81.     #else
  82.         #define _ALS_OnPlayerStateChange
  83.     #endif
  84.     #define OnPlayerStateChange GAC_OnPlayerStateChange
  85.  
  86.  
  87.     forward RealSpawn(playerid);
  88.     public RealSpawn(playerid) Spawned[playerid]=true;
  89.  
  90.  
  91.     public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  92.     {
  93.         if(newkeys & KEY_FIRE)
  94.         {
  95.             if(Spawned[playerid])
  96.             {
  97.                  static weapon;
  98.                  weapon = GetPlayerWeapon(playerid);
  99.                  if(!PlayerWeapons[playerid][weapon] && weapon != 40 && weapon != 0) BanEx(playerid,"Weapon Cheats");
  100.  
  101.             }
  102.         }
  103.         return CallLocalFunction("GAC_OnPlayerKeyStateChange", "iii", playerid, newkeys, oldkeys);
  104.     }
  105.     forward GAC_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  106.     #if defined _ALS_OnPlayerKeyStateChange
  107.         #undef OnPlayerKeyStateChange
  108.     #else
  109.         #define _ALS_OnPlayerKeyStateChange
  110.     #endif
  111.     #define OnPlayerKeyStateChange GAC_OnPlayerKeyStateChange
  112.  
  113.  
  114.  
  115.     forward GivePlayerWeaponEx(playerid,weaponid,ammo);
  116.  
  117.     public GivePlayerWeaponEx(playerid,weaponid,ammo)
  118.     {
  119.         PlayerWeapons[playerid][weaponid]=true; // Player Has the weapon.
  120.         return GivePlayerWeapon(playerid,weaponid,ammo); // To realy give him the weapon.
  121.     }
  122.  
  123.  
  124.     #define GivePlayerWeapon GivePlayerWeaponEx
  125.  
  126.     stock GetWeaponModel(weaponid) // credits Double-O-Seven
  127.     {
  128.         switch(weaponid)
  129.         {
  130.             case 1:
  131.                 return 331;
  132.  
  133.             case 2..8:
  134.                 return weaponid+331;
  135.  
  136.             case 9:
  137.                 return 341;
  138.  
  139.             case 10..15:
  140.                 return weaponid+311;
  141.  
  142.             case 16..18:
  143.                 return weaponid+326;
  144.  
  145.             case 22..29:
  146.                 return weaponid+324;
  147.  
  148.             case 30,31:
  149.                 return weaponid+325;
  150.  
  151.             case 32:
  152.                 return 372;
  153.  
  154.             case 33..45:
  155.                 return weaponid+324;
  156.  
  157.             case 46:
  158.                 return 371;
  159.         }
  160.         return 0;
  161.     }
  162.  
  163.     stock AddStaticPickupEx(model,type,Float:X,Float:Y,Float:Z,virtualworld)
  164.     {
  165.         new id = CreatePickup(model,type,X,Y,Z,virtualworld)
  166.         if(type==2 || type==3 || type==15 || type==22)
  167.         {
  168.             for(new i;i<47;i++)
  169.             {
  170.                 if(GetWeaponModel(i)==model)
  171.                 {
  172.                     WeaponPickup[id]=i;
  173.                 }
  174.             }
  175.         }
  176.         return id;
  177.     }
  178.  
  179.     #define AddStaticPickup AddStaticPickupEx
  180.  
  181.     stock CreatePickupEx(model,type,Float:X,Float:Y,Float:Z,virtualworld)
  182.     {
  183.         new id = CreatePickup(model,type,X,Y,Z,virtualworld)
  184.         if(type==2 || type==3 || type==15 || type==22)
  185.         {
  186.             for(new i;i<47;i++)
  187.             {
  188.                 if(GetWeaponModel(i)==model)
  189.                 {
  190.                     WeaponPickup[id]=i;
  191.                 }
  192.             }
  193.         }
  194.         return id;
  195.     }
  196.     #define CreatePickup CreatePickupEx
  197.     public OnPlayerPickUpPickup(playerid,pickupid)
  198.     {
  199.         if(WeaponPickup[pickupid]) PlayerWeapons[playerid][WeaponPickup[pickupid]]=true;
  200.         return CallLocalFunction("GAC_OnPlayerPickUpPickup", "ii", playerid, pickupid);
  201.     }
  202.     forward GAC_OnPlayerPickUpPickup(playerid,pickupid);
  203.     #if defined _ALS_OnPlayerPickUpPickup
  204.         #undef OnPlayerPickUpPickup
  205.     #else
  206.         #define _ALS_OnPlayerPickUpPickup
  207.     #endif
  208.     #define OnPlayerPickUpPickup GAC_OnPlayerPickUpPickup
  209.  
  210.  
  211.     stock GAC_AddPlayerClass(modelid,Float:spawn_x,Float:spawn_y,Float:spawn_z,Float:z_angle,weapon1,weapon1_ammo,weapon2,weapon2_ammo,weapon3,weapon3_ammo)
  212.     {
  213.         new class = AddPlayerClass(modelid,spawn_x,spawn_y,spawn_z,z_angle,weapon1,weapon1_ammo,weapon2,weapon2_ammo,weapon3,weapon3_ammo);
  214.         if(class<MAX_CLASS)
  215.         {
  216.             if(weapon1 != -1) ClassWeapons[class][0]=weapon1;
  217.             if(weapon2 != -1) ClassWeapons[class][1]=weapon2;
  218.             if(weapon3 != -1) ClassWeapons[class][2]=weapon3;
  219.         }
  220.         else printf("Please change MAX_CLASS in Weapon Anti-Cheat!! Current class: %i",class);
  221.         return class;
  222.     }
  223.     #define AddPlayerClass GAC_AddPlayerClass
  224.     stock GAC_AddPlayerClassEx(teamid,modelid,Float:spawn_x,Float:spawn_y,Float:spawn_z,Float:z_angle,weapon1,weapon1_ammo,weapon2,weapon2_ammo,weapon3,weapon3_ammo)
  225.     {
  226.         new class = AddPlayerClassEx(teamid,modelid,spawn_x,spawn_y,spawn_z,z_angle,weapon1,weapon1_ammo,weapon2,weapon2_ammo,weapon3,weapon3_ammo);
  227.         if(class<MAX_CLASS)
  228.         {
  229.             if(weapon1 != -1) ClassWeapons[class][0]=weapon1;
  230.             if(weapon2 != -1) ClassWeapons[class][1]=weapon2;
  231.             if(weapon3 != -1) ClassWeapons[class][2]=weapon3;
  232.         }
  233.         else printf("Please change MAX_CLASS in Weapon Anti-Cheat!! Current class: %i",class);
  234.         return class;
  235.     }
  236.     #define AddPlayerClassEx GAC_AddPlayerClassEx
  237.  
  238.     stock GAC_SetSpawnInfo(playerid,team,skin,Float:x,Float:y,Float:z,rotation,weapon1,weapon1_ammo,weapon2,weapon2_ammo,weapon3,weapon3_ammo)
  239.     {
  240.         if(weapon1 != -1) PlayerWeapons[playerid][weapon1]=true;
  241.         if(weapon2 != -1) PlayerWeapons[playerid][weapon2]=true;
  242.         if(weapon3 != -1) PlayerWeapons[playerid][weapon3]=true;
  243.         return SetSpawnInfo(playerid,team,skin,x,y,z,rotation,weapon1,weapon1_ammo,weapon2,weapon2_ammo,weapon3,weapon3_ammo);
  244.     }
  245.     #define SetSpawnInfo GAC_SetSpawnInfo
  246.  
  247.  
  248.     public OnPlayerRequestClass(playerid, classid)
  249.     {
  250.         PlayerClass[playerid]=classid;
  251.         return CallLocalFunction("GAC_OnPlayerRequestClass", "ii", playerid, classid);
  252.     }
  253.     forward GAC_OnPlayerRequestClass(playerid,classid);
  254.     #if defined _ALS_OnPlayerRequestClass
  255.         #undef OnPlayerRequestClass
  256.     #else
  257.         #define _ALS_OnPlayerRequestClass
  258.     #endif
  259.     #define OnPlayerRequestClass GAC_OnPlayerRequestClass
  260.  
  261. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement