Advertisement
ANDR3X

wAntiCheat v1.1

Mar 30th, 2014
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.58 KB | None | 0 0
  1. #define CHEAT_WEAPON_SPAWN  1
  2. #define CHEAT_WEAPON_AMMO   2
  3.  
  4. #if !defined isnull
  5.     #define PRESSED(%0) \
  6.         (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  7. #endif
  8.  
  9. #if !defined isnull
  10.     #define isnull(%1) \
  11.         ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
  12. #endif
  13.  
  14. stock GivePlayerWeaponEx(playerid, weaponid, ammo) {
  15.     new str[32];
  16.     format(str,sizeof(str),"Weapon%d",weaponid);
  17.     SetPVarInt(playerid,str,weaponid);
  18.     format(str,sizeof(str),"Ammo%d",weaponid);
  19.     SetPVarInt(playerid,str,GetPVarInt(playerid,str)+ammo);
  20.     return GivePlayerWeapon(playerid, weaponid, ammo);
  21. }
  22.  
  23. #if defined _ALS_GivePlayerWeapon
  24.     #undef GivePlayerWeapon
  25. #else
  26.     #define _ALS_GivePlayerWeapon
  27. #endif
  28. #define GivePlayerWeapon GivePlayerWeaponEx
  29.  
  30. stock ResetPlayerWeaponsEx(playerid) {
  31.     resetWeaponAntiCheat(playerid);
  32.     return ResetPlayerWeapons(playerid);
  33. }
  34.  
  35. #if defined _ALS_ResetPlayerWeapons
  36.     #undef ResetPlayerWeapons
  37. #else
  38.     #define _ALS_ResetPlayerWeapons
  39. #endif
  40. #define ResetPlayerWeapons ResetPlayerWeaponsEx
  41.  
  42. forward OnWeaponAntiCheat(playerid, cheatid, reason[]);
  43. public OnWeaponAntiCheat(playerid, cheatid, reason[]) {
  44.     if(!isnull(reason)) return CallLocalFunction("WAC_OnWeaponAntiCheat","dds",playerid, cheatid, reason);
  45.     else return 1;
  46. }
  47.  
  48. #if defined _ALS_OnWeaponAntiCheat
  49.     #undef OnWeaponAntiCheat
  50. #else
  51.     #define _ALS_OnWeaponAntiCheat
  52. #endif
  53. #define OnWeaponAntiCheat WAC_OnWeaponAntiCheat
  54. forward WAC_OnWeaponAntiCheat(playerid, cheatid, reason[]);
  55.  
  56. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
  57.     new weaponname[32];
  58.     if(PRESSED(KEY_FIRE)) {
  59.         if(GetPlayerWeapon(playerid) != 0) {
  60.             new strweapon[32],strammo[32];
  61.             new weaponid = GetPlayerWeapon(playerid);
  62.             new ammo = GetPlayerAmmo(playerid);
  63.             format(strweapon,sizeof(strweapon),"Weapon%d",weaponid);
  64.             format(strammo,sizeof(strammo),"Ammo%d",weaponid);
  65.             if(GetPVarInt(playerid,strweapon) != weaponid) {
  66.                 GetWeaponName(weaponid,weaponname,sizeof(weaponname));
  67.                 removeWeaponAntiCheat(playerid, weaponid);
  68.                 CallRemoteFunction("OnWeaponAntiCheat","dds",playerid, 1, weaponname);
  69.             }
  70.             if(GetPVarInt(playerid,strweapon) == weaponid && GetPVarInt(playerid,strammo) < ammo) {
  71.                 GetWeaponName(weaponid,weaponname,sizeof(weaponname));
  72.                 removeWeaponAntiCheat(playerid, weaponid);
  73.                 CallRemoteFunction("OnWeaponAntiCheat","dds",playerid, 2, weaponname);
  74.             }
  75.         }
  76.     }
  77.     if(!isnull(weaponname)) return CallLocalFunction("WAC_OnPlayerKeyStateChange","ddd",playerid, newkeys, oldkeys);
  78.     else return 1;
  79. }
  80.  
  81. #if defined _ALS_OnPlayerKeyStateChange
  82.         #undef OnPlayerKeyStateChange
  83. #else
  84.         #define _ALS_OnPlayerKeyStateChange
  85. #endif
  86. #define OnPlayerKeyStateChange WAC_OnPlayerKeyStateChange
  87. forward WAC_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  88.  
  89. public OnPlayerDeath(playerid, killerid, reason) {
  90.     ResetPlayerWeapons(playerid);
  91.     return CallLocalFunction("WAC_OnPlayerDeath","ddd",playerid, killerid, reason);
  92. }
  93.  
  94. #if defined _ALS_OnPlayerDeath
  95.         #undef OnPlayerDeath
  96. #else
  97.         #define _ALS_OnPlayerDeath
  98. #endif
  99. #define OnPlayerDeath WAC_OnPlayerDeath
  100. forward WAC_OnPlayerDeath(playerid, killerid, reason);
  101.  
  102. public OnPlayerExitVehicle(playerid, vehicleid) {
  103.     if(isAirVehicle(vehicleid) && !GetPVarInt(playerid,"Weapon46")) {
  104.         SetPVarInt(playerid,"Weapon46",46);
  105.         SetPVarInt(playerid,"Ammo46",1);
  106.     }
  107.     return CallLocalFunction("WAC_OnPlayerExitVehicle","dd",playerid, vehicleid);
  108. }
  109.  
  110. #if defined _ALS_OnPlayerExitVehicle
  111.         #undef OnPlayerExitVehicle
  112. #else
  113.         #define _ALS_OnPlayerExitVehicle
  114. #endif
  115. #define OnPlayerExitVehicle WAC_OnPlayerExitVehicle
  116. forward WAC_OnPlayerExitVehicle(playerid, vehicleid);
  117.  
  118. stock resetWeaponAntiCheat(playerid) {
  119.     new strweapon[32],strammo[32];
  120.     for(new i=1; i<=46; i++)  {
  121.         format(strweapon,sizeof(strweapon),"Weapon%d",i);
  122.         format(strammo,sizeof(strammo),"Ammo%d",i);
  123.         if(!GetPVarInt(playerid,strweapon) || !GetPVarInt(playerid,strammo)) continue;
  124.         DeletePVar(playerid,strweapon);
  125.         DeletePVar(playerid,strammo);
  126.     }
  127. }
  128.  
  129. stock removeWeaponAntiCheat(playerid, weaponid) {
  130.     new weapons[13][2];
  131.     for(new i=0; i<=12; i++) GetPlayerWeaponData(playerid,i,weapons[i][0],weapons[i][1]);
  132.     ResetPlayerWeapons(playerid);
  133.     for(new i=0; i<=12; i++) {
  134.         if(weapons[i][0] == weaponid) continue;
  135.         GivePlayerWeapon(playerid,weapons[i][0],weapons[i][1]);
  136.     }
  137. }
  138.  
  139. stock isAirVehicle(vehicleid) {
  140.     switch(GetVehicleModel(vehicleid)) {
  141.         case 592, 577, 511, 512, 593, 520, 553, 476, 519, 460, 513, 548, 425, 417, 487, 488, 497, 563, 447, 469: return true;
  142.         default: return false;
  143.     }
  144.     return false;
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement