Advertisement
ErikSon_

Anti-Cheat v3.3 [fixed] by ErikSon

Jul 30th, 2014
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 50.53 KB | None | 0 0
  1. /*  |AntiCheat Version 1.0|
  2.     Anti Jetpack        [X]
  3.     Anti Weaponhack     [X]
  4.     Anti Healthhack     [X]
  5.     Anti Armourhack     [X]
  6.     Anti Moneyhack      [X]
  7.     Pingkick            [X]
  8.     Anti Badword        [X]
  9.     Anti Speedhack      [X]
  10.     Anti C-Bug          [X]
  11.     Anti Spawnkill      [X]
  12.     Anti Fakekill       [X]
  13.     Anti Driveby        [X]
  14.     Anti Spam           [X]
  15.     Anti IP-Spam        [X]
  16.     Anti TuningHack     [X]
  17.     Anti Flyhack        [X]
  18.     ||16 Anti- Funktionen||
  19.    
  20.     |AntiCheat Version 2.0|
  21.     Anti Airbrake       [X]
  22.     Anti Joypad         [X]
  23.     Anti Rapid-Fire     [X]
  24.     Anti Vehicle Tele   [X]
  25.     Anti Telehack       [X]
  26.     Anti Carsurf        [X]
  27.     ||6 Anti- Funktionen ||
  28.    
  29.     |AntiCheat Version 3.0|
  30.     +Anti Weaponhack verbessert+
  31.     Anti AFK-Ghost      [X]
  32.     Anti Slidebug       [X]
  33.     Anti No Reload      [X]
  34.     Anti Unlimmited Ammo[X]
  35.     Anti enter locked Cars[X]
  36.     Anti Playerspeedhack[X]
  37.     Anti Skinchanger    [X]
  38.     Anti AC_Distancehack    [X]
  39.     ||8 Anti- Funktionen ||
  40.    
  41.     |AntiCheat Version 3.1|
  42.     +      Bugfix         +
  43.     +     /Aimbottest     +
  44.     - Skinchanger entfernt-
  45.    
  46.     |AntiCheat Version 3.2|
  47.     +      /Godtest       +
  48.     +   Airbrake gefixxt  +
  49.     Anti Carspawn       [X]
  50.     Anti Spec-/Camhack  [X]
  51.     Anti Mapstealer     [X] // Bei Objekten mit "CreateObject" bzw "CreatePlayerObject"
  52.     Anti Carjackhack    [X]
  53.     Anti Fast-Carexit   [X]
  54.  
  55.     ||5 Anti- Funktionen ||
  56.    
  57.     |AntiCheat Version 3.3|
  58.     +  Ingame einstellbar +
  59.     +  Anti Badword fixed +
  60.    
  61.     ||0 Anti- Funktionen ||
  62.    
  63.    
  64.     |       Gesamt        |
  65.     | 33 Anti- Funktionen |
  66. */
  67.  
  68.  
  69.  
  70. //Einstellen!
  71. new badword[][] = {
  72.     "Opfer",
  73.     "Lauch"
  74. };
  75.  
  76. //////////////
  77.  
  78. #include <a_samp>
  79. #include <ocmd>
  80. #include <dini>
  81.  
  82. //Farben
  83. #define Schwarz         0x000000FF
  84. #define Rot             0xE10000FF
  85. #define Gelb            0xFFE600FF
  86. #define HBlau           0x00FFFFFF
  87. #define DBlau           0x0000FFFF
  88. #define Blau            0x2E9AFEFF
  89. #define HGruen          0x00FF00FF
  90. #define Orange          0xFFAB00FF
  91. #define Weiss           0xFFFFFFFF
  92. #define Grau            0xDCDCDCFF
  93. #define Gold            0xD4A017AA
  94. #define Lila            0x7800FFFF
  95. #define Pink            0xFF00CDFF
  96. #define Gruen           0x009F32FF
  97.  
  98. #define dIntSet         dini_IntSet
  99. #define dInt            dini_Int
  100.  
  101. #define AC_ANTI_FUNCS   29
  102. #define AC_FILE         "/AntiCheatSettings.ini"
  103. #define MAX_PING            700     // Maximaler Ping
  104. #define MAX_VEHSPEED        290     // Vehicle-Speed ( am besten so lassen! )
  105. #define MAX_PLAYERSPEED     90      // Runningspeed ( am besten so lassen! )
  106. #define SPAMLIMIT           2       // 2 Sekunden ( am besten so lassen! )
  107. #define MAX_CBUG            1       // Maximale C-Bugs ( am besten so lassen! )
  108.  
  109. enum{
  110.     AC_AntiMenu = 8000,
  111.     AC_Config,
  112.     AC_Config2,
  113.     AC_Config3,
  114. };
  115.  
  116.  
  117. //[0] = 1 = on / 2 = off
  118. //[1] = 1 = kick / 2 = ban
  119. new AC_Anti[AC_ANTI_FUNCS][3];
  120. new AC_AntiNames[AC_ANTI_FUNCS][32] = {
  121.     "Jetpackhack"// 0
  122.     "Waffenhack",   // 1
  123.     "Healthhack",   // 2
  124.     "Armourhack",   // 3
  125.     "Moneyhack",    // 4
  126.     "Ping",         // 5
  127.     "Speedhack (Vehicle)",// 6
  128.     "C-Bug",        // 7
  129.     "Spawnkill",    // 8
  130.     "Drive-By",     // 9
  131.     "Tuninghack",   // 10
  132.     "Flyhack",      // 11
  133.     "Airbrake",     // 12
  134.     "Joypad",       // 13
  135.     "Rapidfire",    // 14
  136.     "Vehicle-Teleport",//15
  137.     "Teleporthack", // 16
  138.     "Carsurf",      // 17
  139.     "AFK-Ghost",    // 18
  140.     "Slidebug",     // 19
  141.     "No Reload / Unlimited Ammo",// 20
  142.     "Player-Speedhack",//21
  143.     "Carspawn",     // 22
  144.     "Spec-/Camhack",//23
  145.     "Carjackhack"// 24
  146.     "Fast-Carexit", // 25
  147.     "IP/URL",       // 26
  148.     "Spam",         // 27
  149.     "Badword"       // 28
  150. };
  151.  
  152. new fmex[128];
  153. #define AC_SCMToAllF(%0,%1,%2)  format(fmex,128,%1,%2) && SendClientMessageToAll(%0, fmex)
  154. #define AC_SCMF(%0,%1,%2)  format(fmex,128,%2) && SendClientMessage(%0,%1,fmex)
  155. #define AC_PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  156.  
  157.  
  158. forward AntiCheatTimer();
  159. forward SpamReset(playerid);
  160. forward AC_pos(playerid);
  161. forward Desktop_Function(playerid);
  162. forward Kicke(playerid);
  163. forward AC_checkWeapon();
  164. forward AC_checkAim(playerid);
  165. new ACNewMoney[MAX_PLAYERS],
  166.     Float:ACNewArmour[MAX_PLAYERS],
  167.     Float:ACNewHealth[MAX_PLAYERS],
  168.     SpamCount[MAX_PLAYERS],
  169.     CBugCount[MAX_PLAYERS],
  170.     AC_Waffe[MAX_PLAYERS][47],
  171.     nwh[MAX_PLAYERS][47],
  172.     Shot[MAX_PLAYERS],
  173.     ShotTime[MAX_PLAYERS],
  174.     Float:OldAC_pos[MAX_PLAYERS][3],
  175.     Float:NewAC_pos[MAX_PLAYERS][3],
  176.     switched[MAX_PLAYERS],
  177.     posbyserver[MAX_PLAYERS],
  178.     Float:vAC_pos[MAX_VEHICLES][4],
  179.     Desktop_AC_check[MAX_PLAYERS],
  180.     Desktop_Status[MAX_PLAYERS],
  181.     Desktop_Timer[MAX_PLAYERS],
  182.     Desktop_Timer_Started[MAX_PLAYERS],
  183.     Desk[MAX_PLAYERS],
  184.     EnterLockedV[MAX_PLAYERS],
  185.     freezed[MAX_PLAYERS],
  186.     NoReloading[MAX_PLAYERS],
  187.     CurrentWeapon[MAX_PLAYERS],
  188.     CurrentAmmo[MAX_PLAYERS],
  189.     gmd[MAX_PLAYERS],
  190.     starte[MAX_PLAYERS],
  191.     stopAC[MAX_PLAYERS],
  192.     afk_sicher[MAX_PLAYERS],
  193.     Float:LastX[MAX_PLAYERS],
  194.     Float:LastY[MAX_PLAYERS],
  195.     Float:LastZ[MAX_PLAYERS],
  196.     AC_Fall[MAX_PLAYERS],
  197.     AC_vspawn[MAX_VEHICLES],
  198.     AC_Spectating[MAX_PLAYERS],
  199.     AC_PlayerVeh[MAX_PLAYERS],
  200.     AC_PutedVehicle[MAX_PLAYERS],
  201.     AC_Timer[3],
  202.     AC_PEdit[MAX_PLAYERS];
  203.  
  204. forward AC_OnPlayerConnect(playerid);
  205. forward AC_OnGameModeInit();
  206. forward AC_OnPlayerSpawn(playerid);
  207. forward AC_OnPlayerDeath(playerid,killerid,reason);
  208. forward AC_OnPlayerText(playerid,text[]);
  209. forward AC_OnPlayerEnterVehicle(playerid,vehicleid,ispassenger);
  210. forward AC_OnVehicleMod(playerid,vehicleid,componentid);
  211. forward AC_OnVehicleRespray(playerid,vehicleid,color1,color2);
  212. forward AC_OnVehiclePaintjob(playerid,vehicleid,paintjobid);
  213. forward AC_OnPlayerKeyStateChange(playerid,newkeys,oldkeys);
  214. forward AC_OnPlayerUpdate(playerid);
  215. forward AC_OnPlayerDisconnect(playerid,reason);
  216. forward AC_OnPlayerExitVehicle(playerid,vehicleid);
  217. forward AC_OnPlayerStateChange(playerid,newstate,oldstate);
  218. forward AC_GivePlayerMoneyEx(playerid,money);
  219. forward AC_SetPlayerMoneyEx(playerid,money);
  220. forward AC_GivePlayerHealthEx(playerid,Float:health);
  221. forward AC_SetPlayerHealthEx(playerid,Float:health);
  222. forward AC_GivePlayerArmourEx(playerid,Float:armour);
  223. forward AC_SetPlayerArmourEx(playerid,Float:armour);
  224. forward AC_GivePlayerWeaponEx(playerid,Gun,Muni);
  225. forward AC_SetPlayerPosEx(playerid,Float:x,Float:y,Float:z);
  226. forward AC_TogglePlayerControllableEx(playerid,toggle);
  227. forward AC_TogglePlayerSpectatingEx(playerid,toggle);
  228. forward AC_Fallingchecker();
  229. forward AC_OnVehicleStreamIn(vehicleid,forplayerid);
  230. forward AC_CreateVehicle_Ex(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay);
  231. forward AC_AddStaticVehicle_Ex(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2);
  232. forward AC_AddStaticVehicleEx_Ex(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2,respawn_delay);
  233. forward AC_CreateObjectEx(modelid,Float:x,Float:y,Float:z,Float:rX,Float:rY,Float:rZ,Float:draw);
  234. forward AC_CreatePlayerObjectEx(playerid,modelid,Float:x,Float:y,Float:z,Float:rX,Float:rY,Float:rZ,Float:draw);
  235. forward AC_SetVehicleZAngleEx(vehicleid,Float:zangle);
  236. forward AC_PutPlayerInVehicleEx(playerid,vehicleid,seatid);
  237. forward AC_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
  238. forward AC_OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ);
  239. forward AC_SetVehiclePosEx(vehicleid,Float:AC_vx,Float:AC_vy,Float:AC_vz);
  240.  
  241.  
  242.  
  243. public OnGameModeInit(){
  244.     CallLocalFunction("AC_OnGameModeInit","");
  245.     print("\n--------------------------------------");
  246.     print(" AntiCheat by ErikSon");
  247.     print("--------------------------------------\n");
  248.     AC_LoadSettings();
  249.     SetTimer("AntiCheatTimer",100,true);
  250.     if(AC_Anti[1][0] == 1)AC_Timer[0] = SetTimer("AC_checkWeapon",888*2,true);
  251.     if(AC_Anti[11][0] == 1)AC_Timer[1] = SetTimer("AC_checkFlyhack",888*2,true);
  252.     if(AC_Anti[21][0] == 1)AC_Timer[2] = SetTimer("AC_Fallingchecker",500,true);
  253.     return EnableStuntBonusForAll(false);
  254. }
  255.  
  256. public AC_Fallingchecker(){
  257.     new Float:x,Float:y,Float:z,Float:d;
  258.     for(new i =0; i<MAX_PLAYERS; i++){
  259.         if(IsPlayerConnected(i)){
  260.             GetPlayerPos(i,x,y,z);
  261.             d = floatsqroot((x-LastX[i] * x-LastX[i]) + (y-LastY[i] * y-LastY[i]));
  262.             if(d < 10 && (LastZ[i] - z) > 5)AC_Fall[i] = 1;
  263.             else AC_Fall[i] = 0;
  264.             LastX[i] = x,LastY[i] = y,LastZ[i] = z;
  265.         }
  266.     }
  267.     return 1;
  268. }
  269. public OnVehicleStreamIn(vehicleid,forplayerid){
  270.     return CallLocalFunction("AC_OnVehicleStreamIn","ii",vehicleid,forplayerid);
  271. }
  272. public OnPlayerConnect(playerid)
  273. {
  274.     Desk[playerid] = 0, afk_sicher[playerid] = 0;
  275.     switched[playerid] = 0,EnterLockedV[playerid] = 0;
  276.     Shot[playerid] = 0, ShotTime[playerid] = 0;
  277.     AC_SetPlayerHealthEx(playerid,100);
  278.     Desktop_AC_check[playerid] = 0,Desktop_Timer_Started[playerid] = 0,Desktop_Status[playerid] = 0,gmd[playerid] = 0,starte[playerid] = 0,
  279.     AC_PlayerVeh[playerid] = -1;
  280.     return CallLocalFunction("AC_OnPlayerConnect","i",playerid);
  281. }
  282.  
  283. public OnPlayerSpawn(playerid){
  284.     AC_TogglePlayerControllableEx(playerid,1),
  285.     AC_Waffe[playerid][0] = 1, AC_Waffe[playerid][1] = 1;
  286.     if(!starte[playerid])starte[playerid] = 1;
  287.     return CallLocalFunction("AC_OnPlayerSpawn","i",playerid);
  288. }
  289.  
  290. public OnPlayerDeath(playerid, killerid, reason){
  291.     if(AC_Anti[9][0] == 1){
  292.         if(GetPlayerState(killerid) == PLAYER_STATE_DRIVER)
  293.         {
  294.             new vehicleid,vehiclemodel;
  295.             vehicleid = GetPlayerVehicleID(killerid);
  296.             vehiclemodel = GetVehicleModel(vehicleid);
  297.             if(IsPlayerInAnyVehicle(playerid))return 1;
  298.             else if(vehiclemodel == 425)return 1; // Hunter
  299.             else if(vehiclemodel == 432)return 1; // Rhino
  300.             else if(vehiclemodel == 447)return 1; // Seasparrow
  301.             else if(vehiclemodel == 476)return 1; // Rustler
  302.             else if(vehiclemodel == 520)return 1; // Hydra
  303.             switch(AC_Anti[9][1]){
  304.                 case 1:return Kicks(killerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Driveby!",AC_Namee(killerid));
  305.                 case 2:return Bans(killerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Driveby!",AC_Namee(killerid));
  306.             }
  307.             return 1;
  308.         }
  309.     }
  310.     return CallLocalFunction("AC_OnPlayerDeath","iii",playerid,killerid,reason);
  311. }
  312.  
  313. public OnPlayerText(playerid, text[]){
  314.     if(AC_Anti[26][0] == 1){
  315.         if(anty(text)){
  316.             switch(AC_Anti[26][1]){
  317.                 case 1:return Kicks(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: IP / Adresse.",AC_Namee(playerid));
  318.                 case 2:return Bans(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: IP / Adresse.",AC_Namee(playerid));
  319.             }
  320.         }
  321.     }
  322.     if(AC_Anti[27][0] == 1){
  323.         SpamCount[playerid] ++;
  324.         SetTimerEx("SpamReset",888*SPAMLIMIT,false,"i",playerid);
  325.         if(SpamCount[playerid] > SPAMLIMIT){
  326.             SpamCount[playerid] = 0;
  327.             switch(AC_Anti[27][1]){
  328.                 case 1:return Kicks(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde von Server gekickt. Grund: Spam!",AC_Namee(playerid));
  329.                 case 2:return Bans(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde von Server gebannt. Grund: Spam!",AC_Namee(playerid));
  330.             }
  331.         }
  332.     }
  333.     if(AC_Anti[28][0] == 1){
  334.         new i = 0;
  335.         for(;i<sizeof(badword);i++){
  336.             if(strfind(text,badword[i],true) != -1){
  337.                 switch(AC_Anti[28][1]){
  338.                     case 1:return Kicks(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Badword!",AC_Namee(playerid));
  339.                     case 2:return Bans(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Badword!",AC_Namee(playerid));
  340.                 }
  341.             }
  342.         }
  343.     }
  344.     return CallLocalFunction("AC_OnPlayerText","is",playerid,text);
  345. }
  346.  
  347. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger){
  348.     if(AC_IsAPlane(vehicleid) || AC_IsAHelicopter(vehicleid))AC_GivePlayerWeaponEx(playerid,46,1);
  349.     if(AC_Anti[24][0] == 1 || AC_Anti[25][0] == 1)AC_PlayerVeh[playerid] = vehicleid; stopAC[playerid] = 30;
  350.     if(AC_Anti[24][0] == 1){
  351.         new Engine, Lights, Alarm,Doors, Bonnet,Boot,Objective;
  352.         GetVehicleParamsEx(vehicleid, Engine, Lights, Alarm, Doors, Bonnet, Boot, Objective);
  353.         if(!AC_IsABike(vehicleid) && Doors == 1)return EnterLockedV[playerid] = vehicleid;
  354.     }
  355.     if(AC_Anti[1][0] == 1)SetPlayerArmedWeapon(playerid,0);
  356.     if(AC_Anti[22][0] == 1)if(AC_vspawn[vehicleid] != 1)DestroyVehicle(vehicleid),AC_vspawn[vehicleid] = 0;
  357.     return CallLocalFunction("AC_OnPlayerEnterVehicle","iii",playerid,vehicleid,ispassenger);
  358. }
  359.  
  360. public OnVehicleMod(playerid, vehicleid, componentid){
  361.     if(AC_Anti[10][0] == 1){
  362.         if(GetPlayerInterior(playerid) == 0){
  363.             switch(AC_Anti[10][1]){
  364.                 case 1:return Kicks(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Tuning-Hack!",AC_Namee(playerid));
  365.                 case 2:return Bans(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Tuning-Hack!",AC_Namee(playerid));
  366.             }
  367.         }
  368.     }
  369.     return CallLocalFunction("AC_OnVehicleMod","iii",playerid,vehicleid,componentid);
  370. }
  371.  
  372. public OnVehiclePaintjob(playerid, vehicleid, paintjobid){
  373.     if(AC_Anti[10][0] == 1){
  374.         if(GetPlayerInterior(playerid) == 0){
  375.             switch(AC_Anti[10][1]){
  376.                 case 1:return Kicks(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Tuning-Hack!",AC_Namee(playerid));
  377.                 case 2:return Bans(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Tuning-Hack!",AC_Namee(playerid));
  378.             }
  379.         }
  380.     }
  381.     return CallLocalFunction("AC_OnVehiclePaintjob","iii",playerid,vehicleid,paintjobid);
  382. }
  383.  
  384. public OnVehicleRespray(playerid, vehicleid, color1, color2){
  385.     if(AC_Anti[10][0] == 1){
  386.         if(GetPlayerInterior(playerid) == 0){
  387.             switch(AC_Anti[10][1]){
  388.                 case 1:return Kicks(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Tuning-Hack!",AC_Namee(playerid));
  389.                 case 2:return Bans(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Tuning-Hack!",AC_Namee(playerid));
  390.             }
  391.         }
  392.     }
  393.     return CallLocalFunction("AC_OnVehicleRespray","iiii",playerid,vehicleid,color1,color2);
  394. }
  395.  
  396. public OnPlayerExitVehicle(playerid,vehicleid){
  397.     if(AC_Anti[24][0] == 1 || AC_Anti[25][0] == 1)AC_PlayerVeh[playerid] = -1,AC_PutedVehicle[playerid] = 0;
  398.     if(AC_Anti[15][0] == 1){
  399.         new Float:x,Float:y,Float:z; GetVehiclePos(vehicleid,x,y,z);
  400.         vAC_pos[vehicleid][0] = x,vAC_pos[vehicleid][1] = y,vAC_pos[vehicleid][2] = z;
  401.     }
  402.     return CallLocalFunction("AC_OnPlayerExitVehicle","ii",playerid,vehicleid);
  403. }
  404.  
  405. public OnPlayerDisconnect(playerid,reason){
  406.     if(IsPlayerInAnyVehicle(playerid) && AC_Anti[15][0] == 1){
  407.         new Float:x,Float:y,Float:z,vehicleid = GetPlayerVehicleID(playerid);
  408.         GetVehiclePos(vehicleid,x,y,z);
  409.         vAC_pos[vehicleid][0] = x,vAC_pos[vehicleid][1] = y,vAC_pos[vehicleid][2] = z;
  410.     }
  411.     if(Desktop_Timer_Started[playerid] == 1) { KillTimer(Desktop_Timer[playerid]); }
  412.     return CallLocalFunction("AC_OnPlayerDisconnect","ii",playerid,reason);
  413. }
  414.  
  415. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){
  416.     if(AC_Anti[7][0] == 1){
  417.         if(((oldkeys & KEY_FIRE) || (oldkeys==KEY_FIRE)) && ((newkeys & KEY_CROUCH) || (newkeys==KEY_CROUCH)) && (!IsPlayerInAnyVehicle(playerid)))
  418.         {
  419.             CBugCount[playerid] ++;
  420.             if(CBugCount[playerid] >= MAX_CBUG){
  421.                 switch(AC_Anti[7][1]){
  422.                     case 1:return Kicks(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: C-Bug!",AC_Namee(playerid));
  423.                     case 2:return Bans(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: C-Bug!",AC_Namee(playerid));
  424.                 }
  425.             }
  426.         }
  427.     }
  428.     if(AC_Anti[19][0] == 1){
  429.         new tick = GetTickCount(); new FIRE_WEAPON = GetPlayerWeapon(playerid) > 21;
  430.         if(oldkeys & KEY_SPRINT && FIRE_WEAPON)
  431.         {
  432.             new keys, ud, lr; GetPlayerKeys(playerid, keys, ud, lr);
  433.             if(ud != 0 || lr != 0)SetPVarInt(playerid, "SlideTime", tick + 500);
  434.         }
  435.         if( (newkeys & KEY_FIRE || newkeys & 128) && FIRE_WEAPON )if(tick < GetPVarInt(playerid, "SlideTime"))return SetPlayerArmedWeapon(playerid, 0),SetPVarInt(playerid, "SlideTime", -1);
  436.     }
  437.     return CallLocalFunction("AC_OnPlayerKeyStateChange","iii",playerid,newkeys,oldkeys);
  438. }
  439.  
  440. public OnPlayerStateChange(playerid, newstate, oldstate){
  441.     if(oldstate == PLAYER_STATE_ONFOOT && (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER))
  442.     {
  443.         if(AC_Anti[24][0] == 1 || AC_Anti[25][0] == 1){
  444.             if(AC_PlayerVeh[playerid] != GetPlayerVehicleID(playerid) && !AC_PutedVehicle[playerid]){
  445.                 switch(AC_Anti[24][1]){
  446.                     case 1:Kicks(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Carjackhack!",AC_Namee(playerid));
  447.                     case 2:Bans(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Carjackhack!",AC_Namee(playerid));
  448.                 }
  449.             }
  450.             return AC_PutedVehicle[playerid] = 0;
  451.         }
  452.         if(AC_Anti[9][0] == 1)SetPlayerArmedWeapon(playerid,0);
  453.         if(AC_Anti[24][0] == 1){
  454.             if(EnterLockedV[playerid] == GetPlayerVehicleID(playerid)){
  455.                 switch(AC_Anti[24][1]){
  456.                     case 1:return Kicks(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Enter locked Vehicle!",AC_Namee(playerid));
  457.                     case 2:return Bans(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Enter locked Vehicle!",AC_Namee(playerid));
  458.                 }
  459.             }
  460.         }
  461.     }
  462.     return CallLocalFunction("AC_OnPlayerStateChange","iii",playerid,newstate,oldstate);
  463. }
  464.  
  465. stock Float:AC_GetDistanceBetweenPoints(Float:rx1,Float:ry1,Float:rz1,Float:rx2,Float:ry2,Float:rz2){
  466.     return floatadd(floatadd(floatsqroot(floatpower(floatsub(rx1,rx2),2)),floatsqroot(floatpower(floatsub(ry1,ry2),2))),floatsqroot(floatpower(floatsub(rz1,rz2),2)));
  467. }
  468.  
  469. stock Float:AC_Distance(Float:X, Float:Y, Float:Z, Float:PointX, Float:PointY, Float:PointZ) return floatsqroot(floatadd(floatadd(floatpower(floatsub(X, PointX), 2.0), floatpower(floatsub(Y, PointY), 2.0)), floatpower(floatsub(Z, PointZ), 2.0)));
  470.  
  471. public OnPlayerUpdate(playerid){
  472.     if(Desk[playerid] >= 1)Desk[playerid] = 0;
  473.     if(Desktop_Timer_Started[playerid] == 0)
  474.     {
  475.         Desktop_Timer[playerid] = SetTimerEx("Desktop_Function",888,1,"d",playerid);
  476.         Desktop_Timer_Started[playerid] = 1;
  477.     }
  478.     Desktop_AC_check[playerid] += 1;
  479.     new keys, ud, lr;
  480.     GetPlayerKeys(playerid, keys, ud, lr);
  481.     if(AC_Anti[13][0] == 1){
  482.         if((ud != 128 && ud != 0 && ud != -128) || (lr != 128 && lr != 0 && lr != -128)){
  483.             switch(AC_Anti[13][1]){
  484.                 case 1:Kicks(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Joypad!",AC_Namee(playerid));   
  485.                 case 2:Bans(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Joypad!",AC_Namee(playerid));
  486.             }
  487.         }
  488.     }
  489.     return CallLocalFunction("AC_OnPlayerUpdate","i",playerid);
  490. }
  491.  
  492. public SpamReset(playerid)return SpamCount[playerid] = 0,CBugCount[playerid] = 0;
  493.  
  494.  
  495. public AntiCheatTimer(){
  496.     new i = 0,Float:health,Float:armour,surf,Float:x,Float:y,Float:z;
  497.     for(; i<MAX_PLAYERS; i++)
  498.     {
  499.         if(!IsPlayerConnected(i))continue;
  500.         if(Desk[i] >= 1)continue;
  501.         if(starte[i] <= 0)continue;
  502.         if(IsPlayerNPC(i))continue;
  503.         if(stopAC[i] > 0)return stopAC[i] --;
  504.         GetPlayerHealth(i,health);
  505.         GetPlayerArmour(i,armour);
  506.         GetPlayerPos(i,x,y,z);
  507.         new SName[MAX_PLAYER_NAME]; GetPlayerName(i,SName,MAX_PLAYER_NAME);
  508.         if(AC_Anti[0][0] == 1 && GetPlayerSpecialAction(i) == SPECIAL_ACTION_USEJETPACK){
  509.             switch(AC_Anti[0][1]){
  510.                 case 1:return Kicks(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Jetpack!",SName);
  511.                 case 2:return Bans(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Jetpack!",SName);
  512.             }
  513.         }
  514.         else if(AC_Anti[5][0] == 1 && GetPlayerPing(i) > AC_Anti[5][2]){
  515.             switch(AC_Anti[5][1]){
  516.                 case 1:return Kicks(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Zu hoher Ping! ( %i / %i )",SName,GetPlayerPing(i),AC_Anti[5][2]);
  517.                 case 2:return Bans(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Zu hoher Ping! ( %i / %i )",SName,GetPlayerPing(i),AC_Anti[5][2]);
  518.             }
  519.         }
  520.         else if(AC_Anti[4][0] == 1 && GetPlayerMoney(i) > ACNewMoney[i]){
  521.             switch(AC_Anti[4][1]){
  522.                 case 1:return Kicks(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Moneyhack!",SName);
  523.                 case 2:return Bans(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Moneyhack!",SName);
  524.             }
  525.         }
  526.         else if(AC_Anti[2][0] == 1 && health > ACNewHealth[i]){
  527.             switch(AC_Anti[2][1]){
  528.                 case 1:return Kicks(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Healthhack!",SName);
  529.                 case 2:return Bans(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Healthhack!",SName);
  530.             }
  531.         }
  532.         else if(AC_Anti[3][0] == 1 && armour > ACNewArmour[i]){
  533.             switch(AC_Anti[3][1]){
  534.                 case 1:return Kicks(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Armourhack!",SName);
  535.                 case 2:return Bans(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Armourhack!",SName);
  536.             }
  537.         }
  538.         else if(AC_Anti[21][0] == 1 && !AC_Fall[i] && AC_GetPlayerSpeed(i) > MAX_PLAYERSPEED){
  539.             switch(AC_Anti[21][1]){
  540.                 case 1:return Kicks(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Speedhack!",SName);
  541.                 case 2:return Bans(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Speedhack!",SName);
  542.             }
  543.         }
  544.         else if(AC_Anti[6][0] == 1 && IsPlayerInAnyVehicle(i))if(AC_GetVehicleSpeed(GetPlayerVehicleID(i)) > MAX_VEHSPEED){
  545.             switch(AC_Anti[6][1]){
  546.                 case 1:return Kicks(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Speedhack!",SName);
  547.                 case 2:return Bans(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Speedhack!",SName);
  548.             }
  549.         }
  550.         else if(AC_Anti[23][0] == 1 && !IsPlayerInAnyVehicle(i) && AC_Spectating[i] <= 0 && AC_DistancePlayerAndCamera(i) > 40){
  551.             switch(AC_Anti[23][1]){
  552.                 case 1:return Kicks(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Camhack!",SName);
  553.                 case 2:return Bans(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Camhack!",SName);
  554.             }
  555.         }
  556.         surf = GetPlayerSurfingVehicleID(i);
  557.         if(AC_Anti[17][0] == 1 && !(GetPlayerSurfingVehicleID(i) == INVALID_VEHICLE_ID) && (AC_GetVehicleSpeed(surf) > 0))return SetPlayerPos(i,x,y,z+10);
  558.         if(AC_Anti[12][0] == 1){
  559.             if(switched[i])
  560.             {
  561.                 GetPlayerPos(i,NewAC_pos[i][0],NewAC_pos[i][1],NewAC_pos[i][2]);
  562.                 new Float:d = AC_Distance(OldAC_pos[i][0],OldAC_pos[i][1],OldAC_pos[i][2],NewAC_pos[i][0],NewAC_pos[i][1],NewAC_pos[i][2]);
  563.                 if(d >= 15 && posbyserver[i] != 1){
  564.                     switch(AC_Anti[12][1]){
  565.                         case 1:return Kicks(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Airbrake / Teleporthack!",SName);
  566.                         case 2:return Bans(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Airbrake / Teleporthack!",SName);
  567.                     }
  568.                 }
  569.                 switched[i] = 0;
  570.             }
  571.             else if(!switched[i])GetPlayerPos(i,OldAC_pos[i][0],OldAC_pos[i][1],OldAC_pos[i][2]),switched[i] = 1;
  572.         }
  573.         if(AC_Anti[25][0] == 1 && !IsPlayerInAnyVehicle(i) && AC_PlayerVeh[i] >0){
  574.             switch(AC_Anti[25][1]){
  575.                 case 1:return Kicks(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Fast-Carexit!",AC_Namee(i));
  576.                 case 2:return Bans(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Fast-Carexit!",AC_Namee(i));
  577.             }
  578.         }
  579.     }
  580.     return 1;
  581. }
  582.  
  583. public AC_checkWeapon(){
  584.     new Weaps[13][2],AC_Nameee[MAX_PLAYER_NAME];
  585.     for(new i = 0; i<MAX_PLAYERS; i++)
  586.     {
  587.         if(IsPlayerNPC(i))continue;
  588.         if(!IsPlayerConnected(i))continue;
  589.         GetPlayerName(i,AC_Nameee,MAX_PLAYER_NAME);
  590.         for(new _w = 0; _w < 13; _w++)
  591.         {
  592.             GetPlayerWeaponData(i, _w, Weaps[_w][0], Weaps[_w][1]);
  593.             if(Weaps[_w][0] <= 0 && AC_Waffe[i][Weaps[_w][0]] != 1)continue;
  594.             else if(Weaps[_w][0] < 1 && Weaps[_w][0] > 47)continue;
  595.             else if(Weaps[_w][0] <= 0 || Weaps[_w][1] <= 0)continue;
  596.             else if(nwh[i][Weaps[_w][0]] == 1 && AC_FireWeapon(Weaps[_w][0])){nwh[i][Weaps[_w][0]] = 0; SetPlayerAmmo(i,_w,0); continue;}
  597.             else if(AC_Waffe[i][Weaps[_w][0]] <= 0 && nwh[i][Weaps[_w][0]] == 0 && Weaps[_w][0] != 46){
  598.                 switch(AC_Anti[1][1]){
  599.                     case 1:return Kicks(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Waffenhack!",AC_Nameee);
  600.                     case 2:return Bans(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Waffenhack!",AC_Nameee);
  601.                 }
  602.             }
  603.         }
  604.     }
  605.     return 1;
  606. }
  607.  
  608. stock AC_FireWeapon(weaponid){
  609.     switch(weaponid){
  610.         case 16..18:return 1;
  611.         case 22..39:return 1;
  612.         default:return 0;
  613.     }
  614.     return 1;
  615. }
  616.  
  617. public AC_GivePlayerWeaponEx(playerid,Gun,Muni){
  618.     AC_Waffe[playerid][Gun] = 1;
  619.     stopAC[playerid] = 15;
  620.     return GivePlayerWeapon(playerid, Gun, Muni);
  621. }
  622.  
  623. public AC_GivePlayerMoneyEx(playerid,money){
  624.     ACNewMoney[playerid] = GetPlayerMoney(playerid) + money;
  625.     stopAC[playerid] = 15;
  626.     return GivePlayerMoney(playerid,money);
  627. }
  628.  
  629. public AC_SetPlayerMoneyEx(playerid,money){
  630.     ACNewMoney[playerid] = money;
  631.     stopAC[playerid] = 15;
  632.     return GivePlayerMoney(playerid,money);
  633. }
  634.  
  635. public AC_SetPlayerArmourEx(playerid,Float:armour){
  636.     ACNewArmour[playerid] = armour;
  637.     stopAC[playerid] = 15;
  638.     return SetPlayerArmour(playerid,armour);
  639. }
  640.  
  641. public AC_GivePlayerArmourEx(playerid,Float:armour){
  642.     ACNewArmour[playerid] += armour;
  643.     stopAC[playerid] = 15;
  644.     return SetPlayerArmour(playerid,ACNewArmour[playerid]);
  645. }
  646.  
  647. public AC_SetPlayerHealthEx(playerid,Float:health){
  648.     ACNewHealth[playerid] = health;
  649.     stopAC[playerid] = 15;
  650.     return SetPlayerHealth(playerid,health);
  651. }
  652.  
  653. public AC_GivePlayerHealthEx(playerid,Float:health){
  654.     ACNewHealth[playerid] = health;
  655.     stopAC[playerid] = 15;
  656.     return SetPlayerHealth(playerid,ACNewHealth[playerid]);
  657. }
  658.  
  659. public AC_SetPlayerPosEx(playerid,Float:x,Float:y,Float:z){
  660.     posbyserver[playerid] = 1;
  661.     SetTimerEx("pos",888*2,false,"i",playerid);
  662.     stopAC[playerid] = 15;
  663.     return SetPlayerPos(playerid,x,y,z);
  664. }
  665.  
  666. public AC_TogglePlayerControllableEx(playerid,toggle){
  667.     switch(toggle)
  668.     {
  669.         case false:freezed[playerid] = 1;
  670.         case true:freezed[playerid] = 0;
  671.     }
  672.     stopAC[playerid] = 15;
  673.     return TogglePlayerControllable(playerid,toggle);
  674. }
  675.  
  676. public AC_TogglePlayerSpectatingEx(playerid,toggle){
  677.     AC_Spectating[playerid] = toggle;
  678.     return TogglePlayerSpectating(playerid,1);
  679. }
  680. public AC_CreateVehicle_Ex(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay){
  681.     new vehicleid = CreateVehicle(modelid,Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay);
  682.     return AC_vspawn[vehicleid] = 1;
  683. }
  684. public AC_AddStaticVehicle_Ex(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2){
  685.     new vehicleid = AddStaticVehicle(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2);
  686.     return AC_vspawn[vehicleid] = 1;
  687. }
  688. public AC_AddStaticVehicleEx_Ex(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2,respawn_delay){
  689.     new vehicleid = AddStaticVehicleEx(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2,respawn_delay);
  690.     return AC_vspawn[vehicleid] = 1;
  691. }
  692. public AC_PutPlayerInVehicleEx(playerid,vehicleid,seatid){
  693.     AC_PutedVehicle[playerid] = 1;
  694.     return PutPlayerInVehicle(playerid,vehicleid,seatid);
  695. }
  696.  
  697.  
  698. stock AC_IsAPlane(vehicleid){
  699.     switch(GetVehicleModel(vehicleid)){
  700.         case 460,464,476,511,512,513,519,520,553,577,592,593: return 1;
  701.     }
  702.     return 0;
  703. }
  704.  
  705. stock AC_IsAHelicopter(vehicleid){
  706.     switch(GetVehicleModel(vehicleid)){
  707.         case 417,425,447,465,469,487,488,497,501,548,563: return 1;
  708.     }
  709.     return 0;
  710. }
  711.  
  712. stock anty(string[]){
  713.     if(strfind(string,"www.",true)!=-1 || strfind(string,"http://",true)!=-1 || strfind(string,".com",true)!=-1 || strfind(string,".de",true)!=-1 || strfind(string,".net",true)!=-1 || strfind(string,".tk",true)!=-1 || strfind(string,"91.",true)!=-1 || strfind(string,"195.",true)!=-1 ||strfind(string,".pl",true)!=-1|| strfind(string,".org",true)!=-1||
  714.     strfind(string,"89.",true)!=-1 || strfind(string,"176.",true)!=-1 || strfind(string,":7777",true)!=-1 || strfind(string,"8.",true)!=-1 || strfind(string,"68.",true)!=-1 || strfind(string,"195.",true)!=-1 || strfind(string,"216.",true)!=-1|| strfind(string,"109.",true)!=-1||
  715.     strfind(string,"37.",true)!=-1 || strfind(string,"95.",true)!=-1 || strfind(string,"77.",true)!=-1 || strfind(string,"174.",true)!=-1 || strfind(string,"202.",true)!=-1 || strfind(string,"212.",true)!=-1 || strfind(string,"188.",true)!=-1|| strfind(string,"31.",true)!=-1||
  716.     strfind(string,"46.",true)!=-1 || strfind(string,"178.",true)!=-1 || strfind(string,"70.",true)!=-1 || strfind(string,"168.",true)!=-1 || strfind(string,"99.",true)!=-1 || strfind(string,"120.",true)!=-1 || strfind(string,"47.",true)!=-1|| strfind(string,"253.",true)!=-1||
  717.     strfind(string,"85.",true)!=-1 || strfind(string,"86.",true)!=-1 || strfind(string,"9.",true)!=-1 || strfind(string,"208.",true)!=-1 || strfind(string,"64.",true)!=-1 || strfind(string,"34.",true)!=-1 || strfind(string,"78.",true)!=-1|| strfind(string,"100.",true)!=-1||
  718.     strfind(string,"182.",true)!=-1 || strfind(string,"82.",true)!=-1 || strfind(string,"164.",true)!=-1 || strfind(string,"23.",true)!=-1 || strfind(string,"101.",true)!=-1 || strfind(string,"0.",true)!=-1 || strfind(string,"79.",true)!=-1)
  719.     return true;
  720.     return false;
  721. }
  722.  
  723.  
  724. stock AC_GetVehicleSpeed(vehicleid){
  725.     new Float:xAC_pos[3];
  726.     GetVehicleVelocity(vehicleid, xAC_pos[0], xAC_pos[1], xAC_pos[2]);
  727.     return floatround(floatsqroot(xAC_pos[0] * xAC_pos[0] + xAC_pos[1] * xAC_pos[1] + xAC_pos[2] * xAC_pos[2]) * 170.00);
  728. }
  729.  
  730.  
  731. stock AC_Namee(playerid){
  732.    new name[MAX_PLAYER_NAME];
  733.    GetPlayerName(playerid,name,sizeof(name));
  734.    return name;
  735. }
  736.  
  737. public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
  738. {
  739.     if(AC_Anti[18][0] == 1 && Desk[playerid] >= 2 && afk_sicher[playerid] > 3){
  740.         switch(AC_Anti[18][1]){
  741.             case 1:return Kicks(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: AFK-Ghost!",AC_Namee(playerid));
  742.             case 2:return Bans(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: AFK-Ghost!",AC_Namee(playerid));
  743.         }
  744.     }
  745.     if(Desk[playerid] >= 2 && afk_sicher[playerid] < 3)afk_sicher[playerid] ++;
  746.     else if(!Desk[playerid])afk_sicher[playerid] = 0;
  747.     if(AC_Anti[1][0] == 1 && GetPlayerAmmo(playerid) <= 1 && (weaponid >= 1 && weaponid <= 47))AC_Waffe[playerid][weaponid] = 0,nwh[playerid][weaponid] = 1;
  748.     if(AC_Anti[14][0] == 1 && weaponid != 38)
  749.     {
  750.         if((gettime() - ShotTime[playerid]) < 1)Shot[playerid]+=1;
  751.         else Shot[playerid]=0;
  752.         if(Shot[playerid] > 15){
  753.             switch(AC_Anti[14][1]){
  754.                 case 1:return Kicks(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Rapid-Fire!",AC_Namee(playerid));
  755.                 case 2:return Bans(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Rapid-Fire!",AC_Namee(playerid));
  756.             }
  757.         }
  758.         ShotTime[playerid] = gettime();
  759.     }
  760.     if(AC_Anti[20][0] == 1 && AC_IsWeaponWithAmmo(weaponid))
  761.     {
  762.         new count = 0;
  763.         if(weaponid != CurrentWeapon[playerid]) CurrentWeapon[playerid] = weaponid, CurrentAmmo[playerid] = AC_GetPlayerWeaponAmmo(playerid,weaponid), count++;
  764.         if(AC_GetPlayerWeaponAmmo(playerid,weaponid) > CurrentAmmo[playerid] || AC_GetPlayerWeaponAmmo(playerid,weaponid) < CurrentAmmo[playerid]) CurrentAmmo[playerid] = AC_GetPlayerWeaponAmmo(playerid,weaponid),NoReloading[playerid] = 0,count++;
  765.         if(AC_GetPlayerWeaponAmmo(playerid,weaponid) != 0 && AC_GetPlayerWeaponAmmo(playerid,weaponid) == CurrentAmmo[playerid] && count == 0)
  766.         {
  767.             NoReloading[playerid]++;
  768.             if(NoReloading[playerid] >= 5){
  769.                 switch(AC_Anti[20][1]){
  770.                     case 1:return Kicks(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Unlimmited Ammo / No Reloading!",AC_Namee(playerid));
  771.                     case 2:return Bans(playerid),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Unlimmited Ammo / No Reloading!",AC_Namee(playerid));
  772.                 }
  773.             }
  774.         }
  775.     }
  776.     return CallLocalFunction("AC_OnPlayerWeaponShot","iiiifff",playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ);
  777. }
  778.  
  779. stock AC_GetPlayerSpeed(playerid) {
  780.     if(playerid != INVALID_PLAYER_ID)
  781.     {
  782.         new Float:AC_ppos[3],Float:PS;
  783.         GetPlayerVelocity(playerid, AC_ppos[0], AC_ppos[1], AC_ppos[2]);
  784.         PS = floatsqroot(AC_ppos[0]*AC_ppos[0] + AC_ppos[1]*AC_ppos[1] + AC_ppos[2]*AC_ppos[2])*200;
  785.         return floatround(PS,floatround_round);
  786.     }
  787.     return INVALID_PLAYER_ID;
  788. }  
  789.  
  790. public AC_pos(playerid)return posbyserver[playerid] = 0;
  791. stock AC_checkFireArm(weaponid) {
  792.    switch(weaponid)
  793.    {
  794.        case 16..39, 41..43: return 1;
  795.        default: return 0;
  796.    }
  797.    return 0;
  798. }
  799.  
  800. public AC_SetVehiclePosEx(vehicleid,Float:AC_vx,Float:AC_vy,Float:AC_vz){
  801.     vAC_pos[vehicleid][0] = AC_vx,vAC_pos[vehicleid][1] = AC_vy,vAC_pos[vehicleid][2] = AC_vz;
  802.     return SetVehiclePos(vehicleid,AC_vx,AC_vy,AC_vz);
  803. }
  804.  
  805. public AC_CreateObjectEx(modelid,Float:x,Float:y,Float:z,Float:rX,Float:rY,Float:rZ,Float:draw){
  806.     new object = CreateObject(modelid,0,0,0,0,0,0,Float:draw = 0.0);
  807.     return SetObjectPos(object,x,y,z), SetObjectRot(object,rX,rY,rZ);
  808. }
  809.  
  810. public AC_CreatePlayerObjectEx(playerid,modelid,Float:x,Float:y,Float:z,Float:rX,Float:rY,Float:rZ,Float:draw){
  811.     new object = CreatePlayerObject(playerid,modelid,0,0,0,0,0,0,Float:draw = 0.0);
  812.     return SetPlayerObjectPos(playerid,object,x,y,z), SetPlayerObjectRot(playerid,object,rX,rY,rZ);
  813. }
  814.  
  815. public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat){
  816.     new Float:x,Float:y,Float:z; GetVehiclePos(vehicleid, x, y, z);
  817.     if(vAC_pos[vehicleid][0] == 0.0 && vAC_pos[vehicleid][1] == 0.0 && vAC_pos[vehicleid][2] == 0.0)vAC_pos[vehicleid][0] = x,vAC_pos[vehicleid][1] = y,vAC_pos[vehicleid][2] = z;
  818.     new Float:dis = AC_Distance(vAC_pos[vehicleid][0],vAC_pos[vehicleid][1],vAC_pos[vehicleid][2], x,y,z);
  819.     if(dis > 5)return AC_SetVehiclePosEx(vehicleid,vAC_pos[vehicleid][0],vAC_pos[vehicleid][1],vAC_pos[vehicleid][2]);
  820.     else vAC_pos[vehicleid][0] = x,vAC_pos[vehicleid][1] = y,vAC_pos[vehicleid][2] = z;
  821.     return 1;
  822. }
  823.  
  824. stock AC_IsABike(vid){
  825.     new modelid = GetVehicleModel(vid);
  826.     if(modelid == 509||modelid ==510||modelid ==581||modelid ==522||modelid ==521||modelid ==523||modelid ==586||modelid ==481||modelid ==462||modelid ==448||modelid ==461||modelid ==463||modelid ==468||modelid ==471) return 1;
  827.     else return 0;
  828. }
  829.  
  830. stock AC_IsWeaponWithAmmo(weaponid)
  831. {
  832.     switch(weaponid)
  833.     {
  834.         case 16..18, 22..39, 41..42: return 1;
  835.         default: return 0;
  836.     }
  837.     return 0;
  838.  
  839. }
  840.  
  841. stock AC_GetPlayerWeaponAmmo(playerid,weaponid)
  842. {
  843.     new wd[2][13];
  844.     for(new i; i<13; i++)GetPlayerWeaponData(playerid,i,wd[0][i],wd[1][i]);
  845.     for(new i; i<13; i++)if(weaponid == wd[0][i]) return wd[1][i];
  846.     return 0;
  847. }
  848.  
  849. stock Kicks(playerid)return SetTimerEx("Kicke",100,false,"i",playerid);
  850. public Kicke(playerid)return Kick(playerid);
  851.  
  852. forward Banne(playerid);
  853. stock Bans(playerid)return SetTimerEx("Banne",100,false,"i",playerid);
  854. public Banne(playerid)return Ban(playerid);
  855.  
  856.  
  857. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
  858.     CallLocalFunction("AC_OnDialogResponse","iiiis",playerid, dialogid, response, listitem, inputtext);
  859.     new ac_str[128];
  860.     switch(dialogid){
  861.         case AC_AntiMenu:{
  862.             if(!response)return 1;
  863.             new x = listitem,onoff[16];
  864.             AC_PEdit[playerid] = x;
  865.             switch(AC_Anti[x][0]){
  866.                 case 1:(onoff = "ausschalten");
  867.                 case 2:(onoff = "einschalten");
  868.             }
  869.             if(x == 5)format(ac_str,128,"Cheat / Hack '%s'\nStrafe ändern\nPing ändern",onoff);
  870.             else format(ac_str,128,"Cheat / Hack '%s'\nStrafe ändern",onoff);
  871.             return ShowPlayerDialog(playerid,AC_Config,DIALOG_STYLE_LIST,"Anti - Cheat | Bearbeiten",ac_str,"Auswählen / Bearbeiten","Abbrechen");
  872.         }
  873.         case AC_Config:{
  874.             if(!response)return ocmd_accfg(playerid);
  875.             new x = AC_PEdit[playerid];
  876.             switch(listitem){
  877.                 case 0:{
  878.                     switch(AC_Anti[x][0]){
  879.                         case 1:AC_Anti[x][0] = 2;
  880.                         case 2:AC_Anti[x][0] = 1;
  881.                     }
  882.                     switch(x){
  883.                         case 1:{
  884.                             if(AC_Anti[x][0] == 1)AC_Timer[0] = SetTimer("AC_checkWeapon",888*2,true);
  885.                             else KillTimer(AC_Timer[0]);
  886.                         }
  887.                         case 11:{
  888.                             if(AC_Anti[x][0] == 1)AC_Timer[1] = SetTimer("AC_checkFlyhack",888*2,true);
  889.                             else KillTimer(AC_Timer[1]);
  890.                         }
  891.                         case 21:{
  892.                             if(AC_Anti[21][0] == 1)AC_Timer[2] = SetTimer("AC_Fallingchecker",500,true);
  893.                             else KillTimer(AC_Timer[2]);
  894.                         }
  895.                     }
  896.                     AC_SaveSettings();
  897.                     return ocmd_accfg(playerid);
  898.                 }
  899.                 case 1:return ShowPlayerDialog(playerid,AC_Config2,DIALOG_STYLE_LIST,"Anti - Cheat | Bearbeiten","Bestrafen mit 'Kick'\nBestrafen mit 'Ban'","Auswählen / Bearbeiten","Abbrechen");
  900.                 case 2:{
  901.                     if(AC_PEdit[playerid] != 5)return ocmd_accfg(playerid);
  902.                     return ShowPlayerDialog(playerid,AC_Config3,DIALOG_STYLE_INPUT,"Anti - Cheat | Bearbeiten","Gebe den maximalen Ping ein,\nden ein Spieler auf dem Server haben darf:","Bearbeiten / Speichern","Abbrechen");
  903.                 }
  904.             }
  905.         }
  906.         case AC_Config2:{
  907.             if(!response)return ocmd_accfg(playerid);
  908.             AC_Anti[AC_PEdit[playerid]][1] = listitem +1;
  909.             AC_SaveSettings();
  910.             return ocmd_accfg(playerid);
  911.         }
  912.         case AC_Config3:{
  913.             if(!response)return ocmd_accfg(playerid);
  914.             if(!strval(inputtext))AC_SCMF(playerid,Rot,"Du musst eine Zahl eingeben!");
  915.             else AC_Anti[5][2] = strval(inputtext);
  916.             AC_SaveSettings();
  917.             return ocmd_accfg(playerid);
  918.         }
  919.     }
  920.     return 1;
  921. }
  922.  
  923. ocmd:aimbottest(playerid,p[])
  924. {
  925.     if(!IsPlayerAdmin(playerid))return 1;
  926.     new pID,Float:_AC_pos[3];
  927.     if(AC_sscanf(p,"u",pID))return AC_SCMF(playerid,Rot,"Benutzung: /aimbottest [SPIELER/ID]");
  928.     if(!IsPlayerConnected(pID))return AC_SCMF(playerid,Rot,"Dieser Spieler ist nicht Online!");
  929.     GetPlayerPos(pID,_AC_pos[0],_AC_pos[1],_AC_pos[2]);
  930.     new tick = GetTickCount(), tickmax = tick + 300;
  931.     AC_SetPlayerPosEx(playerid,_AC_pos[0]+0.5,_AC_pos[1]+0.5,_AC_pos[2]);
  932.     if(GetPlayerTargetPlayer(pID) == playerid && tick <= tickmax)return AC_SCMF(playerid,Rot,"Spieler hat Aimbot! ( Weiterer Test empfohlen! )");
  933.     return AC_SCMF(playerid,Rot,"Spieler hat kein Aimbot! ( Weiterer Test empfohlen! )");
  934. }
  935.  
  936. ocmd:godtest(playerid,params[])
  937. {
  938.     if(!IsPlayerAdmin(playerid))return 1;
  939.     new targetid;
  940.     if(AC_sscanf(params,"u",targetid))return SendClientMessage(playerid,0xFF5B00FF,"** Benutzung: /godtest <Spieler-Name / - ID>");
  941.     if(!IsPlayerConnected(targetid))return SendClientMessage(playerid,0xFF0000FF,"** Der Spieler ist nicht verbunden");
  942.     new Float:px,Float:py,Float:pz,player[MAX_PLAYER_NAME],string[144];
  943.     GetPlayerName(playerid,player,sizeof(player));
  944.     GetPlayerPos(targetid,px,py,pz);
  945.     format(string,sizeof(string),"[Godtest] Du wirst nun vom Teammitglied '%s' (ID: %i) auf Godmode überprüft.",player,playerid);
  946.     SendClientMessage(targetid,0x6FABFFFF,string);
  947.     SendClientMessage(targetid,0x6FABFFFF,"[Godtest] Solltest du versuchen, den AC_check zu umgehen, wirst du permanent vom Server gesperrt!");
  948.     SendClientMessage(targetid,0x6FABFFFF,"[Godtest] Du wirst nun überprüft, bitte habe einen Moment Geduld...");
  949.     SetPlayerHealth(targetid,100)SetPlayerArmour(targetid,0);
  950.     SetTimerEx("AC_check",2000,false,"dd",playerid,targetid);
  951.     return CreateExplosion(px, py, pz, 0, 10.0);
  952. }
  953.  
  954. forward AC_check(playerid,targetid);
  955. public AC_check(playerid,targetid)
  956. {
  957.     if(!IsPlayerConnected(targetid))return SendClientMessage(playerid,0xFF0000FF,"** Der Spieler ist nicht verbunden");
  958.     new target[MAX_PLAYER_NAME],Float:nh,string[144];
  959.     GetPlayerName(targetid,target,sizeof(target));
  960.     GetPlayerHealth(targetid,nh);
  961.     SendClientMessage(targetid,0x6FABFFFF,"[Godtest] Der AC_check wurde erfolgreich beendet!");
  962.     SendClientMessage(targetid,0x6FABFFFF,"[Godtest] Das Ergebnis wurde dem Teammitglied übermittelt.");
  963.     format(string,sizeof(string),"[Godtest] Du hast den Spieler '%s' (ID: %i) auf Godmode überprüft.",target,targetid);
  964.     SendClientMessage(playerid,0x6FABFFFF,string);
  965.     SendClientMessage(playerid,0x6FABFFFF,"[Godtest] Ergebnis:");
  966.     if(nh >= 100) {
  967.         SendClientMessage(playerid,0x6FABFFFF,"[Godtest] Godmode: {00FF00}Vorhanden{FFFFFF}!");
  968.         SetPlayerHealth(targetid,100);
  969.     } else {
  970.         SendClientMessage(playerid,0x6FABFFFF,"[Godtest] Godmode: {FF0000}Nicht vorhanden{FFFFFF}!");
  971.         SetPlayerHealth(targetid,100);
  972.     }
  973.     return 1;
  974. }
  975. ocmd:accfg(playerid){
  976.     if(!IsPlayerAdmin(playerid))return 1;
  977.     new string[64],str[1024],kbr[32],onoff[16];
  978.     for(new i = 0; i<AC_ANTI_FUNCS; i++){
  979.         if(i != 5){
  980.             switch(AC_Anti[i][1]){
  981.                 case 1:(kbr = "Kick");
  982.                 case 2:(kbr = "Ban");
  983.                 case 3:(kbr = "Reset");
  984.             }
  985.         }
  986.         switch(AC_Anti[i][0]){
  987.             case 1:(onoff = "On");
  988.             case 2:(onoff = "Off");
  989.         }
  990.         if(i != 5)format(string,64,"'%s' | '%s' | '%s' %c",AC_AntiNames[i],onoff,kbr,(i == AC_ANTI_FUNCS) ? '\0' : '\n'),strins(str,string,strlen(str),sizeof(str));
  991.         else if(i == 5)format(string,64,"'%s' | '%s' | Max Ping: %d\n",AC_AntiNames[i],onoff,AC_Anti[5][2]),strins(str,string,strlen(str),sizeof(str));
  992.     }
  993.     return ShowPlayerDialog(playerid,AC_AntiMenu,DIALOG_STYLE_LIST,"Anti - Cheat",str,"Auswählen / Bearbeiten","Abbrechen");
  994. }
  995.  
  996.  
  997.  
  998. stock AC_IsPlayerSwimming(playerid)
  999. {
  1000.     if(!IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  1001.     {
  1002.         new animlib[32], animname[32];
  1003.         GetAnimationName(GetPlayerAnimationIndex(playerid),animlib,32,animname,32);
  1004.  
  1005.         if(!strcmp(animlib, "SWIM", true) && !strcmp(animname, "SWIM_GLIDE", true)) return 1;
  1006.         else if(!strcmp(animlib, "SWIM", true) && !strcmp(animname, "SWIM_BREAST", true)) return 1;
  1007.         else if(!strcmp(animlib, "SWIM", true) && !strcmp(animname, "SWIM_CRAWL", true)) return 1;
  1008.         else if(!strcmp(animlib, "SWIM", true) && !strcmp(animname, "SWIM_DIVE_UNDER", true)) return 1;
  1009.         else if(!strcmp(animlib, "SWIM", true) && !strcmp(animname, "SWIM_DIVE_GLIDE", true)) return 1;
  1010.         else if(!strcmp(animlib, "SWIM", true) && !strcmp(animname, "SWIM_UNDER", true)) return 1;
  1011.         else if(!strcmp(animlib, "SWIM", true) && !strcmp(animname, "SWIM_TREAD", true)) return 1;
  1012.     }
  1013.     return 0;
  1014. }
  1015. stock AC_IsPlayerInWater(playerid)
  1016. {
  1017.     new Float:x,Float:y,Float:z;
  1018.     GetPlayerPos(playerid, x, y, z);
  1019.     if((x >= -1408.0629 && y >= 2021.0587 && x <= -460.9319 && y <= 2861.4893) ||//Represa do deserto de Las Venturas
  1020.     (x >= 1269.5886 && y >= -810.4507 && x <= 1288.8916 && y <= -800.5959) ||//Piscina de uma casa em VineWood (Mad Dog's Mansion)
  1021.     (x >= 1086.6010 && y >= -683.6998 && x <= 1103.0225 && y <= -662.1832) ||//Piscina de uma casa em VineWood (Perto Mad Dog's Mansion)
  1022.     (x >= 169.6879 && y >= -1392.6630 && x <= 281.5444 && y <= -1168.9749) ||// 2 Piscinas em VineWood
  1023.     (x >= -828.3018 && y >= -2107.1487 && x <= -443.5032 && y <= -1855.6273) ||//Lago da árvore caída, ou Lago Morto
  1024.     (x >= 1198.9982 && y >= -2407.0581 && x <= 1275.7397 && y <= -2341.6262) ||//Lago perto do aeroporto Los Santos
  1025.     (x >= 2293.1467 && y >= -1432.5869 && x <= 2331.7388 && y <= -1397.6476) ||//Lago perto da Igreja Los Santos
  1026.     (x >= 1915.3196 && y >= -1236.2382 && x <= 2016.6565 && y <= -1167.9290) ||//Park Glen Los Santos
  1027.     (x >= -2747.1692 && y >= -510.1152 && x <= -2663.2468 && y <= -411.4905) ||//Lago em San Fierro
  1028.     (x >= 1838.8041 && y >= 1463.2024 && x <= 2035.4167 && y <= 1703.0480) ||//Cascata do Login em Las Venturas
  1029.     (x >= 2049.6646 && y >= 1843.3029 && x <= 2119.9021 && y <= 1983.5464) ||//Navio Pirata em Las Venturas
  1030.     (x >= 2094.9255 && y >= 1085.2852 && x <= 2179.1790 && y <= 1183.0610) ||//Frente de um Cascino em Las Venturas
  1031.     (x >= 2545.3718 && y >= 2347.7112 && x <= 2593.6794 && y <= 2403.8040))//Piscina de um prédio em Las Venturas
  1032.     {
  1033.             return 1;
  1034.     }
  1035.     return 0;
  1036. }
  1037.  
  1038. forward AC_checkFlyhack();
  1039. public AC_checkFlyhack()
  1040. {
  1041.     for(new i; i < MAX_PLAYERS; i++)
  1042.     {
  1043.         if(!IsPlayerConnected(i))continue;
  1044.         if(!AC_IsPlayerInWater(i))continue;
  1045.         new Float:Xpos,Float:Ypos,Float:Zpos;
  1046.         GetPlayerPos(i,Xpos,Ypos,Zpos);
  1047.         if(Zpos > 1.0){
  1048.             if(!AC_IsPlayerSwimming(i)){
  1049.                 switch(AC_Anti[11][1]){
  1050.                     case 1:return Kicks(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Flyhack!",AC_Namee(i));
  1051.                     case 2:return Bans(i),AC_SCMToAllF(Rot,"Spieler '%s' wurde vom Server gebannt. Grund: Flyhack!",AC_Namee(i));
  1052.                 }
  1053.             }
  1054.         }
  1055.     }
  1056.     return 1;
  1057. }
  1058. forward Float:AC_DistancePlayerAndCamera(playerid);
  1059. stock Float:AC_DistancePlayerAndCamera(playerid){
  1060.     if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING){
  1061.         new Float:pP[3],Float:tP[3],Float:Float_NaN;
  1062.         if(!GetPlayerPos(playerid,pP[0],pP[1],pP[2]) || !GetPlayerCameraPos(playerid,tP[0],tP[1],tP[2]))return Float_NaN;
  1063.         pP[0] -= tP[0], pP[1] -= tP[1], pP[2] -= tP[2];
  1064.         return floatsqroot(floatpower(pP[0],2.0) + floatpower(pP[1],2.0) + floatpower(pP[2],2.0));
  1065.     }
  1066.     else return floatsqroot(0);
  1067. }
  1068.  
  1069. stock AC_LoadSettings(){
  1070.     if(!dini_Exists(AC_FILE)){
  1071.         dini_Create(AC_FILE);
  1072.         AC_Standard();
  1073.         return AC_SaveSettings();
  1074.     }
  1075.     new str[32];
  1076.     for(new i = 0; i<AC_ANTI_FUNCS; i++){
  1077.         if(i == 5){
  1078.             format(str,32,"%s_2",AC_AntiNames[5]);
  1079.             AC_Anti[5][2] = dInt(AC_FILE,str);
  1080.         }
  1081.         for(new x = 0; x<2; x++){
  1082.             format(str,32,"%s_%d",AC_AntiNames[i],x);
  1083.             AC_Anti[i][x] = dInt(AC_FILE,str);
  1084.         }
  1085.     }
  1086.     return 1;
  1087. }
  1088. stock AC_SaveSettings(){
  1089.     if(!dini_Exists(AC_FILE)){
  1090.         dini_Create(AC_FILE);
  1091.         return AC_Standard();
  1092.     }
  1093.     new str[32];
  1094.     for(new i = 0; i<AC_ANTI_FUNCS; i++){
  1095.         if(i == 5){
  1096.             format(str,32,"%s_2",AC_AntiNames[5]);
  1097.             dIntSet(AC_FILE,str,AC_Anti[5][2]);
  1098.         }
  1099.         for(new x = 0; x<2; x++){
  1100.             format(str,32,"%s_%d",AC_AntiNames[i],x);
  1101.             dIntSet(AC_FILE,str,AC_Anti[i][x]);
  1102.         }
  1103.     }
  1104.     return 1;
  1105. }
  1106. stock AC_Standard(){
  1107.     for(new i = 0; i<AC_ANTI_FUNCS; i++){
  1108.         AC_Anti[i][0] = 1;
  1109.         AC_Anti[i][1] = 1;
  1110.     }
  1111.     return AC_Anti[5][2] = 700;
  1112. }
  1113.  
  1114. //Ende
  1115. stock AC_sscanf(msg[],arg[],{Float,_}:...) {
  1116.     new s_pos = strfind(msg," "),all=1,bool:end;
  1117.     while(s_pos != -1 && end == false) {
  1118.         strdel(msg,0,s_pos+1),all++,s_pos = strfind(msg," ");
  1119.         if(s_pos == -1) end = true,s_pos=strlen(msg);
  1120.         new i,tmp[32],var;
  1121.         switch(arg[all-2]) {
  1122.             case 's': for(; i<s_pos; i++) tmp[var] = msg[i],setarg(all,var,tmp[var]),var++;
  1123.             case 'd','i': {
  1124.                 for(; i<s_pos; i++) tmp[var] = msg[i],var++;
  1125.                 setarg(all,0,strval(tmp));
  1126.             }
  1127.             case 'f': {
  1128.                 for(; i<s_pos; i++) tmp[var] = msg[i],var++;
  1129.                 setarg(all,0,_:floatstr(tmp));
  1130.             }
  1131.         }
  1132.     }
  1133.     return 1;
  1134. }
  1135.  
  1136. #if defined _ALS_OnPlayerConnect
  1137.     #undef OnPlayerConnect
  1138. #else
  1139.     #define _ALS_OnPlayerConnect
  1140. #endif
  1141. #define OnPlayerConnect             AC_OnPlayerConnect
  1142.  
  1143. #if defined _ALS_OnGameModeInit
  1144.     #undef OnGameModeInit
  1145. #else
  1146.     #define _ALS_OnGameModeInit
  1147. #endif
  1148. #define OnGameModeInit              AC_OnGameModeInit
  1149.  
  1150. #if defined _ALS_OnPlayerSpawn
  1151.     #undef OnPlayerSpawn
  1152. #else
  1153.     #define _ALS_OnPlayerSpawn
  1154. #endif
  1155. #define OnPlayerSpawn               AC_OnPlayerSpawn
  1156.  
  1157. #if defined _ALS_OnPlayerDeath
  1158.     #undef OnPlayerDeath
  1159. #else
  1160.     #define _ALS_OnPlayerDeath
  1161. #endif
  1162. #define OnPlayerDeath               AC_OnPlayerDeath
  1163.  
  1164. #if defined _ALS_OnPlayerText
  1165.     #undef OnPlayerText
  1166. #else
  1167.     #define _ALS_OnPlayerText
  1168. #endif
  1169. #define OnPlayerText                AC_OnPlayerText
  1170.  
  1171. #if defined _ALS_OnPlayerEnterVehicle
  1172.     #undef OnPlayerEnterVehicle
  1173. #else
  1174.     #define _ALS_OnPlayerEnterVehicle
  1175. #endif
  1176. #define OnPlayerEnterVehicle        AC_OnPlayerEnterVehicle
  1177.  
  1178. #if defined _ALS_OnVehicleMod
  1179.     #undef OnVehicleMod
  1180. #else
  1181.     #define _ALS_OnVehicleMod
  1182. #endif
  1183. #define OnVehicleMod                AC_OnVehicleMod
  1184.  
  1185. #if defined _ALS_OnVehicleRespray
  1186.     #undef OnVehicleRespray
  1187. #else
  1188.     #define _ALS_OnVehicleRespray
  1189. #endif
  1190. #define OnVehicleRespray            AC_OnVehicleRespray
  1191.  
  1192. #if defined _ALS_OnVehiclePaintjob
  1193.     #undef OnVehiclePaintjob
  1194. #else
  1195.     #define _ALS_OnVehiclePaintjob
  1196. #endif
  1197. #define OnVehiclePaintjob           AC_OnVehiclePaintjob
  1198.  
  1199. #if defined _ALS_OnPlayerKeyStateChange
  1200.     #undef OnPlayerKeyStateChange
  1201. #else
  1202.     #define _ALS_OnPlayerKeyStateChange
  1203. #endif
  1204. #define OnPlayerKeyStateChange      AC_OnPlayerKeyStateChange
  1205.  
  1206. #if defined _ALS_OnPlayerUpdate
  1207.     #undef OnPlayerUpdate
  1208. #else
  1209.     #define _ALS_OnPlayerUpdate
  1210. #endif
  1211. #define OnPlayerUpdate              AC_OnPlayerUpdate
  1212.  
  1213. #if defined _ALS_OnPlayerDisconnect
  1214.     #undef OnPlayerDisconnect
  1215. #else
  1216.     #define _ALS_OnPlayerDisconnect
  1217. #endif
  1218. #define OnPlayerDisconnect          AC_OnPlayerDisconnect
  1219.  
  1220. #if defined _ALS_OnPlayerExitVehicle
  1221.     #undef OnPlayerExitVehicle
  1222. #else
  1223.     #define _ALS_OnPlayerExitVehicle
  1224. #endif
  1225. #define OnPlayerExitVehicle         AC_OnPlayerExitVehicle
  1226.  
  1227. #if defined _ALS_OnPlayerStateChange
  1228.     #undef OnPlayerStateChange
  1229. #else
  1230.     #define _ALS_OnPlayerStateChange
  1231. #endif
  1232. #define OnPlayerStateChange         AC_OnPlayerStateChange
  1233.  
  1234. #if defined _ALS_OnVehicleStreamIn
  1235.     #undef OnVehicleStreamIn
  1236. #else
  1237.     #define _ALS_OnVehicleStreamIn
  1238. #endif
  1239. #define OnVehicleStreamIn            AC_OnVehicleStreamIn
  1240.  
  1241. #if defined _ALS_OnDialogResponse
  1242.     #undef OnDialogResponse
  1243. #else
  1244.     #define _ALS_OnDialogResponse
  1245. #endif
  1246. #define OnDialogResponse                AC_OnDialogResponse
  1247.  
  1248. #if defined _ALS_OnPlayerWeaponShot
  1249.     #undef OnPlayerWeaponShot
  1250. #else
  1251.     #define _ALS_OnPlayerWeaponShot
  1252. #endif
  1253. #define OnPlayerWeaponShot              AC_OnPlayerWeaponShot
  1254.  
  1255. #if defined _ALS_OnPlayerGiveDamage
  1256.     #undef OnPlayerGiveDamage
  1257. #else
  1258.     #define _ALS_OnPlayerGiveDamage
  1259. #endif
  1260. #define OnPlayerGiveDamage              AC_OnPlayerGiveDamage
  1261.  
  1262. #if defined _ALS_GivePlayerMoney
  1263.     #undef GivePlayerMoney
  1264. #else
  1265.     #define _ALS_GivePlayerMoney
  1266. #endif
  1267. #define GivePlayerMoney             AC_GivePlayerMoneyEx
  1268.  
  1269. #if defined _ALS_SetPlayerMoney
  1270.     #undef SetPlayerMoney
  1271. #else
  1272.     #define _ALS_SetPlayerMoney
  1273. #endif
  1274. #define SetPlayerMoney              AC_SetPlayerMoneyEx
  1275.  
  1276. #if defined _ALS_GivePlayerHealth
  1277.     #undef GivePlayerHealth
  1278. #else
  1279.     #define _ALS_GivePlayerHealth
  1280. #endif
  1281. #define GivePlayerHealth                AC_GivePlayerHealthEx
  1282.  
  1283. #if defined _ALS_SetPlayerHealth
  1284.     #undef SetPlayerHealth
  1285. #else
  1286.     #define _ALS_SetPlayerHealth
  1287. #endif
  1288. #define SetPlayerHealth             AC_SetPlayerHealthEx
  1289.  
  1290. #if defined _ALS_GivePlayerArmour
  1291.     #undef GivePlayerArmour
  1292. #else
  1293.     #define _ALS_GivePlayerArmour
  1294. #endif
  1295. #define GivePlayerArmour                AC_GivePlayerArmourEx
  1296.  
  1297. #if defined _ALS_SetPlayerArmour
  1298.     #undef SetPlayerArmour
  1299. #else
  1300.     #define _ALS_SetPlayerArmour
  1301. #endif
  1302. #define SetPlayerArmour             AC_SetPlayerArmourEx
  1303.  
  1304. #if defined _ALS_GivePlayerWeapon
  1305.     #undef GivePlayerWeapon
  1306. #else
  1307.     #define _ALS_GivePlayerWeapon
  1308. #endif
  1309. #define GivePlayerWeapon                AC_GivePlayerWeaponEx
  1310.  
  1311. #if defined _ALS_SetPlayerPos
  1312.     #undef SetPlayerPos
  1313. #else
  1314.     #define _ALS_SetPlayerPos
  1315. #endif
  1316. #define SetPlayerPos                AC_SetPlayerPosEx
  1317.  
  1318. #if defined _ALS_TogglePlayerControllable
  1319.     #undef TogglePlayerControllable
  1320. #else
  1321.     #define _ALS_TogglePlayerControllable
  1322. #endif
  1323. #define TogglePlayerControllable                AC_TogglePlayerControllableEx
  1324.  
  1325. #if defined _ALS_TogglePlayerSpectating
  1326.     #undef TogglePlayerSpectating
  1327. #else
  1328.     #define _ALS_TogglePlayerSpectating
  1329. #endif
  1330. #define TogglePlayerSpectating              AC_TogglePlayerSpectatingEx
  1331.  
  1332. #if defined _ALS_CreateVehicle
  1333.     #undef CreateVehicle
  1334. #else
  1335.     #define _ALS_CreateVehicle
  1336. #endif
  1337. #define CreateVehicle               AC_CreateVehicle_Ex
  1338.  
  1339. #if defined _ALS_AddStaticVehicle
  1340.     #undef AddStaticVehicle
  1341. #else
  1342.     #define _ALS_AddStaticVehicle
  1343. #endif
  1344. #define AddStaticVehicle                AC_AddStaticVehicle_Ex
  1345.  
  1346. #if defined _ALS_AddStaticVehicleEx
  1347.     #undef AddStaticVehicleEx
  1348. #else
  1349.     #define _ALS_AddStaticVehicleEx
  1350. #endif
  1351. #define AddStaticVehicleEx              AC_AddStaticVehicleEx_Ex
  1352.  
  1353. #if defined _ALS_CreateObject
  1354.     #undef CreateObject
  1355. #else
  1356.     #define _ALS_CreateObject
  1357. #endif
  1358. #define CreateObject                AC_CreateObjectEx
  1359.  
  1360. #if defined _ALS_CreatePlayerObject
  1361.     #undef CreatePlayerObject
  1362. #else
  1363.     #define _ALS_CreatePlayerObject
  1364. #endif
  1365. #define CreatePlayerObject              AC_CreatePlayerObjectEx
  1366.  
  1367. #if defined _ALS_PutPlayerInVehicle
  1368.     #undef PutPlayerInVehicle
  1369. #else
  1370.     #define _ALS_PutPlayerInVehicle
  1371. #endif
  1372. #define PutPlayerInVehicle              AC_PutPlayerInVehicleEx
  1373.  
  1374. #if defined _ALS_SetVehiclePos
  1375.     #undef SetVehiclePos
  1376. #else
  1377.     #define _ALS_SetVehiclePos
  1378. #endif
  1379. #define SetVehiclePos               AC_SetVehiclePosEx
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement