Advertisement
Guest User

Untitled

a guest
May 4th, 2012
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 79.15 KB | None | 0 0
  1. //-----------------------------------------------------------------------------------|
  2. // [svCheats] |
  3. // |
  4. // |
  5. // - You may not remove these credits |
  6. // - You may not claim this script as yours |
  7. // |
  8. // |
  9. // |
  10. // [VERSION 1.3] Created by SuperViper |
  11. //-----------------------------------------------------------------------------------|
  12.  
  13. #include <a_samp>
  14. #include <sscanf2>
  15.  
  16. // ==================================== SETTINGS ================================== ///
  17. // //|
  18. /* Comment if you are using this include inside of a filterscript */ //|
  19. #define GAMEMODE //|
  20. // //|
  21. /* Comment if you would like to use regular 'for' loops instead of foreach */ //|
  22. #define USE_FOREACH //|
  23. // //|
  24. /* Comment if you would like to use regular 'ALS' hooks instead of y_hooks */ //|
  25. #define USE_YHOOKS //|
  26. // //|
  27. /* Comment if you would like to use regular 'strcmp' commands instead of ZCMD */ //|
  28. #define USE_ZCMD //|
  29. // //|
  30. /* Change this amount to set how fast the timer (in ms) to detect cheats runs */ //|
  31. #define TIMER_TIME 1250 //|
  32. // //|
  33. /* Comment this if you would like to disable the /acstats command */ //|
  34. #define ACSTATS_USED //|
  35. // //|
  36. /* Comment this if you would like to disable the /hh command */ //|
  37. #define HH_USED (1) //|
  38. // //|
  39. /* Comment the anticheat(s) that you dont want and change the security level */ //|
  40. #define HIGH_PING (2) //|
  41. #define WEAPON_SPAWN (1) //|
  42. #define SPEED_HACK (1) //|
  43. #define JETPACK_HACK (1) //|
  44. #define DRVBY_RESTRICT (-1) //|
  45. #define DDRIVEBY_OFF (-1) //|
  46. #define SWEARING_OFF (-1) //|
  47. //#define AIRBREAK_HACK (1) //|
  48. #define BUNNYHOP_OFF (1) //|
  49. #define FLY_HACK (1) //|
  50. #define TELEPORT_HACK (1) //|
  51. #define VEHICLE_REPAIR (1) //|
  52. #define CHATSPAM_OFF (-1) //|
  53. #define AFK_DISABLED (2) //|
  54. #define TABBED_DISABLED (2) //|
  55. #define NINJAJACK_CHEAT (-1) //|
  56. #define HEALTH_HACK (1) //|
  57. #define CARRAM_OFF (-1) //|
  58. #define HELIBLADE_OFF (-1) //|
  59. #define VEHMOD_HACK (1) //|
  60. // //|
  61. // //|
  62. // //|
  63. /* Change the anticheat settings to best fit your server */ //|
  64. #define MAX_PING (750) // Maximum server ping //|
  65. #define USED_INTERIORS "1 2" // Used interiors separated by a space //|
  66. #define MAX_SPEED (198) // Maximum vehicle speed //|
  67. #define DRIVEBY_WEAPONS "28 29 32" // Driveby allowed weapons separated by a space //|
  68. #define BUNNYHOP_AMOUNT (6) // Amount of jumps before it's called bunny hopping //|
  69. #define CHATSPAM_LINES (4) // Amount of lines sent before it's called spam //|
  70. #define AFK_MINUTES (10) // Amount of minutes before a person is AFK //|
  71. new CurseWords[][] = {"ass", "bitch", "shit", "fuck", "nigger", "cunt"}; //|
  72. // ================================================================================ ///
  73. // DO NOT TOUCH ANYTHING BELOW THIS ///
  74. // ================================================================================ ///
  75.  
  76. #if defined USE_FOREACH
  77. #tryinclude <foreach>
  78. #endif
  79.  
  80. #if defined USE_YHOOKS
  81. #tryinclude <YSI\y_hooks>
  82. #endif
  83.  
  84. #if defined USE_ZCMD
  85. #tryinclude <zcmd>
  86. #endif
  87.  
  88. #if defined AIRBREAK_HACK
  89. #tryinclude <MapAndreas>
  90. #endif
  91.  
  92. #define CHEAT_HIGH_PING (1)
  93. #define CHEAT_WEAPON_SPAWN (2)
  94. #define CHEAT_SPEED_HACK (3)
  95. #define CHEAT_JETPACK_HACK (4)
  96. #define CHEAT_DRIVEBY (5)
  97. #define CHEAT_DDRIVEBY (6)
  98. #define CHEAT_SWEARING (7)
  99. #define CHEAT_AIRBREAK_HACK (8)
  100. #define CHEAT_BUNNYHOP (9)
  101. #define CHEAT_FLY_HACK (10)
  102. #define CHEAT_TELEPORT_HACK (11)
  103. #define CHEAT_VEHICLE_REPAIR (12)
  104. #define CHEAT_CHATSPAM (13)
  105. #define CHEAT_AFK (14)
  106. #define CHEAT_TABBED (15)
  107. #define CHEAT_GODMODE (16)
  108. #define CHEAT_NINJAJACK (17)
  109. #define CHEAT_HEALTHHACK (18)
  110. #define CHEAT_CARRAM (19)
  111. #define CHEAT_HELIBLADE (20)
  112. #define CHEAT_VEHMOD (21)
  113.  
  114. forward svCheats_Detector();
  115. forward svCheats_OnPlayerCheatUpdate(playerid, cheatid);
  116.  
  117. enum e_svCheats_HH
  118. {
  119. svCheckedBy,
  120. bool: svInVehicle,
  121. svVehicleID,
  122. svVehicleSeat,
  123. Float: svOldPlayerPos[4],
  124. svInterior,
  125. svVirtualWorld,
  126. Float: svHealth,
  127. Float: svArmor,
  128. }
  129.  
  130. new svCheats_SecurityLevel[MAX_PLAYERS], bool: svCheats_Debugging, bool: svCheats_Spawned[MAX_PLAYERS];
  131. new bool: svCheats_GrantedJetpack[MAX_PLAYERS], Float: svCheats_VehicleHealth[MAX_VEHICLES] = 1000.0;
  132. new svCheats_JumpCounters[MAX_PLAYERS], svCheats_JumpCounterTimer[MAX_PLAYERS];
  133. new svCheats_PlayerWeapons[MAX_PLAYERS][13], svCheats_SpamCounters[MAX_PLAYERS];
  134. new svCheats_AFKTime[MAX_PLAYERS], svCheats_LastAFKUpdate[MAX_PLAYERS], bool: svCheats_ReportedAFK[MAX_PLAYERS];
  135. new Float: svCheats_oldPos[MAX_PLAYERS][3];
  136. new svCheats_TabbedUpdates[MAX_PLAYERS], bool: svCheats_ReportedTabbed[MAX_PLAYERS], bool: svCheats_TabbedDisabled[MAX_PLAYERS];
  137. new svCheats_HH[MAX_PLAYERS][e_svCheats_HH];
  138. new svCheats_PossibleNinjaJack[MAX_PLAYERS];
  139. new Float: svCheats_PlayerHealth[MAX_PLAYERS], Float: svCheats_PlayerArmor[MAX_PLAYERS], bool: svCheats_HealthHackDisabled[MAX_PLAYERS];
  140. new svCheats_AmountDetected;
  141.  
  142. #if defined USE_YHOOKS
  143. #if defined GAMEMODE
  144. hook OnGameModeInit()
  145. {
  146. new File: svCheats_Stats;
  147.  
  148. if(!fexist("svCheats_Stats.txt"))
  149. {
  150. svCheats_Stats = fopen("svCheats_Stats.txt", io_append);
  151. fwrite(svCheats_Stats, "0");
  152. }
  153. else
  154. {
  155. new amountDetected[5];
  156. svCheats_Stats = fopen("svCheats_Stats.txt", io_read);
  157. fread(svCheats_Stats, amountDetected);
  158. svCheats_AmountDetected = strval(amountDetected);
  159. }
  160.  
  161. fclose(svCheats_Stats);
  162. SetTimer("svCheats_Detector", TIMER_TIME, 1);
  163. return 1;
  164. }
  165.  
  166. hook OnGameModeExit()
  167. {
  168. new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write);
  169. format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected);
  170. fwrite(svCheats_Stats, amountDetected);
  171. fclose(svCheats_Stats);
  172. return 1;
  173. }
  174. #else
  175. hook OnFilterScriptInit()
  176. {
  177. new File: svCheats_Stats;
  178.  
  179. if(!fexist("svCheats_Stats.txt"))
  180. {
  181. svCheats_Stats = fopen("svCheats_Stats.txt", io_append);
  182. fwrite(svCheats_Stats, "0");
  183. }
  184. else
  185. {
  186. new amountDetected[5];
  187. svCheats_Stats = fopen("svCheats_Stats.txt", io_read);
  188. fread(svCheats_Stats, amountDetected);
  189. svCheats_AmountDetected = strval(amountDetected);
  190. }
  191.  
  192. fclose(svCheats_Stats);
  193. SetTimer("svCheats_Detector", TIMER_TIME, 1);
  194. return 1;
  195. }
  196.  
  197. hook OnFilterScriptExit()
  198. {
  199. new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write);
  200. format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected);
  201. fwrite(svCheats_Stats, amountDetected);
  202. fclose(svCheats_Stats);
  203. return 1;
  204. }
  205. #endif
  206. hook OnPlayerConnect(playerid)
  207. {
  208. svCheats_SecurityLevel[playerid] = 0;
  209.  
  210. #if defined JETPACK_HACK
  211. svCheats_GrantedJetpack[playerid] = false;
  212. #endif
  213.  
  214. #if defined BUNNYHOP_OFF
  215. svCheats_JumpCounters[playerid] = 0;
  216. svCheats_JumpCounterTimer[playerid] = -1;
  217. #endif
  218.  
  219. #if defined CHATSPAM_OFF
  220. svCheats_SpamCounters[playerid] = 0;
  221. #endif
  222.  
  223. #if defined WEAPON_SPAWN
  224. for(new i = 0; i < 13; i++)
  225. {
  226. svCheats_PlayerWeapons[playerid][i] = 0;
  227. }
  228. #endif
  229.  
  230. #if defined AFK_DISABLED
  231. svCheats_AFKTime[playerid] = 0;
  232. svCheats_LastAFKUpdate[playerid] = GetTickCount();
  233. svCheats_ReportedAFK[playerid] = false;
  234. #endif
  235.  
  236. #if defined TABBED_DISABLED
  237. svCheats_TabbedUpdates[playerid] = 0;
  238. svCheats_ReportedTabbed[playerid] = false;
  239. svCheats_TabbedDisabled[playerid] = true;
  240. #endif
  241.  
  242. #if defined HH_USED
  243. svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID;
  244. #endif
  245.  
  246. #if defined NINJAJACK_CHEAT
  247. svCheats_PossibleNinjaJack[playerid] = INVALID_PLAYER_ID;
  248. #endif
  249.  
  250. svCheats_Spawned[playerid] = false;
  251. return 1;
  252. }
  253.  
  254. hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  255. {
  256. #if defined BUNNYHOP_OFF
  257. if(newkeys & KEY_JUMP)
  258. {
  259. if(svCheats_SecurityLevel[playerid] < BUNNYHOP_OFF || BUNNYHOP_OFF == -1)
  260. {
  261. new ai = GetPlayerAnimationIndex(playerid);
  262. if(ai != 1061 && ai != 1062 && ai != 1064 && ai != 1066 && ai != 1195 && ai != 1997 && ai != 1538 || ai != 1538 || ai != 1543)
  263. {
  264. svCheats_JumpCounters[playerid]++;
  265.  
  266. if(svCheats_JumpCounterTimer[playerid] > -1)
  267. {
  268. KillTimer(svCheats_JumpCounterTimer[playerid]);
  269. svCheats_JumpCounterTimer[playerid] = -1;
  270. }
  271.  
  272. if(svCheats_JumpCounters[playerid] == BUNNYHOP_AMOUNT)
  273. {
  274. svCheats_JumpCounters[playerid] = 0;
  275. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_BUNNYHOP);
  276. svCheats_AmountDetected++;
  277. }
  278. else
  279. {
  280. svCheats_JumpCounterTimer[playerid] = SetTimerEx("svCheats_JumpCountersDown", 3000, 0, "i", playerid);
  281. }
  282. }
  283. }
  284. }
  285. #endif
  286.  
  287. #if defined WEAPON_SPAWN
  288. if(newkeys & KEY_FIRE)
  289. {
  290. if(svCheats_SecurityLevel[playerid] < WEAPON_SPAWN || WEAPON_SPAWN == -1)
  291. {
  292. new w = GetPlayerWeapon(playerid);
  293. if(w > 0 && w < 46)
  294. {
  295. if(svCheats_PlayerWeapons[playerid][svCheats_GetWeaponSlot(w)] != w)
  296. {
  297. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_WEAPON_SPAWN);
  298. svCheats_AmountDetected++;
  299. }
  300. }
  301. }
  302. }
  303. #endif
  304. return 1;
  305. }
  306.  
  307. hook OnPlayerText(playerid, text[])
  308. {
  309. #if defined SWEARING_OFF
  310. if(svCheats_SecurityLevel[playerid] < SWEARING_OFF || SWEARING_OFF == -1)
  311. {
  312. for(new c = 0; c < sizeof(CurseWords); c++)
  313. {
  314. if(strfind(text, CurseWords[c], true) > -1)
  315. {
  316. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_SWEARING);
  317. svCheats_AmountDetected++;
  318. return 0;
  319. }
  320. }
  321. }
  322. #endif
  323.  
  324. #if defined CHATSPAM_OFF
  325. if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  326. {
  327. svCheats_SpamCounters[playerid]++;
  328.  
  329. if(svCheats_SpamCounters[playerid] == CHATSPAM_LINES)
  330. {
  331. svCheats_SpamCounters[playerid] = 0;
  332. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_CHATSPAM);
  333. svCheats_AmountDetected++;
  334. return 0;
  335. }
  336. }
  337. #endif
  338.  
  339. #if defined AFK_DISABLED
  340. if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1)
  341. {
  342. svCheats_AFKTime[playerid] = 0;
  343. svCheats_ReportedAFK[playerid] = false;
  344. }
  345. #endif
  346. return 0;
  347. }
  348.  
  349. #if defined VEHICLE_REPAIR
  350. hook OnVehicleSpawn(vehicleid)
  351. {
  352. svCheats_VehicleHealth[vehicleid] = 1000.0;
  353. return 1;
  354. }
  355.  
  356. hook OnPlayerStateChange(playerid, newstate, oldstate)
  357. {
  358. if(newstate == PLAYER_STATE_DRIVER)
  359. {
  360. #if defined VEHICLE_REPAIR
  361. new vehicleid = GetPlayerVehicleID(playerid);
  362. GetVehicleHealth(vehicleid, svCheats_VehicleHealth[vehicleid]);
  363. #endif
  364.  
  365. #if defined NINJAJACK_OFF
  366. #if defined USE_FOREACH
  367. foreach(new i: Player)
  368. {
  369. if(svCheats_PossibleNinjaJack[i] == playerid)
  370. {
  371. svCheats_PossibleNinjaJack[i] = INVALID_PLAYER_ID;
  372. break;
  373. }
  374. }
  375. #else
  376. for(new i = 0; i < MAX_PLAYERS; i++)
  377. {
  378. if(IsPlayerConnected(i))
  379. {
  380. if(svCheats_PossibleNinjaJack[i] == playerid)
  381. {
  382. svCheats_PossibleNinjaJack[i] = INVALID_PLAYER_ID;
  383. break;
  384. }
  385. }
  386. }
  387. #endif
  388. #endif
  389. }
  390. return 1;
  391. }
  392. #endif
  393.  
  394. #if defined CHEAT_TABBED
  395. hook OnPlayerUpdate(playerid)
  396. {
  397. svCheats_TabbedUpdates[playerid] = 0;
  398. svCheats_ReportedTabbed[playerid] = false;
  399. return 1;
  400. }
  401.  
  402. hook OnPlayerSpawn(playerid)
  403. {
  404. svCheats_TabbedDisabled[playerid] = false;
  405. svCheats_Spawned[playerid] = true;
  406.  
  407. #if defined HEALTH_HACK
  408. svCheats_PlayerHealth[playerid] = 1000;
  409. svCheats_PlayerArmor[playerid] = 0;
  410. svCheats_HealthHackDisabled[playerid] = false;
  411. #endif
  412. return 1;
  413. }
  414. #endif
  415.  
  416. hook OnPlayerDeath(playerid, killerid, reason)
  417. {
  418. svCheats_TabbedDisabled[playerid] = true;
  419. svCheats_HealthHackDisabled[playerid] = true;
  420.  
  421. if(killerid == INVALID_PLAYER_ID)
  422. {
  423. if(svCheats_PossibleNinjaJack[playerid] != INVALID_PLAYER_ID)
  424. {
  425. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", svCheats_PossibleNinjaJack[playerid], CHEAT_NINJAJACK);
  426. svCheats_PossibleNinjaJack[playerid] = INVALID_PLAYER_ID;
  427. }
  428. }
  429. return 1;
  430. }
  431.  
  432. hook OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  433. {
  434. #if defined DRVBY_RESTRICT
  435. if(svCheats_SecurityLevel[playerid] < DRVBY_RESTRICT || DRVBY_RESTRICT == -1)
  436. {
  437. if(ispassenger)
  438. {
  439. new w = GetPlayerWeapon(playerid);
  440. if(w > 0)
  441. {
  442. new allowedWeapons[10], bool: allowed;
  443. sscanf(DRIVEBY_WEAPONS, "a<i>[10]", allowedWeapons);
  444.  
  445. for(new i = 0; i < sizeof(allowedWeapons); i++)
  446. {
  447. if(w == allowedWeapons[i])
  448. {
  449. allowed = true;
  450. break;
  451. }
  452. }
  453.  
  454. if(allowed == false)
  455. {
  456. SetPlayerArmedWeapon(playerid, 0);
  457. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_DRIVEBY);
  458. svCheats_AmountDetected++;
  459. }
  460. }
  461. }
  462. }
  463. #endif
  464.  
  465. #if defined DDRIVEBY_OFF
  466. if(svCheats_SecurityLevel[playerid] < DDRIVEBY_OFF || DDRIVEBY_OFF == -1)
  467. {
  468. if(!ispassenger)
  469. {
  470. new w = GetPlayerWeapon(playerid);
  471. if(w > 0)
  472. {
  473. SetPlayerArmedWeapon(playerid, 0);
  474. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_DDRIVEBY);
  475. svCheats_AmountDetected++;
  476. }
  477. }
  478. }
  479. #endif
  480.  
  481. #if defined NINJAJACK_CHEAT
  482. if(svCheats_SecurityLevel[playerid] < NINJAJACK_CHEAT || NINJAJACK_CHEAT == -1)
  483. {
  484. if(!ispassenger)
  485. {
  486. #if defined USE_FOREACH
  487. foreach(new i: Player)
  488. {
  489. if(GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER)
  490. {
  491. svCheats_PossibleNinjaJack[i] = playerid;
  492. break;
  493. }
  494. }
  495. #else
  496. for(new i = 0; i < MAX_PLAYERS; i++)
  497. {
  498. if(IsPlayerConnected(i))
  499. {
  500. if(GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER)
  501. {
  502. svCheats_PossibleNinjaJack[i] = playerid;
  503. break;
  504. }
  505. }
  506. }
  507. #endif
  508. }
  509. }
  510. #endif
  511.  
  512. return 1;
  513. }
  514.  
  515. #if defined USE_ZCMD
  516. #if defined HH_USED
  517. COMMAND:hh(playerid, params[])
  518. {
  519. if(svCheats_SecurityLevel[playerid] < HH_USED)
  520. {
  521. return SendClientMessage(playerid, -1, "You are not authorized to use this command.");
  522. }
  523.  
  524. new svCheats_giveplayerid;
  525. if(sscanf(params, "u", svCheats_giveplayerid))
  526. {
  527. return SendClientMessage(playerid, -1, "USAGE: /hh [player]");
  528. }
  529.  
  530. if(svCheats_ReportedTabbed[svCheats_giveplayerid] == true)
  531. {
  532. return SendClientMessage(playerid, -1, "You may not health hack check tabbed players.");
  533. }
  534.  
  535. if(svCheats_HH[svCheats_giveplayerid][svCheckedBy] != INVALID_PLAYER_ID)
  536. {
  537. return SendClientMessage(playerid, -1, "That player is already being checked for health hacks.");
  538. }
  539.  
  540. new string[128], playersName[MAX_PLAYER_NAME], Float: playersPos[3];
  541.  
  542. GetPlayerName(svCheats_giveplayerid, playersName, sizeof(playersName));
  543. format(string, sizeof(string), "Checking %s for health hacks...", playersName);
  544. SendClientMessage(playerid, -1, string);
  545.  
  546. GetPlayerPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  547. SetPlayerCameraLookAt(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  548. SetPlayerCameraPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2] + 5);
  549.  
  550. for(new i = 0; i < 3; i++)
  551. {
  552. svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][i] = playersPos[i];
  553. }
  554.  
  555. GetPlayerFacingAngle(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][3]);
  556.  
  557. svCheats_HH[svCheats_giveplayerid][svInterior] = GetPlayerInterior(svCheats_giveplayerid);
  558. svCheats_HH[svCheats_giveplayerid][svVirtualWorld] = GetPlayerVirtualWorld(svCheats_giveplayerid);
  559.  
  560. if(IsPlayerInAnyVehicle(svCheats_giveplayerid))
  561. {
  562. svCheats_HH[svCheats_giveplayerid][svInVehicle] = true;
  563. svCheats_HH[svCheats_giveplayerid][svVehicleID] = GetPlayerVehicleID(svCheats_giveplayerid);
  564. svCheats_HH[svCheats_giveplayerid][svVehicleSeat] = GetPlayerVehicleSeat(svCheats_giveplayerid);
  565. }
  566. else
  567. {
  568. svCheats_HH[svCheats_giveplayerid][svInVehicle] = false;
  569. }
  570.  
  571. GetPlayerHealth(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svHealth]);
  572. GetPlayerArmour(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svArmor]);
  573.  
  574. svCheats_HH[svCheats_giveplayerid][svCheckedBy] = playerid;
  575.  
  576. SetPlayerInterior(svCheats_giveplayerid, 0);
  577. SetPlayerPos(svCheats_giveplayerid, 0.0, 0.0, 8.0);
  578. SetPlayerHealth(svCheats_giveplayerid, 100.0);
  579. SetPlayerArmour(svCheats_giveplayerid, 0.0);
  580.  
  581. SetTimerEx("svCheats_HealthHackCheck", 1350 + GetPlayerPing(svCheats_giveplayerid), 0, "i", svCheats_giveplayerid);
  582. return 1;
  583. }
  584. #endif
  585.  
  586. #if defined ACSTATS_USED
  587. COMMAND:acstats(playerid, params[])
  588. {
  589. new string[50];
  590. format(string, sizeof(string), "(svCheats) Cheaters Detected: %d", svCheats_AmountDetected);
  591. SendClientMessage(playerid, -1, string);
  592. return 1;
  593. }
  594. #endif
  595. #else
  596. hook OnPlayerCommandText(playerid, cmdtext[])
  597. {
  598. #if defined HH_USED
  599. new svCheats_cmd[5];
  600. sscanf(cmdtext, "s[5]", svCheats_cmd);
  601. if(strcmp(svCheats_cmd, "/hh", true) == 0)
  602. {
  603. if(svCheats_SecurityLevel[playerid] < HH_USED)
  604. {
  605. return SendClientMessage(playerid, -1, "You are not authorized to use this command.");
  606. }
  607.  
  608. new svCheats_giveplayerid;
  609. if(sscanf(cmdtext, "{s[5]}u", svCheats_giveplayeid))
  610. {
  611. return SendClientMessage(playerid, -1, "USAGE: /hh [player]");
  612. }
  613.  
  614. if(svCheats_ReportedTabbed[svCheats_giveplayerid] == true)
  615. {
  616. return SendClientMessage(playerid, -1, "You may not health hack check tabbed players.");
  617. }
  618.  
  619. if(svCheats_HH[svCheats_giveplayerid][svCheckedBy] != INVALID_PLAYER_ID)
  620. {
  621. return SendClientMessage(playerid, -1, "That player is already being checked for health hacks.");
  622. }
  623.  
  624. new string[128], playersName[MAX_PLAYER_NAME], Float: playersPos[3];
  625.  
  626. GetPlayerName(svCheats_giveplayerid, playersName, sizeof(playersName));
  627. format(string, sizeof(string), "Checking %s for health hacks...", playersName);
  628. SendClientMessage(playerid, -1, string);
  629.  
  630. GetPlayerPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  631. SetPlayerCameraLookAt(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  632. SetPlayerCameraPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2] + 5);
  633.  
  634. for(new i = 0; i < 3; i++)
  635. {
  636. svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][i] = playersPos[i];
  637. }
  638.  
  639. GetPlayerFacingAngle(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][3]);
  640.  
  641. svCheats_HH[svCheats_giveplayerid][svInterior] = GetPlayerInterior(svCheats_giveplayerid);
  642. svCheats_HH[svCheats_giveplayerid][svVirtualWorld] = GetPlayerVirtualWorld(svCheats_giveplayerid);
  643.  
  644. if(IsPlayerInAnyVehicle(svCheats_giveplayerid))
  645. {
  646. svCheats_HH[svCheats_giveplayerid][svInVehicle] = true;
  647. svCheats_HH[svCheats_giveplayerid][svVehicleID] = GetPlayerVehicleID(svCheats_giveplayerid);
  648. svCheats_HH[svCheats_giveplayerid][svVehicleSeat] = GetPlayerVehicleSeat(svCheats_giveplayerid);
  649. }
  650. else
  651. {
  652. svCheats_HH[svCheats_giveplayerid][svInVehicle] = false;
  653. }
  654.  
  655. GetPlayerHealth(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svHealth]);
  656. GetPlayerArmour(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svArmor]);
  657.  
  658. svCheats_HH[svCheats_giveplayerid][svCheckedBy] = playerid;
  659.  
  660. SetPlayerInterior(svCheats_giveplayerid, 0);
  661. SetPlayerPos(svCheats_giveplayerid, 0.0, 0.0, 8.0);
  662. SetPlayerHealth(svCheats_giveplayerid, 100.0);
  663. SetPlayerArmour(svCheats_giveplayerid, 0.0);
  664.  
  665. SetTimerEx("svCheats_HealthHackCheck", 1350 + GetPlayerPing(svCheats_giveplayerid), 0, "i", svCheats_giveplayerid);
  666. return 1;
  667. }
  668. #endif
  669.  
  670. #if defined ACSTATS_USED
  671. if(strcmp(cmdtext, "/acstats", true) == 0)
  672. {
  673. new string[50];
  674. format(string, sizeof(string), "(svCheats) Cheaters Detected: %d", svCheats_AmountDetected);
  675. SendClientMessage(playerid, -1, string);
  676. return 1;
  677. }
  678. #endif
  679. return 0;
  680. }
  681. #endif
  682.  
  683. hook OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
  684. {
  685. if(issuerid == INVALID_PLAYER_ID)
  686. {
  687. if(svCheats_HH[playerid][svCheckedBy] != INVALID_PLAYER_ID)
  688. {
  689. new string[128], playersName[MAX_PLAYER_NAME], giveplayerid = svCheats_HH[playerid][svCheckedBy];
  690.  
  691. GetPlayerName(playerid, playersName, sizeof(playersName));
  692. format(string, sizeof(string), "The health hack check on %s has been finished and the result is {F81414}negative{FFFFFF}.", playersName);
  693. SendClientMessage(giveplayerid, -1, string);
  694.  
  695. svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID;
  696.  
  697. SetPlayerVirtualWorld(playerid, svCheats_HH[playerid][svVirtualWorld]);
  698. SetPlayerInterior(playerid, svCheats_HH[playerid][svInterior]);
  699. SetPlayerPos(playerid, svCheats_HH[playerid][svOldPlayerPos][0], svCheats_HH[playerid][svOldPlayerPos][1], svCheats_HH[playerid][svOldPlayerPos][2]);
  700. SetPlayerFacingAngle(playerid, svCheats_HH[playerid][svOldPlayerPos][3]);
  701.  
  702. if(svCheats_HH[playerid][svInVehicle] == true)
  703. {
  704. PutPlayerInVehicle(playerid, svCheats_HH[playerid][svVehicleID], svCheats_HH[playerid][svVehicleSeat]);
  705. }
  706.  
  707. SetPlayerHealth(playerid, svCheats_HH[playerid][svHealth]);
  708. SetPlayerArmour(playerid, svCheats_HH[playerid][svArmor]);
  709.  
  710. SetCameraBehindPlayer(playerid);
  711. }
  712. }
  713. else
  714. {
  715. #if defined CARRAM_OFF
  716. if(svCheats_SecurityLevel[playerid] < CARRAM_OFF || CARRAM_OFF == -1)
  717. {
  718. if(weaponid == 49)
  719. {
  720. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_CARRAM);
  721. }
  722. }
  723. #endif
  724.  
  725. #if defined HELIBLADE_OFF
  726. if(svCheats_SecurityLevel[playerid] < HELIBLADE_OFF || HELIBLADE_OFF == -1)
  727. {
  728. if(weaponid == 50)
  729. {
  730. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_HELIBLADE);
  731. }
  732. }
  733. #endif
  734. }
  735.  
  736. #if defined HEALTH_HACK
  737. if(!svCheats_PlayerArmor[playerid] || issuerid == INVALID_PLAYER_ID)
  738. {
  739. svCheats_PlayerHealth[playerid] -= amount;
  740. }
  741. else
  742. {
  743. if(svCheats_PlayerArmor[playerid] - amount >= 0)
  744. {
  745. svCheats_PlayerArmor[playerid] -= amount;
  746. }
  747. else
  748. {
  749. svCheats_PlayerHealth[playerid] -= (amount - svCheats_PlayerArmor[playerid]);
  750. svCheats_PlayerArmor[playerid] = 0;
  751. }
  752. }
  753. #endif
  754. return CallRemoteFunction("svCheats_OnPlayerTakeDamage", "ddfd", playerid, issuerid, amount, weaponid);
  755. }
  756.  
  757. #if defined TELEPORT_HACK
  758. hook OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
  759. {
  760. if(svCheats_SecurityLevel[playerid] < TELEPORT_HACK || TELEPORT_HACK == -1)
  761. {
  762. if(!IsPlayerInRangeOfPoint(playerid, 10.0, svCheats_oldPos[playerid][0], svCheats_oldPos[playerid][1], svCheats_oldPos[playerid][2]))
  763. {
  764. if(IsPlayerInRangeOfPoint(playerid, 10.0, fX, fY, fZ))
  765. {
  766. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_TELEPORT_HACK);
  767. }
  768. }
  769. }
  770. return 1;
  771. }
  772. #endif
  773.  
  774. #if defined VEHMOD_HACK
  775. hook OnVehicleMod(playerid, vehicleid, componentid)
  776. {
  777. if(svCheats_SecurityLevel[playerid] < VEHMOD_HACK || VEHMOD_HACK == -1)
  778. {
  779. if(!GetPlayerInterior(playerid))
  780. {
  781. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_VEHMOD);
  782. }
  783. }
  784. return 1;
  785. }
  786. #endif
  787. #else
  788. #if defined GAMEMODE
  789. forward svCheats_OnGameModeInit();
  790. public OnGameModeInit()
  791. {
  792. new File: svCheats_Stats;
  793.  
  794. if(!fexist("svCheats_Stats.txt"))
  795. {
  796. svCheats_Stats = fopen("svCheats_Stats.txt", io_append);
  797. fwrite(svCheats_Stats, "0");
  798. }
  799. else
  800. {
  801. new amountDetected[5];
  802. svCheats_Stats = fopen("svCheats_Stats.txt", io_read);
  803. fread(svCheats_Stats, amountDetected);
  804. svCheats_AmountDetected = strval(amountDetected);
  805. }
  806.  
  807. fclose(svCheats_Stats);
  808. SetTimer("svCheats_Detector", TIMER_TIME, 1);
  809. return 1;
  810. }
  811.  
  812. #if defined _ALS_OnGameModeInit
  813. #undef OnGameModeInit
  814. #else
  815. #define _ALS_OnGameModeInit
  816. #endif
  817. #define OnGameModeInit svCheats_OnGameModeInit
  818.  
  819. forward svCheats_OnGameModeExit();
  820. public OnGameModeExit()
  821. {
  822. new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write);
  823. format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected);
  824. fwrite(svCheats_Stats, amountDetected);
  825. fclose(svCheats_Stats);
  826. return 1;
  827. }
  828.  
  829. #if defined _ALS_OnGameModeExit
  830. #undef OnGameModeExit
  831. #else
  832. #define _ALS_OnGameModeExit
  833. #endif
  834. #define OnGameModeExit svCheats_OnGameModeExit
  835. #else
  836. forward svCheats_OnFilterScriptInit();
  837. public OnFilterScriptInit()
  838. {
  839. new File: svCheats_Stats;
  840.  
  841. if(!fexist("svCheats_Stats.txt"))
  842. {
  843. svCheats_Stats = fopen("svCheats_Stats.txt", io_append);
  844. fwrite(svCheats_Stats, "0");
  845. }
  846. else
  847. {
  848. new amountDetected[5];
  849. svCheats_Stats = fopen("svCheats_Stats.txt", io_read);
  850. fread(svCheats_Stats, amountDetected);
  851. svCheats_AmountDetected = strval(amountDetected);
  852. }
  853.  
  854. fclose(svCheats_Stats);
  855. SetTimer("svCheats_Detector", TIMER_TIME, 1);
  856. return 1;
  857. }
  858.  
  859. #if defined _ALS_OnFilterScriptInit
  860. #undef OnFilterScriptInit
  861. #else
  862. #define _ALS_OnFilterScriptInit
  863. #endif
  864. #define OnFilterScriptInit svCheats_OnFilterScriptInit
  865.  
  866. forward svCheats_OnFilterScriptExit();
  867. public OnFilterScriptExit()
  868. {
  869. new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write);
  870. format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected);
  871. fwrite(svCheats_Stats, amountDetected);
  872. fclose(svCheats_Stats);
  873. return 1;
  874. }
  875.  
  876. #if defined _ALS_OnFilterScriptExit
  877. #undef OnFilterScriptExit
  878. #else
  879. #define _ALS_OnFilterScriptExit
  880. #endif
  881. #define OnFilterScriptExit svCheats_OnFilterScriptExit
  882. #endif
  883.  
  884. forward svCheats_OnPlayerDeath(playerid, killerid, reason);
  885. public OnPlayerDeath(playerid, killerid, reason)
  886. {
  887. svCheats_TabbedDisabled[playerid] = true;
  888. svCheats_HealthHackDisabled[playerid] = true;
  889.  
  890. if(killerid == INVALID_PLAYER_ID)
  891. {
  892. if(svCheats_PossibleNinjaJack[playerid] != INVALID_PLAYER_ID)
  893. {
  894. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", svCheats_PossibleNinjaJack[playerid], CHEAT_NINJAJACK);
  895. svCheats_PossibleNinjaJack[playerid] = INVALID_PLAYER_ID;
  896. }
  897. }
  898. return CallRemoteFunction("svCheats_OnPlayerDeat", "ddd", playerid, killerid, reason);;
  899. }
  900.  
  901. #if defined _ALS_OnPlayerDeath
  902. #undef OnPlayerDeath
  903. #else
  904. #define _ALS_OnPlayerDeath
  905. #endif
  906. #define OnPlayerDeath svCheats_OnPlayerDeath
  907.  
  908. forward svCheats_OnPlayerConnect();
  909. public OnPlayerConnect(playerid)
  910. {
  911. svCheats_SecurityLevel[playerid] = 0;
  912.  
  913. #if defined JETPACK_HACK
  914. svCheats_GrantedJetpack[playerid] = false;
  915. #endif
  916.  
  917. #if defined BUNNYHOP_OFF
  918. svCheats_JumpCounters[playerid] = 0;
  919. svCheats_JumpCounterTimer[playerid] = -1;
  920. #endif
  921.  
  922. #if defined CHATSPAM_OFF
  923. svCheats_SpamCounters[playerid] = 0;
  924. #endif
  925.  
  926. #if defined WEAPON_SPAWN
  927. for(new i = 0; i < 13; i++)
  928. {
  929. svCheats_PlayerWeapons[playerid][i] = 0;
  930. }
  931. #endif
  932.  
  933. #if defined AFK_DISABLED
  934. svCheats_AFKTime[playerid] = 0;
  935. svCheats_LastAFKUpdate[playerid] = GetTickCount();
  936. svCheats_ReportedAFK[playerid] = false;
  937. #endif
  938.  
  939. #if defined TABBED_DISABLED
  940. svCheats_TabbedUpdates[playerid] = 0;
  941. svCheats_ReportedTabbed[playerid] = false;
  942. svCheats_TabbedDisabled[playerid] = true;
  943. #endif
  944.  
  945. #if defined HH_USED
  946. svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID;
  947. #endif
  948.  
  949. #if defined NINJAJACK_CHEAT
  950. svCheats_PossibleNinjaJack[playerid] = INVALID_PLAYER_ID;
  951. #endif
  952.  
  953. svCheats_Spawned[playerid] = false;
  954. return CallRemoteFunction("svCheats_OnPlayerConnect", "d", playerid);
  955. }
  956.  
  957. #if defined _ALS_OnPlayerConnect
  958. #undef OnPlayerConnect
  959. #else
  960. #define _ALS_OnPlayerConnect
  961. #endif
  962. #define OnPlayerConnect svCheats_OnPlayerConnect
  963.  
  964. forward svCheats_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  965. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  966. {
  967. #if defined BUNNYHOP_OFF
  968. if(newkeys & KEY_JUMP)
  969. {
  970. if(svCheats_SecurityLevel[playerid] < BUNNYHOP_OFF || BUNNYHOP_OFF == -1)
  971. {
  972. new ai = GetPlayerAnimationIndex(playerid);
  973. if(ai != 1061 && ai != 1062 && ai != 1064 && ai != 1066 && ai != 1195 && ai != 1997 && ai != 1538 || ai != 1538 || ai != 1543)
  974. {
  975. svCheats_JumpCounters[playerid]++;
  976.  
  977. if(svCheats_JumpCounterTimer[playerid] > -1)
  978. {
  979. KillTimer(svCheats_JumpCounterTimer[playerid]);
  980. svCheats_JumpCounerTimer[playerid] = -1;
  981. }
  982.  
  983. if(svCheats_JumpCounters[playerid] == BUNNYHOP_AMOUNT)
  984. {
  985. svCheats_JumpCounters[playerid] = 0;
  986. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_BUNNYHOP);
  987. svCheats_AmountDetected++;
  988. }
  989. else
  990. {
  991. svCheats_JumpCounterTimer[playerid] = SetTimerEx("svCheats_JumpCountersDown", 3000, 0, "i", playerid);
  992. }
  993. }
  994. }
  995. }
  996. #endif
  997.  
  998. #if defined WEAPON_SPAWN
  999. if(newkeys & KEY_FIRE)
  1000. {
  1001. if(svCheats_SecurityLevel[playerid] < WEAPON_SPAWN || WEAPON_SPAWN == -1)
  1002. {
  1003. new w = GetPlayerWeapon(playerid);
  1004. if(w > 0 && w < 46)
  1005. {
  1006. if(svCheats_PlayerWeapons[playerid][svCheats_GetWeaponSlot(w)] != w)
  1007. {
  1008. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_WEAPON_SPAWN);
  1009. svCheats_AmountDetected++;
  1010. }
  1011. }
  1012. }
  1013. }
  1014. #endif
  1015. return CallRemoteFunction("svCheats_OnPlayerKeyStateChange", "ddd", playerid, newkeys, oldkeys);
  1016. }
  1017.  
  1018. #if defined _ALS_OnPlayerKeyStateChange
  1019. #undef OnPlayerKeyStateChange
  1020. #else
  1021. #define _ALS_OnPlayerKeyStateChange
  1022. #endif
  1023. #define OnPlayerKeyStateChange svCheats_OnPlayerKeyStateChange
  1024.  
  1025. forward svCheats_OnPlayerText(playerid, text[]);
  1026. public OnPlayerText(playerid, text[])
  1027. {
  1028. #if defined SWEARING_OFF
  1029. if(svCheats_SecurityLevel[playerid] < SWEARING_OFF || SWEARING_OFF == -1)
  1030. {
  1031. for(new c = 0; c < sizeof(CurseWords); c++)
  1032. {
  1033. if(strfind(string, CurseWords[c], true) > -1)
  1034. {
  1035. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_SWEARING);
  1036. svCheats_AmountDetected++;
  1037. return 0;
  1038. }
  1039. }
  1040. }
  1041. #endif
  1042.  
  1043. #if defined CHATSPAM_OFF
  1044. if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  1045. {
  1046. svCheats_SpamCounters[playerid]++;
  1047.  
  1048. if(svCheats_SpamCounters[playerid] == CHATSPAM_LINES)
  1049. {
  1050. svCheats_SpamCounters[playerid] = 0;
  1051. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_CHATSPAM);
  1052. svCheats_AmountDetected++;
  1053. return 0;
  1054. }
  1055. }
  1056. #endif
  1057.  
  1058. #if defined AFK_DISABLED
  1059. if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1)
  1060. {
  1061. svCheats_AFKTime[playerid] = 0;
  1062. svCheats_ReportedAFK[playerid] = false;
  1063. }
  1064. #endif
  1065. return CallRemoteFunction("svCheats_OnPlayerText", "ds", playerid, text);
  1066. }
  1067.  
  1068. #if defined _ALS_OnPlayerText
  1069. #undef OnPlayerText
  1070. #else
  1071. #define _ALS_OnPlayerText
  1072. #endif
  1073. #define OnPlayerText svCheats_OnPlayerText
  1074.  
  1075. #if defined VEHICLE_REPAIR
  1076. forward svCheats_OnVehicleSpawn(vehicleid);
  1077. public OnVehicleSpawn(vehicleid)
  1078. {
  1079. svCheats_VehicleHealth[vehicleid] = 1000.0;
  1080. return CallRemoteFunction("svCheats_OnVehicleSpawn", "d", vehicleid);
  1081. }
  1082.  
  1083. #if defined _ALS_OnVehicleSpawn
  1084. #undef OnVehicleSpawn
  1085. #else
  1086. #define _ALS_OnVehicleSpawn
  1087. #endif
  1088. #define OnVehicleSpawn svCheats_OnVehicleSpawn
  1089.  
  1090. forward svCheats_OnPlayerStateChange(playerid, newstate, oldstate);
  1091. public OnPlayerStateChange(playerid, newstate, oldstate)
  1092. {
  1093. if(newstate == PLAYER_STATE_DRIVER)
  1094. {
  1095. #if defined VEHICLE_REPAIR
  1096. new vehicleid = GetPlayerVehicleID(playerid);
  1097. GetVehicleHealth(vehicleid, svCheats_VehicleHealth[vehicleid]);
  1098. #endif
  1099.  
  1100. #if defined NINJAJACK_OFF
  1101. #if defined USE_FOREACH
  1102. foreach(new i: Player)
  1103. {
  1104. if(svCheats_PossibleNinjaJack[i] == playerid)
  1105. {
  1106. svCheats_PossibleNinjaJack[i] = INVALID_PLAYER_ID;
  1107. break;
  1108. }
  1109. }
  1110. #else
  1111. for(new i = 0; i < MAX_PLAYERS; i++)
  1112. {
  1113. if(IsPlayerConnected(i))
  1114. {
  1115. if(svCheats_PossibleNinjaJack[i] == playerid)
  1116. {
  1117. svCheats_PossibleNinjaJack[i] = INVALID_PLAYER_ID;
  1118. break;
  1119. }
  1120. }
  1121. }
  1122. #endif
  1123. #endif
  1124. }
  1125. return CallRemoteFunction("svCheats_OnPlayerStateChange", "ddd", playerid, newstate, oldstate);
  1126. }
  1127.  
  1128. #if defined _ALS_OnPlayerStateChange
  1129. #undef OnPlayerStateChange
  1130. #else
  1131. #define _ALS_OnPlayerStateChange
  1132. #endif
  1133. #define OnPlayerStateChange svCheats_OnPlayerStateChange
  1134. #endif
  1135.  
  1136. #if defined CHEAT_TABBED
  1137. forward svCheats_OnPlayerUpdate(playerid);
  1138. public OnPlayerUpdate(playerid)
  1139. {
  1140. svCheats_TabbedUpdates[playerid] = 0;
  1141. svCheats_ReportedTabbed[playerid] = false;
  1142. return CallRemoteFunction("svCheats_OnPlayerUpdate", "d", playerid);
  1143. }
  1144.  
  1145. #if defined _ALS_OnPlayerUpdate
  1146. #undef OnPlayerUpdate
  1147. #else
  1148. #define _ALS_OnPlayerUpdate
  1149. #endif
  1150. #define OnPlayerUpdate svCheats_OnPlayerUpdate
  1151.  
  1152. forward svCheats_OnPlayerSpawn(playerid);
  1153. public OnPlayerSpawn(playerid)
  1154. {
  1155. svCheats_TabbedDisabled[playerid] = false;
  1156. svCheats_Spawned[playerid] = true;
  1157.  
  1158. #if defined HEALTH_HACK
  1159. svCheats_PlayerHealth[playerid] = 1000;
  1160. svCheats_PlayerArmor[playerid] = 0;
  1161. svCheats_HealthHackDisabled[playerid] = false;
  1162. #endif
  1163. return CallRemoteFunction("svCheats_OnPlayerSpawn", "d", playerid);;
  1164. }
  1165.  
  1166. #if defined _ALS_OnPlayerSpawn
  1167. #undef OnPlayerSpawn
  1168. #else
  1169. #define _ALS_OnPlayerSpawn
  1170. #endif
  1171. #define OnPlayerSpawn svCheats_OnPlayerSpawn
  1172.  
  1173. forward svCheats_OnPlayerEnterVehicle(playerid, vehicleid, ispassenger);
  1174. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  1175. {
  1176. #if defined DRVBY_RESTRICT
  1177. if(svCheats_SecurityLevel[playerid] < DRVBY_RESTRICT || DRVBY_RESTRICT == -1)
  1178. {
  1179. if(ispassenger)
  1180. {
  1181. new w = GetPlayerWeapon(playerid);
  1182. if(w > 0)
  1183. {
  1184. new allowedWeapons[10], bool: allowed;
  1185. sscanf(DRIVEBY_WEAPONS, "a<i>[10]", allowedWeapons);
  1186.  
  1187. for(new i = 0; i < sizeof(allowedWeapons); i++)
  1188. {
  1189. if(w == allowedWeapons[i])
  1190. {
  1191. allowed = true;
  1192. break;
  1193. }
  1194. }
  1195.  
  1196. if(allowed == false)
  1197. {
  1198. SetPlayerArmedWeapon(playerid, 0);
  1199. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_DRIVEBY);
  1200. svCheats_AmountDetected++;
  1201. }
  1202. }
  1203. }
  1204. }
  1205. #endif
  1206.  
  1207. #if defined DDRIVEBY_OFF
  1208. if(svCheats_SecurityLevel[playerid] < DDRIVEBY_OFF || DDRIVEBY_OFF == -1)
  1209. {
  1210. if(!ispassenger)
  1211. {
  1212. new w = GetPlayerWeapon(playerid);
  1213. if(w > 0)
  1214. {
  1215. SetPlayerArmedWeapon(playerid, 0);
  1216. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_DDRIVEBY);
  1217. svCheats_AmountDetected++;
  1218. }
  1219. }
  1220. }
  1221. #endif
  1222.  
  1223. #if defined NINJAJACK_CHEAT
  1224. if(svCheats_SecurityLevel[playerid] < NINJAJACK_CHEAT || NINJAJACK_CHEAT == -1)
  1225. {
  1226. if(!ispassenger)
  1227. {
  1228. #if defined USE_FOREACH
  1229. foreach(new i: Player)
  1230. {
  1231. if(GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER)
  1232. {
  1233. svCheats_PossibleNinjaJack[i] = playerid;
  1234. break;
  1235. }
  1236. }
  1237. #else
  1238. for(new i = 0; i < MAX_PLAYERS; i++)
  1239. {
  1240. if(IsPlayerConnected(i))
  1241. {
  1242. if(GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER)
  1243. {
  1244. svCheats_PossibleNinjaJack[i] = playerid;
  1245. break;
  1246. }
  1247. }
  1248. }
  1249. #endif
  1250. }
  1251. }
  1252. #endif
  1253.  
  1254. return CallRemoteFunction("svCheats_OnPlayerEnterVehicle", "ddd", playerid, vehicleid, ispassenger);
  1255. }
  1256.  
  1257. #if defined _ALS_OnPlayerEnterVehicle
  1258. #undef OnPlayerEnterVehicle
  1259. #else
  1260. #define _ALS_OnPlayerEnterVehicle
  1261. #endif
  1262. #define OnPlayerEnterVehicle svCheats_OnPlayerEnterVehicle
  1263.  
  1264. #if defined USE_ZCMD
  1265. #if defined HH_USED
  1266. COMMAND:hh(playerid, params[])
  1267. {
  1268. if(svCheats_SecurityLevel[playerid] < HH_USED)
  1269. {
  1270. return SendClientMessage(playerid, -1, "You are not authorized to use this command.");
  1271. }
  1272.  
  1273. new svCheats_giveplayerid;
  1274. if(sscanf(params, "u", svCheats_giveplayerid))
  1275. {
  1276. return SendClientMessage(playerid, -1, "USAGE: /hh [player]");
  1277. }
  1278.  
  1279. if(svCheats_ReportedTabbed[svCheats_giveplayerid] == true)
  1280. {
  1281. return SendClientMessage(playerid, -1, "You may not health hack check tabbed players.");
  1282. }
  1283.  
  1284. if(svCheats_HH[svCheats_giveplayerid][svCheckedBy] != INVALID_PLAYER_ID)
  1285. {
  1286. return SendClientMessage(playerid, -1, "That player is already being checked for health hacks.");
  1287. }
  1288.  
  1289. new string[128], playersName[MAX_PLAYER_NAME], Float: playersPos[3];
  1290.  
  1291. GetPlayerName(svCheats_giveplayerid, playersName, sizeof(playersName));
  1292. format(string, sizeof(string), "Checking %s for health hacks...", playersName);
  1293. SendClientMessage(playerid, -1, string);
  1294.  
  1295. GetPlayerPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  1296. SetPlayerCameraLookAt(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  1297. SetPlayerCameraPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2] + 5);
  1298.  
  1299. for(new i = 0; i < 3; i++)
  1300. {
  1301. svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][i] = playersPos[i];
  1302. }
  1303.  
  1304. GetPlayerFacingAngle(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][3]);
  1305.  
  1306. svCheats_HH[svCheats_giveplayerid][svInterior] = GetPlayerInterior(svCheats_giveplayerid);
  1307. svCheats_HH[svCheats_giveplayerid][svVirtualWorld] = GetPlayerVirtualWorld(svCheats_giveplayerid);
  1308.  
  1309. if(IsPlayerInAnyVehicle(svCheats_giveplayerid))
  1310. {
  1311. svCheats_HH[svCheats_giveplayerid][svInVehicle] = true;
  1312. svCheats_HH[svCheats_giveplayerid][svVehicleID] = GetPlayerVehicleID(svCheats_giveplayerid);
  1313. svCheats_HH[svCheats_giveplayerid][svVehicleSeat] = GetPlayerVehicleSeat(svCheats_giveplayerid);
  1314. }
  1315. else
  1316. {
  1317. svCheats_HH[svCheats_giveplayerid][svInVehicle] = false;
  1318. }
  1319.  
  1320. GetPlayerHealth(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svHealth]);
  1321. GetPlayerArmour(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svArmor]);
  1322.  
  1323. svCheats_HH[svCheats_giveplayerid][svCheckedBy] = playerid;
  1324.  
  1325. SetPlayerInterior(svCheats_giveplayerid, 0);
  1326. SetPlayerPos(svCheats_giveplayerid, 0.0, 0.0, 8.0);
  1327. SetPlayerHealth(svCheats_giveplayerid, 100.0);
  1328. SetPlayerArmour(svCheats_giveplayerid, 0.0);
  1329.  
  1330. SetTimerEx("svCheats_HealthHackCheck", 1350 + GetPlayerPing(svCheats_giveplayerid), 0, "i", svCheats_giveplayerid);
  1331. return 1;
  1332. }
  1333. #endif
  1334.  
  1335. #if defined ACSTATS_USED
  1336. COMMAND:acstats(playerid, params[])
  1337. {
  1338. new string[50];
  1339. format(string, sizeof(string), "(svCheats) Cheaters Detected: %d", svCheats_AmountDetected);
  1340. SendClientMessage(playerid, -1, string);
  1341. return 1;
  1342. }
  1343. #endif
  1344. #else
  1345. forward svCheats_OnPlayerCommandText(playerid, cmdtext[]);
  1346. public OnPlayerCommandText(playerid, cmdtext[])
  1347. {
  1348. #if defined HH_USED
  1349. new svCheats_cmd[5];
  1350. sscanf(cmdtext, "s[5]", svCheats_cmd);
  1351. if(strcmp(svCheats_cmd, "/hh", true) == 0)
  1352. {
  1353. if(svCheats_SecurityLevel[playerid] < HH_USED)
  1354. {
  1355. return SendClientMessage(playerid, -1, "You are not authorized to use this command.");
  1356. }
  1357.  
  1358. new svCheats_giveplayerid;
  1359. if(sscanf(cmdtext, "{s[5]}u", svCheats_giveplayeid))
  1360. {
  1361. return SendClientMessage(playerid, -1, "USAGE: /hh [player]");
  1362. }
  1363.  
  1364. if(svCheats_ReportedTabbed[svCheats_giveplayerid] == true)
  1365. {
  1366. return SendClientMessage(playerid, -1, "You may not health hack check tabbed players.");
  1367. }
  1368.  
  1369. if(svCheats_HH[svCheats_giveplayerid][svCheckedBy] != INVALID_PLAYER_ID)
  1370. {
  1371. return SendClientMessage(playerid, -1, "That player is already being checked for health hacks.");
  1372. }
  1373.  
  1374. new string[128], playersName[MAX_PLAYER_NAME], Float: playersPos[3];
  1375.  
  1376. GetPlayerName(svCheats_giveplayerid, playersName, sizeof(playersName));
  1377. format(string, sizeof(string), "Checking %s for health hacks...", playersName);
  1378. SendClientMessage(playerid, -1, string);
  1379.  
  1380. GetPlayerPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  1381. SetPlayerCameraLookAt(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  1382. SetPlayerCameraPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2] + 5);
  1383.  
  1384. for(new i = 0; i < 3; i++)
  1385. {
  1386. svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][i] = playersPos[i];
  1387. }
  1388.  
  1389. GetPlayerFacingAngle(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][3]);
  1390.  
  1391. svCheats_HH[svCheats_giveplayerid][svInterior] = GetPlayerInterior(svCheats_giveplayerid);
  1392. svCheats_HH[svCheats_giveplayerid][svVirtualWorld] = GetPlayerVirtualWorld(svCheats_giveplayerid);
  1393.  
  1394. if(IsPlayerInAnyVehicle(svCheats_giveplayerid))
  1395. {
  1396. svCheats_HH[svCheats_giveplayerid][svInVehicle] = true;
  1397. svCheats_HH[svCheats_giveplayerid][svVehicleID] = GetPlayerVehicleID(svCheats_giveplayerid);
  1398. svCheats_HH[svCheats_giveplayerid][svVehicleSeat] = GetPlayerVehicleSeat(svCheats_giveplayerid);
  1399. }
  1400. else
  1401. {
  1402. svCheats_HH[svCheats_giveplayerid][svInVehicle] = false;
  1403. }
  1404.  
  1405. GetPlayerHealth(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svHealth]);
  1406. GetPlayerArmour(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svArmor]);
  1407.  
  1408. svCheats_HH[svCheats_giveplayerid][svCheckedBy] = playerid;
  1409.  
  1410. SetPlayerInterior(svCheats_giveplayerid, 0);
  1411. SetPlayerPos(svCheats_giveplayerid, 0.0, 0.0, 8.0);
  1412. SetPlayerHealth(svCheats_giveplayerid, 100.0);
  1413. SetPlayerArmour(svCheats_giveplayerid, 0.0);
  1414.  
  1415. SetTimerEx("svCheats_HealthHackCheck", 1350 + GetPlayerPing(svCheats_giveplayerid), 0, "i", svCheats_giveplayerid);
  1416. return 1;
  1417. }
  1418. #endif
  1419.  
  1420. #if defined ACSTATS_USED
  1421. if(strcmp(cmdtext, "/acstats", true) == 0)
  1422. {
  1423. new string[50];
  1424. format(string, sizeof(string), "(svCheats) Cheaters Detected: %d", svCheats_AmountDetected);
  1425. SendClientMessage(playerid, -1, string);
  1426. return 1;
  1427. }
  1428. #endif
  1429. return CallRemoteFunction("svCheats_OnPlayerCommandText", "ds", playerid, cmdtext);
  1430. }
  1431.  
  1432. #if defined _ALS_OnPlayerCommandText
  1433. #undef OnPlayerCommandText
  1434. #else
  1435. #define _ALS_OnPlayerCommandText
  1436. #endif
  1437. #define OnPlayerCommandText svCheats_OnPlayerCommandText
  1438. #endif
  1439.  
  1440. forward svCheats_OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid);
  1441. public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
  1442. {
  1443. if(issuerid == INVALID_PLAYER_ID)
  1444. {
  1445. if(svCheats_HH[playerid][svCheckedBy] != INVALID_PLAYER_ID)
  1446. {
  1447. new string[128], playersName[MAX_PLAYER_NAME], playerid = svCheats_HH[playerid][svCheckedBy];
  1448.  
  1449. GetPlayerName(playerid, playersName, sizeof(playersName));
  1450. format(string, sizeof(string), "The health hack check on %s has been finished and the result is {F81414}negative{FFFFFF}.", playersName);
  1451. SendClientMessage(giveplayerid, -1, string);
  1452.  
  1453. svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID;
  1454.  
  1455. SetPlayerVirtualWorld(playerid, svCheats_HH[playerid][svVirtualWorld]);
  1456. SetPlayerInterior(playerid, svCheats_HH[playerid][svInterior]);
  1457. SetPlayerPos(playerid, svCheats_HH[playerid][svOldPlayerPos][0], svCheats_HH[playerid][svOldPlayerPos][1], svCheats_HH[playerid][svOldPlayerPos][2]);
  1458. SetPlayerFacingAngle(playerid, svCheats_HH[playerid][svOldPlayerPos][3]);
  1459.  
  1460. if(svCheats_HH[playerid][svInVehicle] == true)
  1461. {
  1462. PutPlayerInVehicle(playerid, svCheats_HH[playerid][svVehicleID], svCheats_HH[playerid][svVehicleSeat]);
  1463. }
  1464.  
  1465. SetPlayerHealth(playerid, svCheats_HH[playerid][svHealth]);
  1466. SetPlayerArmour(playerid, svCheats_HH[playerid][svArmor]);
  1467.  
  1468. SetCameraBehindPlayer(playerid);
  1469. }
  1470. }
  1471. else
  1472. {
  1473. #if defined CARRAM_OFF
  1474. if(svCheats_SecurityLevel[playerid] < CARRAM_OFF || CARRAM_OFF == -1)
  1475. {
  1476. if(weaponid == 49)
  1477. {
  1478. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_CARRAM);
  1479. }
  1480. }
  1481. #endif
  1482.  
  1483. #if defined HELIBLADE_OFF
  1484. if(svCheats_SecurityLevel[playerid] < HELIBLADE_OFF || HELIBLADE_OFF == -1)
  1485. {
  1486. if(weaponid == 50)
  1487. {
  1488. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_HELIBLADE);
  1489. }
  1490. }
  1491. #endif
  1492. }
  1493.  
  1494. #if defined HEALTH_HACK
  1495. if(!svCheats_PlayerArmor[playerid] || issuerid == INVALID_PLAYER_ID)
  1496. {
  1497. svCheats_PlayerHealth[playerid] -= amount;
  1498. }
  1499. else
  1500. {
  1501. if(svCheats_PlayerArmor[playerid] - amount >= 0)
  1502. {
  1503. svCheats_PlayerArmor[playerid] -= amount;
  1504. }
  1505. else
  1506. {
  1507. svCheats_PlayerHealth[playerid] -= (amount - svCheats_PlayerArmor[playerid]);
  1508. svCheats_PlayerArmor[playerid] = 0;
  1509. }
  1510. }
  1511. #endif
  1512. return CallRemoteFunction("svCheats_OnPlayerTakeDamage", "ddfd", playerid, issuerid, amount, weaponid);
  1513. }
  1514.  
  1515. #if defined _ALS_OnPlayerTakeDamage
  1516. #undef OnPlayerTakeDamage
  1517. #else
  1518. #define _ALS_OnPlayerTakeDamage
  1519. #endif
  1520. #define OnPlayerTakeDamage svCheats_OnPlayerTakeDamage
  1521.  
  1522. #if defined TELEPORT_HACK
  1523. forward svCheats_OnPlayerClickMap(playerid, Float: fX, Float: fY, Float: fZ);
  1524. public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
  1525. {
  1526. if(svCheats_SecurityLevel[playerid] < TELEPORT_HACK || TELEPORT_HACK == -1)
  1527. {
  1528. if(!IsPlayerInRangeOfPoint(playerid, 10.0, svCheats_oldPos[playerid][0], svCheats_oldPos[playerid][1], svCheats_oldPos[playerid][2]))
  1529. {
  1530. if(IsPlayerInRangeOfPoint(playerid, 10.0, fX, fY, fZ))
  1531. {
  1532. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_TELEPORT_HACK);
  1533. }
  1534. }
  1535. }
  1536. return CallRemoteFunction("svCheats_OnPlayerClickMap", "dfff", playerid, fX, fY, fZ);
  1537. }
  1538.  
  1539. #if defined _ALS_OnPlayerClickMap
  1540. #undef OnPlayerClickMap
  1541. #else
  1542. #define _ALS_OnPlayerClickMap
  1543. #endif
  1544. #define OnPlayerClickMap svCheats_OnPlayerClickMap
  1545. #endif
  1546.  
  1547. #if defined VEHMOD_HACK
  1548. forward svCheats_OnVehicleMod(playerid, vehicleid, componentid);
  1549. public OnVehicleMod(playerid, vehicleid, componentid)
  1550. {
  1551. if(svCheats_SecurityLevel[playerid] < VEHMOD_HACK || VEHMOD_HACK == -1)
  1552. {
  1553. if(!GetPlayerInterior(playerid))
  1554. {
  1555. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_VEHMOD);
  1556. }
  1557. }
  1558. return CallRemoteFunction("svCheats_OnVehicleMod", "ddd", playerid, vehicleid, componentid);
  1559. }
  1560.  
  1561. #if defined _ALS_OnVehicleMod
  1562. #undef OnVehicleMod
  1563. #else
  1564. #define _ALS_OnVehicleMod
  1565. #endif
  1566. #define OnVehicleMod svCheats_OnVehicleMod
  1567. #endif
  1568. #endif
  1569. #endif
  1570.  
  1571. forward svCheats_HealthHackCheck(giveplayerid);
  1572. public svCheats_HealthHackCheck(giveplayerid)
  1573. {
  1574. if(svCheats_HH[giveplayerid][svCheckedBy] != INVALID_PLAYER_ID)
  1575. {
  1576. new string[128], playersName[MAX_PLAYER_NAME], playerid = svCheats_HH[giveplayerid][svCheckedBy];
  1577.  
  1578. GetPlayerName(giveplayerid, playersName, sizeof(playersName));
  1579. format(string, sizeof(string), "The health hack check on %s has been finished and the result is {6EF83C}positive{FFFFFF}.", playersName);
  1580. SendClientMessage(playerid, -1, string);
  1581.  
  1582. svCheats_HH[giveplayerid][svCheckedBy] = INVALID_PLAYER_ID;
  1583.  
  1584. SetPlayerVirtualWorld(giveplayerid, svCheats_HH[giveplayerid][svVirtualWorld]);
  1585. SetPlayerInterior(giveplayerid, svCheats_HH[giveplayerid][svInterior]);
  1586. SetPlayerPos(giveplayerid, svCheats_HH[giveplayerid][svOldPlayerPos][0], svCheats_HH[giveplayerid][svOldPlayerPos][1], svCheats_HH[giveplayerid][svOldPlayerPos][2]);
  1587. SetPlayerFacingAngle(giveplayerid, svCheats_HH[giveplayerid][svOldPlayerPos][3]);
  1588.  
  1589. if(svCheats_HH[giveplayerid][svInVehicle] == true)
  1590. {
  1591. PutPlayerInVehicle(giveplayerid, svCheats_HH[giveplayerid][svVehicleID], svCheats_HH[giveplayerid][svVehicleSeat]);
  1592. }
  1593.  
  1594. SetPlayerHealth(giveplayerid, svCheats_HH[giveplayerid][svHealth]);
  1595. SetPlayerArmour(giveplayerid, svCheats_HH[giveplayerid][svArmor]);
  1596.  
  1597. SetCameraBehindPlayer(giveplayerid);
  1598.  
  1599. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", giveplayerid, CHEAT_GODMODE);
  1600. svCheats_AmountDetected++;
  1601. }
  1602. return 1;
  1603. }
  1604.  
  1605. forward svCheats_JumpCountersDown(playerid);
  1606. public svCheats_JumpCountersDown(playerid)
  1607. {
  1608. svCheats_JumpCounters[playerid]--;
  1609. svCheats_JumpCounterTimer[playerid] = -1;
  1610. return 1;
  1611. }
  1612.  
  1613. svCheats_GetWeaponSlot(weaponid)
  1614. {
  1615. switch(weaponid)
  1616. {
  1617. case 0, 1:
  1618. {
  1619. return 0;
  1620. }
  1621. case 2, 3, 4, 5, 6, 7, 8, 9:
  1622. {
  1623. return 1;
  1624. }
  1625. case 22, 23, 24:
  1626. {
  1627. return 2;
  1628. }
  1629. case 25, 26, 27:
  1630. {
  1631. return 3;
  1632. }
  1633. case 28, 29, 32:
  1634. {
  1635. return 4;
  1636. }
  1637. case 30, 31:
  1638. {
  1639. return 5;
  1640. }
  1641. case 33, 34:
  1642. {
  1643. return 6;
  1644. }
  1645. case 35, 36, 37, 38:
  1646. {
  1647. return 7;
  1648. }
  1649. case 16, 17, 18, 39, 40:
  1650. {
  1651. return 8;
  1652. }
  1653. case 41, 42, 43:
  1654. {
  1655. return 9;
  1656. }
  1657. case 10, 11, 12, 13, 14, 15:
  1658. {
  1659. return 10;
  1660. }
  1661. case 44, 45, 46:
  1662. {
  1663. return 11;
  1664. }
  1665. }
  1666. return 0;
  1667. }
  1668.  
  1669. svCheats_IsPlayerAtRepairPoint(playerid)
  1670. {
  1671. if(GetPlayerCameraMode(playerid) == 15) return 1;
  1672. if(IsPlayerInRangeOfPoint(playerid, 25.0, 2067.00, -1831.65, 13.55)) return 1;
  1673. if(IsPlayerInRangeOfPoint(playerid, 25.0, 1024.97, -1023.88, 32.10)) return 1;
  1674. if(IsPlayerInRangeOfPoint(playerid, 25.0, 1041.19, -1022.50, 32.11)) return 1;
  1675. if(IsPlayerInRangeOfPoint(playerid, 25.0, 720.25, -457.17, 16.34)) return 1;
  1676. if(IsPlayerInRangeOfPoint(playerid, 25.0, 2386.66, 1045.68, 10.82)) return 1;
  1677. if(IsPlayerInRangeOfPoint(playerid, 25.0, 1972.50, 2163.03, 11.07)) return 1;
  1678. if(IsPlayerInRangeOfPoint(playerid, 25.0, -1420.58, 2586.17, 55.84)) return 1;
  1679. if(IsPlayerInRangeOfPoint(playerid, 25.0, -1904.90, 283.96, 41.05)) return 1;
  1680. if(IsPlayerInRangeOfPoint(playerid, 25.0, -2719.46, 217.77, 4.48)) return 1;
  1681. return 0;
  1682. }
  1683.  
  1684. svCheats_IsPlayerAtHealingPoint(playerid)
  1685. {
  1686. if(IsPlayerInRangeOfPoint(playerid, 50.0, 286.148, -40.644, 1001.569)) return 1;
  1687. if(IsPlayerInRangeOfPoint(playerid, 50.0, 286.148, -82.547, 1001.569)) return 1;
  1688. if(IsPlayerInRangeOfPoint(playerid, 50.0, 296.148, -108.644, 1001.569)) return 1;
  1689. if(IsPlayerInRangeOfPoint(playerid, 50.0, 316.524, -167.706, 999.661)) return 1;
  1690. if(IsPlayerInRangeOfPoint(playerid, 4.0, -2420.219, 984.578, 44.297)) return 1;
  1691. if(IsPlayerInRangeOfPoint(playerid, 4.0, -2420.180, 985.945, 44.297)) return 1;
  1692. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2225.203, -1153.422, 1025.906)) return 1;
  1693. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2576.703, -1284.430, 1061.094)) return 1;
  1694. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2155.906, 1606.773, 1000.055)) return 1;
  1695. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2209.906, 1607.195, 1000.055)) return 1;
  1696. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2222.203, 1606.773, 1000.055)) return 1;
  1697. if(IsPlayerInRangeOfPoint(playerid, 4.0, 495.969, -24.320, 1000.734)) return 1;
  1698. if(IsPlayerInRangeOfPoint(playerid, 4.0, 501.828, -1.430, 1000.734)) return 1;
  1699. if(IsPlayerInRangeOfPoint(playerid, 4.0, 373.828, -178.141, 1000.734)) return 1;
  1700. if(IsPlayerInRangeOfPoint(playerid, 4.0, 330.680, 178.500, 1020.070)) return 1;
  1701. if(IsPlayerInRangeOfPoint(playerid, 4.0, 331.922, 178.500, 1020.070)) return 1;
  1702. if(IsPlayerInRangeOfPoint(playerid, 4.0, 350.906, 206.086, 1008.477)) return 1;
  1703. if(IsPlayerInRangeOfPoint(playerid, 4.0, 361.563, 158.617, 1008.477)) return 1;
  1704. if(IsPlayerInRangeOfPoint(playerid, 4.0, 371.594, 178.453, 1020.070)) return 1;
  1705. if(IsPlayerInRangeOfPoint(playerid, 4.0, 374.891, 188.977, 1008.477)) return 1;
  1706. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2155.844, 1607.875, 1000.063)) return 1;
  1707. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2202.453, 1617.008, 1000.063)) return 1;
  1708. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2209.242, 1621.211, 1000.063)) return 1;
  1709. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2222.367, 1602.641, 1000.063)) return 1;
  1710. if(IsPlayerInRangeOfPoint(playerid, 4.0, 500.563, -1.367, 1000.734)) return 1;
  1711. if(IsPlayerInRangeOfPoint(playerid, 4.0, 379.039, -178.883, 1000.734)) return 1;
  1712. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2480.86,-1959.27,12.9609)) return 1;
  1713. if(IsPlayerInRangeOfPoint(playerid, 4.0, 1634.11,-2237.53,12.8906)) return 1;
  1714. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2139.52,-1161.48,23.3594)) return 1;
  1715. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2153.23,-1016.15,62.2344)) return 1;
  1716. if(IsPlayerInRangeOfPoint(playerid, 4.0, -1350.12,493.859,10.5859)) return 1;
  1717. if(IsPlayerInRangeOfPoint(playerid, 4.0, -2229.19,286.414,34.7031)) return 1;
  1718. if(IsPlayerInRangeOfPoint(playerid, 4.0, 1659.46,1722.86,10.2188)) return 1;
  1719. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2647.7,1129.66,10.2188)) return 1;
  1720. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2845.73,1295.05,10.7891)) return 1;
  1721. if(IsPlayerInRangeOfPoint(playerid, 4.0, 1398.84,2222.61,10.4219)) return 1;
  1722. if(IsPlayerInRangeOfPoint(playerid, 4.0, -1455.12,2591.66,55.2344)) return 1;
  1723. if(IsPlayerInRangeOfPoint(playerid, 4.0, -76.0312,1227.99,19.125)) return 1;
  1724. if(IsPlayerInRangeOfPoint(playerid, 4.0, 662.43,-552.164,15.7109)) return 1;
  1725. if(IsPlayerInRangeOfPoint(playerid, 4.0, -253.742,2599.76,62.2422)) return 1;
  1726. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2271.73,-76.4609,25.9609)) return 1;
  1727. if(IsPlayerInRangeOfPoint(playerid, 4.0, 1789.21,-1369.27,15.1641)) return 1;
  1728. if(IsPlayerInRangeOfPoint(playerid, 4.0, 1729.79,-1943.05,12.9453)) return 1;
  1729. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2060.12,-1897.64,12.9297)) return 1;
  1730. if(IsPlayerInRangeOfPoint(playerid, 4.0, 1928.73,-1772.45,12.9453)) return 1;
  1731. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2325.98,-1645.13,14.2109)) return 1;
  1732. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2352.18,-1357.16,23.7734)) return 1;
  1733. if(IsPlayerInRangeOfPoint(playerid, 4.0, 1154.73,-1460.89,15.1562)) return 1;
  1734. if(IsPlayerInRangeOfPoint(playerid, 4.0, -1350.12,492.289,10.5859)) return 1;
  1735. if(IsPlayerInRangeOfPoint(playerid, 4.0, -2118.97,-423.648,34.7266)) return 1;
  1736. if(IsPlayerInRangeOfPoint(playerid, 4.0, -2118.62,-422.414,34.7266)) return 1;
  1737. if(IsPlayerInRangeOfPoint(playerid, 4.0, -2097.27,-398.336,34.7266)) return 1;
  1738. if(IsPlayerInRangeOfPoint(playerid, 4.0, -2092.09,-490.055,34.7266)) return 1;
  1739. if(IsPlayerInRangeOfPoint(playerid, 4.0, -2063.27,-490.055,34.7266)) return 1;
  1740. if(IsPlayerInRangeOfPoint(playerid, 4.0, -2005.65,-490.055,34.7266)) return 1;
  1741. if(IsPlayerInRangeOfPoint(playerid, 4.0, -2034.46,-490.055,34.7266)) return 1;
  1742. if(IsPlayerInRangeOfPoint(playerid, 4.0, -2068.56,-398.336,34.7266)) return 1;
  1743. if(IsPlayerInRangeOfPoint(playerid, 4.0, -2039.85,-398.336,34.7266)) return 1;
  1744. if(IsPlayerInRangeOfPoint(playerid, 4.0, -2011.14,-398.336,34.7266)) return 1;
  1745. if(IsPlayerInRangeOfPoint(playerid, 4.0, -1980.79,142.664,27.0703)) return 1;
  1746. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2319.99,2532.85,10.2188)) return 1;
  1747. if(IsPlayerInRangeOfPoint(playerid, 4.0, 1520.15,1055.27,10.00)) return 1;
  1748. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2503.14,1243.7,10.2188)) return 1;
  1749. if(IsPlayerInRangeOfPoint(playerid, 4.0, 2085.77,2071.36,10.4531)) return 1;
  1750. if(IsPlayerInRangeOfPoint(playerid, 4.0, -862.828,1536.61,21.9844)) return 1;
  1751. if(IsPlayerInRangeOfPoint(playerid, 4.0, -14.7031,1175.36,18.9531)) return 1;
  1752. if(IsPlayerInRangeOfPoint(playerid, 4.0, -253.742,2597.95,62.2422)) return 1;
  1753. if(IsPlayerInRangeOfPoint(playerid, 4.0, 201.016,-107.617,0.898438)) return 1;
  1754. if(IsPlayerInRangeOfPoint(playerid, 4.0, 1277.84,372.516,18.9531)) return 1;
  1755. return 0;
  1756. }
  1757.  
  1758. svCheats_GetVehicleSpeed(vehicleid)
  1759. {
  1760. new Float: vVel[3];
  1761. GetVehicleVelocity(vehicleid, vVel[0], vVel[1], vVel[2]);
  1762. return floatround(floatsqroot((vVel[0]*vVel[1]+vVel[2]*vVel[2]))*100.0*1.6);
  1763. }
  1764.  
  1765. public svCheats_Detector()
  1766. {
  1767. #if defined USE_FOREACH
  1768. foreach(new playerid: Player)
  1769. {
  1770. #if defined HIGH_PING
  1771. if(svCheats_SecurityLevel[playerid] < HIGH_PING || HIGH_PING == -1)
  1772. {
  1773. if(GetPlayerPing(playerid) > MAX_PING)
  1774. {
  1775. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_HIGH_PING);
  1776. svCheats_AmountDetected++;
  1777. }
  1778. }
  1779. #endif
  1780.  
  1781. #if defined SPEED_HACK
  1782. if(svCheats_SecurityLevel[playerid] < SPEED_HACK || SPEED_HACK == -1)
  1783. {
  1784. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1785. {
  1786. new vehicleid = GetPlayerVehicleID(playerid);
  1787. if(svCheats_GetVehicleSpeed(vehicleid) > MAX_SPEED)
  1788. {
  1789. if(GetVehicleModel(vehicleid) != 520)
  1790. {
  1791. new Float: vehicleVelocity[3];
  1792. GetVehicleVelocity(vehicleid, vehicleVelocity[0], vehicleVelocity[1], vehicleVelocity[2]);
  1793. if(vehicleVelocity[2] > -0.5)
  1794. {
  1795. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_SPEED_HACK);
  1796. svCheats_AmountDetected++;
  1797. }
  1798. }
  1799. }
  1800. }
  1801. }
  1802. #endif
  1803.  
  1804. #if defined JETPACK_HACK
  1805. if(svCheats_SecurityLevel[playerid] < JETPACK_HACK || JETPACK_HACK == -1)
  1806. {
  1807. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK)
  1808. {
  1809. if(svCheats_GrantedJetpack[playerid] == false)
  1810. {
  1811. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_JETPACK_HACK);
  1812. svCheats_AmountDetected++;
  1813. }
  1814. }
  1815. }
  1816. #endif
  1817.  
  1818. #if defined AIRBREAK_HACK
  1819. if(svCheats_SecurityLevel[playerid] < AIRBREAK_HACK || AIRBREAK_HACK == -1)
  1820. {
  1821. new ai = GetPlayerAnimationIndex(playerid);
  1822. if(ai == 1231 || ai == 1266)
  1823. {
  1824. new Float: playersPos[3];
  1825. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  1826. if(playersPos[2] >= 4.0)
  1827. {
  1828. if(!IsPlayerInRangeOfPoint(playerid, 200.0, 602.74, 871.44, -20.65) && !IsPlayerInRangeOfPoint(playerid, 300.0, 1678.38, -2291.18, -1.00))
  1829. {
  1830. if(GetPointZPos(playersPos[0], playersPos[1]) < playersPos[2] - 15.0)
  1831. {
  1832. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_AIRBREAK_HACK);
  1833. svCheats_AmountDetected++;
  1834. }
  1835. }
  1836. }
  1837. }
  1838. }
  1839. #endif
  1840.  
  1841. #if defined FLY_HACK
  1842. if(svCheats_SecurityLevel[playerid] < FLY_HACK || FLY_HACK == -1)
  1843. {
  1844. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  1845. {
  1846. new ai = GetPlayerAnimationIndex(playerid);
  1847. if(ai == 1538 || ai == 1538 || ai == 1543)
  1848. {
  1849. if(!GetPlayerInterior(playerid))
  1850. {
  1851. new Float: playersPos[3];
  1852. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  1853. if(playersPos[2] >= 4.0)
  1854. {
  1855. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_FLY_HACK);
  1856. svCheats_AmountDetected++;
  1857. }
  1858. }
  1859. }
  1860. }
  1861. }
  1862. #endif
  1863.  
  1864. #if defined TELEPORT_HACK
  1865. if(svCheats_SecurityLevel[playerid] < TELEPORT_HACK || TELEPORT_HACK == -1)
  1866. {
  1867. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  1868. {
  1869. new interior = GetPlayerInterior(playerid);
  1870. if(interior > 0)
  1871. {
  1872. new allowedInteriors[10], bool: allowed;
  1873. sscanf(USED_INTERIORS, "a<i>[10]", allowedInteriors);
  1874.  
  1875. for(new i = 0; i < sizeof(allowedInteriors); i++)
  1876. {
  1877. if(allowedInteriors[i] == interior)
  1878. {
  1879. allowed = true;
  1880. break;
  1881. }
  1882. }
  1883.  
  1884. if(allowed == false)
  1885. {
  1886. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_TELEPORT_HACK);
  1887. svCheats_AmountDetected++;
  1888. }
  1889. }
  1890. }
  1891. }
  1892. #endif
  1893.  
  1894. #if defined VEHICLE_REPAIR
  1895. if(svCheats_SecurityLevel[playerid] < VEHICLE_REPAIR || VEHICLE_REPAIR == -1)
  1896. {
  1897. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1898. {
  1899. new vehicleid = GetPlayerVehicleID(playerid), Float: vHealth;
  1900. GetVehicleHealth(vehicleid, vHealth);
  1901. if(vHealth > svCheats_VehicleHealth[vehicleid])
  1902. {
  1903. if(!svCheats_IsPlayerAtRepairPoint(playerid))
  1904. {
  1905. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_VEHICLE_REPAIR);
  1906. svCheats_AmountDetected++;
  1907. }
  1908. }
  1909. svCheats_VehicleHealth[vehicleid] = vHealth;
  1910. }
  1911. }
  1912. #endif
  1913.  
  1914. #if defined CHATSPAM_OFF
  1915. if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  1916. {
  1917. svCheats_SpamCounters[playerid]--;
  1918.  
  1919. if(svCheats_SpamCounters[playerid] < 0)
  1920. {
  1921. svCheats_SpamCounters[playerid] = 0;
  1922. }
  1923. }
  1924. #endif
  1925.  
  1926. #if defined AFK_DISABLED
  1927. if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1)
  1928. {
  1929. if(svCheats_ReportedAFK[playerid] == false)
  1930. {
  1931. new Float: playersPos[3];
  1932. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  1933. if(playersPos[0] != svCheats_oldPos[playerid][0] || playersPos[1] != svCheats_oldPos[playerid][1] || playersPos[2] != svCheats_oldPos[playerid][2])
  1934. {
  1935. svCheats_AFKTime[playerid] = 0;
  1936. }
  1937. else
  1938. {
  1939. svCheats_AFKTime[playerid] += GetTickCount() - svCheats_LastAFKUpdate[playerid];
  1940. }
  1941.  
  1942. svCheats_LastAFKUpdate[playerid] = GetTickCount();
  1943.  
  1944. svCheats_oldPos[playerid][0] = playersPos[0], svCheats_oldPos[playerid][1] = playersPos[1], svCheats_oldPos[playerid][2] = playersPos[2];
  1945.  
  1946. if(svCheats_ReportedAFK[playerid] == false)
  1947. {
  1948. new AFKMinutes = svCheats_AFKTime[playerid] / 60000;
  1949. if(AFKMinutes >= AFK_MINUTES)
  1950. {
  1951. svCheats_ReportedAFK[playerid] = true;
  1952. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_AFK);
  1953. svCheats_AmountDetected++;
  1954. }
  1955. }
  1956. }
  1957. }
  1958. #endif
  1959.  
  1960. #if defined TABBED_DISABLED
  1961. if(svCheats_SecurityLevel[playerid] < TABBED_DISABLED || TABBED_DISABLED == -1)
  1962. {
  1963. if(svCheats_ReportedTabbed[playerid] == false && svCheats_TabbedDisabled[playerid] == false)
  1964. {
  1965. if(GetPlayerCameraMode(playerid) != 55)
  1966. {
  1967. svCheats_TabbedUpdates[playerid]++;
  1968.  
  1969. if(svCheats_TabbedUpdates[playerid] > 1)
  1970. {
  1971. svCheats_TabbedUpdates[playerid] = 0;
  1972. svCheats_ReportedTabbed[playerid] = true;
  1973. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_TABBED);
  1974. svCheats_AmountDetected++;
  1975. }
  1976. }
  1977. }
  1978. }
  1979. #endif
  1980.  
  1981. #if defined HEALTH_HACK
  1982. if(svCheats_SecurityLevel[playerid] < HEALTH_HACK || HEALTH_HACK == -1)
  1983. {
  1984. if(svCheats_HealthHackDisabled[playerid] == false)
  1985. {
  1986. new Float: Health, Float: Armor;
  1987. GetPlayerHealth(playerid, Health);
  1988. GetPlayerArmour(playerid, Armor);
  1989. if(!svCheats_IsPlayerAtHealingPoint(playerid))
  1990. {
  1991. if(svCheats_PlayerHealth[playerid] < Health || svCheats_PlayerArmor[playerid] < Armor)
  1992. {
  1993. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_HEALTHHACK);
  1994. svCheats_AmountDetected++;
  1995. }
  1996. }
  1997. svCheats_PlayerHealth[playerid] = Health;
  1998. svCheats_PlayerArmor[playerid] = Armor;
  1999. }
  2000. }
  2001. #endif
  2002. }
  2003. #else
  2004. for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
  2005. {
  2006. if(IsPlayerConnected(playerid))
  2007. {
  2008. #if defined HIGH_PING
  2009. if(svCheats_SecurityLevel[playerid] < HIGH_PING || HIGH_PING == -1)
  2010. {
  2011. if(GetPlayerPing(playerid) > MAX_PING)
  2012. {
  2013. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_HIGH_PING);
  2014. svCheats_AmountDetected++;
  2015. }
  2016. }
  2017. #endif
  2018.  
  2019. #if defined SPEED_HACK
  2020. if(svCheats_SecurityLevel[playerid] < SPEED_HACK || SPEED_HACK == -1)
  2021. {
  2022. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  2023. {
  2024. new vehicleid = GetPlayerVehicleID(playerid);
  2025. if(svCheats_GetVehicleSpeed(vehicleid) > MAX_SPEED)
  2026. {
  2027. if(GetVehicleModel(vehicleid) != 520)
  2028. {
  2029. new Float: vehicleVelocity[3];
  2030. GetVehicleVelocity(vehicleid, vehicleVelocity[0], vehicleVelocity[1], vehicleVelocity[2]);
  2031. if(vehicleVelocity[2] > -0.5)
  2032. {
  2033. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_SPEED_HACK);
  2034. svCheats_AmountDetected++;
  2035. }
  2036. }
  2037. }
  2038. }
  2039. }
  2040. #endif
  2041.  
  2042. #if defined JETPACK_HACK
  2043. if(svCheats_SecurityLevel[playerid] < JETPACK_HACK || JETPACK_HACK == -1)
  2044. {
  2045. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK)
  2046. {
  2047. if(svCheats_GrantedJetpack[playerid] == false)
  2048. {
  2049. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_JETPACK_HACK);
  2050. svCheats_AmountDetected++;
  2051. }
  2052. }
  2053. }
  2054. #endif
  2055.  
  2056. #if defined AIRBREAK_HACK
  2057. if(svCheats_SecurityLevel[playerid] < AIRBREAK_HACK || AIRBREAK_HACK == -1)
  2058. {
  2059. new ai = GetPlayerAnimationIndex(playerid);
  2060. if(ai == 1231 || ai == 1266)
  2061. {
  2062. new Float: playersPos[3];
  2063. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  2064. if(playersPos[2] >= 4.0)
  2065. {
  2066. if(!IsPlayerInRangeOfPoint(playerid, 200.0, 602.74, 871.44, -20.65) && !IsPlayerInRangeOfPoint(playerid, 300.0, 1678.38, -2291.18, -1.00))
  2067. {
  2068. if(GetPointZPos(playersPos[0], playersPos[1]) < playersPos[2] - 15.0)
  2069. {
  2070. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_AIRBREAK_HACK);
  2071. svCheats_AmountDetected++;
  2072. }
  2073. }
  2074. }
  2075. }
  2076. }
  2077. #endif
  2078.  
  2079. #if defined FLY_HACK
  2080. if(svCheats_SecurityLevel[playerid] < FLY_HACK || FLY_HACK == -1)
  2081. {
  2082. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  2083. {
  2084. new ai = GetPlayerAnimationIndex(playerid);
  2085. if(ai == 1538 || ai == 1538 || ai == 1543)
  2086. {
  2087. if(!GetPlayerInterior(playerid))
  2088. {
  2089. new Float: playersPos[3];
  2090. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  2091. if(playersPos[2] >= 4.0)
  2092. {
  2093. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_FLY_HACK);
  2094. svCheats_AmountDetected++;
  2095. }
  2096. }
  2097. }
  2098. }
  2099. }
  2100. #endif
  2101.  
  2102. #if defined TELEPORT_HACK
  2103. if(svCheats_SecurityLevel[playerid] < TELEPORT_HACK || TELEPORT_HACK == -1)
  2104. {
  2105. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  2106. {
  2107. new interior = GetPlayerInterior(playerid);
  2108. if(interior > 0)
  2109. {
  2110. new allowedInteriors[10], bool: allowed;
  2111. sscanf(USED_INTERIORS, "a<i>[10]", allowedInteriors);
  2112.  
  2113. for(new i = 0; i < sizeof(allowedInteriors); i++)
  2114. {
  2115. if(allowedInteriors[i] == interior)
  2116. {
  2117. allowed = true;
  2118. break;
  2119. }
  2120. }
  2121.  
  2122. if(allowed == false)
  2123. {
  2124. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_TELEPORT_HACK);
  2125. svCheats_AmountDetected++;
  2126. }
  2127. }
  2128. }
  2129. }
  2130. #endif
  2131.  
  2132. #if defined VEHICLE_REPAIR
  2133. if(svCheats_SecurityLevel[playerid] < VEHICLE_REPAIR || VEHICLE_REPAIR == -1)
  2134. {
  2135. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  2136. {
  2137. new vehicleid = GetPlayerVehicleID(playerid), Float: vHealth;
  2138. GetVehicleHealth(vehicleid, vHealth);
  2139. if(vHealth > svCheats_VehicleHealth[vehicleid])
  2140. {
  2141. if(!svCheats_IsPlayerAtRepairPoint(playerid))
  2142. {
  2143. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_VEHICLE_REPAIR);
  2144. svCheats_AmountDetected++;
  2145. }
  2146. }
  2147. svCheats_VehicleHealth[vehicleid] = vHealth;
  2148. }
  2149. }
  2150. #endif
  2151.  
  2152. #if defined CHATSPAM_OFF
  2153. if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  2154. {
  2155. svCheats_SpamCounters[playerid]--;
  2156.  
  2157. if(svCheats_SpamCounters[playerid] < 0)
  2158. {
  2159. svCheats_SpamCounters[playerid] = 0;
  2160. }
  2161. }
  2162. #endif
  2163.  
  2164. #if defined AFK_DISABLED
  2165. if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1)
  2166. {
  2167. if(svCheats_ReportedAFK[playerid] == false)
  2168. {
  2169. new Float: playersPos[3];
  2170. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  2171. if(playersPos[0] != svCheats_oldPos[playerid][0] || playersPos[1] != svCheats_oldPos[playerid][1] || playersPos[2] != svCheats_oldPos[playerid][2])
  2172. {
  2173. svCheats_AFKTime[playerid] = 0;
  2174. }
  2175. else
  2176. {
  2177. svCheats_AFKTime[playerid] += GetTickCount() - svCheats_LastAFKUpdate[playerid];
  2178. }
  2179.  
  2180. svCheats_LastAFKUpdate[playerid] = GetTickCount();
  2181.  
  2182. svCheats_oldPos[playerid][0] = playersPos[0], svCheats_oldPos[playerid][1] = playersPos[1], svCheats_oldPos[playerid][2] = playersPos[2];
  2183.  
  2184. if(svCheats_ReportedAFK[playerid] == false)
  2185. {
  2186. new AFKMinutes = svCheats_AFKTime[playerid] / 60000;
  2187. if(AFKMinutes >= AFK_MINUTES)
  2188. {
  2189. svCheats_ReportedAFK[playerid] = true;
  2190. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_AFK);
  2191. svCheats_AmountDetected++;
  2192. }
  2193. }
  2194. }
  2195. }
  2196. #endif
  2197.  
  2198. #if defined TABBED_DISABLED
  2199. if(svCheats_SecurityLevel[playerid] < TABBED_DISABLED || TABBED_DISABLED == -1)
  2200. {
  2201. if(svCheats_ReportedTabbed[playerid] == false && svCheats_TabbedDisabled[playerid] == false)
  2202. {
  2203. if(GetPlayerCameraMode(playerid) != 55)
  2204. {
  2205. svCheats_TabbedUpdates[playerid]++;
  2206.  
  2207. if(svCheats_TabbedUpdates[playerid] > 1)
  2208. {
  2209. svCheats_TabbedUpdates[playerid] = 0;
  2210. svCheats_ReportedTabbed[playerid] = true;
  2211. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_TABBED);
  2212. svCheats_AmountDetected++;
  2213. }
  2214. }
  2215. }
  2216. }
  2217. #endif
  2218.  
  2219. #if defined HEALTH_HACK
  2220. if(svCheats_SecurityLevel[playerid] < HEALTH_HACK || HEALTH_HACK == -1)
  2221. {
  2222. if(svCheats_HealthHackDisabled[playerid] == false)
  2223. {
  2224. new Float: Health, Float: Armor;
  2225. GetPlayerHealth(playerid, Health);
  2226. GetPlayerArmour(playerid, Armor);
  2227. if(!svCheats_IsPlayerAtHealingPoint(playerid))
  2228. {
  2229. if(svCheats_PlayerHealth[playerid] < Health || svCheats_PlayerArmor[playerid] < Armor)
  2230. {
  2231. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_HEALTHHACK);
  2232. svCheats_AmountDetected++;
  2233. }
  2234. }
  2235. svCheats_PlayerHealth[playerid] = Health;
  2236. svCheats_PlayerArmor[playerid] = Armor;
  2237. }
  2238. }
  2239. #endif
  2240. }
  2241. }
  2242. #endif
  2243. return 1;
  2244. }
  2245.  
  2246. stock svCheats_Debug(bool: togDebug)
  2247. {
  2248. if(togDebug == true)
  2249. {
  2250. print("(svCheats) Debugging has been turned on");
  2251. }
  2252. else if(togDebug == false)
  2253. {
  2254. print("(svCheats) Debugging has been turned off");
  2255. }
  2256.  
  2257. return svCheats_Debugging = togDebug;
  2258. }
  2259.  
  2260. stock svCheats_SetPlayerSecurityLevel(playerid, secLevel)
  2261. {
  2262. if(svCheats_Debugging == true)
  2263. {
  2264. printf("(svCheats) SetPlayerSecurityLevel(playerid = %d, secLevel = %d)", playerid, secLevel);
  2265. }
  2266.  
  2267. return svCheats_SecurityLevel[playerid] = secLevel;
  2268. }
  2269.  
  2270. stock svCheats_GetPlayerSecurityLevel(playerid)
  2271. {
  2272. if(svCheats_Debugging == true)
  2273. {
  2274. printf("(svCheats) GetPlayerSecurityLevel(playerid = %d)", playerid);
  2275. }
  2276.  
  2277. return svCheats_SecurityLevel[playerid];
  2278. }
  2279.  
  2280. stock svCheats_SetVehicleHealth(vehicleid, Float: vHealth)
  2281. {
  2282. if(svCheats_Debugging == true)
  2283. {
  2284. printf("(svCheats) SetVehicleHealth(vehicleid = %d, vHealth = %f)", vehicleid, vHealth);
  2285. }
  2286.  
  2287. svCheats_VehicleHealth[vehicleid] = vHealth;
  2288. return SetVehicleHealth(vehicleid, vHealth);
  2289. }
  2290.  
  2291. #if defined _ALS_SetVehicleHealth
  2292. #undef SetVehicleHealth
  2293. #else
  2294. #define _ALS_SetVehicleHealth
  2295. #endif
  2296. #define SetVehicleHealth svCheats_SetVehicleHealth
  2297.  
  2298. stock svCheats_GivePlayerWeapon(playerid, weaponid, ammo)
  2299. {
  2300. if(svCheats_Debugging == true)
  2301. {
  2302. printf("(svCheats) GivePlayerWeapon(playerid = %d, weaponid = %d, ammo = %d)", playerid, weaponid, ammo);
  2303. }
  2304.  
  2305. svCheats_PlayerWeapons[playerid][GetWeaponSlot(weaponid)] = weaponid;
  2306. return GivePlayerWeapon(playerid, weaponid, ammo);
  2307. }
  2308.  
  2309. #if defined _ALS_GivePlayerWeapon
  2310. #undef GivePlayerWeapon
  2311. #else
  2312. #define _ALS_GivePlayerWeapon
  2313. #endif
  2314. #define GivePlayerWeapon svCheats_GivePlayerWeapon
  2315.  
  2316. stock svCheats_ToggleJetpack(playerid, bool: toggleJetpack)
  2317. {
  2318. if(svCheats_Debugging == true)
  2319. {
  2320. printf("(svCheats) ToggleJetpack(playerid = %d, toggleJetpack = %d)", playerid, toggleJetpack);
  2321. }
  2322.  
  2323. return svCheats_GrantedJetpack[playerid] = toggleJetpack;
  2324. }
  2325.  
  2326. stock svCheats_SetPlayerHealth(playerid, Float: pHealth)
  2327. {
  2328. if(svCheats_Debugging == true)
  2329. {
  2330. printf("(svCheats) SetPlayerHealth(playerid = %d, pHealth = %f)", playerid, pHealth);
  2331. }
  2332.  
  2333. svCheats_PlayerHealth[playerid] = pHealth;
  2334. return SetPlayerHealth(playerid, pHealth);
  2335. }
  2336.  
  2337. #if defined _ALS_SetPlayerHealth
  2338. #undef SetPlayerHealth
  2339. #else
  2340. #define _ALS_SetPlayerHealth
  2341. #endif
  2342. #define SetPlayerHealth svCheats_SetPlayerHealth
  2343.  
  2344. stock svCheats_SetPlayerArmour(playerid, Float: pArmour)
  2345. {
  2346. if(svCheats_Debugging == true)
  2347. {
  2348. printf("(svCheats) SetPlayerArmour(playerid = %d, pArmour = %f)", playerid, pArmour);
  2349. }
  2350.  
  2351. svCheats_PlayerArmor[playerid] = pArmour;
  2352. return SetPlayerArmour(playerid, pArmour);
  2353. }
  2354.  
  2355. #if defined _ALS_SetPlayerArmour
  2356. #undef SetPlayerArmour
  2357. #else
  2358. #define _ALS_SetPlayerArmour
  2359. #endif
  2360. #define SetPlayerArmour svCheats_SetPlayerArmour
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement