Advertisement
Guest User

Anti-Cheat by ErikSon v3.0

a guest
May 17th, 2014
377
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 27.81 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 Godmode        [X]
  24.     Anti Rapid-Fire     [X]
  25.     Anti Vehicle Tele   [X]
  26.     Anti Telehack       [X]
  27.     Anti Carsurf        [X]
  28.     ||7 Anti- Funktionen ||
  29.    
  30.     |AntiCheat Version 3.0|
  31.     +Anti Weaponhack verbessert+
  32.     Anti AFK-Ghost      [X]
  33.     Anti Slidebug       [X]
  34.     Anti No Reload      [X]
  35.     Anti Unlimmited Ammo[X]
  36.     Anti enter locked Cars[X]
  37.     Anti unfreeze       [X]
  38.     Anti Playerspeedhack[X]
  39.     Anti Skinchanger    [X]
  40.     Anti Distancehack   [X]
  41.     ||9 Anti- Funktionen ||
  42.    
  43.    
  44.    
  45.     |       Gesamt        |
  46.     | 32 Anti- Funktionen |
  47. */
  48.  
  49. #include <a_samp>
  50. #include <Water>
  51.  
  52. //Farben
  53. #define Schwarz         0x000000FF
  54. #define Rot             0xE10000FF
  55. #define Gelb            0xFFE600FF
  56. #define HBlau           0x00FFFFFF
  57. #define DBlau           0x0000FFFF
  58. #define Blau            0x2E9AFEFF
  59. #define HGruen          0x00FF00FF
  60. #define Orange          0xFFAB00FF
  61. #define Weiss           0xFFFFFFFF
  62. #define Grau            0xDCDCDCFF
  63. #define Gold            0xD4A017AA
  64. #define Lila            0x7800FFFF
  65. #define Pink            0xFF00CDFF
  66. #define Gruen           0x009F32FF
  67.  
  68.  
  69. #define MAX_PING            600     // Maximaler Ping
  70. #define MAX_VEHSPEED        300     // Vehicle-Speed ( am besten so lassen! )
  71. #define MAX_PLAYERSPEED     65      // Runningspeed ( am besten so lassen! )
  72. #define ANTI_SPAWNKILL      5       // 5 Sekunden Schutz
  73. #define SPAMLIMIT           2       // 2 Sekunden ( am besten so lassen! )
  74. #define MAX_CBUG            1       // Maximale C-Bugs ( am besten so lassen! )
  75. #define Tuninghack                  //Wenn definiert, dann wird Spieler wegen Tuning im Interior 0 gekickt!
  76.  
  77.  
  78. new fmex[128];
  79. #define SCMToAllF(%0,%1,%2)  format(fmex,128,%1,%2) && SendClientMessageToAll(%0, fmex)
  80. #define SCMF(%0,%1,%2)  format(fmex,128,%2) && SendClientMessage(%0,%1,fmex)
  81. #define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  82.  
  83.  
  84. forward AntiCheatTimer();
  85. forward AntiSpawnKill(playerid);
  86. forward SpamReset(playerid);
  87. forward pos(playerid);
  88. forward ask(playerid);
  89. forward Desktop_Function(playerid);
  90. forward Kicke(playerid);
  91. forward CheckWeapon();
  92. forward CheckAim(playerid);
  93. new Float:ACOldHealth[MAX_PLAYERS],
  94.     Float:ACOldArmour[MAX_PLAYERS],
  95.     ACNewMoney[MAX_PLAYERS],
  96.     Float:ACNewArmour[MAX_PLAYERS],
  97.     Float:ACNewHealth[MAX_PLAYERS],
  98.     SpawnKillTimer[MAX_PLAYERS],
  99.     SpamCount[MAX_PLAYERS],
  100.     CBugCount[MAX_PLAYERS],
  101.     Waffe[MAX_PLAYERS][47],
  102.     nwh[MAX_PLAYERS][47],
  103.     Shot[MAX_PLAYERS],
  104.     ShotTime[MAX_PLAYERS],
  105.     Float:OldPos[MAX_PLAYERS][3],
  106.     Float:NewPos[MAX_PLAYERS][3],
  107.     switched[MAX_PLAYERS],
  108.     posbyserver[MAX_PLAYERS],
  109.     start[MAX_PLAYERS],
  110.     Float:vPos[MAX_VEHICLES][4],
  111.     Float:phealth[MAX_PLAYERS],
  112.     Float:parmour[MAX_PLAYERS],
  113.     Desktop_Check[MAX_PLAYERS],
  114.     Desktop_Status[MAX_PLAYERS],
  115.     Desktop_Timer[MAX_PLAYERS],
  116.     Desktop_Timer_Started[MAX_PLAYERS],
  117.     Desk[MAX_PLAYERS],
  118.     EnterLockedV[MAX_PLAYERS],
  119.     freezed[MAX_PLAYERS],
  120.     skin[MAX_PLAYERS],
  121.     NoReloading[MAX_PLAYERS],
  122.     CurrentWeapon[MAX_PLAYERS],
  123.     CurrentAmmo[MAX_PLAYERS];
  124.  
  125.  
  126. forward AC_OnPlayerConnect(playerid);
  127. forward AC_OnGameModeInit();
  128. forward AC_OnPlayerSpawn(playerid);
  129. forward AC_OnPlayerDeath(playerid,killerid,reason);
  130. forward AC_OnPlayerText(playerid,text[]);
  131. forward AC_OnPlayerEnterVehicle(playerid,vehicleid,ispassenger);
  132. forward AC_OnVehicleMod(playerid,vehicleid,componentid);
  133. forward AC_OnVehicleRespray(playerid,vehicleid,color1,color2);
  134. forward AC_OnVehiclePaintjob(playerid,vehicleid,paintjobid);
  135. forward AC_OnPlayerKeyStateChange(playerid,newkeys,oldkeys);
  136. forward AC_OnPlayerUpdate(playerid);
  137. forward AC_OnPlayerDisconnect(playerid,reason);
  138. forward AC_OnPlayerExitVehicle(playerid,vehicleid);
  139. forward AC_OnPlayerStateChange(playerid,newstate,oldstate);
  140. forward GivePlayerMoneyEx(playerid,money);
  141. forward SetPlayerMoneyEx(playerid,money);
  142. forward GivePlayerHealthEx(playerid,Float:health);
  143. forward SetPlayerHealthEx(playerid,Float:health);
  144. forward GivePlayerArmourEx(playerid,Float:armour);
  145. forward SetPlayerArmourEx(playerid,Float:armour);
  146. forward GivePlayerWeaponEx(playerid,Gun,Muni);
  147. forward SetPlayerPosEx(playerid,Float:x,Float:y,Float:z);
  148. forward TogglePlayerControllableEx(playerid,toggle);
  149. forward SetPlayerSkinEx(playerid,skinid);
  150.    
  151.  
  152.    
  153. new badword[][] = {
  154.     "Opfer",
  155.     "Lauch"
  156. };
  157.  
  158. public OnGameModeInit(){
  159.     CallLocalFunction("AC_OnGameModeInit","");
  160.     print("\n--------------------------------------");
  161.     print(" AntiCheat by ErikSon");
  162.     print("--------------------------------------\n");
  163.     new i=0,Float:health,Float:armour;
  164.     for(; i<MAX_PLAYERS; i++)
  165.     {
  166.         if(!IsPlayerConnected(i))continue;
  167.         GetPlayerHealth(i,health); ACNewHealth[i] = health;
  168.         GetPlayerArmour(i,armour); ACNewArmour[i] = armour;
  169.         ACNewMoney[i] = GetPlayerMoney(i);
  170.         ResetPlayerWeapons(i);
  171.     }
  172.     SetTimer("AntiCheatTimer",100,true);
  173.     SetTimer("CheckWeapon",888*2,true);
  174.     return EnableStuntBonusForAll(false);
  175. }
  176. public OnPlayerConnect(playerid)
  177. {
  178.     start[playerid] = 0,Desk[playerid] = 0;
  179.     switched[playerid] = 0,EnterLockedV[playerid] = 0;
  180.     Shot[playerid] = 0, ShotTime[playerid] = 0;
  181.     SetPlayerHealthEx(playerid,100);
  182.     Desktop_Check[playerid] = 0,Desktop_Timer_Started[playerid] = 0,Desktop_Status[playerid] = 0;
  183.     return CallLocalFunction("AC_OnPlayerConnect","i",playerid);
  184. }
  185.  
  186. public OnPlayerSpawn(playerid){
  187.     TogglePlayerControllableEx(playerid,1);
  188.     parmour[playerid] = 0,phealth[playerid] = 0;
  189.     Waffe[playerid][0] = 1, Waffe[playerid][1] = 1;
  190.     SetPlayerHealthEx(playerid,10000000);
  191.     SpawnKillTimer[playerid] = SetTimerEx("AntiSpawnKill",888*ANTI_SPAWNKILL,false,"i",playerid);
  192.     return CallLocalFunction("AC_OnPlayerSpawn","i",playerid);
  193. }
  194.  
  195. public OnPlayerDeath(playerid, killerid, reason){
  196.     if(GetPlayerState(killerid) == PLAYER_STATE_DRIVER)
  197.     {
  198.         new vehicleid,vehiclemodel;
  199.         vehicleid = GetPlayerVehicleID(killerid);
  200.         vehiclemodel = GetVehicleModel(vehicleid);
  201.         if(IsPlayerInAnyVehicle(playerid)) { return true; }
  202.         if(vehiclemodel == 425) { return true; } // Hunter
  203.         if(vehiclemodel == 432) { return true; } // Rhino
  204.         if(vehiclemodel == 447) { return true; } // Seasparrow
  205.         if(vehiclemodel == 476) { return true; } // Rustler
  206.         if(vehiclemodel == 520) { return true; } // Hydra
  207.         return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Driveby!",Name(killerid)),Kicks(killerid);
  208.     }
  209.     return CallLocalFunction("AC_OnPlayerDeath","iii",playerid,killerid,reason);
  210. }
  211.  
  212. public OnPlayerText(playerid, text[]){
  213.     if(anty(text))SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: IP / Adresse.",Name(playerid)),Kicks(playerid);
  214.     SpamCount[playerid] ++;
  215.     SetTimerEx("SpamReset",888*SPAMLIMIT,false,"i",playerid);
  216.     if(SpamCount[playerid] > SPAMLIMIT)return SpamCount[playerid] = 0, SCMToAllF(Rot,"Spieler '%s' wurde von Server gekickt. Grund: Spam!",Name(playerid)),Kicks(playerid);
  217.     new i = 0;
  218.     for(;i<sizeof(badword);i++)if(strfind(text,badword[i],false) != -1)SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Badword!",Name(playerid)),Kicks(playerid);
  219.     return CallLocalFunction("AC_OnPlayerText","is",playerid,text);
  220. }
  221.  
  222. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger){
  223.     if(IsAPlane(vehicleid) || IsAHelicopter(vehicleid))return GivePlayerWeaponEx(playerid,46,1);
  224.     new Engine, Lights, Alarm,Doors, Bonnet,Boot,Objective;
  225.     GetVehicleParamsEx(vehicleid, Engine, Lights, Alarm, Doors, Bonnet, Boot, Objective);
  226.     if(IsABike(vehicleid))return 1;
  227.     if(Doors == 1)return EnterLockedV[playerid] = vehicleid;
  228.     SetPlayerArmedWeapon(playerid,0);
  229.     return CallLocalFunction("AC_OnPlayerEnterVehicle","iii",playerid,vehicleid,ispassenger);
  230. }
  231.  
  232. public OnVehicleMod(playerid, vehicleid, componentid){
  233.     #if defined Tuninghack
  234.     if(GetPlayerInterior(playerid) == 0)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Tuning-Hack!",Name(playerid)),Kicks(playerid);
  235.     #endif
  236.     return CallLocalFunction("AC_OnVehicleMod","iii",playerid,vehicleid,componentid);
  237. }
  238.  
  239. public OnVehiclePaintjob(playerid, vehicleid, paintjobid){
  240.     #if defined Tuninghack
  241.     if(GetPlayerInterior(playerid) == 0)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Tuning-Hack!",Name(playerid)),Kicks(playerid);
  242.     #endif
  243.     return CallLocalFunction("AC_OnVehiclePaintjob","iii",playerid,vehicleid,paintjobid);
  244. }
  245.  
  246. public OnVehicleRespray(playerid, vehicleid, color1, color2){
  247.     #if defined Tuninghack
  248.     if(GetPlayerInterior(playerid) == 0)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Tuning-Hack!",Name(playerid)),Kicks(playerid);
  249.     #endif
  250.     return CallLocalFunction("AC_OnVehicleRespray","iiii",playerid,vehicleid,color1,color2);
  251. }
  252.  
  253. public OnPlayerExitVehicle(playerid,vehicleid){
  254.     new Float:x,Float:y,Float:z;
  255.     GetVehiclePos(vehicleid,x,y,z);
  256.     vPos[vehicleid][0] = x,vPos[vehicleid][1] = y,vPos[vehicleid][2] = z;
  257.     return CallLocalFunction("AC_OnPlayerExitVehicle","ii",playerid,vehicleid);
  258. }
  259.  
  260. public OnPlayerDisconnect(playerid,reason){
  261.     if(IsPlayerInAnyVehicle(playerid))return 1;
  262.     new Float:x,Float:y,Float:z,vehicleid = GetPlayerVehicleID(playerid);
  263.     GetVehiclePos(vehicleid,x,y,z);
  264.     vPos[vehicleid][0] = x,vPos[vehicleid][1] = y,vPos[vehicleid][2] = z;
  265.     if(Desktop_Timer_Started[playerid] == 1) { KillTimer(Desktop_Timer[playerid]); }
  266.     return CallLocalFunction("AC_OnPlayerDisconnect","ii",playerid,reason);
  267. }
  268.  
  269. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){
  270.     if(((oldkeys & KEY_FIRE) || (oldkeys==KEY_FIRE)) && ((newkeys & KEY_CROUCH) || (newkeys==KEY_CROUCH)) && (!IsPlayerInAnyVehicle(playerid)))
  271.     {
  272.         CBugCount[playerid] ++;
  273.         if(CBugCount[playerid] >= MAX_CBUG)SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: C-Bug!",Name(playerid)),Kicks(playerid);
  274.     }
  275.     new tick = GetTickCount(); new FIRE_WEAPON = GetPlayerWeapon(playerid) > 21;
  276.     if(oldkeys & KEY_SPRINT && FIRE_WEAPON)
  277.     {
  278.         new keys, ud, lr; GetPlayerKeys(playerid, keys, ud, lr);
  279.         if(ud != 0 || lr != 0)SetPVarInt(playerid, "SlideTime", tick + 500);
  280.     }
  281.     if( (newkeys & KEY_FIRE || newkeys & 128) && FIRE_WEAPON )if(tick < GetPVarInt(playerid, "SlideTime"))return SetPlayerArmedWeapon(playerid, 0),SetPVarInt(playerid, "SlideTime", -1);
  282.     return CallLocalFunction("AC_OnPlayerKeyStateChange","iii",playerid,newkeys,oldkeys);
  283. }
  284.  
  285. public OnPlayerStateChange(playerid, newstate, oldstate){
  286.     if(oldstate == PLAYER_STATE_ONFOOT && (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER))
  287.     {
  288.         if(EnterLockedV[playerid] <= 0)return 1;
  289.         if(EnterLockedV[playerid] == GetPlayerVehicleID(playerid))return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Enter locked Vehicle!",Name(playerid));
  290.     }
  291.     return CallLocalFunction("AC_OnPlayerStateChange","iii",playerid,newstate,oldstate);
  292. }
  293.  
  294. stock Float:GetDistanceBetweenPoints(Float:rx1,Float:ry1,Float:rz1,Float:rx2,Float:ry2,Float:rz2){
  295.     return floatadd(floatadd(floatsqroot(floatpower(floatsub(rx1,rx2),2)),floatsqroot(floatpower(floatsub(ry1,ry2),2))),floatsqroot(floatpower(floatsub(rz1,rz2),2)));
  296. }
  297.  
  298. stock Float: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)));
  299.  
  300. public OnPlayerUpdate(playerid){
  301.     if(Desk[playerid] >= 1)Desk[playerid] = 0;
  302.     new lib[32], name[32];
  303.     if(GetPlayerAnimationIndex(playerid))
  304.     {
  305.         GetAnimationName(GetPlayerAnimationIndex(playerid),lib,32,name,32);
  306.         if(!strcmp(lib, "SWIM", true && !IsPlayerInWater(playerid)))return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Flyhack!",Name(playerid)),Kicks(playerid);
  307.     }
  308.     if(Desktop_Timer_Started[playerid] == 0)
  309.     {
  310.         Desktop_Timer[playerid] = SetTimerEx("Desktop_Function",888,1,"d",playerid);
  311.         Desktop_Timer_Started[playerid] = 1;
  312.     }
  313.     Desktop_Check[playerid] += 1;
  314.     new keys, ud, lr;
  315.     GetPlayerKeys(playerid, keys, ud, lr);
  316.     if((ud != 128 && ud != 0 && ud != -128) || (lr != 128 && lr != 0 && lr != -128))return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Joypad!",Name(playerid)),Kicks(playerid);  
  317.     return CallLocalFunction("AC_OnPlayerUpdate","i",playerid);
  318. }
  319.  
  320. public AntiSpawnKill(playerid){
  321.     new Float:x,Float:y,Float:z;
  322.     GetPlayerPos(playerid,x,y,z);
  323.     OldPos[playerid][0] = x,OldPos[playerid][1] = y,OldPos[playerid][2] = z;
  324.     switched[playerid] = 1;
  325.     KillTimer(SpawnKillTimer[playerid]);
  326.     return SetPlayerHealthEx(playerid,100),SetTimerEx("ask",888*2,false,"i",playerid);
  327. }
  328.  
  329. public SpamReset(playerid)return SpamCount[playerid] = 0,CBugCount[playerid] = 0;
  330.  
  331.  
  332. public AntiCheatTimer(){
  333.     new i = 0,Float:health,Float:armour,surf;
  334.     for(; i<MAX_PLAYERS; i++)
  335.     {
  336.         if(!IsPlayerConnected(i))continue;
  337.         if(start[i] == 0)continue;
  338.         if(Desk[i] >= 1)continue;
  339.         if(IsPlayerNPC(i))continue;
  340.         GetPlayerHealth(i,health);
  341.         GetPlayerArmour(i,armour);
  342.         new SName[MAX_PLAYER_NAME]; GetPlayerName(i,SName,MAX_PLAYER_NAME);
  343.         if(GetPlayerSpecialAction(i) == SPECIAL_ACTION_USEJETPACK)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Jetpack!",SName),Kicks(i);
  344.         else if(GetPlayerPing(i) > MAX_PING)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Zu hoher Ping! ( %i / %i )",SName,GetPlayerPing(i),MAX_PING),Kicks(i);
  345.         else if(GetPlayerMoney(i) > ACNewMoney[i])return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Moneyhack!",SName),Kicks(i);
  346.         else if(health > ACNewHealth[i])return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Healthhack!",SName),Kicks(i);
  347.         else if(armour > ACNewArmour[i])return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Armourhack!",SName),Kicks(i);
  348.         else if(freezed[i] == 1 && GetPlayerSpeed(i) > 0)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Unfreeze!",SName),Kicks(i);
  349.         else if(GetPlayerSpeed(i) > MAX_PLAYERSPEED)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Speedhack!",SName),Kicks(i);
  350.         else if(GetPlayerSkin(i) != skin[i])return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Skinchanger!",SName),Kicks(i);
  351.         else if(IsPlayerInAnyVehicle(i))if(GetVehicleSpeed(GetPlayerVehicleID(i)) > MAX_VEHSPEED)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Speedhack!",SName),Kicks(i);
  352.         surf = GetPlayerSurfingVehicleID(i);
  353.         if(!(GetPlayerSurfingVehicleID(i) == INVALID_VEHICLE_ID) && (GetVehicleSpeed(surf) > 0))return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Carsurf!",SName),Kicks(i);
  354.         if(switched[i] == 2)
  355.         {
  356.             GetPlayerPos(i,NewPos[i][0],NewPos[i][1],NewPos[i][2]);
  357.             new Float:d = Distance(OldPos[i][0],OldPos[i][1],OldPos[i][2],NewPos[i][0],NewPos[i][1],NewPos[i][2]);
  358.             if(d >= 18 && posbyserver[i] != 1)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Airbrake / Teleporthack!",SName),Kicks(i);
  359.             switched[i] = 1;
  360.         }
  361.         else if(switched[i] == 1)GetPlayerPos(i,OldPos[i][0],OldPos[i][1],OldPos[i][2]),switched[i] = 2;
  362.     }
  363.     return 1;
  364. }
  365.  
  366. public CheckWeapon(){
  367.     new Weaps[13][2],Namee[MAX_PLAYER_NAME];
  368.     for(new i = 0; i<MAX_PLAYERS; i++)
  369.     {
  370.         if(IsPlayerNPC(i))continue;
  371.         if(!IsPlayerConnected(i))continue;
  372.         GetPlayerName(i,Namee,MAX_PLAYER_NAME);
  373.         for(new _w = 0; _w < 13; _w++)
  374.         {
  375.             GetPlayerWeaponData(i, _w, Weaps[_w][0], Weaps[_w][1]);
  376.             if(Weaps[_w][0] <= 0 && Waffe[i][Weaps[_w][0]] != 1)continue;
  377.             else if(Weaps[_w][0] < 1 && Weaps[_w][0] > 47)continue;
  378.             else if(Weaps[_w][0] <= 0 || Weaps[_w][1] <= 0)continue;
  379.             else if(nwh[i][Weaps[_w][0]] == 1){nwh[i][Weaps[_w][0]] = 0; SetPlayerAmmo(i,_w,0); continue;}
  380.             else if(Waffe[i][Weaps[_w][0]] <= 0 && nwh[i][Weaps[_w][0]] == 0)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Waffenhack!",Namee),Kicks(i);
  381.         }
  382.     }
  383.     return 1;
  384. }
  385.  
  386. public GivePlayerWeaponEx(playerid,Gun,Muni){
  387.     Waffe[playerid][Gun] = 1;
  388.     return GivePlayerWeapon(playerid, Gun, Muni);
  389. }
  390.  
  391. public GivePlayerMoneyEx(playerid,money){
  392.     ACNewMoney[playerid] = GetPlayerMoney(playerid) + money;
  393.     return GivePlayerMoney(playerid,money);
  394. }
  395.  
  396. public SetPlayerMoneyEx(playerid,money){
  397.     ACNewMoney[playerid] = money;
  398.     return GivePlayerMoney(playerid,money);
  399. }
  400.  
  401. public SetPlayerArmourEx(playerid,Float:armour){
  402.     ACNewArmour[playerid] = armour;
  403.     parmour[playerid] = armour;
  404.     return SetPlayerArmour(playerid,armour);
  405. }
  406.  
  407. public GivePlayerArmourEx(playerid,Float:armour){
  408.     new Float:oarmour;
  409.     GetPlayerArmour(playerid,oarmour);
  410.     ACOldArmour[playerid] = oarmour;
  411.     ACNewArmour[playerid] = armour += oarmour;
  412.     parmour[playerid] = armour += oarmour;
  413.     return SetPlayerArmour(playerid,armour + oarmour);
  414. }
  415.  
  416. public SetPlayerHealthEx(playerid,Float:health){
  417.     ACNewHealth[playerid] = health;
  418.     phealth[playerid] = health;
  419.     return SetPlayerHealth(playerid,health);
  420. }
  421.  
  422. public GivePlayerHealthEx(playerid,Float:health){
  423.     new Float:ohealth;
  424.     GetPlayerHealth(playerid,ohealth);
  425.     ACOldHealth[playerid] = ohealth;
  426.     ACNewHealth[playerid] = ohealth += health;
  427.     phealth[playerid] = ohealth += health;
  428.     return SetPlayerHealth(playerid,ohealth+health);
  429. }
  430.  
  431. public SetPlayerPosEx(playerid,Float:x,Float:y,Float:z){
  432.     posbyserver[playerid] = 1;
  433.     SetTimerEx("pos",888*2,false,"i",playerid);
  434.     return SetPlayerPos(playerid,x,y,z);
  435. }
  436.  
  437. public SetPlayerSkinEx(playerid,skinid){
  438.     skin[playerid] = skinid;
  439.     return SetPlayerSkin(playerid,skinid);
  440. }
  441.  
  442. public TogglePlayerControllableEx(playerid,toggle){
  443.     switch(toggle)
  444.     {
  445.         case 0:freezed[playerid] = 1;
  446.         case 1:freezed[playerid] = 0;
  447.     }
  448.     return TogglePlayerControllable(playerid,toggle);
  449. }
  450.  
  451. stock IsAPlane(vehicleid){
  452.     switch(GetVehicleModel(vehicleid))
  453.     {
  454.         case 460,464,476,511,512,513,519,520,553,577,592,593: return 1;
  455.     }
  456.     return 0;
  457. }
  458.  
  459. stock IsAHelicopter(vehicleid){
  460.     switch(GetVehicleModel(vehicleid))
  461.     {
  462.         case 417,425,447,465,469,487,488,497,501,548,563: return 1;
  463.     }
  464.     return 0;
  465. }
  466.  
  467. stock anty(string[]){
  468.     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||
  469.     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||
  470.     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||
  471.     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||
  472.     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||
  473.     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)
  474.     return true;
  475.     return false;
  476. }
  477.  
  478.  
  479. stock GetVehicleSpeed(vehicleid){
  480.     new Float:xPos[3];
  481.     GetVehicleVelocity(vehicleid, xPos[0], xPos[1], xPos[2]);
  482.     return floatround(floatsqroot(xPos[0] * xPos[0] + xPos[1] * xPos[1] + xPos[2] * xPos[2]) * 170.00);
  483. }
  484.  
  485.  
  486. stock Name(playerid){
  487.    new name[MAX_PLAYER_NAME];
  488.    GetPlayerName(playerid,name,sizeof(name));
  489.    return name;
  490. }
  491.  
  492. public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
  493. {
  494.     if(Desk[playerid] >= 2)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: AFK-Ghost!",Name(playerid)),Kicks(playerid);
  495.     if(GetPlayerAmmo(playerid) <= 1 && (weaponid >= 1 && weaponid <= 47))Waffe[playerid][weaponid] = 0,nwh[playerid][weaponid] = 1;
  496.     if(weaponid != 38)
  497.     {
  498.         if((gettime() - ShotTime[playerid]) < 1)Shot[playerid]+=1;
  499.         else Shot[playerid]=0;
  500.         if(Shot[playerid] > 10)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Rapid-Fire!",Name(playerid)),Kicks(playerid);
  501.         ShotTime[playerid] = gettime();
  502.     }
  503.     if(hittype == BULLET_HIT_TYPE_PLAYER)
  504.     {
  505.         if(hitid == INVALID_PLAYER_ID)return 1;
  506.         if(Desk[hitid] >= 1)return 1;
  507.         new Float:health,Float:armour; GetPlayerHealth(hitid,health),GetPlayerArmour(hitid,armour);
  508.         if(IsPlayerNPC(hitid))return 1;
  509.         if(armour > 1)
  510.         {
  511.             if(armour < parmour[hitid])parmour[hitid] = armour;
  512.             else return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Godmode!",Name(hitid)),Kicks(hitid);
  513.         }
  514.         else
  515.         {
  516.             if(health < phealth[hitid])phealth[hitid] = health;
  517.             else return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Godmode!",Name(hitid)),Kicks(hitid);
  518.         }
  519.     }
  520.     if(IsWeaponWithAmmo(weaponid))
  521.     {
  522.         new count = 0;
  523.         if(weaponid != CurrentWeapon[playerid]) CurrentWeapon[playerid] = weaponid, CurrentAmmo[playerid] = GetPlayerWeaponAmmo(playerid,weaponid), count++;
  524.         if(GetPlayerWeaponAmmo(playerid,weaponid) > CurrentAmmo[playerid] || GetPlayerWeaponAmmo(playerid,weaponid) < CurrentAmmo[playerid]) CurrentAmmo[playerid] = GetPlayerWeaponAmmo(playerid,weaponid),NoReloading[playerid] = 0,count++;
  525.         if(GetPlayerWeaponAmmo(playerid,weaponid) != 0 && GetPlayerWeaponAmmo(playerid,weaponid) == CurrentAmmo[playerid] && count == 0)
  526.         {
  527.             NoReloading[playerid]++;
  528.             if(NoReloading[playerid] >= 5)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Unlimmited Ammo / No Reloading!",Name(playerid));
  529.         }
  530.     }
  531.     return 1;
  532. }
  533.  
  534. public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
  535. {
  536.     if(issuerid == INVALID_PLAYER_ID)return 1;
  537.     new Float:Pos[3],Float:PosS[3],Float:d; GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]),GetPlayerPos(issuerid,PosS[0],PosS[1],PosS[2]);
  538.     d = Distance(Pos[0],Pos[1],Pos[2],PosS[0],PosS[1],PosS[2]);
  539.     if(d >= 30 && GetPlayerWeapon(issuerid) != 34)return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Distancehack!",Name(issuerid)),Kicks(issuerid);
  540.     return 1;
  541. }
  542.  
  543. stock GetPlayerSpeed(playerid) {
  544.     if(playerid != INVALID_PLAYER_ID)
  545.     {
  546.         new Float:Pos[3],Float:PS;
  547.         GetPlayerVelocity(playerid, Pos[0], Pos[1], Pos[2]);
  548.         PS = floatsqroot(Pos[0]*Pos[0] + Pos[1]*Pos[1] + Pos[2]*Pos[2])*200;
  549.         return floatround(PS,floatround_round);
  550.     }
  551.     return INVALID_PLAYER_ID;
  552. }  
  553.  
  554. public pos(playerid)return posbyserver[playerid] = 0;
  555. public ask(playerid)return start[playerid] = 1;
  556. stock CheckFireArm(weaponid) {
  557.    switch(weaponid)
  558.    {
  559.        case 16..39, 41..43: return 1;
  560.        default: return 0;
  561.    }
  562.    return 0;
  563. }
  564.  
  565. stock SetVehiclePosEx(vehicleid,Float:x,Float:y,Float:z){
  566.     vPos[vehicleid][0] = x,vPos[vehicleid][1] = y,vPos[vehicleid][2] = z;
  567.     return SetVehiclePos(vehicleid,x,y,z);
  568. }
  569.  
  570. public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat){
  571.     new Float:x,Float:y,Float:z; GetVehiclePos(vehicleid, x, y, z);
  572.     if(vPos[vehicleid][0] == 0.0 && vPos[vehicleid][1] == 0.0 && vPos[vehicleid][2] == 0.0)vPos[vehicleid][0] = x,vPos[vehicleid][1] = y,vPos[vehicleid][2] = z;
  573.     new Float:dis = Distance(vPos[vehicleid][0],vPos[vehicleid][1],vPos[vehicleid][2], x,y,z);
  574.     if(dis > 5)return SetVehiclePosEx(vehicleid,vPos[vehicleid][0],vPos[vehicleid][1],vPos[vehicleid][2]);
  575.     else vPos[vehicleid][0] = x,vPos[vehicleid][1] = y,vPos[vehicleid][2] = z;
  576.     return 1;
  577. }
  578.  
  579. public Desktop_Function(playerid){
  580.     if(IsPlayerNPC(playerid))return 1;
  581.     if(Desktop_Check[playerid] > 0)Desktop_Status[playerid] = 0;
  582.     else if(Desktop_Check[playerid] <= 0)Desktop_Status[playerid] +=1;
  583.     Desktop_Check[playerid] = 0;
  584.     if(Desktop_Status[playerid] >= 3)Desktop_Status[playerid] = 0;
  585.     else if(Desktop_Status[playerid] == 1)return Desk[playerid] = 1;
  586.     else if(Desktop_Status[playerid] >= 2)return Desk[playerid] = 2;
  587.     return 1;
  588. }
  589.  
  590. stock IsPlayerMoving(playerid){
  591.     new Float:Velocity[3];
  592.     GetPlayerVelocity(playerid, Velocity[0], Velocity[1], Velocity[2]);
  593.     if(Velocity[0] == 0 && Velocity[1] == 0 && Velocity[2] == 0) return false;
  594.     return true;
  595. }
  596.  
  597. stock IsABike(vid){
  598.     new modelid = GetVehicleModel(vid);
  599.     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;
  600.     else return 0;
  601. }
  602.  
  603. stock IsWeaponWithAmmo(weaponid)
  604. {
  605.     switch(weaponid)
  606.     {
  607.         case 16..18, 22..39, 41..42: return 1;
  608.         default: return 0;
  609.     }
  610.     return 0;
  611.  
  612. }
  613.  
  614. stock GetPlayerWeaponAmmo(playerid,weaponid)
  615. {
  616.     new wd[2][13];
  617.     for(new i; i<13; i++)GetPlayerWeaponData(playerid,i,wd[0][i],wd[1][i]);
  618.     for(new i; i<13; i++)if(weaponid == wd[0][i]) return wd[1][i];
  619.     return 0;
  620. }
  621.  
  622. stock Kicks(playerid)return SetTimerEx("Kicke",50,false,"i",playerid);
  623. public Kicke(playerid)return Kick(playerid);
  624.  
  625.  
  626. #if defined _ALS_OnPlayerConnect
  627.     #undef OnPlayerConnect
  628. #else
  629.     #define _ALS_OnPlayerConnect
  630. #endif
  631. #define OnPlayerConnect             AC_OnPlayerConnect
  632.  
  633. #if defined _ALS_OnGameModeInit
  634.     #undef OnGameModeInit
  635. #else
  636.     #define _ALS_OnGameModeInit
  637. #endif
  638. #define OnGameModeInit              AC_OnGameModeInit
  639.  
  640. #if defined _ALS_OnPlayerSpawn
  641.     #undef OnPlayerSpawn
  642. #else
  643.     #define _ALS_OnPlayerSpawn
  644. #endif
  645. #define OnPlayerSpawn               AC_OnPlayerSpawn
  646.  
  647. #if defined _ALS_OnPlayerDeath
  648.     #undef OnPlayerDeath
  649. #else
  650.     #define _ALS_OnPlayerDeath
  651. #endif
  652. #define OnPlayerDeath               AC_OnPlayerDeath
  653.  
  654. #if defined _ALS_OnPlayerText
  655.     #undef OnPlayerText
  656. #else
  657.     #define _ALS_OnPlayerText
  658. #endif
  659. #define OnPlayerText                AC_OnPlayerText
  660.  
  661. #if defined _ALS_OnPlayerEnterVehicle
  662.     #undef OnPlayerEnterVehicle
  663. #else
  664.     #define _ALS_OnPlayerEnterVehicle
  665. #endif
  666. #define OnPlayerEnterVehicle        AC_OnPlayerEnterVehicle
  667.  
  668. #if defined _ALS_OnVehicleMod
  669.     #undef OnVehicleMod
  670. #else
  671.     #define _ALS_OnVehicleMod
  672. #endif
  673. #define OnVehicleMod                AC_OnVehicleMod
  674.  
  675. #if defined _ALS_OnVehicleRespray
  676.     #undef OnVehicleRespray
  677. #else
  678.     #define _ALS_OnVehicleRespray
  679. #endif
  680. #define OnVehicleRespray            AC_OnVehicleRespray
  681.  
  682. #if defined _ALS_OnVehiclePaintjob
  683.     #undef OnVehiclePaintjob
  684. #else
  685.     #define _ALS_OnVehiclePaintjob
  686. #endif
  687. #define OnVehiclePaintjob           AC_OnVehiclePaintjob
  688.  
  689. #if defined _ALS_OnPlayerKeyStateChange
  690.     #undef OnPlayerKeyStateChange
  691. #else
  692.     #define _ALS_OnPlayerKeyStateChange
  693. #endif
  694. #define OnPlayerKeyStateChange      AC_OnPlayerKeyStateChange
  695.  
  696. #if defined _ALS_OnPlayerUpdate
  697.     #undef OnPlayerUpdate
  698. #else
  699.     #define _ALS_OnPlayerUpdate
  700. #endif
  701. #define OnPlayerUpdate              AC_OnPlayerUpdate
  702.  
  703. #if defined _ALS_OnPlayerDisconnect
  704.     #undef OnPlayerDisconnect
  705. #else
  706.     #define _ALS_OnPlayerDisconnect
  707. #endif
  708. #define OnPlayerDisconnect          AC_OnPlayerDisconnect
  709.  
  710. #if defined _ALS_OnPlayerExitVehicle
  711.     #undef OnPlayerExitVehicle
  712. #else
  713.     #define _ALS_OnPlayerExitVehicle
  714. #endif
  715. #define OnPlayerExitVehicle         AC_OnPlayerExitVehicle
  716.  
  717. #if defined _ALS_OnPlayerStateChange
  718.     #undef OnPlayerStateChange
  719. #else
  720.     #define _ALS_OnPlayerStateChange
  721. #endif
  722. #define OnPlayerStateChange         AC_OnPlayerStateChange
  723.  
  724.  
  725.  
  726. #define GivePlayerMoney             GivePlayerWeaponEx
  727. #define SetPlayerMoney              SetPlayerMoneyEx
  728. #define GivePlayerHealth            GivePlayerHealthEx
  729. #define SetPlayerHealth             SetPlayerHealthEx
  730. #define GivePlayerArmour            GivePlayerArmourEx
  731. #define SetPlayerArmour             SetPlayerArmourEx
  732. #define GivePlayerWeapon            GivePlayerWeaponEx
  733. #define SetPlayerPos                SetPlayerPosEx
  734. #define TogglePlayerControllable    TogglePlayerControllableEx
  735. #define SetPlayerSkin               SetPlayerSkinEx
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement