Advertisement
Guest User

Untitled

a guest
Jan 3rd, 2013
4,823
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 109.85 KB | None | 0 0
  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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement