daily pastebin goal
35%
SHARE
TWEET

Untitled

a guest Jan 3rd, 2013 3,896 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. fuckCLEO
  2.  
  3. /*
  4.  *
  5.  *              "fuckCleo.inc" - #1 Anti-cleo mod include
  6.  *                      Created/Debugged most by Lorenc_
  7.  *  
  8.  *      Thanks to:
  9.  *                      Cessil, Infamous and [FeK]Drakins, JernejL
  10.  *
  11. */
  12.  
  13. /* ** Stop Duplicating Code! ** */
  14. #if defined _fcleo_included
  15.         #endinput
  16. #endif
  17. #define _fcleo_included
  18.  
  19. /* ** Includes ** */
  20. #include                                                        < a_samp >
  21.  
  22. /* ** Configuration ** */
  23. #define FC_FILE_VERSION                         "0.3.5" // Added the FC_
  24.  
  25. #define CLEO_FAKEKILL                           ( 1 )
  26. #define CLEO_CARWARP                            ( 2 )
  27. #define CLEO_PLAYERBUGGER                       ( 3 ) // This number will never be called from OnPlayerCleoDetected
  28. #define CLEO_CARSWING                           ( 4 )
  29. #define CLEO_CAR_PARTICLE_SPAM          ( 5 )
  30.  
  31. /* ** Variables ** */
  32. enum E_CLEO_DATA
  33. {
  34.         E_FK_LASTDEATH,                                 E_FK_DEATHSPAM,
  35.         E_CW_TIME,                                              E_CW_VEHID,
  36.         Float: E_PB_X,                                  Float: E_PB_Y,                          Float: E_PB_Z,
  37.         E_CPS_SPAMCOUNT,                                E_CPS_TICK
  38. };
  39.  
  40. static stock
  41.         g_cleoData                                              [ MAX_PLAYERS ] [ E_CLEO_DATA ],
  42.        
  43.         bool: FC_OPU,
  44.         bool: FC_OPD,
  45.         bool: FC_OPSC,
  46.         bool: FC_OVDSU,
  47.         bool: FC_OPDC
  48. ;
  49.  
  50. /* ** Forwards ** */
  51. forward OnPlayerCleoDetected            ( playerid, cleoid );
  52. forward fc_RepairVehicle                        ( vehicleid );
  53.  
  54. public fc_RepairVehicle( vehicleid )
  55. {
  56.         #if defined _FOREACH_LOCAL_VERSION // I guess this is always defined in foreach.inc
  57.                 foreach(Player, playerid)
  58.                 {
  59.                         if( GetPlayerVehicleID( playerid ) == vehicleid )  {
  60.                                 g_cleoData[ playerid ] [ E_CPS_SPAMCOUNT ]      = 0;
  61.                                 g_cleoData[ playerid ] [ E_CPS_TICK ]           = 0;
  62.                         }
  63.                 }
  64.         #else
  65.                 for( new playerid; playerid < MAX_PLAYERS; playerid++ )
  66.                 {
  67.                         if( IsPlayerConnected( playerid ) )
  68.                         {
  69.                                 if( GetPlayerVehicleID( playerid ) == vehicleid )  {
  70.                                         g_cleoData[ playerid ] [ E_CPS_SPAMCOUNT ]      = 0;
  71.                                         g_cleoData[ playerid ] [ E_CPS_TICK ]           = 0;
  72.                                 }
  73.                         }
  74.                 }
  75.         #endif
  76.         return RepairVehicle( vehicleid );
  77. }
  78. #define RepairVehicle fc_RepairVehicle
  79.  
  80. public OnVehicleDamageStatusUpdate( vehicleid, playerid )
  81. {
  82.         static fc_tires, fc_lights;
  83.     GetVehicleDamageStatus( vehicleid, fc_lights, fc_tires, fc_lights, fc_tires );
  84.         if( GetPlayerState( playerid ) == PLAYER_STATE_DRIVER )
  85.         {
  86.             if( fc_lights || fc_tires )
  87.                 return 1;
  88.                
  89.                 new time = GetTickCount( );
  90.                 switch( time - g_cleoData[ playerid ] [ E_CPS_TICK ] )
  91.                 {
  92.                         case 0 .. 500:
  93.                         {
  94.                                 g_cleoData[ playerid ] [ E_CPS_SPAMCOUNT ] ++;
  95.                                 if( g_cleoData[ playerid ] [ E_CPS_SPAMCOUNT ] >= 10 )
  96.                                 {
  97.                                         CallLocalFunction( "OnPlayerCleoDetected", "dd", playerid, CLEO_CAR_PARTICLE_SPAM );
  98.                                         return 1;
  99.                                 }
  100.                         }
  101.                         default: g_cleoData[ playerid ] [ E_CPS_SPAMCOUNT ] = 0;
  102.                 }
  103.                 g_cleoData[ playerid ] [ E_CPS_TICK ] = time;
  104.         }
  105.         return ( FC_OVDSU ) ? CallLocalFunction( "FC_OnVehicleDamageStatusUpdate", "dd", vehicleid, playerid ) : 1;
  106. }
  107.  
  108. #if defined ALS_OnVehicleDamageStatusUpdate
  109.         #undef OnVehicleDamageStatusUpdate
  110. #else
  111.         #define ALS_OnVehicleDamageStatusUpdate
  112. #endif
  113. #define OnVehicleDamageStatusUpdate FC_OnVehicleDamageStatusUpdate
  114. forward FC_OnVehicleDamageStatusUpdate( vehicleid, playerid );
  115.  
  116. public OnPlayerStateChange( playerid, newstate, oldstate )
  117. {
  118.     if( newstate == PLAYER_STATE_DRIVER )
  119.     {
  120.         if( GetPlayerVehicleID( playerid ) != g_cleoData[ playerid ] [ E_CW_VEHID ] )
  121.         {
  122.             if( g_cleoData[ playerid ] [ E_CW_TIME ] > gettime( ) )
  123.             {
  124.                                 CallLocalFunction( "OnPlayerCleoDetected", "dd", playerid, CLEO_CARWARP );
  125.                 return 1;
  126.             }
  127.             g_cleoData[ playerid ] [ E_CW_TIME ] = gettime( ) + 1;
  128.                         g_cleoData[ playerid ] [ E_CW_VEHID ] = GetPlayerVehicleID( playerid );
  129.         }
  130.     }
  131.         return ( FC_OPSC ) ? CallLocalFunction( "FC_OnPlayerStateChange", "ddd", playerid, newstate, oldstate ) : 1;
  132. }
  133.  
  134. #if defined _ALS_OnPlayerStateChange
  135.         #undef OnPlayerStateChange
  136. #else
  137.         #define _ALS_OnPlayerStateChange
  138. #endif
  139. #define OnPlayerStateChange FC_OnPlayerStateChange
  140. forward FC_OnPlayerStateChange( playerid, newstate, oldstate );
  141.  
  142. public OnPlayerDeath( playerid, killerid, reason )
  143. {
  144.         new time = gettime( );
  145.         switch( time - g_cleoData[ playerid ] [ E_FK_LASTDEATH ] )
  146.         {
  147.                 case 0 .. 3:
  148.                 {
  149.                         g_cleoData[ playerid ] [ E_FK_DEATHSPAM ] ++;
  150.                         if( g_cleoData[ playerid ] [ E_FK_DEATHSPAM ] >= 3 )
  151.                         {
  152.                                 CallLocalFunction( "OnPlayerCleoDetected", "dd", playerid, CLEO_FAKEKILL );
  153.                                 return 1;
  154.                         }
  155.                 }
  156.                 default: g_cleoData[ playerid ] [ E_FK_DEATHSPAM ] = 0;
  157.         }
  158.         g_cleoData[ playerid ] [ E_FK_LASTDEATH ] = time;
  159.         return ( FC_OPD ) ? CallLocalFunction( "FC_OnPlayerDeath", "ddd", playerid, killerid, reason ) : 1;
  160. }
  161.  
  162. #if defined _ALS_OnPlayerDeath
  163.         #undef OnPlayerDeath
  164. #else
  165.         #define _ALS_OnPlayerDeath
  166. #endif
  167. #define OnPlayerDeath FC_OnPlayerDeath
  168. forward FC_OnPlayerDeath( playerid, killerid, reason );
  169.  
  170. public OnPlayerUpdate( playerid )
  171. {
  172.         static
  173.                 Float: X,       Float: Y,       Float: Z,
  174.                 Float: vX,      Float: vY,      Float: vZ
  175.         ;
  176.         GetPlayerPos( playerid, X, Y, Z );
  177.  
  178.         if( X >= 99999.0 || Y >= 99999.0 || Z >= 99999.0 || X <= -99999.0 || Y <= -99999.0 || Z <= -99999.0 ) {
  179.                 SendClientMessage( playerid, 0xa9c4e4ff, "Warning: Excessive X, Y, Z has been breached thus last location set." );
  180.                 SetPlayerPos( playerid, g_cleoData[ playerid ] [ E_PB_X ], g_cleoData[ playerid ] [ E_PB_Y ], g_cleoData[ playerid ] [ E_PB_Z ] );
  181.         }
  182.         else
  183.         {
  184.             g_cleoData[ playerid ] [ E_PB_X ] = X;
  185.             g_cleoData[ playerid ] [ E_PB_Y ] = Y;
  186.             g_cleoData[ playerid ] [ E_PB_Z ] = Z;
  187.         }
  188.  
  189.         if( IsPlayerInAnyVehicle( playerid ) && GetPlayerState( playerid ) == PLAYER_STATE_DRIVER )
  190.         {
  191.                 GetPlayerPos( playerid, X, Y, Z );
  192.                 GetVehicleVelocity( GetPlayerVehicleID( playerid ), vX, vY, vZ );
  193.                 if( ( vX > 3.0 || vY > 3.0 || vZ > 3.0 || vX < -3.0 || vY < -3.0 || vZ < -3.0 ) && ( vX != X && vY != Y && vZ != Z ) )
  194.                 {
  195.                         CallLocalFunction( "OnPlayerCleoDetected", "dd", playerid, CLEO_CARSWING );
  196.                 }
  197.         }
  198.         return ( FC_OPU ) ? CallLocalFunction( "FC_OnPlayerUpdate", "d", playerid ) : 1;
  199. }
  200.  
  201. #if defined _ALS_OnPlayerUpdate
  202.         #undef OnPlayerUpdate
  203. #else
  204.         #define _ALS_OnPlayerUpdate
  205. #endif
  206. #define OnPlayerUpdate FC_OnPlayerUpdate
  207. forward FC_OnPlayerUpdate( playerid );
  208.  
  209. public OnPlayerDisconnect(playerid, reason)
  210. {
  211.         // Pointless reseting, but just incase!
  212.         g_cleoData[ playerid ] [ E_FK_LASTDEATH ] = 0;
  213.         g_cleoData[ playerid ] [ E_FK_DEATHSPAM ] = 0;
  214.         g_cleoData[ playerid ] [ E_CW_TIME ] = 0;
  215.         g_cleoData[ playerid ] [ E_CW_VEHID ] = INVALID_VEHICLE_ID;
  216.         g_cleoData[ playerid ] [ E_PB_X ] = -1;
  217.         g_cleoData[ playerid ] [ E_PB_Y ] = -1;
  218.         g_cleoData[ playerid ] [ E_PB_Z ] = -1;
  219.         g_cleoData[ playerid ] [ E_CPS_SPAMCOUNT ] = 0;
  220.         g_cleoData[ playerid ] [ E_CPS_TICK ] = 0;
  221.         return ( FC_OPDC ) ? CallLocalFunction( "FC_OnPlayerDisconnect", "dd", playerid, reason ) : 1;
  222. }
  223.  
  224. #if defined _ALS_OnPlayerDisconnect
  225.         #undef OnPlayerDisconnect
  226. #else
  227.         #define _ALS_OnPlayerDisconnect
  228. #endif
  229. #define OnPlayerDisconnect FC_OnPlayerDisconnect
  230. forward FC_OnPlayerDisconnect( playerid, reason );
  231.  
  232. #if !defined FILTERSCRIPT
  233.         public OnGameModeInit()
  234.         {
  235.                 FC_OPU = ( funcidx( "FC_OnPlayerUpdate" ) != -1 );
  236.                 FC_OPD = ( funcidx( "FC_OnPlayerDeath" ) != -1 );
  237.                 FC_OPSC = ( funcidx( "FC_OnPlayerStateChange" ) != -1 );
  238.                 FC_OPDC = ( funcidx( "FC_OnPlayerDisconnect" ) != -1 );
  239.                 FC_OVDSU = ( funcidx( "FC_OnVehicleDamageStatusUpdate" ) != -1 );
  240.                 return ( funcidx( "FC_OnGameModeInit" ) != -1 ) ? CallLocalFunction( "FC_OnGameModeInit", "" ) : 1;
  241.         }      
  242.         #if defined _ALS_OnGameModeInit
  243.                 #undef OnGameModeInit
  244.         #else
  245.                 #define _ALS_OnGameModeInit
  246.         #endif
  247.         #define OnGameModeInit FC_OnGameModeInit
  248.         forward FC_OnGameModeInit();
  249. #else
  250.         public OnFilterScriptInit()
  251.         {
  252.                 FC_OPU = ( funcidx( "FC_OnPlayerUpdate" ) != -1 );
  253.                 FC_OPD = ( funcidx( "FC_OnPlayerDeath" ) != -1 );
  254.                 FC_OPSC = ( funcidx( "FC_OnPlayerStateChange" ) != -1 );
  255.                 FC_OPDC = ( funcidx( "FC_OnPlayerDisconnect" ) != -1 );
  256.                 FC_OVDSU = ( funcidx( "FC_OnVehicleDamageStatusUpdate" ) != -1 );
  257.                 return ( funcidx( "FC_OnFilterScriptInit" ) != -1 ) ? CallLocalFunction( "FC_OnFilterScriptInit", "" ) : 1;
  258.         }      
  259.         #if defined _ALS_OnFilterScriptInit
  260.                 #undef OnFilterScriptInit
  261.         #else
  262.                 #define _ALS_OnFilterScriptInit
  263.         #endif
  264.         #define OnFilterScriptInit FC_OnFilterScriptInit
  265.         forward FC_OnFilterScriptInit();
  266. #endif
  267.  
  268. Detection Callback
  269.  
  270. public OnPlayerCleoDetected( playerid, cleoid )
  271. {
  272.     switch( cleoid )
  273.     {
  274.         case CLEO_FAKEKILL:
  275.         {
  276.             SendClientMessage( playerid, -1, "You are fake killing." );
  277.             BanEx( playerid, "Fake kill" );
  278.         }
  279.         case CLEO_CARWARP:
  280.         {
  281.             SendClientMessage( playerid, -1, "You are car warping." );
  282.             BanEx( playerid, "Car Warp" );
  283.         }
  284.         case CLEO_CARSWING:
  285.         {
  286.             SendClientMessage( playerid, -1, "You are car swinging" );
  287.             BanEx( playerid, "Car Swing" );
  288.         }
  289.         case CLEO_CAR_PARTICLE_SPAM:
  290.         {
  291.             SendClientMessage( playerid, -1, "You are partical spamming" );
  292.             BanEx( playerid, "Car Particle Spam" );
  293.         }
  294.     }
  295.     return 1;
  296. }
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303. svCheats
  304.  
  305. //-----------------------------------------------------------------------------------|
  306. //                                    [svCheats]                                     |
  307. //                                                                                   |
  308. //                                                                                   |
  309. //   - You may not remove these credits                                              |
  310. //   - You may not claim this script as yours                                        |
  311. //                                                                                   |
  312. //                                                                                   |
  313. //                                                                                   |
  314. // [VERSION 1.9]                                               Created by SuperViper |
  315. //-----------------------------------------------------------------------------------|
  316.  
  317. #include <a_samp>
  318. #include <sscanf2>
  319.  
  320. // ==================================== SETTINGS ================================== //|
  321. //                                                                                  //|
  322. /* Comment if you would like to use regular 'for' loops instead of foreach */       //|
  323. #define USE_FOREACH                                                                 //|
  324. //                                                                                  //|
  325. /* Comment if you would like to use regular 'ALS' hooks instead of y_hooks */       //|
  326. #define USE_YHOOKS                                                                  //|
  327. //                                                                                  //|
  328. /* Comment if you would like to use regular 'strcmp' commands instead of ZCMD */    //|
  329. #define USE_ZCMD                                                                    //|
  330. //                                                                                  //|
  331. /* Change this amount to set how fast the timer (in ms) to detect cheats runs */    //|
  332. #define TIMER_TIME 1250                                                             //|
  333. //                                                                                  //|
  334. /* Comment this if you would like to disable the /acstats command */                            //|
  335. #define ACSTATS_USED                                                                //|
  336. //                                                                                  //|
  337. /* Comment this if you would like to disable the /hh command */                                         //|
  338. #define HH_USED                 (1)                                                         //|
  339. //                                                                                  //|
  340. /* Comment the anticheat(s) that you dont want and change the security level */     //|
  341. #define HIGH_PING               (2)                                                         //|
  342. #define WEAPON_SPAWN    (1)                                                         //|
  343. #define SPEED_HACK              (1)                                                         //|
  344. #define JETPACK_HACK    (1)                                                         //|
  345. #define DRVBY_RESTRICT  (-1)                                                        //|
  346. #define DDRIVEBY_OFF    (-1)                                                        //|
  347. #define SWEARING_OFF    (-1)                                                        //|
  348. //#define AIRBREAK_HACK (1)                                                         //|
  349. #define BUNNYHOP_OFF    (1)                                                         //|
  350. #define FLY_HACK        (1)                                                         //|
  351. #define TELEPORT_HACK   (1)                                                         //|
  352. #define VEHICLE_REPAIR  (1)                                                         //|
  353. #define CHATSPAM_OFF    (-1)                                                        //|
  354. #define AFK_DISABLED    (2)                                                         //|
  355. #define TABBED_DISABLED (2)                                                         //|
  356. #define NINJAJACK_CHEAT (-1)                                                        //|
  357. #define HEALTH_HACK             (1)                                                         //|
  358. #define CARRAM_OFF      (-1)                                                        //|
  359. #define HELIBLADE_OFF   (-1)                                                        //|
  360. #define VEHMOD_HACK     (1)                                                         //|
  361. #define SERVERAD_CHEAT  (-1)                                                        //|
  362. #define FAKEPLAYER_HACK (-1)                                                        //|
  363. #define FAKEKLL_HACK    (-1)                                                        //|
  364. #define REMOTEJACK_HACK (-1)                                                        //|
  365. #define INVALIDMOD_HACK (-1)                                                        //|
  366. #define GOIN_LOCKED_VEH (-1)                                                        //|
  367. #define SPAMKILL_CHEAT  (-1)                                                        //|
  368. //                                                                                  //|
  369. //                                                                                  //|
  370. //                                                                                  //|
  371. /* Change the anticheat settings to best fit your server ----------------------- */ //|
  372. //----------------------------------------------------------------------------------//|
  373. #define MAX_PING                (750) // Maximum server ping                                //|
  374. //----------------------------------------------------------------------------------//|
  375. #define USED_INTERIORS  "1 2" // Used interiors separated by a space                //|
  376. //----------------------------------------------------------------------------------//|
  377. #define MAX_SPEED               (198) // Maximum vehicle speed                              //|
  378. //----------------------------------------------------------------------------------//|
  379. #define DRIVEBY_WEAPONS "28 29 32" // Driveby allowed weapons separated by a space  //|
  380. //----------------------------------------------------------------------------------//|
  381. #define BUNNYHOP_AMOUNT (6) // Amount of jumps before it's called bunny hopping     //|
  382. //----------------------------------------------------------------------------------//|
  383. #define CHATSPAM_LINES  (4) // Amount of lines sent before it's called spam         //|
  384. //----------------------------------------------------------------------------------//|
  385. #define AFK_MINUTES     (10) // Amount of minutes before a person is AFK            //|
  386. //----------------------------------------------------------------------------------//|
  387. #define SERVER_IP       "127.0.0.1" // IP of your server                            //|
  388. #define SERVER_DOMAIN   "samp.servername.com" // Optional server domain             //|
  389. //----------------------------------------------------------------------------------//|
  390. new CurseWords[][] = {"ass", "bitch", "shit", "fuck", "nigger", "cunt", "whore"};   //|
  391. //----------------------------------------------------------------------------------//|
  392. #define DETECT_KILLS    (5) // Amount of kills in X seconds for spamkill detection  //|
  393. #define DETECT_SECONDS  (20) // Amount of seconds in X kills for spamkill detection //|
  394. //----------------------------------------------------------------------------------//|
  395. // ================================================================================ //|
  396. //                         DO NOT TOUCH ANYTHING BELOW THIS                         //|
  397. // ================================================================================ //|
  398.  
  399. #if defined USE_FOREACH
  400.         #tryinclude <foreach>
  401. #endif
  402.  
  403. #if defined USE_YHOOKS
  404.         #tryinclude <YSI\y_hooks>
  405. #endif
  406.  
  407. #if defined USE_ZCMD
  408.         #tryinclude <zcmd>
  409. #endif
  410.  
  411. #if defined AIRBREAK_HACK
  412.         #tryinclude <MapAndreas>
  413. #endif
  414.  
  415. #define SVCS_svCheats
  416.  
  417. #define CHEAT_HIGH_PING                 (1)
  418. #define CHEAT_WEAPON_SPAWN              (2)
  419. #define CHEAT_SPEED_HACK                (3)
  420. #define CHEAT_JETPACK_HACK              (4)
  421. #define CHEAT_DRIVEBY                   (5)
  422. #define CHEAT_DDRIVEBY                  (6)
  423. #define CHEAT_SWEARING                  (7)
  424. #define CHEAT_AIRBREAK_HACK     (8)
  425. #define CHEAT_BUNNYHOP                  (9)
  426. #define CHEAT_FLY_HACK                  (10)
  427. #define CHEAT_TELEPORT_HACK     (11)
  428. #define CHEAT_VEHICLE_REPAIR    (12)
  429. #define CHEAT_CHATSPAM                  (13)
  430. #define CHEAT_AFK                               (14)
  431. #define CHEAT_TABBED            (15)
  432. #define CHEAT_GODMODE           (16)
  433. #define CHEAT_NINJAJACK         (17)
  434. #define CHEAT_HEALTHHACK        (18)
  435. #define CHEAT_CARRAM            (19)
  436. #define CHEAT_HELIBLADE         (20)
  437. #define CHEAT_VEHMOD            (21)
  438. #define CHEAT_SERVERAD          (22)
  439. #define CHEAT_FAKEPLAYER        (23)
  440. #define CHEAT_FAKEKILL          (24)
  441. #define CHEAT_REMOTEJACK        (25)
  442. #define CHEAT_INVALIDMOD        (26)
  443. #define CHEAT_LOCKEDVEH         (27)
  444. #define CHEAT_SPAMKILL          (28)
  445.  
  446. forward svCheats_Detector();
  447. forward svCheats_OnPlayerCheatUpdate(playerid, cheatid);
  448.  
  449. enum e_svCheats_HH
  450. {
  451.         svCheckedBy,
  452.         bool: svInVehicle,
  453.         svVehicleID,
  454.         svVehicleSeat,
  455.         Float: svOldPlayerPos[4],
  456.         svInterior,
  457.         svVirtualWorld,
  458.         Float: svHealth,
  459.         Float: svArmor,
  460. }
  461.  
  462. enum e_svCheats_RemoteJack
  463. {
  464.         Float: svLofPos[3],
  465.         svLastJackState,
  466. }
  467.  
  468. enum e_svCheats_IPJoin
  469. {
  470.         svIP_Add,
  471.         svTimestamp,
  472. }
  473.  
  474. new svCheats_SecurityLevel[MAX_PLAYERS], bool: svCheats_Debugging, bool: svCheats_Spawned[MAX_PLAYERS];
  475. new bool: svCheats_GrantedJetpack[MAX_PLAYERS], Float: svCheats_VehicleHealth[MAX_VEHICLES] = 1000.0;
  476. new svCheats_JumpCounters[MAX_PLAYERS], svCheats_JumpCounterTimer[MAX_PLAYERS];
  477. new svCheats_PlayerWeapons[MAX_PLAYERS][13], svCheats_SpamCounters[MAX_PLAYERS];
  478. new svCheats_AFKTime[MAX_PLAYERS], svCheats_LastAFKUpdate[MAX_PLAYERS], bool: svCheats_ReportedAFK[MAX_PLAYERS];
  479. new Float: svCheats_oldPos[MAX_PLAYERS][3];
  480. new svCheats_TabbedUpdates[MAX_PLAYERS], bool: svCheats_ReportedTabbed[MAX_PLAYERS], bool: svCheats_TabbedDisabled[MAX_PLAYERS];
  481. new svCheats_HH[MAX_PLAYERS][e_svCheats_HH];
  482. new svCheats_PossibleNinjaJack[MAX_PLAYERS];
  483. new Float: svCheats_PlayerHealth[MAX_PLAYERS], Float: svCheats_PlayerArmor[MAX_PLAYERS], bool: svCheats_HealthHackDisabled[MAX_PLAYERS];
  484. new svCheats_RemoteJack[MAX_PLAYERS][e_svCheats_RemoteJack];
  485. new svCheats_IPJoin[37][e_svCheats_IPJoin], svCheats_ajs = 0;
  486. new bool: svCheats_SkipPlayerLVCheck[MAX_PLAYERS];
  487. new svCheats_KillAmount[MAX_PLAYERS];
  488. new svCheats_AmountDetected;
  489.  
  490. Float: svCheats_GetDistance(Float: x1, Float: y1, Float: z1, Float: x2, Float: y2, Float: z2)
  491. {
  492.         return floatsqroot(floatpower(x1 - x2, 2.0) + floatpower(y1 - y2, 2.0) + floatpower(z1 - z2, 2.0));
  493. }
  494.  
  495. #if defined USE_YHOOKS
  496. #if defined FILTERSCRIPT
  497. hook OnFilterScriptInit()
  498. {
  499.     new File: svCheats_Stats;
  500.  
  501.         if(!fexist("svCheats_Stats.txt"))
  502.         {
  503.             svCheats_Stats = fopen("svCheats_Stats.txt", io_append);
  504.             fwrite(svCheats_Stats, "0");
  505.         }
  506.         else
  507.         {
  508.                 new amountDetected[5];
  509.                 svCheats_Stats = fopen("svCheats_Stats.txt", io_read);
  510.                 fread(svCheats_Stats, amountDetected);
  511.                 svCheats_AmountDetected = strval(amountDetected);
  512.         }
  513.  
  514.         fclose(svCheats_Stats);
  515.     SetTimer("svCheats_Detector", TIMER_TIME, 1);
  516.         return 1;
  517. }
  518.  
  519. hook OnFilterScriptExit()
  520. {
  521.     new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write);
  522.         format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected);
  523.         fwrite(svCheats_Stats, amountDetected);
  524.         fclose(svCheats_Stats);
  525.         return 1;
  526. }
  527. #else
  528. hook OnGameModeInit()
  529. {
  530.         new File: svCheats_Stats;
  531.        
  532.         if(!fexist("svCheats_Stats.txt"))
  533.         {
  534.             svCheats_Stats = fopen("svCheats_Stats.txt", io_append);
  535.             fwrite(svCheats_Stats, "0");
  536.         }
  537.         else
  538.         {
  539.                 new amountDetected[5];
  540.                 svCheats_Stats = fopen("svCheats_Stats.txt", io_read);
  541.                 fread(svCheats_Stats, amountDetected);
  542.                 svCheats_AmountDetected = strval(amountDetected);
  543.         }
  544.        
  545.         fclose(svCheats_Stats);
  546.     SetTimer("svCheats_Detector", TIMER_TIME, 1);
  547.         return 1;
  548. }
  549.  
  550. hook OnGameModeExit()
  551. {
  552.     new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write);
  553.         format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected);
  554.         fwrite(svCheats_Stats, amountDetected);
  555.         fclose(svCheats_Stats);
  556.         return 1;
  557. }
  558. #endif
  559. hook OnPlayerConnect(playerid)
  560. {
  561.         svCheats_SecurityLevel[playerid] = 0;
  562.        
  563.         #if defined FAKEPLAYER_HACK
  564.         new playersIP[17];
  565.         GetPlayerIp(playerid, playersIP, 17);
  566.         if(strcmp(playersIP, "255.255.255.255") == 0 || (strcmp(SERVER_IP, "127.0.0.1") && strcmp(playersIP, "127.0.0.1") == 0 && !IsPlayerNPC(playerid)))
  567.         {
  568.                 svCheats_CallDetection(playerid, CHEAT_FAKEPLAYER);
  569.     }
  570.    
  571.     svCheats_log_new_join(playerid);
  572.     if(svCheats_NJTR(playerid, 5000) >= 3)
  573.     {
  574.         svCheats_CallDetection(playerid, CHEAT_FAKEPLAYER);
  575.     }
  576.         #endif
  577.  
  578.         #if defined JETPACK_HACK
  579.         svCheats_GrantedJetpack[playerid] = false;
  580.         #endif
  581.  
  582.         #if defined BUNNYHOP_OFF
  583.         svCheats_JumpCounters[playerid] = 0;
  584.         svCheats_JumpCounterTimer[playerid] = -1;
  585.         #endif
  586.  
  587.         #if defined CHATSPAM_OFF
  588.         svCheats_SpamCounters[playerid] = 0;
  589.         #endif
  590.  
  591.         #if defined WEAPON_SPAWN
  592.         for(new i = 0; i < 13; i++)
  593.         {
  594.             svCheats_PlayerWeapons[playerid][i] = 0;
  595.         }
  596.         #endif
  597.        
  598.         #if defined AFK_DISABLED
  599.         svCheats_AFKTime[playerid] = 0;
  600.         svCheats_LastAFKUpdate[playerid] = GetTickCount();
  601.         svCheats_ReportedAFK[playerid] = false;
  602.         #endif
  603.        
  604.         #if defined TABBED_DISABLED
  605.         svCheats_TabbedUpdates[playerid] = 0;
  606.         svCheats_ReportedTabbed[playerid] = false;
  607.         svCheats_TabbedDisabled[playerid] = true;
  608.         #endif
  609.        
  610.         svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID;
  611.        
  612.         #if defined NINJAJACK_CHEAT
  613.         svCheats_PossibleNinjaJack[playerid] = INVALID_PLAYER_ID;
  614.         #endif
  615.        
  616.         #if defined GOIN_LOCKED_VEH
  617.         svCheats_SkipPlayerLVCheck[playerid] = false;
  618.         #endif
  619.        
  620.         #if defined SPAMKLL_CHEAT
  621.         svCheats_KillAmount[playerid] = 0;
  622.         #endif
  623.        
  624.         svCheats_Spawned[playerid] = false;
  625.         return 1;
  626. }
  627.  
  628. hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  629. {
  630.         #if defined BUNNYHOP_OFF
  631.                 if(newkeys & KEY_JUMP)
  632.                 {
  633.                     if(svCheats_SecurityLevel[playerid] < BUNNYHOP_OFF || BUNNYHOP_OFF == -1)
  634.                     {
  635.                             new ai = GetPlayerAnimationIndex(playerid);
  636.                             if(ai != 1061 && ai != 1062 && ai != 1064 && ai != 1066 && ai != 1195 && ai != 1997 && ai != 1538 || ai != 1538 || ai != 1543)
  637.                             {
  638.                                         svCheats_JumpCounters[playerid]++;
  639.  
  640.                                         if(svCheats_JumpCounterTimer[playerid] > -1)
  641.                                         {
  642.                                             KillTimer(svCheats_JumpCounterTimer[playerid]);
  643.                                             svCheats_JumpCounterTimer[playerid] = -1;
  644.                                         }
  645.  
  646.                                         if(svCheats_JumpCounters[playerid] == BUNNYHOP_AMOUNT)
  647.                                         {
  648.                                             svCheats_JumpCounters[playerid] = 0;
  649.                                             svCheats_CallDetection(playerid, CHEAT_BUNNYHOP);
  650.                                             svCheats_AmountDetected++;
  651.                                         }
  652.                                         else
  653.                                         {
  654.                                                 svCheats_JumpCounterTimer[playerid] = SetTimerEx("svCheats_JumpCountersDown", 2000, 0, "i", playerid);
  655.                                         }
  656.                             }
  657.                     }
  658.                 }
  659.         #endif
  660.        
  661.         #if defined WEAPON_SPAWN
  662.                 if(newkeys & KEY_FIRE)
  663.                 {
  664.                     if(svCheats_SecurityLevel[playerid] < WEAPON_SPAWN || WEAPON_SPAWN == -1)
  665.                     {
  666.                             new w = GetPlayerWeapon(playerid);
  667.                             if(w > 0 && w < 46)
  668.                             {
  669.                                         if(svCheats_PlayerWeapons[playerid][svCheats_GetWeaponSlot(w)] != w)
  670.                                         {
  671.                                             svCheats_CallDetection(playerid, CHEAT_WEAPON_SPAWN);
  672.                                             svCheats_AmountDetected++;
  673.                                         }
  674.                             }
  675.                     }
  676.                 }
  677.         #endif
  678.         return 1;
  679. }
  680.  
  681. hook OnPlayerText(playerid, text[])
  682. {
  683.         #if defined SWEARING_OFF
  684.             if(svCheats_SecurityLevel[playerid] < SWEARING_OFF || SWEARING_OFF == -1)
  685.             {
  686.                         for(new c = 0; c < sizeof(CurseWords); c++)
  687.                         {
  688.                                 if(strfind(text, CurseWords[c], true) > -1)
  689.                                 {
  690.                                     svCheats_CallDetection(playerid, CHEAT_SWEARING);
  691.                                     svCheats_AmountDetected++;
  692.                                     return 0;
  693.                                 }
  694.                         }
  695.                 }
  696.         #endif
  697.        
  698.         #if defined CHATSPAM_OFF
  699.             if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  700.             {
  701.                 svCheats_SpamCounters[playerid]++;
  702.                
  703.                 if(svCheats_SpamCounters[playerid] == CHATSPAM_LINES)
  704.                 {
  705.                     svCheats_SpamCounters[playerid] = 0;
  706.                                 svCheats_CallDetection(playerid, CHEAT_CHATSPAM);
  707.                                 svCheats_AmountDetected++;
  708.                                 return 0;
  709.                 }
  710.             }
  711.         #endif
  712.        
  713.         #if defined AFK_DISABLED
  714.             if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1)
  715.             {
  716.                 svCheats_AFKTime[playerid] = 0;
  717.                 svCheats_ReportedAFK[playerid] = false;
  718.             }
  719.         #endif
  720.        
  721.         #if defined SERVERAD_CHEAT
  722.             if(svCheats_SecurityLevel[playerid] < SERVERAD_CHEAT || SERVERAD_CHEAT == -1)
  723.             {
  724.                 new dotCount, numCount;
  725.                
  726.                         for(new i = 0; i < strlen(text); i++)
  727.                         {
  728.                             if(text[i] == '.')
  729.                             {
  730.                                 dotCount++;
  731.                             }
  732.                             else if(text[i] >= '0' && text[i] <= '9')
  733.                             {
  734.                                 numCount++;
  735.                             }
  736.                         }
  737.                        
  738.                         if(dotCount >= 2 && (numCount >= 7 || strfind(text, "samp.") > -1))
  739.                         {
  740.                             if(strfind(text, SERVER_IP) == -1 && strfind(text, SERVER_DOMAIN, true) == -1)
  741.                             {
  742.                                         svCheats_CallDetection(playerid, CHEAT_SERVERAD);
  743.                                 }
  744.                         }
  745.             }
  746.         #endif
  747.         return 0;
  748. }
  749.  
  750. #if defined VEHICLE_REPAIR
  751. hook OnVehicleSpawn(vehicleid)
  752. {
  753.         svCheats_VehicleHealth[vehicleid] = 1000.0;
  754.         return 1;
  755. }
  756.  
  757. hook OnPlayerStateChange(playerid, newstate, oldstate)
  758. {
  759.         if(newstate == PLAYER_STATE_DRIVER)
  760.         {
  761.             #if defined VEHICLE_REPAIR
  762.                 new vehicleid = GetPlayerVehicleID(playerid);
  763.                 GetVehicleHealth(vehicleid, svCheats_VehicleHealth[vehicleid]);
  764.             #endif
  765.  
  766.             #if defined NINJAJACK_OFF
  767.                         #if defined USE_FOREACH
  768.                                 foreach(new i: Player)
  769.                                 {
  770.                                     if(svCheats_PossibleNinjaJack[i] == playerid)
  771.                                     {
  772.                                         svCheats_PossibleNinjaJack[i] = INVALID_PLAYER_ID;
  773.                                         break;
  774.                                     }
  775.                                 }
  776.                         #else
  777.                             for(new i = 0; i < MAX_PLAYERS; i++)
  778.                                 {
  779.                                     if(IsPlayerConnected(i))
  780.                                         {
  781.                                             if(svCheats_PossibleNinjaJack[i] == playerid)
  782.                                             {
  783.                                                 svCheats_PossibleNinjaJack[i] = INVALID_PLAYER_ID;
  784.                                                 break;
  785.                                             }
  786.                                     }
  787.                                 }
  788.                         #endif
  789.             #endif
  790.         }
  791.        
  792.         if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
  793.         {
  794.             #if defined GOIN_LOCKED_VEH
  795.                 if(svCheats_SecurityLevel[playerid] < GOIN_LOCKED_VEH || GOIN_LOCKED_VEH == -1)
  796.                 {
  797.                     if(svCheats_SkipPlayerLVCheck[playerid] == false)
  798.                     {
  799.                         new engine, lights, alarm, doors, bonnet, boot, objective;
  800.                         GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, doors, bonnet, boot, objective);
  801.                         if(doors)
  802.                         {
  803.                             svCheats_CallDetection(playerid, CHEAT_LOCKEDVEH);
  804.                         }
  805.                     }
  806.                     else
  807.                     {
  808.                         svCheats_SkipPlayerLVCheck[playerid] = false;
  809.                     }
  810.                 }
  811.             #endif
  812.         }
  813.         return 1;
  814. }
  815. #endif
  816.  
  817. #if defined CHEAT_TABBED
  818. hook OnPlayerUpdate(playerid)
  819. {
  820.         svCheats_TabbedUpdates[playerid] = 0;
  821.         svCheats_ReportedTabbed[playerid] = false;
  822.        
  823.         #if defined CHEAT_REMOTEJACK
  824.                 new playersVehicle = GetPlayerVehicleID(playerid);
  825.  
  826.             if(!IsPlayerInAnyVehicle(playerid))
  827.             {
  828.                 GetPlayerPos(playerid, svCheats_RemoteJack[playerid][svLofPos][0], svCheats_RemoteJack[playerid][svLofPos][1], svCheats_RemoteJack[playerid][svLofPos][2]);
  829.                 }
  830.  
  831.             if((playersVehicle != svCheats_RemoteJack[playerid][svLastJackState]) && playersVehicle != 0 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  832.                 {
  833.                 new Float: playersPos[3], Float: distancejack = svCheats_GetDistance(playersPos[0], playersPos[1], playersPos[2], svCheats_RemoteJack[playerid][svLofPos][0], svCheats_RemoteJack[playerid][svLofPos][1], svCheats_RemoteJack[playerid][svLofPos][2]), thiscaride = GetVehicleModel(playersVehicle), Float: distanceth = 10;
  834.                 GetVehiclePos(playersVehicle, playersPos[0], playersPos[1], playersPos[2]);
  835.  
  836.                 if(thiscaride == 577 || thiscaride == 592)
  837.                 {
  838.                                 distanceth = 25.0;
  839.                         }
  840.  
  841.                 if(distancejack > distanceth)
  842.                         {
  843.                     svCheats_CallDetection(playerid, CHEAT_REMOTEJACK);
  844.                 }
  845.  
  846.                 GetPlayerPos(playerid, svCheats_RemoteJack[playerid][svLofPos][0], svCheats_RemoteJack[playerid][svLofPos][1], svCheats_RemoteJack[playerid][svLofPos][2]);
  847.  
  848.                 svCheats_RemoteJack[playerid][svLastJackState] = playersVehicle;
  849.             }
  850.         #endif
  851.         return 1;
  852. }
  853.  
  854. hook OnPlayerSpawn(playerid)
  855. {
  856.         svCheats_TabbedDisabled[playerid] = false;
  857.         svCheats_Spawned[playerid] = true;
  858.         svCheats_GrantedJetpack[playerid] = false;
  859.        
  860.         #if defined HEALTH_HACK
  861.         svCheats_PlayerHealth[playerid] = 1000;
  862.         svCheats_PlayerArmor[playerid] = 0;
  863.         svCheats_HealthHackDisabled[playerid] = false;
  864.         #endif
  865.         return 1;
  866. }
  867. #endif
  868.  
  869. hook OnPlayerDeath(playerid, killerid, reason)
  870. {
  871.         svCheats_TabbedDisabled[playerid] = true;
  872.         svCheats_HealthHackDisabled[playerid] = true;
  873.  
  874.         if(killerid == INVALID_PLAYER_ID)
  875.         {
  876.                 if(svCheats_PossibleNinjaJack[playerid] != INVALID_PLAYER_ID)
  877.                 {
  878.                     svCheats_CallDetection(svCheats_PossibleNinjaJack[playerid], CHEAT_NINJAJACK);
  879.                     svCheats_PossibleNinjaJack[playerid] = INVALID_PLAYER_ID;
  880.                 }
  881.         }
  882.         else
  883.         {
  884.                 #if defined FAKEKILL_HACK
  885.                     if(svCheats_SecurityLevel[killerid] < FAKEKILL_HACK || FAKEKILL_HACK == -1)
  886.                     {
  887.                         if(!IsPlayerStreamedInForPlayer(playerid, killerid))
  888.                         {
  889.                             svCheats_CallDetection(killerid, CHEAT_FAKEKILL);
  890.                         }
  891.                     }
  892.                 #endif
  893.                
  894.                 #if defined SPAMKILL_CHEAT
  895.                     if(svCheats_SecurityLevel[killerid] < SPAMKILL_CHEAT || SPAMKILL_CHEAT == -1)
  896.                     {
  897.                         svCheats_KillAmount[killerid]++;
  898.                         if(svCheats_KillAmount[killerid] >= DETECT_KILLS)
  899.                         {
  900.                             svCheats_CallDetection(killerid, CHEAT_SPAMKILL);
  901.                         }
  902.                         SetTimerEx("svCheats_KillAmountDown", DETECT_SECONDS * 1000, 0, "i", killerid);
  903.                     }
  904.                 #endif
  905.         }
  906.         return 1;
  907. }
  908.  
  909. hook OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  910. {
  911.         #if defined DRVBY_RESTRICT
  912.                 if(svCheats_SecurityLevel[playerid] < DRVBY_RESTRICT || DRVBY_RESTRICT == -1)
  913.                 {
  914.                         if(ispassenger)
  915.                         {
  916.                         new w = GetPlayerWeapon(playerid);
  917.                         if(w > 0)
  918.                         {
  919.                                         new allowedWeapons[10], bool: allowed;
  920.                                 sscanf(DRIVEBY_WEAPONS, "a<i>[10]", allowedWeapons);
  921.  
  922.                                         for(new i = 0; i < sizeof(allowedWeapons); i++)
  923.                                         {
  924.                                                 if(w == allowedWeapons[i])
  925.                                                 {
  926.                                                         allowed = true;
  927.                                                 break;
  928.                                 }
  929.                                         }
  930.  
  931.                                         if(allowed == false)
  932.                                         {
  933.                                                 SetPlayerArmedWeapon(playerid, 0);
  934.                                                 svCheats_CallDetection(playerid, CHEAT_DRIVEBY);
  935.                                                 svCheats_AmountDetected++;
  936.                                         }
  937.                                 }
  938.                         }
  939.                 }
  940.         #endif
  941.  
  942.         #if defined DDRIVEBY_OFF
  943.                 if(svCheats_SecurityLevel[playerid] < DDRIVEBY_OFF || DDRIVEBY_OFF == -1)
  944.                 {
  945.                 if(!ispassenger)
  946.                 {
  947.                                 new w = GetPlayerWeapon(playerid);
  948.                                 if(w > 0)
  949.                                 {
  950.                                 SetPlayerArmedWeapon(playerid, 0);
  951.                                 svCheats_CallDetection(playerid, CHEAT_DDRIVEBY);
  952.                                 svCheats_AmountDetected++;
  953.                                 }
  954.                 }
  955.         }
  956.         #endif
  957.        
  958.         #if defined NINJAJACK_CHEAT
  959.             if(svCheats_SecurityLevel[playerid] < NINJAJACK_CHEAT || NINJAJACK_CHEAT == -1)
  960.             {
  961.                 if(!ispassenger)
  962.                 {
  963.                     #if defined USE_FOREACH
  964.                         foreach(new i: Player)
  965.                         {
  966.                             if(GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER)
  967.                             {
  968.                                 svCheats_PossibleNinjaJack[i] = playerid;
  969.                                 break;
  970.                             }
  971.                         }
  972.                     #else
  973.                         for(new i = 0; i < MAX_PLAYERS; i++)
  974.                         {
  975.                             if(IsPlayerConnected(i))
  976.                             {
  977.                                     if(GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER)
  978.                                     {
  979.                                         svCheats_PossibleNinjaJack[i] = playerid;
  980.                                         break;
  981.                                     }
  982.                             }
  983.                         }
  984.                     #endif
  985.                 }
  986.             }
  987.         #endif
  988.        
  989.         #if defined GOIN_LOCKED_VEH
  990.                 svCheats_SkipPlayerLVCheck[playerid] = true;
  991.         #endif
  992.        
  993.         return 1;
  994. }
  995.  
  996. #if defined USE_ZCMD
  997. #if defined HH_USED
  998. COMMAND:hh(playerid, params[])
  999. {
  1000.         if(svCheats_SecurityLevel[playerid] < HH_USED)
  1001.         {
  1002.                 return SendClientMessage(playerid, -1, "You are not authorized to use this command.");
  1003.     }
  1004.  
  1005.     new svCheats_giveplayerid;
  1006.     if(sscanf(params, "u", svCheats_giveplayerid))
  1007.     {
  1008.         return SendClientMessage(playerid, -1, "USAGE: /hh [player]");
  1009.     }
  1010.  
  1011.         if(svCheats_ReportedTabbed[svCheats_giveplayerid] == true)
  1012.         {
  1013.                 return SendClientMessage(playerid, -1, "You may not health hack check tabbed players.");
  1014.     }
  1015.  
  1016.         if(svCheats_HH[svCheats_giveplayerid][svCheckedBy] != INVALID_PLAYER_ID)
  1017.         {
  1018.                 return SendClientMessage(playerid, -1, "That player is already being checked for health hacks.");
  1019.     }
  1020.  
  1021.         new string[128], playersName[MAX_PLAYER_NAME], Float: playersPos[3];
  1022.  
  1023.         GetPlayerName(svCheats_giveplayerid, playersName, sizeof(playersName));
  1024.         format(string, sizeof(string), "Checking %s for health hacks...", playersName);
  1025.         SendClientMessage(playerid, -1, string);
  1026.  
  1027.         GetPlayerPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  1028.         SetPlayerCameraLookAt(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  1029.         SetPlayerCameraPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2] + 5);
  1030.  
  1031.         for(new i = 0; i < 3; i++)
  1032.         {
  1033.                 svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][i] = playersPos[i];
  1034.         }
  1035.  
  1036.         GetPlayerFacingAngle(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][3]);
  1037.  
  1038.         svCheats_HH[svCheats_giveplayerid][svInterior] = GetPlayerInterior(svCheats_giveplayerid);
  1039.         svCheats_HH[svCheats_giveplayerid][svVirtualWorld] = GetPlayerVirtualWorld(svCheats_giveplayerid);
  1040.  
  1041.         if(IsPlayerInAnyVehicle(svCheats_giveplayerid))
  1042.         {
  1043.                 svCheats_HH[svCheats_giveplayerid][svInVehicle] = true;
  1044.                 svCheats_HH[svCheats_giveplayerid][svVehicleID] = GetPlayerVehicleID(svCheats_giveplayerid);
  1045.             svCheats_HH[svCheats_giveplayerid][svVehicleSeat] = GetPlayerVehicleSeat(svCheats_giveplayerid);
  1046.         }
  1047.         else
  1048.         {
  1049.                 svCheats_HH[svCheats_giveplayerid][svInVehicle] = false;
  1050.         }
  1051.  
  1052.         GetPlayerHealth(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svHealth]);
  1053.         GetPlayerArmour(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svArmor]);
  1054.  
  1055.         svCheats_HH[svCheats_giveplayerid][svCheckedBy] = playerid;
  1056.  
  1057.         SetPlayerInterior(svCheats_giveplayerid, 0);
  1058.         SetPlayerPos(svCheats_giveplayerid, 0.0, 0.0, 8.0);
  1059.         SetPlayerHealth(svCheats_giveplayerid, 100.0);
  1060.         SetPlayerArmour(svCheats_giveplayerid, 0.0);
  1061.  
  1062.         SetTimerEx("svCheats_HealthHackCheck", 1350 + GetPlayerPing(svCheats_giveplayerid), 0, "i", svCheats_giveplayerid);
  1063.         return 1;
  1064. }
  1065. #endif
  1066.  
  1067. #if defined ACSTATS_USED
  1068. COMMAND:acstats(playerid, params[])
  1069. {
  1070.         new string[50];
  1071.         format(string, sizeof(string), "(svCheats) Cheaters Detected: %d", svCheats_AmountDetected);
  1072.         SendClientMessage(playerid, -1, string);
  1073.         return 1;
  1074. }
  1075. #endif
  1076. #else
  1077. hook OnPlayerCommandText(playerid, cmdtext[])
  1078. {
  1079.     #if defined CHATSPAM_OFF
  1080.             if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  1081.             {
  1082.                 svCheats_SpamCounters[playerid]++;
  1083.  
  1084.                 if(svCheats_SpamCounters[playerid] == CHATSPAM_LINES)
  1085.                 {
  1086.                     svCheats_SpamCounters[playerid] = 0;
  1087.                                 svCheats_CallDetection(playerid, CHEAT_CHATSPAM);
  1088.                                 svCheats_AmountDetected++;
  1089.                                 return 0;
  1090.                 }
  1091.             }
  1092.         #endif
  1093.        
  1094.         #if defined HH_USED
  1095.                 new svCheats_cmd[5];
  1096.                 sscanf(cmdtext, "s[5]", svCheats_cmd);
  1097.                 if(strcmp(svCheats_cmd, "/hh", true) == 0)
  1098.                 {
  1099.                     if(svCheats_SecurityLevel[playerid] < HH_USED)
  1100.                     {
  1101.                         return SendClientMessage(playerid, -1, "You are not authorized to use this command.");
  1102.                     }
  1103.  
  1104.                     new svCheats_giveplayerid;
  1105.                     if(sscanf(cmdtext, "{s[5]}u", svCheats_giveplayerid))
  1106.                     {
  1107.                         return SendClientMessage(playerid, -1, "USAGE: /hh [player]");
  1108.                     }
  1109.  
  1110.                     if(svCheats_ReportedTabbed[svCheats_giveplayerid] == true)
  1111.                     {
  1112.                         return SendClientMessage(playerid, -1, "You may not health hack check tabbed players.");
  1113.                     }
  1114.  
  1115.                     if(svCheats_HH[svCheats_giveplayerid][svCheckedBy] != INVALID_PLAYER_ID)
  1116.                     {
  1117.                         return SendClientMessage(playerid, -1, "That player is already being checked for health hacks.");
  1118.                     }
  1119.  
  1120.                         new string[128], playersName[MAX_PLAYER_NAME], Float: playersPos[3];
  1121.  
  1122.                         GetPlayerName(svCheats_giveplayerid, playersName, sizeof(playersName));
  1123.                         format(string, sizeof(string), "Checking %s for health hacks...", playersName);
  1124.                         SendClientMessage(playerid, -1, string);
  1125.  
  1126.                         GetPlayerPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  1127.                         SetPlayerCameraLookAt(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  1128.                         SetPlayerCameraPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2] + 5);
  1129.  
  1130.                         for(new i = 0; i < 3; i++)
  1131.                         {
  1132.                                 svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][i] = playersPos[i];
  1133.                         }
  1134.  
  1135.                         GetPlayerFacingAngle(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][3]);
  1136.  
  1137.                         svCheats_HH[svCheats_giveplayerid][svInterior] = GetPlayerInterior(svCheats_giveplayerid);
  1138.                         svCheats_HH[svCheats_giveplayerid][svVirtualWorld] = GetPlayerVirtualWorld(svCheats_giveplayerid);
  1139.  
  1140.                         if(IsPlayerInAnyVehicle(svCheats_giveplayerid))
  1141.                         {
  1142.                             svCheats_HH[svCheats_giveplayerid][svInVehicle] = true;
  1143.                             svCheats_HH[svCheats_giveplayerid][svVehicleID] = GetPlayerVehicleID(svCheats_giveplayerid);
  1144.                             svCheats_HH[svCheats_giveplayerid][svVehicleSeat] = GetPlayerVehicleSeat(svCheats_giveplayerid);
  1145.                         }
  1146.                         else
  1147.                         {
  1148.                             svCheats_HH[svCheats_giveplayerid][svInVehicle] = false;
  1149.                         }
  1150.  
  1151.                         GetPlayerHealth(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svHealth]);
  1152.                         GetPlayerArmour(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svArmor]);
  1153.  
  1154.                         svCheats_HH[svCheats_giveplayerid][svCheckedBy] = playerid;
  1155.  
  1156.                         SetPlayerInterior(svCheats_giveplayerid, 0);
  1157.                         SetPlayerPos(svCheats_giveplayerid, 0.0, 0.0, 8.0);
  1158.                         SetPlayerHealth(svCheats_giveplayerid, 100.0);
  1159.                         SetPlayerArmour(svCheats_giveplayerid, 0.0);
  1160.  
  1161.                         SetTimerEx("svCheats_HealthHackCheck", 1350 + GetPlayerPing(svCheats_giveplayerid), 0, "i", svCheats_giveplayerid);
  1162.                     return 1;
  1163.                 }
  1164.         #endif
  1165.        
  1166.         #if defined ACSTATS_USED
  1167.         if(strcmp(cmdtext, "/acstats", true) == 0)
  1168.         {
  1169.                 new string[50];
  1170.                 format(string, sizeof(string), "(svCheats) Cheaters Detected: %d", svCheats_AmountDetected);
  1171.                 SendClientMessage(playerid, -1, string);
  1172.                 return 1;
  1173.         }
  1174.         #endif
  1175.         return 0;
  1176. }
  1177. #endif
  1178.  
  1179. hook OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
  1180. {
  1181.         if(issuerid == INVALID_PLAYER_ID)
  1182.         {
  1183.             if(svCheats_HH[playerid][svCheckedBy] != INVALID_PLAYER_ID)
  1184.             {
  1185.                 new string[128], playersName[MAX_PLAYER_NAME], giveplayerid = svCheats_HH[playerid][svCheckedBy];
  1186.  
  1187.                     GetPlayerName(playerid, playersName, sizeof(playersName));
  1188.                         format(string, sizeof(string), "The health hack check on %s has been finished and the result is {F81414}negative{FFFFFF}.", playersName);
  1189.                         SendClientMessage(giveplayerid, -1, string);
  1190.  
  1191.                         svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID;
  1192.  
  1193.                         SetPlayerVirtualWorld(playerid, svCheats_HH[playerid][svVirtualWorld]);
  1194.                         SetPlayerInterior(playerid, svCheats_HH[playerid][svInterior]);
  1195.                         SetPlayerPos(playerid, svCheats_HH[playerid][svOldPlayerPos][0], svCheats_HH[playerid][svOldPlayerPos][1], svCheats_HH[playerid][svOldPlayerPos][2]);
  1196.                         SetPlayerFacingAngle(playerid, svCheats_HH[playerid][svOldPlayerPos][3]);
  1197.  
  1198.                         if(svCheats_HH[playerid][svInVehicle] == true)
  1199.                         {
  1200.                             PutPlayerInVehicle(playerid, svCheats_HH[playerid][svVehicleID], svCheats_HH[playerid][svVehicleSeat]);
  1201.                         }
  1202.  
  1203.                         SetPlayerHealth(playerid, svCheats_HH[playerid][svHealth]);
  1204.                         SetPlayerArmour(playerid, svCheats_HH[playerid][svArmor]);
  1205.  
  1206.                         SetCameraBehindPlayer(playerid);
  1207.             }
  1208.         }
  1209.         else
  1210.         {
  1211.             #if defined CARRAM_OFF
  1212.                 if(svCheats_SecurityLevel[playerid] < CARRAM_OFF || CARRAM_OFF == -1)
  1213.                 {
  1214.                     if(weaponid == 49)
  1215.                     {
  1216.                         svCheats_CallDetection(playerid, CHEAT_CARRAM);
  1217.                     }
  1218.                 }
  1219.             #endif
  1220.            
  1221.             #if defined HELIBLADE_OFF
  1222.                 if(svCheats_SecurityLevel[playerid] < HELIBLADE_OFF || HELIBLADE_OFF == -1)
  1223.                 {
  1224.                     if(weaponid == 50)
  1225.                     {
  1226.                         svCheats_CallDetection(playerid, CHEAT_HELIBLADE);
  1227.                     }
  1228.                 }
  1229.             #endif
  1230.         }
  1231.        
  1232.         #if defined HEALTH_HACK
  1233.                 if(!svCheats_PlayerArmor[playerid] || issuerid == INVALID_PLAYER_ID)
  1234.                 {
  1235.                     svCheats_PlayerHealth[playerid] -= amount;
  1236.                 }
  1237.                 else
  1238.                 {
  1239.                     if(svCheats_PlayerArmor[playerid] - amount >= 0)
  1240.                     {
  1241.                         svCheats_PlayerArmor[playerid] -= amount;
  1242.                     }
  1243.                     else
  1244.                     {
  1245.                         svCheats_PlayerHealth[playerid] -= (amount - svCheats_PlayerArmor[playerid]);
  1246.                         svCheats_PlayerArmor[playerid] = 0;
  1247.                     }
  1248.                 }
  1249.         #endif
  1250.         return CallRemoteFunction("svCheats_OnPlayerTakeDamage", "ddfd", playerid, issuerid, amount, weaponid);
  1251. }
  1252.  
  1253. #if defined TELEPORT_HACK
  1254. hook OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
  1255. {
  1256.         if(svCheats_SecurityLevel[playerid] < TELEPORT_HACK || TELEPORT_HACK == -1)
  1257.         {
  1258.                 if(!IsPlayerInRangeOfPoint(playerid, 10.0, svCheats_oldPos[playerid][0], svCheats_oldPos[playerid][1], svCheats_oldPos[playerid][2]))
  1259.                 {
  1260.                         if(IsPlayerInRangeOfPoint(playerid, 10.0, fX, fY, fZ))
  1261.                 {
  1262.                         svCheats_CallDetection(playerid, CHEAT_TELEPORT_HACK);
  1263.                     }
  1264.                 }
  1265.         }
  1266.         return 1;
  1267. }
  1268. #endif
  1269.  
  1270. hook OnVehicleMod(playerid, vehicleid, componentid)
  1271. {
  1272.         #if defined VEHMOD_HACK
  1273.                 if(svCheats_SecurityLevel[playerid] < VEHMOD_HACK || VEHMOD_HACK == -1)
  1274.                 {
  1275.                         if(!GetPlayerInterior(playerid))
  1276.                         {
  1277.                             svCheats_CallDetection(playerid, CHEAT_VEHMOD);
  1278.                         }
  1279.                 }
  1280.         #endif
  1281.        
  1282.         #if defined INVALIDMOD_HACK
  1283.             if(!svCheats_IsAllowedCarMod(GetVehicleModel(vehicleid), componentid))
  1284.                 {
  1285.                 svCheats_CallDetection(playerid, CHEAT_INVALIDMOD);
  1286.             }
  1287.         #endif
  1288.         return 1;
  1289. }
  1290. #else
  1291. #if defined FILTERSCRIPT
  1292. forward svCheats_OnFilterScriptInit();
  1293. public OnFilterScriptInit()
  1294. {
  1295.     new File: svCheats_Stats;
  1296.  
  1297.         if(!fexist("svCheats_Stats.txt"))
  1298.         {
  1299.             svCheats_Stats = fopen("svCheats_Stats.txt", io_append);
  1300.             fwrite(svCheats_Stats, "0");
  1301.         }
  1302.         else
  1303.         {
  1304.                 new amountDetected[5];
  1305.                 svCheats_Stats = fopen("svCheats_Stats.txt", io_read);
  1306.                 fread(svCheats_Stats, amountDetected);
  1307.                 svCheats_AmountDetected = strval(amountDetected);
  1308.         }
  1309.  
  1310.         fclose(svCheats_Stats);
  1311.     SetTimer("svCheats_Detector", TIMER_TIME, 1);
  1312.         return CallRemoteFunction("svCheats_OnFilterScriptInit", "");
  1313. }
  1314.  
  1315. #if defined _ALS_OnFilterScriptInit
  1316.     #undef OnFilterScriptInit
  1317. #else
  1318.     #define _ALS_OnFilterScriptInit
  1319. #endif
  1320. #define OnFilterScriptInit svCheats_OnFilterScriptInit
  1321.  
  1322. forward svCheats_OnFilterScriptExit();
  1323. public OnFilterScriptExit()
  1324. {
  1325.     new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write);
  1326.         format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected);
  1327.         fwrite(svCheats_Stats, amountDetected);
  1328.         fclose(svCheats_Stats);
  1329.         return CallRemoteFunction("svCheats_OnFilterScriptExit", "");
  1330. }
  1331.  
  1332. #if defined _ALS_OnFilterScriptExit
  1333.     #undef OnFilterScriptExit
  1334. #else
  1335.     #define _ALS_OnFilterScriptExit
  1336. #endif
  1337. #define OnFilterScriptExit svCheats_OnFilterScriptExit
  1338. #else
  1339. forward svCheats_OnGameModeInit();
  1340. public OnGameModeInit()
  1341. {
  1342.     new File: svCheats_Stats;
  1343.  
  1344.         if(!fexist("svCheats_Stats.txt"))
  1345.         {
  1346.             svCheats_Stats = fopen("svCheats_Stats.txt", io_append);
  1347.             fwrite(svCheats_Stats, "0");
  1348.         }
  1349.         else
  1350.         {
  1351.                 new amountDetected[5];
  1352.                 svCheats_Stats = fopen("svCheats_Stats.txt", io_read);
  1353.                 fread(svCheats_Stats, amountDetected);
  1354.                 svCheats_AmountDetected = strval(amountDetected);
  1355.         }
  1356.  
  1357.         fclose(svCheats_Stats);
  1358.         SetTimer("svCheats_Detector", TIMER_TIME, 1);
  1359.         return CallRemoteFunction("svCheats_OnGameModeInit", "");
  1360. }
  1361.  
  1362. #if defined _ALS_OnGameModeInit
  1363.     #undef OnGameModeInit
  1364. #else
  1365.     #define _ALS_OnGameModeInit
  1366. #endif
  1367. #define OnGameModeInit svCheats_OnGameModeInit
  1368.  
  1369. forward svCheats_OnGameModeExit();
  1370. public OnGameModeExit()
  1371. {
  1372.         new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write);
  1373.         format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected);
  1374.         fwrite(svCheats_Stats, amountDetected);
  1375.         fclose(svCheats_Stats);
  1376.         return CallRemoteFunction("svCheats_OnGameModeExit", "");
  1377. }
  1378.  
  1379. #if defined _ALS_OnGameModeExit
  1380.     #undef OnGameModeExit
  1381. #else
  1382.     #define _ALS_OnGameModeExit
  1383. #endif
  1384. #define OnGameModeExit svCheats_OnGameModeExit
  1385. #endif
  1386.  
  1387. forward svCheats_OnPlayerDeath(playerid, killerid, reason);
  1388. public OnPlayerDeath(playerid, killerid, reason)
  1389. {
  1390.         svCheats_TabbedDisabled[playerid] = true;
  1391.         svCheats_HealthHackDisabled[playerid] = true;
  1392.  
  1393.         if(killerid == INVALID_PLAYER_ID)
  1394.         {
  1395.                 if(svCheats_PossibleNinjaJack[playerid] != INVALID_PLAYER_ID)
  1396.                 {
  1397.                     svCheats_CallDetection(svCheats_PossibleNinjaJack[playerid], CHEAT_NINJAJACK);
  1398.                     svCheats_PossibleNinjaJack[playerid] = INVALID_PLAYER_ID;
  1399.                 }
  1400.         }
  1401.         else
  1402.         {
  1403.             #if defined FAKEKILL_HACK
  1404.                     if(svCheats_SecurityLevel[killerid] < FAKEKILL_HACK || FAKEKILL_HACK == -1)
  1405.                     {
  1406.                         if(!IsPlayerStreamedInForPlayer(playerid, killerid))
  1407.                         {
  1408.                             svCheats_CallDetection(killerid, CHEAT_FAKEKILL);
  1409.                         }
  1410.                     }
  1411.                 #endif
  1412.                
  1413.                 #if defined SPAMKILL_CHEAT
  1414.                     if(svCheats_SecurityLevel[killerid] < SPAMKILL_CHEAT || SPAMKILL_CHEAT == -1)
  1415.                     {
  1416.                         svCheats_KillAmount[killerid]++;
  1417.                         if(svCheats_KillAmount[killerid] >= DETECT_KILLS)
  1418.                         {
  1419.                             svCheats_CallDetection(killerid, CHEAT_SPAMKILL);
  1420.                         }
  1421.                         SetTimerEx("svCheats_KillAmountDown", DETECT_SECONDS * 1000, 0, "i", killerid);
  1422.                     }
  1423.                 #endif
  1424.         }
  1425.         return CallRemoteFunction("svCheats_OnPlayerDeath", "ddd", playerid, killerid, reason);
  1426. }
  1427.  
  1428. #if defined _ALS_OnPlayerDeath
  1429.     #undef OnPlayerDeath
  1430. #else
  1431.     #define _ALS_OnPlayerDeath
  1432. #endif
  1433. #define OnPlayerDeath svCheats_OnPlayerDeath
  1434.  
  1435. forward svCheats_OnPlayerConnect(playerid);
  1436. public OnPlayerConnect(playerid)
  1437. {
  1438.         svCheats_SecurityLevel[playerid] = 0;
  1439.        
  1440.         #if defined FAKEPLAYER_HACK
  1441.         new playersIP[17];
  1442.         GetPlayerIp(playerid, playersIP, 17);
  1443.         if(strcmp(playersIP, "255.255.255.255") == 0 || (strcmp(SERVER_IP, "127.0.0.1") && strcmp(playersIP, "127.0.0.1") == 0 && !IsPlayerNPC(playerid)))
  1444.         {
  1445.                 svCheats_CallDetection(playerid, CHEAT_FAKEPLAYER);
  1446.     }
  1447.    
  1448.         svCheats_log_new_join(playerid);
  1449.     if(svCheats_NJTR(playerid, 5000) >= 3)
  1450.     {
  1451.         svCheats_CallDetection(playerid, CHEAT_FAKEPLAYER);
  1452.     }
  1453.         #endif
  1454.        
  1455.         #if defined JETPACK_HACK
  1456.         svCheats_GrantedJetpack[playerid] = false;
  1457.         #endif
  1458.        
  1459.         #if defined BUNNYHOP_OFF
  1460.         svCheats_JumpCounters[playerid] = 0;
  1461.         svCheats_JumpCounterTimer[playerid] = -1;
  1462.         #endif
  1463.        
  1464.         #if defined CHATSPAM_OFF
  1465.         svCheats_SpamCounters[playerid] = 0;
  1466.         #endif
  1467.        
  1468.         #if defined WEAPON_SPAWN
  1469.         for(new i = 0; i < 13; i++)
  1470.         {
  1471.             svCheats_PlayerWeapons[playerid][i] = 0;
  1472.         }
  1473.         #endif
  1474.        
  1475.         #if defined AFK_DISABLED
  1476.         svCheats_AFKTime[playerid] = 0;
  1477.         svCheats_LastAFKUpdate[playerid] = GetTickCount();
  1478.         svCheats_ReportedAFK[playerid] = false;
  1479.         #endif
  1480.        
  1481.         #if defined TABBED_DISABLED
  1482.         svCheats_TabbedUpdates[playerid] = 0;
  1483.         svCheats_ReportedTabbed[playerid] = false;
  1484.         svCheats_TabbedDisabled[playerid] = true;
  1485.         #endif
  1486.        
  1487.         svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID;
  1488.        
  1489.         #if defined NINJAJACK_CHEAT
  1490.         svCheats_PossibleNinjaJack[playerid] = INVALID_PLAYER_ID;
  1491.         #endif
  1492.        
  1493.         #if defined GOIN_LOCKED_VEH
  1494.         svCheats_SkipPlayerLVCheck[playerid] = false;
  1495.         #endif
  1496.        
  1497.         #if defined SPAMKLL_CHEAT
  1498.         svCheats_KillAmount[playerid] = 0;
  1499.         #endif
  1500.        
  1501.         svCheats_Spawned[playerid] = false;
  1502.         return CallRemoteFunction("svCheats_OnPlayerConnect", "d", playerid);
  1503. }
  1504.  
  1505. #if defined _ALS_OnPlayerConnect
  1506.     #undef OnPlayerConnect
  1507. #else
  1508.     #define _ALS_OnPlayerConnect
  1509. #endif
  1510. #define OnPlayerConnect svCheats_OnPlayerConnect
  1511.  
  1512. forward svCheats_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  1513. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  1514. {
  1515.         #if defined BUNNYHOP_OFF
  1516.                 if(newkeys & KEY_JUMP)
  1517.                 {
  1518.                     if(svCheats_SecurityLevel[playerid] < BUNNYHOP_OFF || BUNNYHOP_OFF == -1)
  1519.                     {
  1520.                             new ai = GetPlayerAnimationIndex(playerid);
  1521.                             if(ai != 1061 && ai != 1062 && ai != 1064 && ai != 1066 && ai != 1195 && ai != 1997 && ai != 1538 || ai != 1538 || ai != 1543)
  1522.                             {
  1523.                                         svCheats_JumpCounters[playerid]++;
  1524.  
  1525.                                         if(svCheats_JumpCounterTimer[playerid] > -1)
  1526.                                         {
  1527.                                             KillTimer(svCheats_JumpCounterTimer[playerid]);
  1528.                                             svCheats_JumpCounterTimer[playerid] = -1;
  1529.                                         }
  1530.  
  1531.                                         if(svCheats_JumpCounters[playerid] == BUNNYHOP_AMOUNT)
  1532.                                         {
  1533.                                             svCheats_JumpCounters[playerid] = 0;
  1534.                                             svCheats_CallDetection(playerid, CHEAT_BUNNYHOP);
  1535.                                             svCheats_AmountDetected++;
  1536.                                         }
  1537.                                         else
  1538.                                         {
  1539.                                                 svCheats_JumpCounterTimer[playerid] = SetTimerEx("svCheats_JumpCountersDown", 2000, 0, "i", playerid);
  1540.                                         }
  1541.                             }
  1542.                     }
  1543.                 }
  1544.         #endif
  1545.  
  1546.         #if defined WEAPON_SPAWN
  1547.                 if(newkeys & KEY_FIRE)
  1548.                 {
  1549.                     if(svCheats_SecurityLevel[playerid] < WEAPON_SPAWN || WEAPON_SPAWN == -1)
  1550.                     {
  1551.                             new w = GetPlayerWeapon(playerid);
  1552.                             if(w > 0 && w < 46)
  1553.                             {
  1554.                                         if(svCheats_PlayerWeapons[playerid][svCheats_GetWeaponSlot(w)] != w)
  1555.                                         {
  1556.                                             svCheats_CallDetection(playerid, CHEAT_WEAPON_SPAWN);
  1557.                                             svCheats_AmountDetected++;
  1558.                                         }
  1559.                             }
  1560.                     }
  1561.                 }
  1562.         #endif
  1563.         return CallRemoteFunction("svCheats_OnPlayerKeyStateChange", "ddd", playerid, newkeys, oldkeys);
  1564. }
  1565.  
  1566. #if defined _ALS_OnPlayerKeyStateChange
  1567.     #undef OnPlayerKeyStateChange
  1568. #else
  1569.     #define _ALS_OnPlayerKeyStateChange
  1570. #endif
  1571. #define OnPlayerKeyStateChange svCheats_OnPlayerKeyStateChange
  1572.  
  1573. forward svCheats_OnPlayerText(playerid, text[]);
  1574. public OnPlayerText(playerid, text[])
  1575. {
  1576.     #if defined SWEARING_OFF
  1577.             if(svCheats_SecurityLevel[playerid] < SWEARING_OFF || SWEARING_OFF == -1)
  1578.             {
  1579.                         for(new c = 0; c < sizeof(CurseWords); c++)
  1580.                         {
  1581.                                 if(strfind(text, CurseWords[c], true) > -1)
  1582.                                 {
  1583.                                     svCheats_CallDetection(playerid, CHEAT_SWEARING);
  1584.                                     svCheats_AmountDetected++;
  1585.                                         return 0;
  1586.                                 }
  1587.                         }
  1588.                 }
  1589.         #endif
  1590.        
  1591.         #if defined CHATSPAM_OFF
  1592.             if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  1593.             {
  1594.                 svCheats_SpamCounters[playerid]++;
  1595.  
  1596.                 if(svCheats_SpamCounters[playerid] == CHATSPAM_LINES)
  1597.                 {
  1598.                     svCheats_SpamCounters[playerid] = 0;
  1599.                                 svCheats_CallDetection(playerid, CHEAT_CHATSPAM);
  1600.                                 svCheats_AmountDetected++;
  1601.                                 return 0;
  1602.                 }
  1603.             }
  1604.         #endif
  1605.        
  1606.         #if defined AFK_DISABLED
  1607.             if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1)
  1608.             {
  1609.                 svCheats_AFKTime[playerid] = 0;
  1610.                 svCheats_ReportedAFK[playerid] = false;
  1611.             }
  1612.         #endif
  1613.        
  1614.         #if defined SERVERAD_CHEAT
  1615.             if(svCheats_SecurityLevel[playerid] < SERVERAD_CHEAT || SERVERAD_CHEAT == -1)
  1616.             {
  1617.                 new dotCount, numCount;
  1618.  
  1619.                         for(new i = 0; i < strlen(text); i++)
  1620.                         {
  1621.                             if(text[i] == '.')
  1622.                             {
  1623.                                 dotCount++;
  1624.                             }
  1625.                             else if(text[i] >= '0' && text[i] <= '9')
  1626.                             {
  1627.                                 numCount++;
  1628.                             }
  1629.                         }
  1630.  
  1631.                         if(dotCount >= 3 && (numCount >= 7 || strfind(text, "samp.") > -1))
  1632.                         {
  1633.                             if(strfind(text, SERVER_IP) == -1 && strfind(text, SERVER_DOMAIN, true) == -1)
  1634.                             {
  1635.                                         svCheats_CallDetection(playerid, CHEAT_SERVERAD);
  1636.                                 }
  1637.                         }
  1638.             }
  1639.         #endif
  1640.         return CallRemoteFunction("svCheats_OnPlayerText", "ds", playerid, text);
  1641. }
  1642.  
  1643. #if defined _ALS_OnPlayerText
  1644.     #undef OnPlayerText
  1645. #else
  1646.     #define _ALS_OnPlayerText
  1647. #endif
  1648. #define OnPlayerText svCheats_OnPlayerText
  1649.  
  1650. #if defined VEHICLE_REPAIR
  1651. forward svCheats_OnVehicleSpawn(vehicleid);
  1652. public OnVehicleSpawn(vehicleid)
  1653. {
  1654.         svCheats_VehicleHealth[vehicleid] = 1000.0;
  1655.         return CallRemoteFunction("svCheats_OnVehicleSpawn", "d", vehicleid);
  1656. }
  1657.  
  1658. #if defined _ALS_OnVehicleSpawn
  1659.     #undef OnVehicleSpawn
  1660. #else
  1661.     #define _ALS_OnVehicleSpawn
  1662. #endif
  1663. #define OnVehicleSpawn svCheats_OnVehicleSpawn
  1664.  
  1665. forward svCheats_OnPlayerStateChange(playerid, newstate, oldstate);
  1666. public OnPlayerStateChange(playerid, newstate, oldstate)
  1667. {
  1668.         if(newstate == PLAYER_STATE_DRIVER)
  1669.         {
  1670.             #if defined VEHICLE_REPAIR
  1671.                 new vehicleid = GetPlayerVehicleID(playerid);
  1672.                 GetVehicleHealth(vehicleid, svCheats_VehicleHealth[vehicleid]);
  1673.             #endif
  1674.            
  1675.             #if defined NINJAJACK_OFF
  1676.                         #if defined USE_FOREACH
  1677.                                 foreach(new i: Player)
  1678.                                 {
  1679.                                     if(svCheats_PossibleNinjaJack[i] == playerid)
  1680.                                     {
  1681.                                         svCheats_PossibleNinjaJack[i] = INVALID_PLAYER_ID;
  1682.                                         break;
  1683.                                     }
  1684.                                 }
  1685.                         #else
  1686.                             for(new i = 0; i < MAX_PLAYERS; i++)
  1687.                                 {
  1688.                                     if(IsPlayerConnected(i))
  1689.                                         {
  1690.                                             if(svCheats_PossibleNinjaJack[i] == playerid)
  1691.                                             {
  1692.                                                 svCheats_PossibleNinjaJack[i] = INVALID_PLAYER_ID;
  1693.                                                 break;
  1694.                                             }
  1695.                                     }
  1696.                                 }
  1697.                         #endif
  1698.             #endif
  1699.         }
  1700.        
  1701.         if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
  1702.         {
  1703.             #if defined GOIN_LOCKED_VEH
  1704.                 if(svCheats_SecurityLevel[playerid] < GOIN_LOCKED_VEH || GOIN_LOCKED_VEH == -1)
  1705.                 {
  1706.                     if(svCheats_SkipPlayerLVCheck[playerid] == false)
  1707.                     {
  1708.                         new engine, lights, alarm, doors, bonnet, boot, objective;
  1709.                         GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, doors, bonnet, boot, objective);
  1710.                         if(doors)
  1711.                         {
  1712.                             svCheats_CallDetection(playerid, CHEAT_LOCKEDVEH);
  1713.                         }
  1714.                     }
  1715.                     else
  1716.                     {
  1717.                         svCheats_SkipPlayerLVCheck[playerid] = false;
  1718.                     }
  1719.                 }
  1720.             #endif
  1721.         }
  1722.         return CallRemoteFunction("svCheats_OnPlayerStateChange", "ddd", playerid, newstate, oldstate);
  1723. }
  1724.  
  1725. #if defined _ALS_OnPlayerStateChange
  1726.     #undef OnPlayerStateChange
  1727. #else
  1728.     #define _ALS_OnPlayerStateChange
  1729. #endif
  1730. #define OnPlayerStateChange svCheats_OnPlayerStateChange
  1731. #endif
  1732.  
  1733. #if defined CHEAT_TABBED
  1734. forward svCheats_OnPlayerUpdate(playerid);
  1735. public OnPlayerUpdate(playerid)
  1736. {
  1737.         svCheats_TabbedUpdates[playerid] = 0;
  1738.         svCheats_ReportedTabbed[playerid] = false;
  1739.        
  1740.         #if defined CHEAT_REMOTEJACK
  1741.                 new playersVehicle = GetPlayerVehicleID(playerid);
  1742.  
  1743.             if(!IsPlayerInAnyVehicle(playerid))
  1744.             {
  1745.                 GetPlayerPos(playerid, svCheats_RemoteJack[playerid][svLofPos][0], svCheats_RemoteJack[playerid][svLofPos][1], svCheats_RemoteJack[playerid][svLofPos][2]);
  1746.                 }
  1747.  
  1748.             if((playersVehicle != svCheats_RemoteJack[playerid][svLastJackState]) && playersVehicle != 0 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1749.                 {
  1750.                 new Float: playersPos[3], Float: distancejack = svCheats_GetDistance(playersPos[0], playersPos[1], playersPos[2], svCheats_RemoteJack[playerid][svLofPos][0], svCheats_RemoteJack[playerid][svLofPos][1], svCheats_RemoteJack[playerid][svLofPos][2]), thiscaride = GetVehicleModel(playersVehicle), Float: distanceth = 10;
  1751.                 GetVehiclePos(playersVehicle, playersPos[0], playersPos[1], playersPos[2]);
  1752.  
  1753.                 if(thiscaride == 577 || thiscaride == 592)
  1754.                 {
  1755.                                 distanceth = 25.0;
  1756.                         }
  1757.  
  1758.                 if(distancejack > distanceth)
  1759.                         {
  1760.                     svCheats_CallDetection(playerid, CHEAT_REMOTEJACK);
  1761.                 }
  1762.  
  1763.                 GetPlayerPos(playerid, svCheats_RemoteJack[playerid][svLofPos][0], svCheats_RemoteJack[playerid][svLofPos][1], svCheats_RemoteJack[playerid][svLofPos][2]);
  1764.  
  1765.                 svCheats_RemoteJack[playerid][svLastJackState] = playersVehicle;
  1766.             }
  1767.         #endif
  1768.         return CallRemoteFunction("svCheats_OnPlayerUpdate", "d", playerid);
  1769. }
  1770.  
  1771. #if defined _ALS_OnPlayerUpdate
  1772.     #undef OnPlayerUpdate
  1773. #else
  1774.     #define _ALS_OnPlayerUpdate
  1775. #endif
  1776. #define OnPlayerUpdate svCheats_OnPlayerUpdate
  1777.  
  1778. forward svCheats_OnPlayerSpawn(playerid);
  1779. public OnPlayerSpawn(playerid)
  1780. {
  1781.         svCheats_TabbedDisabled[playerid] = false;
  1782.         svCheats_Spawned[playerid] = true;
  1783.        
  1784.         #if defined HEALTH_HACK
  1785.         svCheats_PlayerHealth[playerid] = 1000;
  1786.         svCheats_PlayerArmor[playerid] = 0;
  1787.         svCheats_HealthHackDisabled[playerid] = false;
  1788.         #endif
  1789.         return CallRemoteFunction("svCheats_OnPlayerSpawn", "d", playerid);
  1790. }
  1791.  
  1792. #if defined _ALS_OnPlayerSpawn
  1793.     #undef OnPlayerSpawn
  1794. #else
  1795.     #define _ALS_OnPlayerSpawn
  1796. #endif
  1797. #define OnPlayerSpawn svCheats_OnPlayerSpawn
  1798.  
  1799. forward svCheats_OnPlayerEnterVehicle(playerid, vehicleid, ispassenger);
  1800. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  1801. {
  1802.         #if defined DRVBY_RESTRICT
  1803.                 if(svCheats_SecurityLevel[playerid] < DRVBY_RESTRICT || DRVBY_RESTRICT == -1)
  1804.                 {
  1805.                         if(ispassenger)
  1806.                         {
  1807.                         new w = GetPlayerWeapon(playerid);
  1808.                         if(w > 0)
  1809.                         {
  1810.                                         new allowedWeapons[10], bool: allowed;
  1811.                                 sscanf(DRIVEBY_WEAPONS, "a<i>[10]", allowedWeapons);
  1812.  
  1813.                                         for(new i = 0; i < sizeof(allowedWeapons); i++)
  1814.                                         {
  1815.                                                 if(w == allowedWeapons[i])
  1816.                                                 {
  1817.                                                         allowed = true;
  1818.                                                 break;
  1819.                                 }
  1820.                                         }
  1821.  
  1822.                                         if(allowed == false)
  1823.                                         {
  1824.                                                 SetPlayerArmedWeapon(playerid, 0);
  1825.                                                 svCheats_CallDetection(playerid, CHEAT_DRIVEBY);
  1826.                                                 svCheats_AmountDetected++;
  1827.                                         }
  1828.                                 }
  1829.                         }
  1830.                 }
  1831.         #endif
  1832.  
  1833.         #if defined DDRIVEBY_OFF
  1834.                 if(svCheats_SecurityLevel[playerid] < DDRIVEBY_OFF || DDRIVEBY_OFF == -1)
  1835.                 {
  1836.                 if(!ispassenger)
  1837.                 {
  1838.                                 new w = GetPlayerWeapon(playerid);
  1839.                                 if(w > 0)
  1840.                                 {
  1841.                                 SetPlayerArmedWeapon(playerid, 0);
  1842.                                 svCheats_CallDetection(playerid, CHEAT_DDRIVEBY);
  1843.                                 svCheats_AmountDetected++;
  1844.                                 }
  1845.                 }
  1846.         }
  1847.         #endif
  1848.        
  1849.         #if defined NINJAJACK_CHEAT
  1850.             if(svCheats_SecurityLevel[playerid] < NINJAJACK_CHEAT || NINJAJACK_CHEAT == -1)
  1851.             {
  1852.                 if(!ispassenger)
  1853.                 {
  1854.                     #if defined USE_FOREACH
  1855.                         foreach(new i: Player)
  1856.                         {
  1857.                             if(GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER)
  1858.                             {
  1859.                                 svCheats_PossibleNinjaJack[i] = playerid;
  1860.                                 break;
  1861.                             }
  1862.                         }
  1863.                     #else
  1864.                         for(new i = 0; i < MAX_PLAYERS; i++)
  1865.                         {
  1866.                             if(IsPlayerConnected(i))
  1867.                             {
  1868.                                     if(GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER)
  1869.                                     {
  1870.                                         svCheats_PossibleNinjaJack[i] = playerid;
  1871.                                         break;
  1872.                                     }
  1873.                             }
  1874.                         }
  1875.                     #endif
  1876.                 }
  1877.             }
  1878.         #endif
  1879.        
  1880.         #if defined GOIN_LOCKED_VEH
  1881.                 svCheats_SkipPlayerLVCheck[playerid] = true;
  1882.         #endif
  1883.        
  1884.         return CallRemoteFunction("svCheats_OnPlayerEnterVehicle", "ddd", playerid, vehicleid, ispassenger);
  1885. }
  1886.  
  1887. #if defined _ALS_OnPlayerEnterVehicle
  1888.     #undef OnPlayerEnterVehicle
  1889. #else
  1890.     #define _ALS_OnPlayerEnterVehicle
  1891. #endif
  1892. #define OnPlayerEnterVehicle svCheats_OnPlayerEnterVehicle
  1893.  
  1894. #if defined USE_ZCMD
  1895. #if defined HH_USED
  1896. COMMAND:hh(playerid, params[])
  1897. {
  1898.         if(svCheats_SecurityLevel[playerid] < HH_USED)
  1899.         {
  1900.                 return SendClientMessage(playerid, -1, "You are not authorized to use this command.");
  1901.     }
  1902.  
  1903.     new svCheats_giveplayerid;
  1904.     if(sscanf(params, "u", svCheats_giveplayerid))
  1905.     {
  1906.         return SendClientMessage(playerid, -1, "USAGE: /hh [player]");
  1907.     }
  1908.  
  1909.         if(svCheats_ReportedTabbed[svCheats_giveplayerid] == true)
  1910.         {
  1911.                 return SendClientMessage(playerid, -1, "You may not health hack check tabbed players.");
  1912.     }
  1913.  
  1914.         if(svCheats_HH[svCheats_giveplayerid][svCheckedBy] != INVALID_PLAYER_ID)
  1915.         {
  1916.                 return SendClientMessage(playerid, -1, "That player is already being checked for health hacks.");
  1917.     }
  1918.  
  1919.         new string[128], playersName[MAX_PLAYER_NAME], Float: playersPos[3];
  1920.  
  1921.         GetPlayerName(svCheats_giveplayerid, playersName, sizeof(playersName));
  1922.         format(string, sizeof(string), "Checking %s for health hacks...", playersName);
  1923.         SendClientMessage(playerid, -1, string);
  1924.  
  1925.         GetPlayerPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  1926.         SetPlayerCameraLookAt(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  1927.         SetPlayerCameraPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2] + 5);
  1928.  
  1929.         for(new i = 0; i < 3; i++)
  1930.         {
  1931.                 svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][i] = playersPos[i];
  1932.         }
  1933.  
  1934.         GetPlayerFacingAngle(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][3]);
  1935.  
  1936.         svCheats_HH[svCheats_giveplayerid][svInterior] = GetPlayerInterior(svCheats_giveplayerid);
  1937.         svCheats_HH[svCheats_giveplayerid][svVirtualWorld] = GetPlayerVirtualWorld(svCheats_giveplayerid);
  1938.  
  1939.         if(IsPlayerInAnyVehicle(svCheats_giveplayerid))
  1940.         {
  1941.                 svCheats_HH[svCheats_giveplayerid][svInVehicle] = true;
  1942.                 svCheats_HH[svCheats_giveplayerid][svVehicleID] = GetPlayerVehicleID(svCheats_giveplayerid);
  1943.             svCheats_HH[svCheats_giveplayerid][svVehicleSeat] = GetPlayerVehicleSeat(svCheats_giveplayerid);
  1944.         }
  1945.         else
  1946.         {
  1947.                 svCheats_HH[svCheats_giveplayerid][svInVehicle] = false;
  1948.         }
  1949.  
  1950.         GetPlayerHealth(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svHealth]);
  1951.         GetPlayerArmour(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svArmor]);
  1952.  
  1953.         svCheats_HH[svCheats_giveplayerid][svCheckedBy] = playerid;
  1954.  
  1955.         SetPlayerInterior(svCheats_giveplayerid, 0);
  1956.         SetPlayerPos(svCheats_giveplayerid, 0.0, 0.0, 8.0);
  1957.         SetPlayerHealth(svCheats_giveplayerid, 100.0);
  1958.         SetPlayerArmour(svCheats_giveplayerid, 0.0);
  1959.  
  1960.         SetTimerEx("svCheats_HealthHackCheck", 1350 + GetPlayerPing(svCheats_giveplayerid), 0, "i", svCheats_giveplayerid);
  1961.         return 1;
  1962. }
  1963. #endif
  1964.  
  1965. #if defined ACSTATS_USED
  1966. COMMAND:acstats(playerid, params[])
  1967. {
  1968.         new string[50];
  1969.         format(string, sizeof(string), "(svCheats) Cheaters Detected: %d", svCheats_AmountDetected);
  1970.         SendClientMessage(playerid, -1, string);
  1971.         return 1;
  1972. }
  1973. #endif
  1974. #else
  1975. forward svCheats_OnPlayerCommandText(playerid, cmdtext[]);
  1976. public OnPlayerCommandText(playerid, cmdtext[])
  1977. {
  1978.     #if defined CHATSPAM_OFF
  1979.             if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  1980.             {
  1981.                 svCheats_SpamCounters[playerid]++;
  1982.  
  1983.                 if(svCheats_SpamCounters[playerid] == CHATSPAM_LINES)
  1984.                 {
  1985.                     svCheats_SpamCounters[playerid] = 0;
  1986.                                 svCheats_CallDetection(playerid, CHEAT_CHATSPAM);
  1987.                                 svCheats_AmountDetected++;
  1988.                                 return 0;
  1989.                 }
  1990.             }
  1991.         #endif
  1992.        
  1993.         #if defined HH_USED
  1994.                 new svCheats_cmd[5];
  1995.                 sscanf(cmdtext, "s[5]", svCheats_cmd);
  1996.                 if(strcmp(svCheats_cmd, "/hh", true) == 0)
  1997.                 {
  1998.                     if(svCheats_SecurityLevel[playerid] < HH_USED)
  1999.                     {
  2000.                         return SendClientMessage(playerid, -1, "You are not authorized to use this command.");
  2001.                     }
  2002.  
  2003.                     new svCheats_giveplayerid;
  2004.                     if(sscanf(cmdtext, "{s[5]}u", svCheats_giveplayeid))
  2005.                     {
  2006.                         return SendClientMessage(playerid, -1, "USAGE: /hh [player]");
  2007.                     }
  2008.  
  2009.                     if(svCheats_ReportedTabbed[svCheats_giveplayerid] == true)
  2010.                     {
  2011.                         return SendClientMessage(playerid, -1, "You may not health hack check tabbed players.");
  2012.                     }
  2013.  
  2014.                     if(svCheats_HH[svCheats_giveplayerid][svCheckedBy] != INVALID_PLAYER_ID)
  2015.                     {
  2016.                         return SendClientMessage(playerid, -1, "That player is already being checked for health hacks.");
  2017.                     }
  2018.  
  2019.                         new string[128], playersName[MAX_PLAYER_NAME], Float: playersPos[3];
  2020.  
  2021.                         GetPlayerName(svCheats_giveplayerid, playersName, sizeof(playersName));
  2022.                         format(string, sizeof(string), "Checking %s for health hacks...", playersName);
  2023.                         SendClientMessage(playerid, -1, string);
  2024.  
  2025.                         GetPlayerPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  2026.                         SetPlayerCameraLookAt(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  2027.                         SetPlayerCameraPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2] + 5);
  2028.  
  2029.                         for(new i = 0; i < 3; i++)
  2030.                         {
  2031.                                 svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][i] = playersPos[i];
  2032.                         }
  2033.  
  2034.                         GetPlayerFacingAngle(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][3]);
  2035.  
  2036.                         svCheats_HH[svCheats_giveplayerid][svInterior] = GetPlayerInterior(svCheats_giveplayerid);
  2037.                         svCheats_HH[svCheats_giveplayerid][svVirtualWorld] = GetPlayerVirtualWorld(svCheats_giveplayerid);
  2038.  
  2039.                         if(IsPlayerInAnyVehicle(svCheats_giveplayerid))
  2040.                         {
  2041.                             svCheats_HH[svCheats_giveplayerid][svInVehicle] = true;
  2042.                             svCheats_HH[svCheats_giveplayerid][svVehicleID] = GetPlayerVehicleID(svCheats_giveplayerid);
  2043.                             svCheats_HH[svCheats_giveplayerid][svVehicleSeat] = GetPlayerVehicleSeat(svCheats_giveplayerid);
  2044.                         }
  2045.                         else
  2046.                         {
  2047.                             svCheats_HH[svCheats_giveplayerid][svInVehicle] = false;
  2048.                         }
  2049.  
  2050.                         GetPlayerHealth(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svHealth]);
  2051.                         GetPlayerArmour(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svArmor]);
  2052.  
  2053.                         svCheats_HH[svCheats_giveplayerid][svCheckedBy] = playerid;
  2054.  
  2055.                         SetPlayerInterior(svCheats_giveplayerid, 0);
  2056.                         SetPlayerPos(svCheats_giveplayerid, 0.0, 0.0, 8.0);
  2057.                         SetPlayerHealth(svCheats_giveplayerid, 100.0);
  2058.                         SetPlayerArmour(svCheats_giveplayerid, 0.0);
  2059.  
  2060.                         SetTimerEx("svCheats_HealthHackCheck", 1350 + GetPlayerPing(svCheats_giveplayerid), 0, "i", svCheats_giveplayerid);
  2061.                     return 1;
  2062.                 }
  2063.         #endif
  2064.        
  2065.         #if defined ACSTATS_USED
  2066.         if(strcmp(cmdtext, "/acstats", true) == 0)
  2067.         {
  2068.                 new string[50];
  2069.                 format(string, sizeof(string), "(svCheats) Cheaters Detected: %d", svCheats_AmountDetected);
  2070.                 SendClientMessage(playerid, -1, string);
  2071.                 return 1;
  2072.         }
  2073.         #endif
  2074.         return CallRemoteFunction("svCheats_OnPlayerCommandText", "ds", playerid, cmdtext);
  2075. }
  2076.  
  2077. #if defined _ALS_OnPlayerCommandText
  2078.     #undef OnPlayerCommandText
  2079. #else
  2080.     #define _ALS_OnPlayerCommandText
  2081. #endif
  2082. #define OnPlayerCommandText svCheats_OnPlayerCommandText
  2083. #endif
  2084.  
  2085. forward svCheats_OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid);
  2086. public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
  2087. {
  2088.         if(issuerid == INVALID_PLAYER_ID)
  2089.         {
  2090.             if(svCheats_HH[playerid][svCheckedBy] != INVALID_PLAYER_ID)
  2091.             {
  2092.                 new string[128], playersName[MAX_PLAYER_NAME], giveplayerid = svCheats_HH[playerid][svCheckedBy];
  2093.  
  2094.                     GetPlayerName(playerid, playersName, sizeof(playersName));
  2095.                         format(string, sizeof(string), "The health hack check on %s has been finished and the result is {F81414}negative{FFFFFF}.", playersName);
  2096.                         SendClientMessage(giveplayerid, -1, string);
  2097.  
  2098.                         svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID;
  2099.  
  2100.                         SetPlayerVirtualWorld(playerid, svCheats_HH[playerid][svVirtualWorld]);
  2101.                         SetPlayerInterior(playerid, svCheats_HH[playerid][svInterior]);
  2102.                         SetPlayerPos(playerid, svCheats_HH[playerid][svOldPlayerPos][0], svCheats_HH[playerid][svOldPlayerPos][1], svCheats_HH[playerid][svOldPlayerPos][2]);
  2103.                         SetPlayerFacingAngle(playerid, svCheats_HH[playerid][svOldPlayerPos][3]);
  2104.  
  2105.                         if(svCheats_HH[playerid][svInVehicle] == true)
  2106.                         {
  2107.                             PutPlayerInVehicle(playerid, svCheats_HH[playerid][svVehicleID], svCheats_HH[playerid][svVehicleSeat]);
  2108.                         }
  2109.  
  2110.                         SetPlayerHealth(playerid, svCheats_HH[playerid][svHealth]);
  2111.                         SetPlayerArmour(playerid, svCheats_HH[playerid][svArmor]);
  2112.  
  2113.                         SetCameraBehindPlayer(playerid);
  2114.             }
  2115.         }
  2116.         else
  2117.         {
  2118.             #if defined CARRAM_OFF
  2119.                 if(svCheats_SecurityLevel[playerid] < CARRAM_OFF || CARRAM_OFF == -1)
  2120.                 {
  2121.                     if(weaponid == 49)
  2122.                     {
  2123.                         svCheats_CallDetection(playerid, CHEAT_CARRAM);
  2124.                     }
  2125.                 }
  2126.             #endif
  2127.  
  2128.             #if defined HELIBLADE_OFF
  2129.                 if(svCheats_SecurityLevel[playerid] < HELIBLADE_OFF || HELIBLADE_OFF == -1)
  2130.                 {
  2131.                     if(weaponid == 50)
  2132.                     {
  2133.                         svCheats_CallDetection(playerid, CHEAT_HELIBLADE);
  2134.                     }
  2135.                 }
  2136.             #endif
  2137.         }
  2138.        
  2139.         #if defined HEALTH_HACK
  2140.                 if(!svCheats_PlayerArmor[playerid] || issuerid == INVALID_PLAYER_ID)
  2141.                 {
  2142.                     svCheats_PlayerHealth[playerid] -= amount;
  2143.                 }
  2144.                 else
  2145.                 {
  2146.                     if(svCheats_PlayerArmor[playerid] - amount >= 0)
  2147.                     {
  2148.                         svCheats_PlayerArmor[playerid] -= amount;
  2149.                     }
  2150.                     else
  2151.                     {
  2152.                         svCheats_PlayerHealth[playerid] -= (amount - svCheats_PlayerArmor[playerid]);
  2153.                         svCheats_PlayerArmor[playerid] = 0;
  2154.                     }
  2155.                 }
  2156.         #endif
  2157.         return CallRemoteFunction("svCheats_OnPlayerTakeDamage", "ddfd", playerid, issuerid, amount, weaponid);
  2158. }
  2159.  
  2160. #if defined _ALS_OnPlayerTakeDamage
  2161.     #undef OnPlayerTakeDamage
  2162. #else
  2163.     #define _ALS_OnPlayerTakeDamage
  2164. #endif
  2165. #define OnPlayerTakeDamage svCheats_OnPlayerTakeDamage
  2166.  
  2167. #if defined TELEPORT_HACK
  2168. forward svCheats_OnPlayerClickMap(playerid, Float: fX, Float: fY, Float: fZ);
  2169. public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
  2170. {
  2171.         if(svCheats_SecurityLevel[playerid] < TELEPORT_HACK || TELEPORT_HACK == -1)
  2172.         {
  2173.                 if(!IsPlayerInRangeOfPoint(playerid, 10.0, svCheats_oldPos[playerid][0], svCheats_oldPos[playerid][1], svCheats_oldPos[playerid][2]))
  2174.                 {
  2175.                         if(IsPlayerInRangeOfPoint(playerid, 10.0, fX, fY, fZ))
  2176.                 {
  2177.                         svCheats_CallDetection(playerid, CHEAT_TELEPORT_HACK);
  2178.                     }
  2179.                 }
  2180.         }
  2181.         return CallRemoteFunction("svCheats_OnPlayerClickMap", "dfff", playerid, fX, fY, fZ);
  2182. }
  2183.  
  2184. #if defined _ALS_OnPlayerClickMap
  2185.     #undef OnPlayerClickMap
  2186. #else
  2187.     #define _ALS_OnPlayerClickMap
  2188. #endif
  2189. #define OnPlayerClickMap svCheats_OnPlayerClickMap
  2190. #endif
  2191.  
  2192. forward svCheats_OnVehicleMod(playerid, vehicleid, componentid);
  2193. public OnVehicleMod(playerid, vehicleid, componentid)
  2194. {
  2195.         #if defined VEHMOD_HACK
  2196.                 if(svCheats_SecurityLevel[playerid] < VEHMOD_HACK || VEHMOD_HACK == -1)
  2197.                 {
  2198.                         if(!GetPlayerInterior(playerid))
  2199.                         {
  2200.                             svCheats_CallDetection(playerid, CHEAT_VEHMOD);
  2201.                         }
  2202.                 }
  2203.         #endif
  2204.        
  2205.         #if defined INVALIDMOD_HACK
  2206.             if(!svCheats_IsAllowedCarMod(GetVehicleModel(vehicleid), componentid))
  2207.                 {
  2208.                 svCheats_CallDetection(playerid, CHEAT_INVALIDMOD);
  2209.             }
  2210.         #endif
  2211.         return CallRemoteFunction("svCheats_OnVehicleMod", "ddd", playerid, vehicleid, componentid);
  2212. }
  2213.  
  2214. #if defined _ALS_OnVehicleMod
  2215.     #undef OnVehicleMod
  2216. #else
  2217.     #define _ALS_OnVehicleMod
  2218. #endif
  2219. #define OnVehicleMod svCheats_OnVehicleMod
  2220. #endif
  2221. #endif
  2222.  
  2223. new legalmods[48][22] = {
  2224.         {400, 1024,1021,1020,1019,1018,1013,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2225.         {401, 1145,1144,1143,1142,1020,1019,1017,1013,1007,1006,1005,1004,1003,1001,0000,0000,0000,0000},
  2226.         {404, 1021,1020,1019,1017,1016,1013,1007,1002,1000,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2227.         {405, 1023,1021,1020,1019,1018,1014,1001,1000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2228.     {410, 1024,1023,1021,1020,1019,1017,1013,1007,1003,1001,0000,0000,0000,0000,0000,0000,0000,0000},
  2229.     {415, 1023,1019,1018,1017,1007,1003,1001,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2230.     {418, 1021,1020,1016,1006,1002,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2231.     {420, 1021,1019,1005,1004,1003,1001,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2232.     {421, 1023,1021,1020,1019,1018,1016,1014,1000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2233.     {422, 1021,1020,1019,1017,1013,1007,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2234.     {426, 1021,1019,1006,1005,1004,1003,1001,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2235.     {436, 1022,1021,1020,1019,1017,1013,1007,1006,1003,1001,0000,0000,0000,0000,0000,0000,0000,0000},
  2236.     {439, 1145,1144,1143,1142,1023,1017,1013,1007,1003,1001,0000,0000,0000,0000,0000,0000,0000,0000},
  2237.     {477, 1021,1020,1019,1018,1017,1007,1006,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2238.     {478, 1024,1022,1021,1020,1013,1012,1005,1004,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2239.     {489, 1024,1020,1019,1018,1016,1013,1006,1005,1004,1002,1000,0000,0000,0000,0000,0000,0000,0000},
  2240.     {491, 1145,1144,1143,1142,1023,1021,1020,1019,1018,1017,1014,1007,1003,0000,0000,0000,0000,0000},
  2241.     {492, 1016,1006,1005,1004,1000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2242.     {496, 1143,1142,1023,1020,1019,1017,1011,1007,1006,1003,1002,1001,0000,0000,0000,0000,0000,0000},
  2243.     {500, 1024,1021,1020,1019,1013,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2244.     {516, 1021,1020,1019,1018,1017,1016,1015,1007,1004,1002,1000,0000,0000,0000,0000,0000,0000,0000},
  2245.     {517, 1145,1144,1143,1142,1023,1020,1019,1018,1017,1016,1007,1003,1002,0000,0000,0000,0000,0000},
  2246.     {518, 1145,1144,1143,1142,1023,1020,1018,1017,1013,1007,1006,1005,1003,1001,0000,0000,0000,0000},
  2247.     {527, 1021,1020,1018,1017,1015,1014,1007,1001,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2248.     {529, 1023,1020,1019,1018,1017,1012,1011,1007,1006,1003,1001,0000,0000,0000,0000,0000,0000,0000},
  2249.     {534, 1185,1180,1179,1178,1127,1126,1125,1124,1123,1122,1106,1101,1100,0000,0000,0000,0000,0000},
  2250.     {535, 1121,1120,1119,1118,1117,1116,1115,1114,1113,1110,1109,0000,0000,0000,0000,0000,0000,0000},
  2251.     {536, 1184,1183,1182,1181,1128,1108,1107,1105,1104,1103,0000,0000,0000,0000,0000,0000,0000,0000},
  2252.     {540, 1145,1144,1143,1142,1024,1023,1020,1019,1018,1017,1007,1006,1004,1001,0000,0000,0000,0000},
  2253.     {542, 1145,1144,1021,1020,1019,1018,1015,1014,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2254.     {546, 1145,1144,1143,1142,1024,1023,1019,1018,1017,1007,1006,1004,1002,1001,0000,0000,0000,0000},
  2255.     {547, 1143,1142,1021,1020,1019,1018,1016,1003,1000,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2256.     {549, 1145,1144,1143,1142,1023,1020,1019,1018,1017,1012,1011,1007,1003,1001,0000,0000,0000,0000},
  2257.     {550, 1145,1144,1143,1142,1023,1020,1019,1018,1006,1005,1004,1003,1001,0000,0000,0000,0000,0000},
  2258.     {551, 1023,1021,1020,1019,1018,1016,1006,1005,1003,1002,0000,0000,0000,0000,0000,0000,0000,0000},
  2259.     {558, 1168,1167,1166,1165,1164,1163,1095,1094,1093,1092,1091,1090,1089,1088,0000,0000,0000,0000},
  2260.     {559, 1173,1162,1161,1160,1159,1158,1072,1071,1070,1069,1068,1067,1066,1065,0000,0000,0000,0000},
  2261.     {560, 1170,1169,1141,1140,1139,1138,1033,1032,1031,1030,1029,1028,1027,1026,0000,0000,0000,0000},
  2262.     {561, 1157,1156,1155,1154,1064,1063,1062,1061,1060,1059,1058,1057,1056,1055,1031,1030,1027,1026},
  2263.     {562, 1172,1171,1149,1148,1147,1146,1041,1040,1039,1038,1037,1036,1035,1034,0000,0000,0000,0000},
  2264.     {565, 1153,1152,1151,1150,1054,1053,1052,1051,1050,1049,1048,1047,1046,1045,0000,0000,0000,0000},
  2265.     {567, 1189,1188,1187,1186,1133,1132,1131,1130,1129,1102,0000,0000,0000,0000,0000,0000,0000,0000},
  2266.     {575, 1177,1176,1175,1174,1099,1044,1043,1042,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2267.     {576, 1193,1192,1191,1190,1137,1136,1135,1134,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2268.     {580, 1023,1020,1018,1017,1007,1006,1001,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2269.     {589, 1145,1144,1024,1020,1018,1017,1016,1013,1007,1006,1005,1004,1000,0000,0000,0000,0000,0000},
  2270.     {600, 1022,1020,1018,1017,1013,1007,1006,1005,1004,0000,0000,0000,0000,0000,0000,0000,0000,0000},
  2271.     {603, 1145,1144,1143,1142,1024,1023,1020,1019,1018,1017,1007,1006,1001,0000,0000,0000,0000,0000}
  2272. };
  2273.  
  2274. forward svCheats_HealthHackCheck(giveplayerid);
  2275. public svCheats_HealthHackCheck(giveplayerid)
  2276. {
  2277.         if(svCheats_HH[giveplayerid][svCheckedBy] != INVALID_PLAYER_ID)
  2278.         {
  2279.             new string[128], playersName[MAX_PLAYER_NAME], playerid = svCheats_HH[giveplayerid][svCheckedBy];
  2280.            
  2281.             GetPlayerName(giveplayerid, playersName, sizeof(playersName));
  2282.                 format(string, sizeof(string), "The health hack check on %s has been finished and the result is {6EF83C}positive{FFFFFF}.", playersName);
  2283.                 SendClientMessage(playerid, -1, string);
  2284.                
  2285.                 svCheats_HH[giveplayerid][svCheckedBy] = INVALID_PLAYER_ID;
  2286.                
  2287.                 SetPlayerVirtualWorld(giveplayerid, svCheats_HH[giveplayerid][svVirtualWorld]);
  2288.                 SetPlayerInterior(giveplayerid, svCheats_HH[giveplayerid][svInterior]);
  2289.                 SetPlayerPos(giveplayerid, svCheats_HH[giveplayerid][svOldPlayerPos][0], svCheats_HH[giveplayerid][svOldPlayerPos][1], svCheats_HH[giveplayerid][svOldPlayerPos][2]);
  2290.                 SetPlayerFacingAngle(giveplayerid, svCheats_HH[giveplayerid][svOldPlayerPos][3]);
  2291.                
  2292.                 if(svCheats_HH[giveplayerid][svInVehicle] == true)
  2293.                 {
  2294.                     PutPlayerInVehicle(giveplayerid, svCheats_HH[giveplayerid][svVehicleID], svCheats_HH[giveplayerid][svVehicleSeat]);
  2295.                 }
  2296.                
  2297.                 SetPlayerHealth(giveplayerid, svCheats_HH[giveplayerid][svHealth]);
  2298.                 SetPlayerArmour(giveplayerid, svCheats_HH[giveplayerid][svArmor]);
  2299.                
  2300.                 SetCameraBehindPlayer(giveplayerid);
  2301.                
  2302.                 svCheats_CallDetection(giveplayerid, CHEAT_GODMODE);
  2303.                 svCheats_AmountDetected++;
  2304.         }
  2305.         return 1;
  2306. }
  2307.  
  2308. forward svCheats_JumpCountersDown(playerid);
  2309. public svCheats_JumpCountersDown(playerid)
  2310. {
  2311.         svCheats_JumpCounters[playerid]--;
  2312.         svCheats_JumpCounterTimer[playerid] = -1;
  2313.         return 1;
  2314. }
  2315.  
  2316. forward svCheats_KillAmountDown(playerid);
  2317. public svCheats_KillAmountDown(playerid)
  2318. {
  2319.         return svCheats_KillAmount[playerid]--;
  2320. }
  2321.  
  2322. svCheats_CallDetection(playerid, cheatid)
  2323. {
  2324.         return CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, cheatid);
  2325. }
  2326.  
  2327. svCheats_GetWeaponSlot(weaponid)
  2328. {
  2329.         switch(weaponid)
  2330.         {
  2331.                 case 0, 1:
  2332.                 {
  2333.                         return 0;
  2334.                 }
  2335.                 case 2, 3, 4, 5, 6, 7, 8, 9:
  2336.                 {
  2337.                         return 1;
  2338.                 }
  2339.                 case 22, 23, 24:
  2340.                 {
  2341.                         return 2;
  2342.                 }
  2343.                 case 25, 26, 27:
  2344.                 {
  2345.                         return 3;
  2346.                 }
  2347.                 case 28, 29, 32:
  2348.                 {
  2349.                         return 4;
  2350.                 }
  2351.                 case 30, 31:
  2352.                 {
  2353.                         return 5;
  2354.                 }
  2355.                 case 33, 34:
  2356.                 {
  2357.                         return 6;
  2358.                 }
  2359.                 case 35, 36, 37, 38:
  2360.                 {
  2361.                         return 7;
  2362.                 }
  2363.                 case 16, 17, 18, 39, 40:
  2364.                 {
  2365.                         return 8;
  2366.                 }
  2367.                 case 41, 42, 43:
  2368.                 {
  2369.                         return 9;
  2370.                 }
  2371.                 case 10, 11, 12, 13, 14, 15:
  2372.                 {
  2373.                         return 10;
  2374.                 }
  2375.                 case 44, 45, 46:
  2376.                 {
  2377.                         return 11;
  2378.                 }
  2379.         }
  2380.         return 0;
  2381. }
  2382.  
  2383. svCheats_IsPlayerAtRepairPoint(playerid)
  2384. {
  2385.         if(GetPlayerCameraMode(playerid) == 15) return 1;
  2386.         if(IsPlayerInRangeOfPoint(playerid, 25.0, 2067.00, -1831.65, 13.55)) return 1;
  2387.         if(IsPlayerInRangeOfPoint(playerid, 25.0, 1024.97, -1023.88, 32.10)) return 1;
  2388.         if(IsPlayerInRangeOfPoint(playerid, 25.0, 1041.19, -1022.50, 32.11)) return 1;
  2389.         if(IsPlayerInRangeOfPoint(playerid, 25.0, 720.25, -457.17, 16.34)) return 1;
  2390.         if(IsPlayerInRangeOfPoint(playerid, 25.0, 2386.66, 1045.68, 10.82)) return 1;
  2391.         if(IsPlayerInRangeOfPoint(playerid, 25.0, 1972.50, 2163.03, 11.07)) return 1;
  2392.         if(IsPlayerInRangeOfPoint(playerid, 25.0, -1420.58, 2586.17, 55.84)) return 1;
  2393.         if(IsPlayerInRangeOfPoint(playerid, 25.0, -1904.90, 283.96, 41.05)) return 1;
  2394.         if(IsPlayerInRangeOfPoint(playerid, 25.0, -2719.46, 217.77, 4.48)) return 1;
  2395.         return 0;
  2396. }
  2397.  
  2398. svCheats_IsPlayerAtHealingPoint(playerid)
  2399. {
  2400.         if(IsPlayerInRangeOfPoint(playerid, 50.0, 286.148, -40.644, 1001.569)) return 1;
  2401.         if(IsPlayerInRangeOfPoint(playerid, 50.0, 286.148, -82.547, 1001.569)) return 1;
  2402.         if(IsPlayerInRangeOfPoint(playerid, 50.0, 296.148, -108.644, 1001.569)) return 1;
  2403.         if(IsPlayerInRangeOfPoint(playerid, 50.0, 316.524, -167.706, 999.661)) return 1;
  2404.         if(IsPlayerInRangeOfPoint(playerid, 4.0, -2420.219, 984.578, 44.297)) return 1;
  2405.         if(IsPlayerInRangeOfPoint(playerid, 4.0, -2420.180, 985.945, 44.297)) return 1;
  2406.         if(IsPlayerInRangeOfPoint(playerid, 4.0, 2225.203, -1153.422, 1025.906)) return 1;
  2407.         if(IsPlayerInRangeOfPoint(playerid, 4.0, 2576.703, -1284.430, 1061.094)) return 1;
  2408.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 2155.906, 1606.773, 1000.055)) return 1;
  2409.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 2209.906, 1607.195, 1000.055)) return 1;
  2410.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 2222.203, 1606.773, 1000.055)) return 1;
  2411.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 495.969, -24.320, 1000.734)) return 1;
  2412.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 501.828, -1.430, 1000.734)) return 1;
  2413.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 373.828, -178.141, 1000.734)) return 1;
  2414.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 330.680, 178.500, 1020.070)) return 1;
  2415.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 331.922, 178.500, 1020.070)) return 1;
  2416.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 350.906, 206.086, 1008.477)) return 1;
  2417.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 361.563, 158.617, 1008.477)) return 1;
  2418.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 371.594, 178.453, 1020.070)) return 1;
  2419.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 374.891, 188.977, 1008.477)) return 1;
  2420.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 2155.844, 1607.875, 1000.063)) return 1;
  2421.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 2202.453, 1617.008, 1000.063)) return 1;
  2422.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 2209.242, 1621.211, 1000.063)) return 1;
  2423.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 2222.367, 1602.641, 1000.063)) return 1;
  2424.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 500.563, -1.367, 1000.734)) return 1;
  2425.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 379.039, -178.883, 1000.734)) return 1;
  2426.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 2480.86,-1959.27,12.9609)) return 1;
  2427.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 1634.11,-2237.53,12.8906)) return 1;
  2428.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 2139.52,-1161.48,23.3594)) return 1;
  2429.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 2153.23,-1016.15,62.2344)) return 1;
  2430.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -1350.12,493.859,10.5859)) return 1;
  2431.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -2229.19,286.414,34.7031)) return 1;
  2432.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 1659.46,1722.86,10.2188)) return 1;
  2433.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 2647.7,1129.66,10.2188)) return 1;
  2434.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 2845.73,1295.05,10.7891)) return 1;
  2435.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 1398.84,2222.61,10.4219)) return 1;
  2436.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -1455.12,2591.66,55.2344)) return 1;
  2437.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -76.0312,1227.99,19.125)) return 1;
  2438.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 662.43,-552.164,15.7109)) return 1;
  2439.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -253.742,2599.76,62.2422)) return 1;
  2440.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 2271.73,-76.4609,25.9609)) return 1;
  2441.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 1789.21,-1369.27,15.1641)) return 1;
  2442.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 1729.79,-1943.05,12.9453)) return 1;
  2443.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 2060.12,-1897.64,12.9297)) return 1;
  2444.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 1928.73,-1772.45,12.9453)) return 1;
  2445.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 2325.98,-1645.13,14.2109)) return 1;
  2446.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 2352.18,-1357.16,23.7734)) return 1;
  2447.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 1154.73,-1460.89,15.1562)) return 1;
  2448.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -1350.12,492.289,10.5859)) return 1;
  2449.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -2118.97,-423.648,34.7266)) return 1;
  2450.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -2118.62,-422.414,34.7266)) return 1;
  2451.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -2097.27,-398.336,34.7266)) return 1;
  2452.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -2092.09,-490.055,34.7266)) return 1;
  2453.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -2063.27,-490.055,34.7266)) return 1;
  2454.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -2005.65,-490.055,34.7266)) return 1;
  2455.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -2034.46,-490.055,34.7266)) return 1;
  2456.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -2068.56,-398.336,34.7266)) return 1;
  2457.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -2039.85,-398.336,34.7266)) return 1;
  2458.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -2011.14,-398.336,34.7266)) return 1;
  2459.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -1980.79,142.664,27.0703)) return 1;
  2460.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 2319.99,2532.85,10.2188)) return 1;
  2461.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 1520.15,1055.27,10.00)) return 1;
  2462.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 2503.14,1243.7,10.2188)) return 1;
  2463.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 2085.77,2071.36,10.4531)) return 1;
  2464.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -862.828,1536.61,21.9844)) return 1;
  2465.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -14.7031,1175.36,18.9531)) return 1;
  2466.     if(IsPlayerInRangeOfPoint(playerid, 4.0, -253.742,2597.95,62.2422)) return 1;
  2467.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 201.016,-107.617,0.898438)) return 1;
  2468.     if(IsPlayerInRangeOfPoint(playerid, 4.0, 1277.84,372.516,18.9531)) return 1;
  2469.     return 0;
  2470. }
  2471.  
  2472. svCheats_GetSwimmingPointZ(playerid)
  2473. {
  2474.         if(IsPlayerInRangeOfPoint(playerid, 50.0, 1962.15, -1198.71, 17.45)) return 19;
  2475.         if(IsPlayerInRangeOfPoint(playerid, 100.0, -1127.58, 2764.43, 40.00)) return 43;
  2476.         if(IsPlayerInRangeOfPoint(playerid, 100.0, -988.19, 2486.89, 40.00)) return 43;
  2477.         if(IsPlayerInRangeOfPoint(playerid, 100.0, -924.33, 2306.59, 40.00)) return 43;
  2478.         if(IsPlayerInRangeOfPoint(playerid, 100.0, -1104.15, 2175.83, 40.00)) return 43;
  2479.         if(IsPlayerInRangeOfPoint(playerid, 100.0, -1307.06, 2119.33, 40.00)) return 43;
  2480.         if(IsPlayerInRangeOfPoint(playerid, 100.0, -831.85, 2122.23, 40.00)) return 43;
  2481.         if(IsPlayerInRangeOfPoint(playerid, 100.0, -595.76, 2138.34, 40.00)) return 43;
  2482.         if(IsPlayerInRangeOfPoint(playerid, 100.0, -569.24, 2274.40, 40.00)) return 43;
  2483.         if(IsPlayerInRangeOfPoint(playerid, 12.0, 1095.800, -674.950, 111.908)) return 113;
  2484.         if(IsPlayerInRangeOfPoint(playerid, 12.0, 224.500, -1185.725, 73.908)) return 76;
  2485.         if(IsPlayerInRangeOfPoint(playerid, 12.0, 193.700, -1230.608, 76.603)) return 79;
  2486.         if(IsPlayerInRangeOfPoint(playerid, 12.0, 1277.500, -805.200, 86.581)) return 88;
  2487.     if(IsPlayerInRangeOfPoint(playerid, 12.0, 2582.0, 2387.0, 16.0)) return 18;
  2488.         return 10;
  2489. }
  2490.  
  2491. svCheats_GetVehicleSpeed(vehicleid)
  2492. {
  2493.     new Float: vVel[3];
  2494.         GetVehicleVelocity(vehicleid, vVel[0], vVel[1], vVel[2]);
  2495.         return floatround(floatsqroot((vVel[0]*vVel[1]+vVel[2]*vVel[2]))*100.0*1.6);
  2496. }
  2497.  
  2498. svCheats_IllegalCarNitroIde(carmodel)
  2499. {
  2500.     new illegalvehs[29] = { 581, 523, 462, 521, 463, 522, 461, 448, 468, 586, 509, 481, 510, 472, 473, 493, 595, 484, 430, 453, 452, 446, 454, 590, 569, 537, 538, 570, 449 };
  2501.  
  2502.     for(new i = 0; i < sizeof(illegalvehs); i++)
  2503.         {
  2504.         if(carmodel == illegalvehs[i])
  2505.         {
  2506.             return 1;
  2507.                 }
  2508.     }
  2509.     return 0;
  2510. }
  2511.  
  2512. svCheats_IsComponentWheel(componentid)
  2513. {
  2514.     new wheelmodels[17] = {1025,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1096,1097,1098};
  2515.  
  2516.     for(new i = 0; i < sizeof(wheelmodels); i++)
  2517.         {
  2518.         if(componentid == wheelmodels[i])
  2519.         {
  2520.             return 1;
  2521.                 }
  2522.     }
  2523.  
  2524.     return 0;
  2525. }
  2526.  
  2527. svCheats_IsAllowedCarMod(vehicleide, componentid)
  2528. {
  2529.     new bool: modok = false;
  2530.  
  2531.     if(svCheats_IsComponentWheel(componentid) || componentid == 1086 || componentid == 1087 || (componentid >= 1008 && componentid <= 1010))
  2532.         {
  2533.         if(!svCheats_IllegalCarNitroIde(vehicleide))
  2534.         {
  2535.             modok = true;
  2536.                 }
  2537.     }
  2538.         else
  2539.         {
  2540.         for(new i = 0; i < sizeof(legalmods); i++)
  2541.                 {
  2542.             if(legalmods[i][0] == vehicleide)
  2543.                         {
  2544.                 for(new j = 1; j < 22; j++)
  2545.                                 {
  2546.                     if(legalmods[i][j] == componentid)
  2547.                     {
  2548.                         modok = true;
  2549.                                         }
  2550.                 }
  2551.  
  2552.             }
  2553.  
  2554.         }
  2555.  
  2556.     }
  2557.  
  2558.     return modok;
  2559. }
  2560.  
  2561. svCheats_Intabs(innumber)
  2562. {
  2563.     if(innumber < 0)
  2564.     {
  2565.         return -innumber;
  2566.         }
  2567.  
  2568.     return innumber;
  2569. }
  2570.  
  2571. svCheats_Distance1Dint(fPos1, fPos2)
  2572. {
  2573.     if(fPos1 > fPos2)
  2574.     {
  2575.         return svCheats_Intabs(fPos1 - fPos2);
  2576.         }
  2577.     else
  2578.     {
  2579.         return svCheats_Intabs(fPos2 - fPos1);
  2580.         }
  2581.  
  2582. }
  2583.  
  2584. svCheats_GetTimeDistance(a, b)
  2585. {
  2586.     if(a < 0 && b > 0)
  2587.         {
  2588.         new dist;
  2589.         dist = svCheats_Distance1Dint(a, b);
  2590.         if(dist > 2147483647)
  2591.         {
  2592.             return svCheats_Distance1Dint(a - 2147483647, b - 2147483647);
  2593.                 }
  2594.         else
  2595.         {
  2596.             return dist;
  2597.                 }
  2598.     }
  2599.         else
  2600.         {
  2601.         return svCheats_Distance1Dint(a, b);
  2602.  
  2603.     }
  2604.  
  2605. }
  2606.  
  2607. svCheats_inet_aton(ip[])
  2608. {
  2609.     new ipv = strval(ip) << 24, pos = 0;
  2610.  
  2611.     while (pos < 15 && ip[pos++] != '.') {}
  2612.     ipv += strval(ip[pos]) << 16;
  2613.     while (pos < 15 && ip[pos++] != '.') {}
  2614.     ipv += strval(ip[pos]) << 8;
  2615.     while (pos < 15 && ip[pos++] != '.') {}
  2616.     ipv += strval(ip[pos]);
  2617.  
  2618.     return ipv;
  2619. }
  2620.  
  2621. svCheats_log_new_join(playerid) {
  2622.  
  2623.     new ip[18];
  2624.     GetPlayerIp(playerid, ip, sizeof(ip));
  2625.     new ipv = svCheats_inet_aton(ip);
  2626.  
  2627.     svCheats_IPJoin[svCheats_ajs][svIP_Add] = ipv;
  2628.     svCheats_IPJoin[svCheats_ajs][svTimestamp] = tickcount();
  2629.  
  2630.     svCheats_ajs++;
  2631.  
  2632.     if(svCheats_ajs >= 37)
  2633.     {
  2634.         svCheats_ajs = 0;
  2635.         }
  2636.  
  2637. }
  2638.  
  2639. svCheats_NJTR(playerid, max_time) {
  2640.  
  2641.     new ip[18];
  2642.     GetPlayerIp(playerid, ip, sizeof(ip));
  2643.  
  2644.     new ipv = svCheats_inet_aton(ip);
  2645.     new counted = 0;
  2646.  
  2647.     for(new i = 0; i < sizeof(svCheats_IPJoin); i++)
  2648.         {
  2649.         if(svCheats_IPJoin[i][svIP_Add] != ipv)
  2650.         {
  2651.             continue;
  2652.                 }
  2653.  
  2654.         if(svCheats_GetTimeDistance(tickcount(), svCheats_IPJoin[i][svTimestamp]) <= max_time)
  2655.         {
  2656.             counted++;
  2657.                 }
  2658.  
  2659.     }
  2660.  
  2661.     return counted;
  2662. }
  2663.  
  2664. public svCheats_Detector()
  2665. {
  2666.         #if defined USE_FOREACH
  2667.             foreach(new playerid: Player)
  2668.             {
  2669.                 #if defined HIGH_PING
  2670.                         if(svCheats_SecurityLevel[playerid] < HIGH_PING || HIGH_PING == -1)
  2671.                         {
  2672.                             if(GetPlayerPing(playerid) > MAX_PING)
  2673.                             {
  2674.                                 svCheats_CallDetection(playerid, CHEAT_HIGH_PING);
  2675.                                 svCheats_AmountDetected++;
  2676.                             }
  2677.                         }
  2678.                         #endif
  2679.                        
  2680.                         #if defined SPEED_HACK
  2681.                             if(svCheats_SecurityLevel[playerid] < SPEED_HACK || SPEED_HACK == -1)
  2682.                             {
  2683.                                 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  2684.                                 {
  2685.                                     new vehicleid = GetPlayerVehicleID(playerid);
  2686.                                     if(svCheats_GetVehicleSpeed(vehicleid) > MAX_SPEED)
  2687.                                     {
  2688.                                         if(GetVehicleModel(vehicleid) != 520)
  2689.                                         {
  2690.                                             new Float: vehicleVelocity[3];
  2691.                                             GetVehicleVelocity(vehicleid, vehicleVelocity[0], vehicleVelocity[1], vehicleVelocity[2]);
  2692.                                             if(vehicleVelocity[2] > -0.5)
  2693.                                             {
  2694.                                                     svCheats_CallDetection(playerid, CHEAT_SPEED_HACK);
  2695.                                                     svCheats_AmountDetected++;
  2696.                                             }
  2697.                                         }
  2698.                                     }
  2699.                                 }
  2700.                             }
  2701.                         #endif
  2702.                        
  2703.                         #if defined JETPACK_HACK
  2704.                                 if(svCheats_SecurityLevel[playerid] < JETPACK_HACK || JETPACK_HACK == -1)
  2705.                                 {
  2706.                                     if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK)
  2707.                                     {
  2708.                                         if(svCheats_GrantedJetpack[playerid] == false && svCheats_ReportedTabbed[playerid] == false)
  2709.                                         {
  2710.                                             svCheats_CallDetection(playerid, CHEAT_JETPACK_HACK);
  2711.                                             svCheats_AmountDetected++;
  2712.                                         }
  2713.                                     }
  2714.                                     else
  2715.                                     {
  2716.                                         svCheats_GrantedJetpack[playerid] = false;
  2717.                                     }
  2718.                                 }
  2719.                         #endif
  2720.                        
  2721.                         #if defined AIRBREAK_HACK
  2722.                             if(svCheats_SecurityLevel[playerid] < AIRBREAK_HACK || AIRBREAK_HACK == -1)
  2723.                             {
  2724.                                 new ai = GetPlayerAnimationIndex(playerid);
  2725.                                 if(ai == 1231 || ai == 1266)
  2726.                                 {
  2727.                                     new Float: playersPos[3];
  2728.                                     GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  2729.                                     if(playersPos[2] > svCheats_GetSwimmingPointZ(playerid))
  2730.                                     {
  2731.                                         if(!IsPlayerInRangeOfPoint(playerid, 200.0, 602.74, 871.44, -20.65) && !IsPlayerInRangeOfPoint(playerid, 300.0, 1678.38, -2291.18, -1.00))
  2732.                                         {
  2733.                                             if(GetPointZPos(playersPos[0], playersPos[1]) < playersPos[2] - 15.0)
  2734.                                             {
  2735.                                                 svCheats_CallDetection(playerid, CHEAT_AIRBREAK_HACK);
  2736.                                                 svCheats_AmountDetected++;
  2737.                                             }
  2738.                                         }
  2739.                                     }
  2740.                                 }
  2741.                             }
  2742.                         #endif
  2743.                        
  2744.                         #if defined FLY_HACK
  2745.                             if(svCheats_SecurityLevel[playerid] < FLY_HACK || FLY_HACK == -1)
  2746.                             {
  2747.                                 if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  2748.                                 {
  2749.                                                 new ai = GetPlayerAnimationIndex(playerid);
  2750.                                                 if(ai == 1538 || ai == 1538 || ai == 1543)
  2751.                                                 {
  2752.                                                         if(!GetPlayerInterior(playerid))
  2753.                                                         {
  2754.                                                             new Float: playersPos[3];
  2755.                                                             GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  2756.                                                             if(playersPos[2] > svCheats_GetSwimmingPointZ(playerid))
  2757.                                                             {
  2758.                                                                 svCheats_CallDetection(playerid, CHEAT_FLY_HACK);
  2759.                                                                 svCheats_AmountDetected++;
  2760.                                                             }
  2761.                                                     }
  2762.                                                 }
  2763.                                 }
  2764.                             }
  2765.                         #endif
  2766.                        
  2767.                         #if defined TELEPORT_HACK
  2768.                                 if(svCheats_SecurityLevel[playerid] < TELEPORT_HACK || TELEPORT_HACK == -1)
  2769.                                 {
  2770.                                     if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  2771.                                     {
  2772.                                                 new interior = GetPlayerInterior(playerid);
  2773.                                                 if(interior > 0)
  2774.                                                 {
  2775.                                                         new allowedInteriors[10], bool: allowed;
  2776.                                                         sscanf(USED_INTERIORS, "a<i>[10]", allowedInteriors);
  2777.                                                        
  2778.                                                         for(new i = 0; i < sizeof(allowedInteriors); i++)
  2779.                                                         {
  2780.                                                             if(allowedInteriors[i] == interior)
  2781.                                                             {
  2782.                                                                 allowed = true;
  2783.                                                                 break;
  2784.                                                             }
  2785.                                                         }
  2786.                                                        
  2787.                                                         if(allowed == false)
  2788.                                                         {
  2789.                                                             svCheats_CallDetection(playerid, CHEAT_TELEPORT_HACK);
  2790.                                                             svCheats_AmountDetected++;
  2791.                                                         }
  2792.                                                 }
  2793.                                     }
  2794.                                 }
  2795.                         #endif
  2796.                        
  2797.                         #if defined VEHICLE_REPAIR
  2798.                             if(svCheats_SecurityLevel[playerid] < VEHICLE_REPAIR || VEHICLE_REPAIR == -1)
  2799.                             {
  2800.                                 if(svCheats_ReportedTabbed[playerid] == false)
  2801.                                 {
  2802.                                         if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  2803.                                         {
  2804.                                             new vehicleid = GetPlayerVehicleID(playerid), Float: vHealth;
  2805.                                             GetVehicleHealth(vehicleid, vHealth);
  2806.                                             if(vHealth > svCheats_VehicleHealth[vehicleid])
  2807.                                             {
  2808.                                                 if(!svCheats_IsPlayerAtRepairPoint(playerid))
  2809.                                                 {
  2810.                                                         svCheats_CallDetection(playerid, CHEAT_VEHICLE_REPAIR);
  2811.                                                         svCheats_AmountDetected++;
  2812.                                                 }
  2813.                                             }
  2814.                                             svCheats_VehicleHealth[vehicleid] = vHealth;
  2815.                                         }
  2816.                                 }
  2817.                             }
  2818.                         #endif
  2819.                        
  2820.                         #if defined CHATSPAM_OFF
  2821.                             if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  2822.                             {
  2823.                                     svCheats_SpamCounters[playerid]--;
  2824.  
  2825.                                     if(svCheats_SpamCounters[playerid] < 0)
  2826.                                     {
  2827.                                         svCheats_SpamCounters[playerid] = 0;
  2828.                                     }
  2829.                             }
  2830.                         #endif
  2831.                        
  2832.                         #if defined AFK_DISABLED
  2833.                                 if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1)
  2834.                             {
  2835.                                 if(svCheats_ReportedAFK[playerid] == false)
  2836.                                 {
  2837.                                         new Float: playersPos[3];
  2838.                                     GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  2839.                                                 if(playersPos[0] != svCheats_oldPos[playerid][0] || playersPos[1] != svCheats_oldPos[playerid][1] || playersPos[2] != svCheats_oldPos[playerid][2])
  2840.                                                 {
  2841.                                                 svCheats_AFKTime[playerid] = 0;
  2842.                                         }
  2843.                                 else
  2844.                                     {
  2845.                                                 svCheats_AFKTime[playerid] += GetTickCount() - svCheats_LastAFKUpdate[playerid];
  2846.                                         }
  2847.  
  2848.                                                 svCheats_LastAFKUpdate[playerid] = GetTickCount();
  2849.  
  2850.                                                 svCheats_oldPos[playerid][0] = playersPos[0], svCheats_oldPos[playerid][1] = playersPos[1], svCheats_oldPos[playerid][2] = playersPos[2];
  2851.  
  2852.                                                 if(svCheats_ReportedAFK[playerid] == false)
  2853.                                         {
  2854.                                                 new AFKMinutes = svCheats_AFKTime[playerid] / 60000;
  2855.                                                 if(AFKMinutes >= AFK_MINUTES)
  2856.                                                 {
  2857.                                                                 svCheats_ReportedAFK[playerid] = true;
  2858.                                                 svCheats_CallDetection(playerid, CHEAT_AFK);
  2859.                                                 svCheats_AmountDetected++;
  2860.                                                 }
  2861.                                         }
  2862.                                 }
  2863.                         }
  2864.                         #endif
  2865.                        
  2866.                         #if defined TABBED_DISABLED
  2867.                             if(svCheats_SecurityLevel[playerid] < TABBED_DISABLED || TABBED_DISABLED == -1)
  2868.                             {
  2869.                                 if(svCheats_ReportedTabbed[playerid] == false && svCheats_TabbedDisabled[playerid] == false)
  2870.                                 {
  2871.                                     if(GetPlayerCameraMode(playerid) != 55 && (GetPlayerState(playerid) < 4 || GetPlayerState(playerid) > 6))
  2872.                                     {
  2873.                                                         svCheats_TabbedUpdates[playerid]++;
  2874.  
  2875.                                                         if(svCheats_TabbedUpdates[playerid] > 1)
  2876.                                                         {
  2877.                                                             svCheats_TabbedUpdates[playerid] = 0;
  2878.                                                             svCheats_ReportedTabbed[playerid] = true;
  2879.                                                             svCheats_CallDetection(playerid, CHEAT_TABBED);
  2880.                                                             svCheats_AmountDetected++;
  2881.                                                         }
  2882.                                                 }
  2883.                                         }
  2884.                                 }
  2885.                         #endif
  2886.                        
  2887.                         #if defined HEALTH_HACK
  2888.                             if(svCheats_SecurityLevel[playerid] < HEALTH_HACK || HEALTH_HACK == -1)
  2889.                             {
  2890.                                 if(svCheats_HealthHackDisabled[playerid] == false && svCheats_ReportedTabbed[playerid] == false)
  2891.                                 {
  2892.                                         new Float: Health, Float: Armor;
  2893.                                         GetPlayerHealth(playerid, Health);
  2894.                                         GetPlayerArmour(playerid, Armor);
  2895.                                         if(!svCheats_IsPlayerAtHealingPoint(playerid))
  2896.                                         {
  2897.                                                 if(svCheats_PlayerHealth[playerid] < Health || svCheats_PlayerArmor[playerid] < Armor)
  2898.                                                 {
  2899.                                                         svCheats_CallDetection(playerid, CHEAT_HEALTHHACK);
  2900.                                                 svCheats_AmountDetected++;
  2901.                                                 }
  2902.                                         }
  2903.                                         svCheats_PlayerHealth[playerid] = Health;
  2904.                                         svCheats_PlayerArmor[playerid] = Armor;
  2905.                                 }
  2906.                             }
  2907.                         #endif
  2908.             }
  2909.         #else
  2910.             for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
  2911.             {
  2912.                 if(IsPlayerConnected(playerid))
  2913.                 {
  2914.                                  #if defined HIGH_PING
  2915.                                 if(svCheats_SecurityLevel[playerid] < HIGH_PING || HIGH_PING == -1)
  2916.                                 {
  2917.                                     if(GetPlayerPing(playerid) > MAX_PING)
  2918.                                     {
  2919.                                         svCheats_CallDetection(playerid, CHEAT_HIGH_PING);
  2920.                                         svCheats_AmountDetected++;
  2921.                                     }
  2922.                                 }
  2923.                                 #endif
  2924.  
  2925.                                 #if defined SPEED_HACK
  2926.                                     if(svCheats_SecurityLevel[playerid] < SPEED_HACK || SPEED_HACK == -1)
  2927.                                     {
  2928.                                         if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  2929.                                         {
  2930.                                             new vehicleid = GetPlayerVehicleID(playerid);
  2931.                                             if(svCheats_GetVehicleSpeed(vehicleid) > MAX_SPEED)
  2932.                                             {
  2933.                                                 if(GetVehicleModel(vehicleid) != 520)
  2934.                                                 {
  2935.                                                     new Float: vehicleVelocity[3];
  2936.                                                     GetVehicleVelocity(vehicleid, vehicleVelocity[0], vehicleVelocity[1], vehicleVelocity[2]);
  2937.                                                     if(vehicleVelocity[2] > -0.5)
  2938.                                                     {
  2939.                                                             svCheats_CallDetection(playerid, CHEAT_SPEED_HACK);
  2940.                                                             svCheats_AmountDetected++;
  2941.                                                     }
  2942.                                                 }
  2943.                                             }
  2944.                                         }
  2945.                                     }
  2946.                                 #endif
  2947.  
  2948.                                 #if defined JETPACK_HACK
  2949.                                         if(svCheats_SecurityLevel[playerid] < JETPACK_HACK || JETPACK_HACK == -1)
  2950.                                         {
  2951.                                             if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK)
  2952.                                             {
  2953.                                                 if(svCheats_GrantedJetpack[playerid] == false && svCheats_ReportedTabbed[playerid] == false)
  2954.                                                 {
  2955.                                                     svCheats_CallDetection(playerid, CHEAT_JETPACK_HACK);
  2956.                                                     svCheats_AmountDetected++;
  2957.                                                 }
  2958.                                             }
  2959.                                             else
  2960.                                             {
  2961.                                                 svCheats_GrantedJetpack[playerid] = false;
  2962.                                             }
  2963.                                         }
  2964.                                 #endif
  2965.  
  2966.                                 #if defined AIRBREAK_HACK
  2967.                                     if(svCheats_SecurityLevel[playerid] < AIRBREAK_HACK || AIRBREAK_HACK == -1)
  2968.                                     {
  2969.                                         new ai = GetPlayerAnimationIndex(playerid);
  2970.                                         if(ai == 1231 || ai == 1266)
  2971.                                         {
  2972.                                             new Float: playersPos[3];
  2973.                                             GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  2974.                                             if(playersPos[2] > svCheats_GetSwimmingPointZ(playerid))
  2975.                                             {
  2976.                                                 if(!IsPlayerInRangeOfPoint(playerid, 200.0, 602.74, 871.44, -20.65) && !IsPlayerInRangeOfPoint(playerid, 300.0, 1678.38, -2291.18, -1.00))
  2977.                                                 {
  2978.                                                     if(GetPointZPos(playersPos[0], playersPos[1]) < playersPos[2] - 15.0)
  2979.                                                     {
  2980.                                                         svCheats_CallDetection(playerid, CHEAT_AIRBREAK_HACK);
  2981.                                                         svCheats_AmountDetected++;
  2982.                                                     }
  2983.                                                 }
  2984.                                             }
  2985.                                         }
  2986.                                     }
  2987.                                 #endif
  2988.  
  2989.                                 #if defined FLY_HACK
  2990.                                     if(svCheats_SecurityLevel[playerid] < FLY_HACK || FLY_HACK == -1)
  2991.                                     {
  2992.                                         if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  2993.                                         {
  2994.                                                         new ai = GetPlayerAnimationIndex(playerid);
  2995.                                                         if(ai == 1538 || ai == 1538 || ai == 1543)
  2996.                                                         {
  2997.                                                             if(!GetPlayerInterior(playerid))
  2998.                                                             {
  2999.                                                                     new Float: playersPos[3];
  3000.                                                                     GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  3001.                                                                     if(playersPos[2] > svCheats_GetSwimmingPointZ(playerid))
  3002.                                                                     {
  3003.                                                                         svCheats_CallDetection(playerid, CHEAT_FLY_HACK);
  3004.                                                                         svCheats_AmountDetected++;
  3005.                                                                     }
  3006.                                                             }
  3007.                                                         }
  3008.                                         }
  3009.                                     }
  3010.                                 #endif
  3011.  
  3012.                                 #if defined TELEPORT_HACK
  3013.                                         if(svCheats_SecurityLevel[playerid] < TELEPORT_HACK || TELEPORT_HACK == -1)
  3014.                                         {
  3015.                                             if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  3016.                                             {
  3017.                                                         new interior = GetPlayerInterior(playerid);
  3018.                                                         if(interior > 0)
  3019.                                                         {
  3020.                                                                 new allowedInteriors[10], bool: allowed;
  3021.                                                                 sscanf(USED_INTERIORS, "a<i>[10]", allowedInteriors);
  3022.  
  3023.                                                                 for(new i = 0; i < sizeof(allowedInteriors); i++)
  3024.                                                                 {
  3025.                                                                     if(allowedInteriors[i] == interior)
  3026.                                                                     {
  3027.                                                                         allowed = true;
  3028.                                                                         break;
  3029.                                                                     }
  3030.                                                                 }
  3031.  
  3032.                                                                 if(allowed == false)
  3033.                                                                 {
  3034.                                                                     svCheats_CallDetection(playerid, CHEAT_TELEPORT_HACK);
  3035.                                                                     svCheats_AmountDetected++;
  3036.                                                                 }
  3037.                                                         }
  3038.                                             }
  3039.                                         }
  3040.                                 #endif
  3041.  
  3042.                                 #if defined VEHICLE_REPAIR
  3043.                                     if(svCheats_SecurityLevel[playerid] < VEHICLE_REPAIR || VEHICLE_REPAIR == -1)
  3044.                                     {
  3045.                                         if(svCheats_ReportedTabbed[playerid] == false)
  3046.                                         {
  3047.                                                 if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  3048.                                                 {
  3049.                                                     new vehicleid = GetPlayerVehicleID(playerid), Float: vHealth;
  3050.                                                     GetVehicleHealth(vehicleid, vHealth);
  3051.                                                     if(vHealth > svCheats_VehicleHealth[vehicleid])
  3052.                                                     {
  3053.                                                         if(!svCheats_IsPlayerAtRepairPoint(playerid))
  3054.                                                         {
  3055.                                                                 svCheats_CallDetection(playerid, CHEAT_VEHICLE_REPAIR);
  3056.                                                                 svCheats_AmountDetected++;
  3057.                                                         }
  3058.                                                     }
  3059.                                                     svCheats_VehicleHealth[vehicleid] = vHealth;
  3060.                                                 }
  3061.                                         }
  3062.                                     }
  3063.                                 #endif
  3064.  
  3065.                                 #if defined CHATSPAM_OFF
  3066.                                     if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  3067.                                     {
  3068.                                             svCheats_SpamCounters[playerid]--;
  3069.  
  3070.                                             if(svCheats_SpamCounters[playerid] < 0)
  3071.                                             {
  3072.                                                 svCheats_SpamCounters[playerid] = 0;
  3073.                                             }
  3074.                                     }
  3075.                                 #endif
  3076.  
  3077.                                 #if defined AFK_DISABLED
  3078.                                         if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1)
  3079.                                     {
  3080.                                         if(svCheats_ReportedAFK[playerid] == false)
  3081.                                         {
  3082.                                                 new Float: playersPos[3];
  3083.                                             GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  3084.                                                         if(playersPos[0] != svCheats_oldPos[playerid][0] || playersPos[1] != svCheats_oldPos[playerid][1] || playersPos[2] != svCheats_oldPos[playerid][2])
  3085.                                                         {
  3086.                                                         svCheats_AFKTime[playerid] = 0;
  3087.                                                 }
  3088.                                         else
  3089.                                             {
  3090.                                                         svCheats_AFKTime[playerid] += GetTickCount() - svCheats_LastAFKUpdate[playerid];
  3091.                                                 }
  3092.  
  3093.                                                         svCheats_LastAFKUpdate[playerid] = GetTickCount();
  3094.  
  3095.                                                         svCheats_oldPos[playerid][0] = playersPos[0], svCheats_oldPos[playerid][1] = playersPos[1], svCheats_oldPos[playerid][2] = playersPos[2];
  3096.  
  3097.                                                         if(svCheats_ReportedAFK[playerid] == false)
  3098.                                                 {
  3099.                                                         new AFKMinutes = svCheats_AFKTime[playerid] / 60000;
  3100.                                                         if(AFKMinutes >= AFK_MINUTES)
  3101.                                                         {
  3102.                                                                         svCheats_ReportedAFK[playerid] = true;
  3103.                                                         svCheats_CallDetection(playerid, CHEAT_AFK);
  3104.                                                         svCheats_AmountDetected++;
  3105.                                                         }
  3106.                                                 }
  3107.                                         }
  3108.                                 }
  3109.                                 #endif
  3110.  
  3111.                                 #if defined TABBED_DISABLED
  3112.                                     if(svCheats_SecurityLevel[playerid] < TABBED_DISABLED || TABBED_DISABLED == -1)
  3113.                                     {
  3114.                                         if(svCheats_ReportedTabbed[playerid] == false && svCheats_TabbedDisabled[playerid] == false)
  3115.                                         {
  3116.                                             if(GetPlayerCameraMode(playerid) != 55 && (GetPlayerState(playerid) < 4 || GetPlayerState(playerid) > 6))
  3117.                                             {
  3118.                                                                 svCheats_TabbedUpdates[playerid]++;
  3119.  
  3120.                                                                 if(svCheats_TabbedUpdates[playerid] > 1)
  3121.                                                                 {
  3122.                                                                     svCheats_TabbedUpdates[playerid] = 0;
  3123.                                                                     svCheats_ReportedTabbed[playerid] = true;
  3124.                                                                     svCheats_CallDetection(playerid, CHEAT_TABBED);
  3125.                                                                     svCheats_AmountDetected++;
  3126.                                                                 }
  3127.                                                         }
  3128.                                                 }
  3129.                                         }
  3130.                                 #endif
  3131.  
  3132.                         #if defined HEALTH_HACK
  3133.                                     if(svCheats_SecurityLevel[playerid] < HEALTH_HACK || HEALTH_HACK == -1)
  3134.                                     {
  3135.                                         if(svCheats_HealthHackDisabled[playerid] == false && svCheats_ReportedTabbed[playerid] == false)
  3136.                                         {
  3137.                                                 new Float: Health, Float: Armor;
  3138.                                                 GetPlayerHealth(playerid, Health);
  3139.                                                 GetPlayerArmour(playerid, Armor);
  3140.                                                 if(!svCheats_IsPlayerAtHealingPoint(playerid))
  3141.                                                 {
  3142.                                                         if(svCheats_PlayerHealth[playerid] < Health || svCheats_PlayerArmor[playerid] < Armor)
  3143.                                                         {
  3144.                                                             svCheats_CallDetection(playerid, CHEAT_HEALTHHACK);
  3145.                                                             svCheats_AmountDetected++;
  3146.                                                         }
  3147.                                                 }
  3148.                                                 svCheats_PlayerHealth[playerid] = Health;
  3149.                                                 svCheats_PlayerArmor[playerid] = Armor;
  3150.                                         }
  3151.                                     }
  3152.                                 #endif
  3153.                         }
  3154.                 }
  3155.         #endif
  3156.         return 1;
  3157. }
  3158.  
  3159. stock svCheats_Debug(bool: togDebug)
  3160. {
  3161.         if(togDebug == true)
  3162.         {
  3163.             print("(svCheats) Debugging has been turned on");
  3164.         }
  3165.         else if(togDebug == false)
  3166.         {
  3167.             print("(svCheats) Debugging has been turned off");
  3168.         }
  3169.        
  3170.         return svCheats_Debugging = togDebug;
  3171. }
  3172.  
  3173. stock svCheats_SetPlayerSecurityLevel(playerid, secLevel)
  3174. {
  3175.         if(svCheats_Debugging == true)
  3176.         {
  3177.             printf("(svCheats) SetPlayerSecurityLevel(playerid = %d, secLevel = %d)", playerid, secLevel);
  3178.         }
  3179.        
  3180.         return svCheats_SecurityLevel[playerid] = secLevel;
  3181. }
  3182.  
  3183. stock svCheats_GetPlayerSecurityLevel(playerid)
  3184. {
  3185.     if(svCheats_Debugging == true)
  3186.         {
  3187.             printf("(svCheats) GetPlayerSecurityLevel(playerid = %d)", playerid);
  3188.         }
  3189.        
  3190.         return svCheats_SecurityLevel[playerid];
  3191. }
  3192.  
  3193. stock svCheats_SetVehicleHealth(vehicleid, Float: vHealth)
  3194. {
  3195.     if(svCheats_Debugging == true)
  3196.         {
  3197.             printf("(svCheats) SetVehicleHealth(vehicleid = %d, vHealth = %f)", vehicleid, vHealth);
  3198.         }
  3199.  
  3200.         svCheats_VehicleHealth[vehicleid] = vHealth;
  3201.         return SetVehicleHealth(vehicleid, vHealth);
  3202. }
  3203.  
  3204. #if defined _ALS_SetVehicleHealth
  3205.         #undef SetVehicleHealth
  3206. #else
  3207.         #define _ALS_SetVehicleHealth
  3208. #endif
  3209. #define SetVehicleHealth svCheats_SetVehicleHealth
  3210.  
  3211. stock svCheats_GivePlayerWeapon(playerid, weaponid, ammo)
  3212. {
  3213.         if(svCheats_Debugging == true)
  3214.         {
  3215.             printf("(svCheats) GivePlayerWeapon(playerid = %d, weaponid = %d, ammo = %d)", playerid, weaponid, ammo);
  3216.         }
  3217.  
  3218.         svCheats_PlayerWeapons[playerid][GetWeaponSlot(weaponid)] = weaponid;
  3219.         return GivePlayerWeapon(playerid, weaponid, ammo);
  3220. }
  3221.  
  3222. #if defined _ALS_GivePlayerWeapon
  3223.         #undef GivePlayerWeapon
  3224. #else
  3225.         #define _ALS_GivePlayerWeapon
  3226. #endif
  3227. #define GivePlayerWeapon svCheats_GivePlayerWeapon
  3228.  
  3229. stock svCheats_SetPlayerHealth(playerid, Float: pHealth)
  3230. {
  3231.     if(svCheats_Debugging == true)
  3232.         {
  3233.             printf("(svCheats) SetPlayerHealth(playerid = %d, pHealth = %f)", playerid, pHealth);
  3234.         }
  3235.  
  3236.         svCheats_PlayerHealth[playerid] = pHealth;
  3237.         return SetPlayerHealth(playerid, pHealth);
  3238. }
  3239.  
  3240. #if defined _ALS_SetPlayerHealth
  3241.         #undef SetPlayerHealth
  3242. #else
  3243.         #define _ALS_SetPlayerHealth
  3244. #endif
  3245. #define SetPlayerHealth svCheats_SetPlayerHealth
  3246.  
  3247. stock svCheats_SetPlayerArmour(playerid, Float: pArmour)
  3248. {
  3249.     if(svCheats_Debugging == true)
  3250.         {
  3251.             printf("(svCheats) SetPlayerArmour(playerid = %d, pArmour = %f)", playerid, pArmour);
  3252.         }
  3253.  
  3254.         svCheats_PlayerArmor[playerid] = pArmour;
  3255.         return SetPlayerArmour(playerid, pArmour);
  3256. }
  3257.  
  3258. #if defined _ALS_SetPlayerArmour
  3259.         #undef SetPlayerArmour
  3260. #else
  3261.         #define _ALS_SetPlayerArmour
  3262. #endif
  3263. #define SetPlayerArmour svCheats_SetPlayerArmour
  3264.  
  3265. stock svCheats_SetPlayerSpecialAction(playerid, actionid)
  3266. {
  3267.         if(actionid == SPECIAL_ACTION_USEJETPACK)
  3268.         {
  3269.                 svCheats_GrantedJetpack[playerid] = true;
  3270.         }
  3271.         else if(actionid == SPECIAL_ACTION_NONE)
  3272.         {
  3273.             svCheats_GrantedJetpack[playerid] = false;
  3274.         }
  3275.         return SetPlayerSpecialAction(playerid, actionid);
  3276. }
  3277.  
  3278. #if defined _ALS_SetPlayerSpecialAction
  3279.         #undef SetPlayerSpecialAction
  3280. #else
  3281.         #define _ALS_SetPlayerSpecialAction
  3282. #endif
  3283. #define SetPlayerSpecialAction svCheats_SetPlayerSpecialAction
  3284.  
  3285. stock svCheats_ClearAnimations(playerid)
  3286. {
  3287.         svCheats_GrantedJetpack[playerid] = false;
  3288.         return ClearAnimations(playerid);
  3289. }
  3290.  
  3291. #if defined _ALS_ClearAnimations
  3292.         #undef ClearAnimations
  3293. #else
  3294.         #define _ALS_ClearAnimations
  3295. #endif
  3296. #define ClearAnimations svCheats_ClearAnimations
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top