Advertisement
ErikSon_

Anti-Cheat v3.3.1 by ErikSon

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