Advertisement
Guest User

Untitled

a guest
May 1st, 2012
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 62.91 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.1] 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. // //|
  57. // //|
  58. // //|
  59. /* Change the anticheat settings to best fit your server */ //|
  60. #define MAX_PING (750) // Maximum server ping //|
  61. #define USED_INTERIORS "1 2" // Used interiors separated by a space //|
  62. #define MAX_SPEED (198) // Maximum vehicle speed //|
  63. #define DRIVEBY_WEAPONS "28 29 32" // Driveby allowed weapons separated by a space //|
  64. #define BUNNYHOP_AMOUNT (6) // Amount of jumps before it's called bunny hopping //|
  65. #define CHATSPAM_LINES (4) // Amount of lines sent before it's called spam //|
  66. #define AFK_MINUTES (10) // Amount of minutes before a person is AFK //|
  67. new CurseWords[][] = {"ass", "bitch", "shit", "fuck", "nigger"}; //|
  68. // ================================================================================ ///
  69. // DO NOT TOUCH ANYTHING BELOW THIS ///
  70. // ================================================================================ ///
  71.  
  72. #if defined USE_FOREACH
  73. #tryinclude <foreach>
  74. #endif
  75.  
  76. #if defined USE_YHOOKS
  77. #tryinclude <YSI\y_hooks>
  78. #endif
  79.  
  80. #if defined USE_ZCMD
  81. #tryinclude <zcmd>
  82. #endif
  83.  
  84. #if defined AIRBREAK_HACK
  85. #tryinclude <MapAndreas>
  86. #endif
  87.  
  88. #define CHEAT_HIGH_PING (1)
  89. #define CHEAT_WEAPON_SPAWN (2)
  90. #define CHEAT_SPEED_HACK (3)
  91. #define CHEAT_JETPACK_HACK (4)
  92. #define CHEAT_DRIVEBY (5)
  93. #define CHEAT_DDRIVEBY (6)
  94. #define CHEAT_SWEARING (7)
  95. #define CHEAT_AIRBREAK_HACK (8)
  96. #define CHEAT_BUNNYHOP (9)
  97. #define CHEAT_FLY_HACK (10)
  98. #define CHEAT_TELEPORT_HACK (11)
  99. #define CHEAT_VEHICLE_REPAIR (12)
  100. #define CHEAT_CHATSPAM (13)
  101. #define CHEAT_AFK (14)
  102. #define CHEAT_TABBED (15)
  103. #define CHEAT_GODMODE (16)
  104. #define CHEAT_NINJAJACK (17)
  105.  
  106. forward svCheats_Detector();
  107. forward svCheats_OnPlayerCheatUpdate(playerid, cheatid);
  108.  
  109. enum e_svCheats_HH
  110. {
  111. svCheckedBy,
  112. bool: svInVehicle,
  113. svVehicleID,
  114. svVehicleSeat,
  115. Float: svOldPlayerPos[4],
  116. svInterior,
  117. svVirtualWorld,
  118. Float: svHealth,
  119. Float: svArmor,
  120. }
  121.  
  122. new svCheats_SecurityLevel[MAX_PLAYERS], bool: svCheats_Debugging;
  123. new bool: svCheats_GrantedJetpack[MAX_PLAYERS], Float: svCheats_VehicleHealth[MAX_VEHICLES] = 1000.0;
  124. new svCheats_JumpCounters[MAX_PLAYERS], svCheats_JumpCounterTimer[MAX_PLAYERS];
  125. new svCheats_PlayerWeapons[MAX_PLAYERS][13], svCheats_SpamCounters[MAX_PLAYERS];
  126. new svCheats_AFKTime[MAX_PLAYERS], svCheats_LastAFKUpdate[MAX_PLAYERS], bool: svCheats_ReportedAFK[MAX_PLAYERS];
  127. new svCheats_TabbedUpdates[MAX_PLAYERS], bool: svCheats_ReportedTabbed[MAX_PLAYERS], bool: svCheats_TabbedDisabled[MAX_PLAYERS];
  128. new svCheats_HH[MAX_PLAYERS][e_svCheats_HH];
  129. new svCheats_PossibleNinjaJack[MAX_PLAYERS];
  130. new svCheats_AmountDetected;
  131.  
  132. #if defined USE_YHOOKS
  133. #if defined GAMEMODE
  134. hook OnGameModeInit()
  135. {
  136. new File: svCheats_Stats;
  137.  
  138. if(!fexist("svCheats_Stats.txt"))
  139. {
  140. svCheats_Stats = fopen("svCheats_Stats.txt", io_append);
  141. fwrite(svCheats_Stats, "0");
  142. }
  143. else
  144. {
  145. new amountDetected[5];
  146. svCheats_Stats = fopen("svCheats_Stats.txt", io_read);
  147. fread(svCheats_Stats, amountDetected);
  148. svCheats_AmountDetected = strval(amountDetected);
  149. }
  150.  
  151. fclose(svCheats_Stats);
  152. SetTimer("svCheats_Detector", TIMER_TIME, 1);
  153. return 1;
  154. }
  155.  
  156. hook OnGameModeExit()
  157. {
  158. new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write);
  159. format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected);
  160. fwrite(svCheats_Stats, amountDetected);
  161. fclose(svCheats_Stats);
  162. return 1;
  163. }
  164. #else
  165. hook OnFilterScriptInit()
  166. {
  167. new File: svCheats_Stats;
  168.  
  169. if(!fexist("svCheats_Stats.txt"))
  170. {
  171. svCheats_Stats = fopen("svCheats_Stats.txt", io_append);
  172. fwrite(svCheats_Stats, "0");
  173. }
  174. else
  175. {
  176. new amountDetected[5];
  177. svCheats_Stats = fopen("svCheats_Stats.txt", io_read);
  178. fread(svCheats_Stats, amountDetected);
  179. svCheats_AmountDetected = strval(amountDetected);
  180. }
  181.  
  182. fclose(svCheats_Stats);
  183. SetTimer("svCheats_Detector", TIMER_TIME, 1);
  184. return 1;
  185. }
  186.  
  187. hook OnFilterScriptExit()
  188. {
  189. new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write);
  190. format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected);
  191. fwrite(svCheats_Stats, amountDetected);
  192. fclose(svCheats_Stats);
  193. return 1;
  194. }
  195. #endif
  196. hook OnPlayerConnect(playerid)
  197. {
  198. svCheats_SecurityLevel[playerid] = 0;
  199.  
  200. #if defined JETPACK_HACK
  201. svCheats_GrantedJetpack[playerid] = false;
  202. #endif
  203.  
  204. #if defined BUNNYHOP_OFF
  205. svCheats_JumpCounters[playerid] = 0;
  206. svCheats_JumpCounterTimer[playerid] = -1;
  207. #endif
  208.  
  209. #if defined CHATSPAM_OFF
  210. svCheats_SpamCounters[playerid] = 0;
  211. #endif
  212.  
  213. #if defined WEAPON_SPAWN
  214. for(new i = 0; i < 13; i++)
  215. {
  216. svCheats_PlayerWeapons[playerid][i] = 0;
  217. }
  218. #endif
  219.  
  220. #if defined AFK_DISABLED
  221. svCheats_AFKTime[playerid] = 0;
  222. svCheats_LastAFKUpdate[playerid] = GetTickCount();
  223. svCheats_ReportedAFK[playerid] = false;
  224. #endif
  225.  
  226. #if defined TABBED_DISABLED
  227. svCheats_TabbedUpdates[playerid] = 0;
  228. svCheats_ReportedTabbed[playerid] = false;
  229. svCheats_TabbedDisabled[playerid] = true;
  230. #endif
  231.  
  232. #if defined HH_USED
  233. svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID;
  234. #endif
  235.  
  236. #if defined NINJAJACK_CHEAT
  237. svCheats_PossibleNinjaJack[playerid] = INVALID_PLAYER_ID;
  238. #endif
  239. return 1;
  240. }
  241.  
  242. hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  243. {
  244. #if defined BUNNYHOP_OFF
  245. if(newkeys & KEY_JUMP)
  246. {
  247. if(svCheats_SecurityLevel[playerid] < BUNNYHOP_OFF || BUNNYHOP_OFF == -1)
  248. {
  249. new ai = GetPlayerAnimationIndex(playerid);
  250. if(ai != 1061 && ai != 1062 && ai != 1064 && ai != 1066 && ai != 1195 && ai != 1997)
  251. {
  252. svCheats_JumpCounters[playerid]++;
  253.  
  254. if(svCheats_JumpCounterTimer[playerid] > -1)
  255. {
  256. KillTimer(svCheats_JumpCounterTimer[playerid]);
  257. svCheats_JumpCounterTimer[playerid] = -1;
  258. }
  259.  
  260. if(svCheats_JumpCounters[playerid] == BUNNYHOP_AMOUNT)
  261. {
  262. svCheats_JumpCounters[playerid] = 0;
  263. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_BUNNYHOP);
  264. svCheats_AmountDetected++;
  265. }
  266. else
  267. {
  268. svCheats_JumpCounterTimer[playerid] = SetTimerEx("svCheats_JumpCountersDown", 3000, 0, "i", playerid);
  269. }
  270. }
  271. }
  272. }
  273. #endif
  274.  
  275. #if defined WEAPON_SPAWN
  276. if(newkeys & KEY_FIRE)
  277. {
  278. if(svCheats_SecurityLevel[playerid] < WEAPON_SPAWN || WEAPON_SPAWN == -1)
  279. {
  280. new w = GetPlayerWeapon(playerid);
  281. if(w > 0)
  282. {
  283. if(svCheats_PlayerWeapons[playerid][svCheats_GetWeaponSlot(w)] != w)
  284. {
  285. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_WEAPON_SPAWN);
  286. svCheats_AmountDetected++;
  287. }
  288. }
  289. }
  290. }
  291. #endif
  292. return 1;
  293. }
  294.  
  295. hook OnPlayerText(playerid, text[])
  296. {
  297. #if defined SWEARING_OFF
  298. if(svCheats_SecurityLevel[playerid] < SWEARING_OFF || SWEARING_OFF == -1)
  299. {
  300. for(new c = 0; c < sizeof(CurseWords); c++)
  301. {
  302. if(strfind(text, CurseWords[c], true) > -1)
  303. {
  304. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_SWEARING);
  305. svCheats_AmountDetected++;
  306. return 0;
  307. }
  308. }
  309. }
  310. #endif
  311.  
  312. #if defined CHATSPAM_OFF
  313. if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  314. {
  315. svCheats_SpamCounters[playerid]++;
  316.  
  317. if(svCheats_SpamCounters[playerid] == CHATSPAM_LINES)
  318. {
  319. svCheats_SpamCounters[playerid] = 0;
  320. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_CHATSPAM);
  321. svCheats_AmountDetected++;
  322. return 0;
  323. }
  324. }
  325. #endif
  326.  
  327. #if defined AFK_DISABLED
  328. if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1)
  329. {
  330. svCheats_AFKTime[playerid] = 0;
  331. svCheats_ReportedAFK[playerid] = false;
  332. }
  333. #endif
  334. return 0;
  335. }
  336.  
  337. #if defined VEHICLE_REPAIR
  338. hook OnVehicleSpawn(vehicleid)
  339. {
  340. svCheats_VehicleHealth[vehicleid] = 1000.0;
  341. return 1;
  342. }
  343.  
  344. hook OnPlayerStateChange(playerid, newstate, oldstate)
  345. {
  346. if(newstate == PLAYER_STATE_DRIVER)
  347. {
  348. #if defined VEHICLE_REPAIR
  349. new vehicleid = GetPlayerVehicleID(playerid);
  350. GetVehicleHealth(vehicleid, svCheats_VehicleHealth[vehicleid]);
  351. #endif
  352.  
  353. #if defined NINJAJACK_OFF
  354. #if defined USE_FOREACH
  355. foreach(new i: Player)
  356. {
  357. if(svCheats_PossibleNinjaJack[i] == playerid)
  358. {
  359. svCheats_PossibleNinjaJack[i] = INVALID_PLAYER_ID;
  360. break;
  361. }
  362. }
  363. #else
  364. for(new i = 0; i < MAX_PLAYERS; i++)
  365. {
  366. if(IsPlayerConnected(i))
  367. {
  368. if(svCheats_PossibleNinjaJack[i] == playerid)
  369. {
  370. svCheats_PossibleNinjaJack[i] = INVALID_PLAYER_ID;
  371. break;
  372. }
  373. }
  374. }
  375. #endif
  376. #endif
  377. }
  378. return 1;
  379. }
  380. #endif
  381.  
  382. #if defined CHEAT_TABBED
  383. hook OnPlayerUpdate(playerid)
  384. {
  385. svCheats_TabbedUpdates[playerid] = 0;
  386. svCheats_ReportedTabbed[playerid] = false;
  387. return 1;
  388. }
  389.  
  390. hook OnPlayerSpawn(playerid)
  391. {
  392. svCheats_TabbedDisabled[playerid] = false;
  393. return 1;
  394. }
  395. #endif
  396.  
  397. hook OnPlayerDeath(playerid, killerid, reason)
  398. {
  399. svCheats_TabbedDisabled[playerid] = true;
  400.  
  401. if(killerid == INVALID_PLAYER_ID)
  402. {
  403. if(svCheats_PossibleNinjaJack[playerid] != INVALID_PLAYER_ID)
  404. {
  405. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", svCheats_PossibleNinjaJack[playerid], CHEAT_NINJAJACK);
  406. svCheats_PossibleNinjaJack[playerid] = INVALID_PLAYER_ID;
  407. }
  408. }
  409. return 1;
  410. }
  411.  
  412. hook OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  413. {
  414. #if defined DRVBY_RESTRICT
  415. if(svCheats_SecurityLevel[playerid] < DRVBY_RESTRICT || DRVBY_RESTRICT == -1)
  416. {
  417. if(ispassenger)
  418. {
  419. new w = GetPlayerWeapon(playerid);
  420. if(w > 0)
  421. {
  422. new allowedWeapons[10], bool: allowed;
  423. sscanf(DRIVEBY_WEAPONS, "a<i>[10]", allowedWeapons);
  424.  
  425. for(new i = 0; i < sizeof(allowedWeapons); i++)
  426. {
  427. if(w == allowedWeapons[i])
  428. {
  429. allowed = true;
  430. break;
  431. }
  432. }
  433.  
  434. if(allowed == false)
  435. {
  436. SetPlayerArmedWeapon(playerid, 0);
  437. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_DRIVEBY);
  438. svCheats_AmountDetected++;
  439. }
  440. }
  441. }
  442. }
  443. #endif
  444.  
  445. #if defined DDRIVEBY_OFF
  446. if(svCheats_SecurityLevel[playerid] < DDRIVEBY_OFF || DDRIVEBY_OFF == -1)
  447. {
  448. if(!ispassenger)
  449. {
  450. new w = GetPlayerWeapon(playerid);
  451. if(w > 0)
  452. {
  453. SetPlayerArmedWeapon(playerid, 0);
  454. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_DDRIVEBY);
  455. svCheats_AmountDetected++;
  456. }
  457. }
  458. }
  459. #endif
  460.  
  461. #if defined NINJAJACK_CHEAT
  462. if(svCheats_SecurityLevel[playerid] < NINJAJACK_CHEAT || NINJAJACK_CHEAT == -1)
  463. {
  464. if(!ispassenger)
  465. {
  466. #if defined USE_FOREACH
  467. foreach(new i: Player)
  468. {
  469. if(GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER)
  470. {
  471. svCheats_PossibleNinjaJack[i] = playerid;
  472. break;
  473. }
  474. }
  475. #else
  476. for(new i = 0; i < MAX_PLAYERS; i++)
  477. {
  478. if(IsPlayerConnected(i))
  479. {
  480. if(GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER)
  481. {
  482. svCheats_PossibleNinjaJack[i] = playerid;
  483. break;
  484. }
  485. }
  486. }
  487. #endif
  488. }
  489. }
  490. #endif
  491.  
  492. return 1;
  493. }
  494.  
  495. #if defined USE_ZCMD
  496. #if defined HH_USED
  497. COMMAND:hh(playerid, params[])
  498. {
  499. if(svCheats_SecurityLevel[playerid] < HH_USED)
  500. {
  501. return SendClientMessage(playerid, -1, "You are not authorized to use this command.");
  502. }
  503.  
  504. new svCheats_giveplayerid;
  505. if(sscanf(params, "u", svCheats_giveplayerid))
  506. {
  507. return SendClientMessage(playerid, -1, "USAGE: /hh [player]");
  508. }
  509.  
  510. if(svCheats_ReportedTabbed[svCheats_giveplayerid] == true)
  511. {
  512. return SendClientMessage(playerid, -1, "You may not health hack check tabbed players.");
  513. }
  514.  
  515. if(svCheats_HH[svCheats_giveplayerid][svCheckedBy] != INVALID_PLAYER_ID)
  516. {
  517. return SendClientMessage(playerid, -1, "That player is already being checked for health hacks.");
  518. }
  519.  
  520. new string[128], playersName[MAX_PLAYER_NAME], Float: playersPos[3];
  521.  
  522. GetPlayerName(svCheats_giveplayerid, playersName, sizeof(playersName));
  523. format(string, sizeof(string), "Checking %s for health hacks...", playersName);
  524. SendClientMessage(playerid, -1, string);
  525.  
  526. GetPlayerPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  527. SetPlayerCameraLookAt(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  528. SetPlayerCameraPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2] + 5);
  529.  
  530. for(new i = 0; i < 3; i++)
  531. {
  532. svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][i] = playersPos[i];
  533. }
  534.  
  535. GetPlayerFacingAngle(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][3]);
  536.  
  537. svCheats_HH[svCheats_giveplayerid][svInterior] = GetPlayerInterior(svCheats_giveplayerid);
  538. svCheats_HH[svCheats_giveplayerid][svVirtualWorld] = GetPlayerVirtualWorld(svCheats_giveplayerid);
  539.  
  540. if(IsPlayerInAnyVehicle(svCheats_giveplayerid))
  541. {
  542. svCheats_HH[svCheats_giveplayerid][svInVehicle] = true;
  543. svCheats_HH[svCheats_giveplayerid][svVehicleID] = GetPlayerVehicleID(svCheats_giveplayerid);
  544. svCheats_HH[svCheats_giveplayerid][svVehicleSeat] = GetPlayerVehicleSeat(svCheats_giveplayerid);
  545. }
  546. else
  547. {
  548. svCheats_HH[svCheats_giveplayerid][svInVehicle] = false;
  549. }
  550.  
  551. GetPlayerHealth(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svHealth]);
  552. GetPlayerArmour(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svArmor]);
  553.  
  554. svCheats_HH[svCheats_giveplayerid][svCheckedBy] = playerid;
  555.  
  556. SetPlayerInterior(svCheats_giveplayerid, 0);
  557. SetPlayerPos(svCheats_giveplayerid, 0.0, 0.0, 8.0);
  558. SetPlayerHealth(svCheats_giveplayerid, 100.0);
  559. SetPlayerArmour(svCheats_giveplayerid, 0.0);
  560.  
  561. SetTimerEx("svCheats_HealthHackCheck", 1350 + GetPlayerPing(svCheats_giveplayerid), 0, "i", svCheats_giveplayerid);
  562. return 1;
  563. }
  564. #endif
  565.  
  566. #if defined ACSTATS_USED
  567. COMMAND:acstats(playerid, params[])
  568. {
  569. new string[50];
  570. format(string, sizeof(string), "(svCheats) Cheaters Detected: %d", svCheats_AmountDetected);
  571. SendClientMessage(playerid, -1, string);
  572. return 1;
  573. }
  574. #endif
  575. #else
  576. hook OnPlayerCommandText(playerid, cmdtext[])
  577. {
  578. #if defined HH_USED
  579. new svCheats_cmd[5];
  580. sscanf(cmdtext, "s[5]", svCheats_cmd);
  581. if(strcmp(svCheats_cmd, "/hh", true) == 0)
  582. {
  583. if(svCheats_SecurityLevel[playerid] < HH_USED)
  584. {
  585. return SendClientMessage(playerid, -1, "You are not authorized to use this command.");
  586. }
  587.  
  588. new svCheats_giveplayerid;
  589. if(sscanf(cmdtext, "{s[5]}u", svCheats_giveplayeid))
  590. {
  591. return SendClientMessage(playerid, -1, "USAGE: /hh [player]");
  592. }
  593.  
  594. if(svCheats_ReportedTabbed[svCheats_giveplayerid] == true)
  595. {
  596. return SendClientMessage(playerid, -1, "You may not health hack check tabbed players.");
  597. }
  598.  
  599. if(svCheats_HH[svCheats_giveplayerid][svCheckedBy] != INVALID_PLAYER_ID)
  600. {
  601. return SendClientMessage(playerid, -1, "That player is already being checked for health hacks.");
  602. }
  603.  
  604. new string[128], playersName[MAX_PLAYER_NAME], Float: playersPos[3];
  605.  
  606. GetPlayerName(svCheats_giveplayerid, playersName, sizeof(playersName));
  607. format(string, sizeof(string), "Checking %s for health hacks...", playersName);
  608. SendClientMessage(playerid, -1, string);
  609.  
  610. GetPlayerPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  611. SetPlayerCameraLookAt(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  612. SetPlayerCameraPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2] + 5);
  613.  
  614. for(new i = 0; i < 3; i++)
  615. {
  616. svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][i] = playersPos[i];
  617. }
  618.  
  619. GetPlayerFacingAngle(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][3]);
  620.  
  621. svCheats_HH[svCheats_giveplayerid][svInterior] = GetPlayerInterior(svCheats_giveplayerid);
  622. svCheats_HH[svCheats_giveplayerid][svVirtualWorld] = GetPlayerVirtualWorld(svCheats_giveplayerid);
  623.  
  624. if(IsPlayerInAnyVehicle(svCheats_giveplayerid))
  625. {
  626. svCheats_HH[svCheats_giveplayerid][svInVehicle] = true;
  627. svCheats_HH[svCheats_giveplayerid][svVehicleID] = GetPlayerVehicleID(svCheats_giveplayerid);
  628. svCheats_HH[svCheats_giveplayerid][svVehicleSeat] = GetPlayerVehicleSeat(svCheats_giveplayerid);
  629. }
  630. else
  631. {
  632. svCheats_HH[svCheats_giveplayerid][svInVehicle] = false;
  633. }
  634.  
  635. GetPlayerHealth(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svHealth]);
  636. GetPlayerArmour(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svArmor]);
  637.  
  638. svCheats_HH[svCheats_giveplayerid][svCheckedBy] = playerid;
  639.  
  640. SetPlayerInterior(svCheats_giveplayerid, 0);
  641. SetPlayerPos(svCheats_giveplayerid, 0.0, 0.0, 8.0);
  642. SetPlayerHealth(svCheats_giveplayerid, 100.0);
  643. SetPlayerArmour(svCheats_giveplayerid, 0.0);
  644.  
  645. SetTimerEx("svCheats_HealthHackCheck", 1350 + GetPlayerPing(svCheats_giveplayerid), 0, "i", svCheats_giveplayerid);
  646. return 1;
  647. }
  648. #endif
  649.  
  650. #if defined ACSTATS_USED
  651. if(strcmp(cmdtext, "/acstats", true) == 0)
  652. {
  653. new string[50];
  654. format(string, sizeof(string), "(svCheats) Cheaters Detected: %d", svCheats_AmountDetected);
  655. SendClientMessage(playerid, -1, string);
  656. return 1;
  657. }
  658. #endif
  659. return 0;
  660. }
  661. #endif
  662.  
  663. #if defined HH_USED
  664. hook OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
  665. {
  666. if(issuerid == INVALID_PLAYER_ID)
  667. {
  668. if(svCheats_HH[playerid][svCheckedBy] != INVALID_PLAYER_ID)
  669. {
  670. new string[128], playersName[MAX_PLAYER_NAME], giveplayerid = svCheats_HH[playerid][svCheckedBy];
  671.  
  672. GetPlayerName(playerid, playersName, sizeof(playersName));
  673. format(string, sizeof(string), "The health hack check on %s has been finished and the result is {F81414}negative{FFFFFF}.", playersName);
  674. SendClientMessage(giveplayerid, -1, string);
  675.  
  676. svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID;
  677.  
  678. SetPlayerVirtualWorld(playerid, svCheats_HH[playerid][svVirtualWorld]);
  679. SetPlayerInterior(playerid, svCheats_HH[playerid][svInterior]);
  680. SetPlayerPos(playerid, svCheats_HH[playerid][svOldPlayerPos][0], svCheats_HH[playerid][svOldPlayerPos][1], svCheats_HH[playerid][svOldPlayerPos][2]);
  681. SetPlayerFacingAngle(playerid, svCheats_HH[playerid][svOldPlayerPos][3]);
  682.  
  683. if(svCheats_HH[playerid][svInVehicle] == true)
  684. {
  685. PutPlayerInVehicle(playerid, svCheats_HH[playerid][svVehicleID], svCheats_HH[playerid][svVehicleSeat]);
  686. }
  687.  
  688. SetPlayerHealth(playerid, svCheats_HH[playerid][svHealth]);
  689. SetPlayerArmour(playerid, svCheats_HH[playerid][svArmor]);
  690.  
  691. SetCameraBehindPlayer(playerid);
  692. }
  693. }
  694. return CallRemoteFunction("svCheats_OnPlayerTakeDamage", "ddfd", playerid, issuerid, amount, weaponid);
  695. }
  696. #endif
  697. #else
  698. #if defined GAMEMODE
  699. forward svCheats_OnGameModeInit();
  700. public OnGameModeInit()
  701. {
  702. new File: svCheats_Stats;
  703.  
  704. if(!fexist("svCheats_Stats.txt"))
  705. {
  706. svCheats_Stats = fopen("svCheats_Stats.txt", io_append);
  707. fwrite(svCheats_Stats, "0");
  708. }
  709. else
  710. {
  711. new amountDetected[5];
  712. svCheats_Stats = fopen("svCheats_Stats.txt", io_read);
  713. fread(svCheats_Stats, amountDetected);
  714. svCheats_AmountDetected = strval(amountDetected);
  715. }
  716.  
  717. fclose(svCheats_Stats);
  718. SetTimer("svCheats_Detector", TIMER_TIME, 1);
  719. return 1;
  720. }
  721.  
  722. #if defined _ALS_OnGameModeInit
  723. #undef OnGameModeInit
  724. #else
  725. #define _ALS_OnGameModeInit
  726. #endif
  727. #define OnGameModeInit svCheats_OnGameModeInit
  728.  
  729. forward svCheats_OnGameModeExit();
  730. public OnGameModeExit()
  731. {
  732. new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write);
  733. format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected);
  734. fwrite(svCheats_Stats, amountDetected);
  735. fclose(svCheats_Stats);
  736. return 1;
  737. }
  738.  
  739. #if defined _ALS_OnGameModeExit
  740. #undef OnGameModeExit
  741. #else
  742. #define _ALS_OnGameModeExit
  743. #endif
  744. #define OnGameModeExit svCheats_OnGameModeExit
  745. #else
  746. forward svCheats_OnFilterScriptInit();
  747. public OnFilterScriptInit()
  748. {
  749. new File: svCheats_Stats;
  750.  
  751. if(!fexist("svCheats_Stats.txt"))
  752. {
  753. svCheats_Stats = fopen("svCheats_Stats.txt", io_append);
  754. fwrite(svCheats_Stats, "0");
  755. }
  756. else
  757. {
  758. new amountDetected[5];
  759. svCheats_Stats = fopen("svCheats_Stats.txt", io_read);
  760. fread(svCheats_Stats, amountDetected);
  761. svCheats_AmountDetected = strval(amountDetected);
  762. }
  763.  
  764. fclose(svCheats_Stats);
  765. SetTimer("svCheats_Detector", TIMER_TIME, 1);
  766. return 1;
  767. }
  768.  
  769. #if defined _ALS_OnFilterScriptInit
  770. #undef OnFilterScriptInit
  771. #else
  772. #define _ALS_OnFilterScriptInit
  773. #endif
  774. #define OnFilterScriptInit svCheats_OnFilterScriptInit
  775.  
  776. forward svCheats_OnFilterScriptExit();
  777. public OnFilterScriptExit()
  778. {
  779. new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write);
  780. format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected);
  781. fwrite(svCheats_Stats, amountDetected);
  782. fclose(svCheats_Stats);
  783. return 1;
  784. }
  785.  
  786. #if defined _ALS_OnFilterScriptExit
  787. #undef OnFilterScriptExit
  788. #else
  789. #define _ALS_OnFilterScriptExit
  790. #endif
  791. #define OnFilterScriptExit svCheats_OnFilterScriptExit
  792. #endif
  793.  
  794. forward svCheats_OnPlayerDeath(playerid, killerid, reason);
  795. public OnPlayerDeath(playerid, killerid, reason)
  796. {
  797. svCheats_TabbedDisabled[playerid] = true;
  798.  
  799. if(killerid == INVALID_PLAYER_ID)
  800. {
  801. if(svCheats_PossibleNinjaJack[playerid] != INVALID_PLAYER_ID)
  802. {
  803. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", svCheats_PossibleNinjaJack[playerid], CHEAT_NINJAJACK);
  804. svCheats_PossibleNinjaJack[playerid] = INVALID_PLAYER_ID;
  805. }
  806. }
  807. return CallRemoteFunction("svCheats_OnPlayerDeat", "ddd", playerid, killerid, reason);;
  808. }
  809.  
  810. #if defined _ALS_OnPlayerDeath
  811. #undef OnPlayerDeath
  812. #else
  813. #define _ALS_OnPlayerDeath
  814. #endif
  815. #define OnPlayerDeath svCheats_OnPlayerDeath
  816.  
  817. forward svCheats_OnPlayerConnect();
  818. public OnPlayerConnect(playerid)
  819. {
  820. svCheats_SecurityLevel[playerid] = 0;
  821.  
  822. #if defined JETPACK_HACK
  823. svCheats_GrantedJetpack[playerid] = false;
  824. #endif
  825.  
  826. #if defined BUNNYHOP_OFF
  827. svCheats_JumpCounters[playerid] = 0;
  828. svCheats_JumpCounterTimer[playerid] = -1;
  829. #endif
  830.  
  831. #if defined CHATSPAM_OFF
  832. svCheats_SpamCounters[playerid] = 0;
  833. #endif
  834.  
  835. #if defined WEAPON_SPAWN
  836. for(new i = 0; i < 13; i++)
  837. {
  838. svCheats_PlayerWeapons[playerid][i] = 0;
  839. }
  840. #endif
  841.  
  842. #if defined AFK_DISABLED
  843. svCheats_AFKTime[playerid] = 0;
  844. svCheats_LastAFKUpdate[playerid] = GetTickCount();
  845. svCheats_ReportedAFK[playerid] = false;
  846. #endif
  847.  
  848. #if defined TABBED_DISABLED
  849. svCheats_TabbedUpdates[playerid] = 0;
  850. svCheats_ReportedTabbed[playerid] = false;
  851. svCheats_TabbedDisabled[playerid] = true;
  852. #endif
  853.  
  854. #if defined HH_USED
  855. svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID;
  856. #endif
  857.  
  858. #if defined NINJAJACK_CHEAT
  859. svCheats_PossibleNinjaJack[playerid] = INVALID_PLAYER_ID;
  860. #endif
  861. return CallRemoteFunction("svCheats_OnPlayerConnect", "d", playerid);
  862. }
  863.  
  864. #if defined _ALS_OnPlayerConnect
  865. #undef OnPlayerConnect
  866. #else
  867. #define _ALS_OnPlayerConnect
  868. #endif
  869. #define OnPlayerConnect svCheats_OnPlayerConnect
  870.  
  871. forward svCheats_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  872. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  873. {
  874. #if defined BUNNYHOP_OFF
  875. if(newkeys & KEY_JUMP)
  876. {
  877. if(svCheats_SecurityLevel[playerid] < BUNNYHOP_OFF || BUNNYHOP_OFF == -1)
  878. {
  879. new ai = GetPlayerAnimationIndex(playerid);
  880. if(ai != 1061 && ai != 1062 && ai != 1064 && ai != 1066 && ai != 1195 && ai != 1997)
  881. {
  882. svCheats_JumpCounters[playerid]++;
  883.  
  884. if(svCheats_JumpCounterTimer[playerid] > -1)
  885. {
  886. KillTimer(svCheats_JumpCounterTimer[playerid]);
  887. svCheats_JumpCounerTimer[playerid] = -1;
  888. }
  889.  
  890. if(svCheats_JumpCounters[playerid] == BUNNYHOP_AMOUNT)
  891. {
  892. svCheats_JumpCounters[playerid] = 0;
  893. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_BUNNYHOP);
  894. svCheats_AmountDetected++;
  895. }
  896. else
  897. {
  898. svCheats_JumpCounterTimer[playerid] = SetTimerEx("svCheats_JumpCountersDown", 3000, 0, "i", playerid);
  899. }
  900. }
  901. }
  902. }
  903. #endif
  904.  
  905. #if defined WEAPON_SPAWN
  906. if(newkeys & KEY_FIRE)
  907. {
  908. if(svCheats_SecurityLevel[playerid] < WEAPON_SPAWN || WEAPON_SPAWN == -1)
  909. {
  910. new w = GetPlayerWeapon(playerid);
  911. if(w > 0)
  912. {
  913. if(svCheats_PlayerWeapons[playerid][svCheats_GetWeaponSlot(w)] != w)
  914. {
  915. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_WEAPON_SPAWN);
  916. svCheats_AmountDetected++;
  917. }
  918. }
  919. }
  920. }
  921. #endif
  922. return CallRemoteFunction("svCheats_OnPlayerKeyStateChange", "ddd", playerid, newkeys, oldkeys);
  923. }
  924.  
  925. #if defined _ALS_OnPlayerKeyStateChange
  926. #undef OnPlayerKeyStateChange
  927. #else
  928. #define _ALS_OnPlayerKeyStateChange
  929. #endif
  930. #define OnPlayerKeyStateChange svCheats_OnPlayerKeyStateChange
  931.  
  932. forward svCheats_OnPlayerText(playerid, text[]);
  933. public OnPlayerText(playerid, text[])
  934. {
  935. #if defined SWEARING_OFF
  936. if(svCheats_SecurityLevel[playerid] < SWEARING_OFF || SWEARING_OFF == -1)
  937. {
  938. for(new c = 0; c < sizeof(CurseWords); c++)
  939. {
  940. if(strfind(string, CurseWords[c], true) > -1)
  941. {
  942. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_SWEARING);
  943. svCheats_AmountDetected++;
  944. return 0;
  945. }
  946. }
  947. }
  948. #endif
  949.  
  950. #if defined CHATSPAM_OFF
  951. if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  952. {
  953. svCheats_SpamCounters[playerid]++;
  954.  
  955. if(svCheats_SpamCounters[playerid] == CHATSPAM_LINES)
  956. {
  957. svCheats_SpamCounters[playerid] = 0;
  958. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_CHATSPAM);
  959. svCheats_AmountDetected++;
  960. return 0;
  961. }
  962. }
  963. #endif
  964.  
  965. #if defined AFK_DISABLED
  966. if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1)
  967. {
  968. svCheats_AFKTime[playerid] = 0;
  969. svCheats_ReportedAFK[playerid] = false;
  970. }
  971. #endif
  972. return CallRemoteFunction("svCheats_OnPlayerText", "ds", playerid, text);
  973. }
  974.  
  975. #if defined _ALS_OnPlayerText
  976. #undef OnPlayerText
  977. #else
  978. #define _ALS_OnPlayerText
  979. #endif
  980. #define OnPlayerText svCheats_OnPlayerText
  981.  
  982. #if defined VEHICLE_REPAIR
  983. forward svCheats_OnVehicleSpawn(vehicleid);
  984. public OnVehicleSpawn(vehicleid)
  985. {
  986. svCheats_VehicleHealth[vehicleid] = 1000.0;
  987. return CallRemoteFunction("svCheats_OnVehicleSpawn", "d", vehicleid);
  988. }
  989.  
  990. #if defined _ALS_OnVehicleSpawn
  991. #undef OnVehicleSpawn
  992. #else
  993. #define _ALS_OnVehicleSpawn
  994. #endif
  995. #define OnVehicleSpawn svCheats_OnVehicleSpawn
  996.  
  997. forward svCheats_OnPlayerStateChange(playerid, newstate, oldstate);
  998. public OnPlayerStateChange(playerid, newstate, oldstate)
  999. {
  1000. if(newstate == PLAYER_STATE_DRIVER)
  1001. {
  1002. #if defined VEHICLE_REPAIR
  1003. new vehicleid = GetPlayerVehicleID(playerid);
  1004. GetVehicleHealth(vehicleid, svCheats_VehicleHealth[vehicleid]);
  1005. #endif
  1006.  
  1007. #if defined NINJAJACK_OFF
  1008. #if defined USE_FOREACH
  1009. foreach(new i: Player)
  1010. {
  1011. if(svCheats_PossibleNinjaJack[i] == playerid)
  1012. {
  1013. svCheats_PossibleNinjaJack[i] = INVALID_PLAYER_ID;
  1014. break;
  1015. }
  1016. }
  1017. #else
  1018. for(new i = 0; i < MAX_PLAYERS; i++)
  1019. {
  1020. if(IsPlayerConnected(i))
  1021. {
  1022. if(svCheats_PossibleNinjaJack[i] == playerid)
  1023. {
  1024. svCheats_PossibleNinjaJack[i] = INVALID_PLAYER_ID;
  1025. break;
  1026. }
  1027. }
  1028. }
  1029. #endif
  1030. #endif
  1031. }
  1032. return CallRemoteFunction("svCheats_OnPlayerStateChange", "ddd", playerid, newstate, oldstate);
  1033. }
  1034.  
  1035. #if defined _ALS_OnPlayerStateChange
  1036. #undef OnPlayerStateChange
  1037. #else
  1038. #define _ALS_OnPlayerStateChange
  1039. #endif
  1040. #define OnPlayerStateChange svCheats_OnPlayerStateChange
  1041. #endif
  1042.  
  1043. #if defined CHEAT_TABBED
  1044. forward svCheats_OnPlayerUpdate(playerid);
  1045. public OnPlayerUpdate(playerid)
  1046. {
  1047. svCheats_TabbedUpdates[playerid] = 0;
  1048. svCheats_ReportedTabbed[playerid] = false;
  1049. return CallRemoteFunction("svCheats_OnPlayerUpdate", "d", playerid);
  1050. }
  1051.  
  1052. #if defined _ALS_OnPlayerUpdate
  1053. #undef OnPlayerUpdate
  1054. #else
  1055. #define _ALS_OnPlayerUpdate
  1056. #endif
  1057. #define OnPlayerUpdate svCheats_OnPlayerUpdate
  1058.  
  1059. forward svCheats_OnPlayerSpawn(playerid);
  1060. public OnPlayerSpawn(playerid)
  1061. {
  1062. svCheats_TabbedDisabled[playerid] = false;
  1063. return CallRemoteFunction("svCheats_OnPlayerSpawn", "d", playerid);;
  1064. }
  1065.  
  1066. #if defined _ALS_OnPlayerSpawn
  1067. #undef OnPlayerSpawn
  1068. #else
  1069. #define _ALS_OnPlayerSpawn
  1070. #endif
  1071. #define OnPlayerSpawn svCheats_OnPlayerSpawn
  1072.  
  1073. forward svCheats_OnPlayerEnterVehicle(playerid, vehicleid, ispassenger);
  1074. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  1075. {
  1076. #if defined DRVBY_RESTRICT
  1077. if(svCheats_SecurityLevel[playerid] < DRVBY_RESTRICT || DRVBY_RESTRICT == -1)
  1078. {
  1079. if(ispassenger)
  1080. {
  1081. new w = GetPlayerWeapon(playerid);
  1082. if(w > 0)
  1083. {
  1084. new allowedWeapons[10], bool: allowed;
  1085. sscanf(DRIVEBY_WEAPONS, "a<i>[10]", allowedWeapons);
  1086.  
  1087. for(new i = 0; i < sizeof(allowedWeapons); i++)
  1088. {
  1089. if(w == allowedWeapons[i])
  1090. {
  1091. allowed = true;
  1092. break;
  1093. }
  1094. }
  1095.  
  1096. if(allowed == false)
  1097. {
  1098. SetPlayerArmedWeapon(playerid, 0);
  1099. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_DRIVEBY);
  1100. svCheats_AmountDetected++;
  1101. }
  1102. }
  1103. }
  1104. }
  1105. #endif
  1106.  
  1107. #if defined DDRIVEBY_OFF
  1108. if(svCheats_SecurityLevel[playerid] < DDRIVEBY_OFF || DDRIVEBY_OFF == -1)
  1109. {
  1110. if(!ispassenger)
  1111. {
  1112. new w = GetPlayerWeapon(playerid);
  1113. if(w > 0)
  1114. {
  1115. SetPlayerArmedWeapon(playerid, 0);
  1116. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_DDRIVEBY);
  1117. svCheats_AmountDetected++;
  1118. }
  1119. }
  1120. }
  1121. #endif
  1122.  
  1123. #if defined NINJAJACK_CHEAT
  1124. if(svCheats_SecurityLevel[playerid] < NINJAJACK_CHEAT || NINJAJACK_CHEAT == -1)
  1125. {
  1126. if(!ispassenger)
  1127. {
  1128. #if defined USE_FOREACH
  1129. foreach(new i: Player)
  1130. {
  1131. if(GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER)
  1132. {
  1133. svCheats_PossibleNinjaJack[i] = playerid;
  1134. break;
  1135. }
  1136. }
  1137. #else
  1138. for(new i = 0; i < MAX_PLAYERS; i++)
  1139. {
  1140. if(IsPlayerConnected(i))
  1141. {
  1142. if(GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER)
  1143. {
  1144. svCheats_PossibleNinjaJack[i] = playerid;
  1145. break;
  1146. }
  1147. }
  1148. }
  1149. #endif
  1150. }
  1151. }
  1152. #endif
  1153.  
  1154. return CallRemoteFunction("svCheats_OnPlayerEnterVehicle", "ddd", playerid, vehicleid, ispassenger);
  1155. }
  1156.  
  1157. #if defined _ALS_OnPlayerEnterVehicle
  1158. #undef OnPlayerEnterVehicle
  1159. #else
  1160. #define _ALS_OnPlayerEnterVehicle
  1161. #endif
  1162. #define OnPlayerEnterVehicle svCheats_OnPlayerEnterVehicle
  1163.  
  1164. #if defined USE_ZCMD
  1165. #if defined HH_USED
  1166. COMMAND:hh(playerid, params[])
  1167. {
  1168. if(svCheats_SecurityLevel[playerid] < HH_USED)
  1169. {
  1170. return SendClientMessage(playerid, -1, "You are not authorized to use this command.");
  1171. }
  1172.  
  1173. new svCheats_giveplayerid;
  1174. if(sscanf(params, "u", svCheats_giveplayerid))
  1175. {
  1176. return SendClientMessage(playerid, -1, "USAGE: /hh [player]");
  1177. }
  1178.  
  1179. if(svCheats_ReportedTabbed[svCheats_giveplayerid] == true)
  1180. {
  1181. return SendClientMessage(playerid, -1, "You may not health hack check tabbed players.");
  1182. }
  1183.  
  1184. if(svCheats_HH[svCheats_giveplayerid][svCheckedBy] != INVALID_PLAYER_ID)
  1185. {
  1186. return SendClientMessage(playerid, -1, "That player is already being checked for health hacks.");
  1187. }
  1188.  
  1189. new string[128], playersName[MAX_PLAYER_NAME], Float: playersPos[3];
  1190.  
  1191. GetPlayerName(svCheats_giveplayerid, playersName, sizeof(playersName));
  1192. format(string, sizeof(string), "Checking %s for health hacks...", playersName);
  1193. SendClientMessage(playerid, -1, string);
  1194.  
  1195. GetPlayerPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  1196. SetPlayerCameraLookAt(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  1197. SetPlayerCameraPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2] + 5);
  1198.  
  1199. for(new i = 0; i < 3; i++)
  1200. {
  1201. svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][i] = playersPos[i];
  1202. }
  1203.  
  1204. GetPlayerFacingAngle(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][3]);
  1205.  
  1206. svCheats_HH[svCheats_giveplayerid][svInterior] = GetPlayerInterior(svCheats_giveplayerid);
  1207. svCheats_HH[svCheats_giveplayerid][svVirtualWorld] = GetPlayerVirtualWorld(svCheats_giveplayerid);
  1208.  
  1209. if(IsPlayerInAnyVehicle(svCheats_giveplayerid))
  1210. {
  1211. svCheats_HH[svCheats_giveplayerid][svInVehicle] = true;
  1212. svCheats_HH[svCheats_giveplayerid][svVehicleID] = GetPlayerVehicleID(svCheats_giveplayerid);
  1213. svCheats_HH[svCheats_giveplayerid][svVehicleSeat] = GetPlayerVehicleSeat(svCheats_giveplayerid);
  1214. }
  1215. else
  1216. {
  1217. svCheats_HH[svCheats_giveplayerid][svInVehicle] = false;
  1218. }
  1219.  
  1220. GetPlayerHealth(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svHealth]);
  1221. GetPlayerArmour(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svArmor]);
  1222.  
  1223. svCheats_HH[svCheats_giveplayerid][svCheckedBy] = playerid;
  1224.  
  1225. SetPlayerInterior(svCheats_giveplayerid, 0);
  1226. SetPlayerPos(svCheats_giveplayerid, 0.0, 0.0, 8.0);
  1227. SetPlayerHealth(svCheats_giveplayerid, 100.0);
  1228. SetPlayerArmour(svCheats_giveplayerid, 0.0);
  1229.  
  1230. SetTimerEx("svCheats_HealthHackCheck", 1350 + GetPlayerPing(svCheats_giveplayerid), 0, "i", svCheats_giveplayerid);
  1231. return 1;
  1232. }
  1233. #endif
  1234.  
  1235. #if defined ACSTATS_USED
  1236. COMMAND:acstats(playerid, params[])
  1237. {
  1238. new string[50];
  1239. format(string, sizeof(string), "(svCheats) Cheaters Detected: %d", svCheats_AmountDetected);
  1240. SendClientMessage(playerid, -1, string);
  1241. return 1;
  1242. }
  1243. #endif
  1244. #else
  1245. forward svCheats_OnPlayerCommandText(playerid, cmdtext[]);
  1246. public OnPlayerCommandText(playerid, cmdtext[])
  1247. {
  1248. #if defined HH_USED
  1249. new svCheats_cmd[5];
  1250. sscanf(cmdtext, "s[5]", svCheats_cmd);
  1251. if(strcmp(svCheats_cmd, "/hh", true) == 0)
  1252. {
  1253. if(svCheats_SecurityLevel[playerid] < HH_USED)
  1254. {
  1255. return SendClientMessage(playerid, -1, "You are not authorized to use this command.");
  1256. }
  1257.  
  1258. new svCheats_giveplayerid;
  1259. if(sscanf(cmdtext, "{s[5]}u", svCheats_giveplayeid))
  1260. {
  1261. return SendClientMessage(playerid, -1, "USAGE: /hh [player]");
  1262. }
  1263.  
  1264. if(svCheats_ReportedTabbed[svCheats_giveplayerid] == true)
  1265. {
  1266. return SendClientMessage(playerid, -1, "You may not health hack check tabbed players.");
  1267. }
  1268.  
  1269. if(svCheats_HH[svCheats_giveplayerid][svCheckedBy] != INVALID_PLAYER_ID)
  1270. {
  1271. return SendClientMessage(playerid, -1, "That player is already being checked for health hacks.");
  1272. }
  1273.  
  1274. new string[128], playersName[MAX_PLAYER_NAME], Float: playersPos[3];
  1275.  
  1276. GetPlayerName(svCheats_giveplayerid, playersName, sizeof(playersName));
  1277. format(string, sizeof(string), "Checking %s for health hacks...", playersName);
  1278. SendClientMessage(playerid, -1, string);
  1279.  
  1280. GetPlayerPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  1281. SetPlayerCameraLookAt(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  1282. SetPlayerCameraPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2] + 5);
  1283.  
  1284. for(new i = 0; i < 3; i++)
  1285. {
  1286. svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][i] = playersPos[i];
  1287. }
  1288.  
  1289. GetPlayerFacingAngle(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][3]);
  1290.  
  1291. svCheats_HH[svCheats_giveplayerid][svInterior] = GetPlayerInterior(svCheats_giveplayerid);
  1292. svCheats_HH[svCheats_giveplayerid][svVirtualWorld] = GetPlayerVirtualWorld(svCheats_giveplayerid);
  1293.  
  1294. if(IsPlayerInAnyVehicle(svCheats_giveplayerid))
  1295. {
  1296. svCheats_HH[svCheats_giveplayerid][svInVehicle] = true;
  1297. svCheats_HH[svCheats_giveplayerid][svVehicleID] = GetPlayerVehicleID(svCheats_giveplayerid);
  1298. svCheats_HH[svCheats_giveplayerid][svVehicleSeat] = GetPlayerVehicleSeat(svCheats_giveplayerid);
  1299. }
  1300. else
  1301. {
  1302. svCheats_HH[svCheats_giveplayerid][svInVehicle] = false;
  1303. }
  1304.  
  1305. GetPlayerHealth(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svHealth]);
  1306. GetPlayerArmour(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svArmor]);
  1307.  
  1308. svCheats_HH[svCheats_giveplayerid][svCheckedBy] = playerid;
  1309.  
  1310. SetPlayerInterior(svCheats_giveplayerid, 0);
  1311. SetPlayerPos(svCheats_giveplayerid, 0.0, 0.0, 8.0);
  1312. SetPlayerHealth(svCheats_giveplayerid, 100.0);
  1313. SetPlayerArmour(svCheats_giveplayerid, 0.0);
  1314.  
  1315. SetTimerEx("svCheats_HealthHackCheck", 1350 + GetPlayerPing(svCheats_giveplayerid), 0, "i", svCheats_giveplayerid);
  1316. return 1;
  1317. }
  1318. #endif
  1319.  
  1320. #if defined ACSTATS_USED
  1321. if(strcmp(cmdtext, "/acstats", true) == 0)
  1322. {
  1323. new string[50];
  1324. format(string, sizeof(string), "(svCheats) Cheaters Detected: %d", svCheats_AmountDetected);
  1325. SendClientMessage(playerid, -1, string);
  1326. return 1;
  1327. }
  1328. #endif
  1329. return CallRemoteFunction("svCheats_OnPlayerCommandText", "ds", playerid, cmdtext);
  1330. }
  1331.  
  1332. #if defined _ALS_OnPlayerCommandText
  1333. #undef OnPlayerCommandText
  1334. #else
  1335. #define _ALS_OnPlayerCommandText
  1336. #endif
  1337. #define OnPlayerCommandText svCheats_OnPlayerCommandText
  1338. #endif
  1339.  
  1340. #if defined HH_USED
  1341. forward svCheats_OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid);
  1342. public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
  1343. {
  1344. if(issuerid == INVALID_PLAYER_ID)
  1345. {
  1346. if(svCheats_HH[playerid][svCheckedBy] != INVALID_PLAYER_ID)
  1347. {
  1348. new string[128], playersName[MAX_PLAYER_NAME], playerid = svCheats_HH[playerid][svCheckedBy];
  1349.  
  1350. GetPlayerName(playerid, playersName, sizeof(playersName));
  1351. format(string, sizeof(string), "The health hack check on %s has been finished and the result is {F81414}negative{FFFFFF}.", playersName);
  1352. SendClientMessage(giveplayerid, -1, string);
  1353.  
  1354. svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID;
  1355.  
  1356. SetPlayerVirtualWorld(playerid, svCheats_HH[playerid][svVirtualWorld]);
  1357. SetPlayerInterior(playerid, svCheats_HH[playerid][svInterior]);
  1358. SetPlayerPos(playerid, svCheats_HH[playerid][svOldPlayerPos][0], svCheats_HH[playerid][svOldPlayerPos][1], svCheats_HH[playerid][svOldPlayerPos][2]);
  1359. SetPlayerFacingAngle(playerid, svCheats_HH[playerid][svOldPlayerPos][3]);
  1360.  
  1361. if(svCheats_HH[playerid][svInVehicle] == true)
  1362. {
  1363. PutPlayerInVehicle(playerid, svCheats_HH[playerid][svVehicleID], svCheats_HH[playerid][svVehicleSeat]);
  1364. }
  1365.  
  1366. SetPlayerHealth(playerid, svCheats_HH[playerid][svHealth]);
  1367. SetPlayerArmour(playerid, svCheats_HH[playerid][svArmor]);
  1368.  
  1369. SetCameraBehindPlayer(playerid);
  1370. }
  1371. }
  1372. return CallRemoteFunction("svCheats_OnPlayerTakeDamage", "ddfd", playerid, issuerid, amount, weaponid);
  1373. }
  1374.  
  1375. #if defined _ALS_OnPlayerTakeDamage
  1376. #undef OnPlayerTakeDamage
  1377. #else
  1378. #define _ALS_OnPlayerTakeDamage
  1379. #endif
  1380. #define OnPlayerTakeDamage svCheats_OnPlayerTakeDamage
  1381. #endif
  1382. #endif
  1383. #endif
  1384.  
  1385. forward svCheats_HealthHackCheck(giveplayerid);
  1386. public svCheats_HealthHackCheck(giveplayerid)
  1387. {
  1388. if(svCheats_HH[giveplayerid][svCheckedBy] != INVALID_PLAYER_ID)
  1389. {
  1390. new string[128], playersName[MAX_PLAYER_NAME], playerid = svCheats_HH[giveplayerid][svCheckedBy];
  1391.  
  1392. GetPlayerName(giveplayerid, playersName, sizeof(playersName));
  1393. format(string, sizeof(string), "The health hack check on %s has been finished and the result is {6EF83C}positive{FFFFFF}.", playersName);
  1394. SendClientMessage(playerid, -1, string);
  1395.  
  1396. svCheats_HH[giveplayerid][svCheckedBy] = INVALID_PLAYER_ID;
  1397.  
  1398. SetPlayerVirtualWorld(giveplayerid, svCheats_HH[giveplayerid][svVirtualWorld]);
  1399. SetPlayerInterior(giveplayerid, svCheats_HH[giveplayerid][svInterior]);
  1400. SetPlayerPos(giveplayerid, svCheats_HH[giveplayerid][svOldPlayerPos][0], svCheats_HH[giveplayerid][svOldPlayerPos][1], svCheats_HH[giveplayerid][svOldPlayerPos][2]);
  1401. SetPlayerFacingAngle(giveplayerid, svCheats_HH[giveplayerid][svOldPlayerPos][3]);
  1402.  
  1403. if(svCheats_HH[giveplayerid][svInVehicle] == true)
  1404. {
  1405. PutPlayerInVehicle(giveplayerid, svCheats_HH[giveplayerid][svVehicleID], svCheats_HH[giveplayerid][svVehicleSeat]);
  1406. }
  1407.  
  1408. SetPlayerHealth(giveplayerid, svCheats_HH[giveplayerid][svHealth]);
  1409. SetPlayerArmour(giveplayerid, svCheats_HH[giveplayerid][svArmor]);
  1410.  
  1411. SetCameraBehindPlayer(giveplayerid);
  1412.  
  1413. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", giveplayerid, CHEAT_GODMODE);
  1414. svCheats_AmountDetected++;
  1415. }
  1416. return 1;
  1417. }
  1418.  
  1419. forward svCheats_JumpCountersDown(playerid);
  1420. public svCheats_JumpCountersDown(playerid)
  1421. {
  1422. svCheats_JumpCounters[playerid]--;
  1423. svCheats_JumpCounterTimer[playerid] = -1;
  1424. return 1;
  1425. }
  1426.  
  1427. svCheats_GetWeaponSlot(weaponid)
  1428. {
  1429. switch(weaponid)
  1430. {
  1431. case 0, 1:
  1432. {
  1433. return 0;
  1434. }
  1435. case 2, 3, 4, 5, 6, 7, 8, 9:
  1436. {
  1437. return 1;
  1438. }
  1439. case 22, 23, 24:
  1440. {
  1441. return 2;
  1442. }
  1443. case 25, 26, 27:
  1444. {
  1445. return 3;
  1446. }
  1447. case 28, 29, 32:
  1448. {
  1449. return 4;
  1450. }
  1451. case 30, 31:
  1452. {
  1453. return 5;
  1454. }
  1455. case 33, 34:
  1456. {
  1457. return 6;
  1458. }
  1459. case 35, 36, 37, 38:
  1460. {
  1461. return 7;
  1462. }
  1463. case 16, 17, 18, 39, 40:
  1464. {
  1465. return 8;
  1466. }
  1467. case 41, 42, 43:
  1468. {
  1469. return 9;
  1470. }
  1471. case 10, 11, 12, 13, 14, 15:
  1472. {
  1473. return 10;
  1474. }
  1475. case 44, 45, 46:
  1476. {
  1477. return 11;
  1478. }
  1479. }
  1480. return 0;
  1481. }
  1482.  
  1483. svCheats_IsPlayerAtRepairPoint(playerid)
  1484. {
  1485. if(GetPlayerCameraMode(playerid) == 15) return 1;
  1486. if(IsPlayerInRangeOfPoint(playerid, 25.0, 2067.00, -1831.65, 13.55)) return 1;
  1487. if(IsPlayerInRangeOfPoint(playerid, 25.0, 1024.97, -1023.88, 32.10)) return 1;
  1488. if(IsPlayerInRangeOfPoint(playerid, 25.0, 1041.19, -1022.50, 32.11)) return 1;
  1489. if(IsPlayerInRangeOfPoint(playerid, 25.0, 720.25, -457.17, 16.34)) return 1;
  1490. if(IsPlayerInRangeOfPoint(playerid, 25.0, 2386.66, 1045.68, 10.82)) return 1;
  1491. if(IsPlayerInRangeOfPoint(playerid, 25.0, 1972.50, 2163.03, 11.07)) return 1;
  1492. if(IsPlayerInRangeOfPoint(playerid, 25.0, -1420.58, 2586.17, 55.84)) return 1;
  1493. if(IsPlayerInRangeOfPoint(playerid, 25.0, -1904.90, 283.96, 41.05)) return 1;
  1494. if(IsPlayerInRangeOfPoint(playerid, 25.0, -2719.46, 217.77, 4.48)) return 1;
  1495. return 0;
  1496. }
  1497.  
  1498. svCheats_GetVehicleSpeed(vehicleid)
  1499. {
  1500. new Float: vVel[3];
  1501. GetVehicleVelocity(vehicleid, vVel[0], vVel[1], vVel[2]);
  1502. return floatround(floatsqroot((vVel[0]*vVel[1]+vVel[2]*vVel[2]))*100.0*1.6);
  1503. }
  1504.  
  1505. public svCheats_Detector()
  1506. {
  1507. #if defined USE_FOREACH
  1508. foreach(new playerid: Player)
  1509. {
  1510. #if defined HIGH_PING
  1511. if(svCheats_SecurityLevel[playerid] < HIGH_PING || HIGH_PING == -1)
  1512. {
  1513. if(GetPlayerPing(playerid) > MAX_PING)
  1514. {
  1515. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_HIGH_PING);
  1516. svCheats_AmountDetected++;
  1517. }
  1518. }
  1519. #endif
  1520.  
  1521. #if defined SPEED_HACK
  1522. if(svCheats_SecurityLevel[playerid] < SPEED_HACK || SPEED_HACK == -1)
  1523. {
  1524. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1525. {
  1526. new vehicleid = GetPlayerVehicleID(playerid);
  1527. if(svCheats_GetVehicleSpeed(vehicleid) > MAX_SPEED)
  1528. {
  1529. if(GetVehicleModel(vehicleid) != 520)
  1530. {
  1531. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_SPEED_HACK);
  1532. svCheats_AmountDetected++;
  1533. }
  1534. }
  1535. }
  1536. }
  1537. #endif
  1538.  
  1539. #if defined JETPACK_HACK
  1540. if(svCheats_SecurityLevel[playerid] < JETPACK_HACK || JETPACK_HACK == -1)
  1541. {
  1542. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK)
  1543. {
  1544. if(svCheats_GrantedJetpack[playerid] == false)
  1545. {
  1546. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_JETPACK_HACK);
  1547. svCheats_AmountDetected++;
  1548. }
  1549. }
  1550. }
  1551. #endif
  1552.  
  1553. #if defined AIRBREAK_HACK
  1554. if(svCheats_SecurityLevel[playerid] < AIRBREAK_HACK || AIRBREAK_HACK == -1)
  1555. {
  1556. new ai = GetPlayerAnimationIndex(playerid);
  1557. if(ai == 1231 || ai == 1266)
  1558. {
  1559. new Float: playersPos[3];
  1560. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  1561. if(playersPos[2] >= 4.0)
  1562. {
  1563. if(!IsPlayerInRangeOfPoint(playerid, 200.0, 602.74, 871.44, -20.65) && !IsPlayerInRangeOfPoint(playerid, 300.0, 1678.38, -2291.18, -1.00))
  1564. {
  1565. if(GetPointZPos(playersPos[0], playersPos[1]) < playersPos[2] - 15.0)
  1566. {
  1567. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_AIRBREAK_HACK);
  1568. svCheats_AmountDetected++;
  1569. }
  1570. }
  1571. }
  1572. }
  1573. }
  1574. #endif
  1575.  
  1576. #if defined FLY_HACK
  1577. if(svCheats_SecurityLevel[playerid] < FLY_HACK || FLY_HACK == -1)
  1578. {
  1579. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  1580. {
  1581. new ai = GetPlayerAnimationIndex(playerid);
  1582. if(ai == 1538 || ai == 1538 || ai == 1543)
  1583. {
  1584. new Float: playersPos[3];
  1585. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  1586. if(playersPos[2] >= 4.0)
  1587. {
  1588. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_FLY_HACK);
  1589. svCheats_AmountDetected++;
  1590. }
  1591. }
  1592. }
  1593. }
  1594. #endif
  1595.  
  1596. #if defined TELEPORT_HACK
  1597. if(svCheats_SecurityLevel[playerid] < TELEPORT_HACK || TELEPORT_HACK == -1)
  1598. {
  1599. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  1600. {
  1601. new interior = GetPlayerInterior(playerid);
  1602. if(interior > 0)
  1603. {
  1604. new allowedInteriors[10], bool: allowed;
  1605. sscanf(USED_INTERIORS, "a<i>[10]", allowedInteriors);
  1606.  
  1607. for(new i = 0; i < sizeof(allowedInteriors); i++)
  1608. {
  1609. if(allowedInteriors[i] == interior)
  1610. {
  1611. allowed = true;
  1612. break;
  1613. }
  1614. }
  1615.  
  1616. if(allowed == false)
  1617. {
  1618. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_TELEPORT_HACK);
  1619. svCheats_AmountDetected++;
  1620. }
  1621. }
  1622. }
  1623. }
  1624. #endif
  1625.  
  1626. #if defined VEHICLE_REPAIR
  1627. if(svCheats_SecurityLevel[playerid] < VEHICLE_REPAIR || VEHICLE_REPAIR == -1)
  1628. {
  1629. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1630. {
  1631. new vehicleid = GetPlayerVehicleID(playerid), Float: vHealth;
  1632. GetVehicleHealth(vehicleid, vHealth);
  1633. if(vHealth > svCheats_VehicleHealth[vehicleid])
  1634. {
  1635. if(!svCheats_IsPlayerAtRepairPoint(playerid))
  1636. {
  1637. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_VEHICLE_REPAIR);
  1638. svCheats_AmountDetected++;
  1639. }
  1640. }
  1641. svCheats_VehicleHealth[vehicleid] = vHealth;
  1642. }
  1643. }
  1644. #endif
  1645.  
  1646. #if defined CHATSPAM_OFF
  1647. if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  1648. {
  1649. svCheats_SpamCounters[playerid]--;
  1650.  
  1651. if(svCheats_SpamCounters[playerid] < 0)
  1652. {
  1653. svCheats_SpamCounters[playerid] = 0;
  1654. }
  1655. }
  1656. #endif
  1657.  
  1658. #if defined AFK_DISABLED
  1659. if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1)
  1660. {
  1661. if(svCheats_ReportedAFK[playerid] == false)
  1662. {
  1663. svCheats_AFKTime[playerid] += GetTickCount() - svCheats_LastAFKUpdate[playerid];
  1664. svCheats_LastAFKUpdate[playerid] = GetTickCount();
  1665.  
  1666. if(svCheats_ReportedAFK[playerid] == false)
  1667. {
  1668. new AFKMinutes = svCheats_AFKTime[playerid] / 60000;
  1669. if(AFKMinutes >= AFK_MINUTES)
  1670. {
  1671. svCheats_ReportedAFK[playerid] = true;
  1672. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_AFK);
  1673. svCheats_AmountDetected++;
  1674. }
  1675. }
  1676. }
  1677. }
  1678. #endif
  1679.  
  1680. #if defined TABBED_DISABLED
  1681. if(svCheats_SecurityLevel[playerid] < TABBED_DISABLED || TABBED_DISABLED == -1)
  1682. {
  1683. if(svCheats_ReportedTabbed[playerid] == false && svCheats_TabbedDisabled[playerid] == false)
  1684. {
  1685. if(GetPlayerCameraMode(playerid) != 55)
  1686. {
  1687. svCheats_TabbedUpdates[playerid]++;
  1688.  
  1689. if(svCheats_TabbedUpdates[playerid] > 1)
  1690. {
  1691. svCheats_TabbedUpdates[playerid] = 0;
  1692. svCheats_ReportedTabbed[playerid] = true;
  1693. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_TABBED);
  1694. svCheats_AmountDetected++;
  1695. }
  1696. }
  1697. }
  1698. }
  1699. #endif
  1700. }
  1701. #else
  1702. for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
  1703. {
  1704. if(IsPlayerConnected(playerid))
  1705. {
  1706. #if defined HIGH_PING
  1707. if(svCheats_SecurityLevel[playerid] < HIGH_PING || HIGH_PING == -1)
  1708. {
  1709. if(GetPlayerPing(playerid) > MAX_PING)
  1710. {
  1711. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_HIGH_PING);
  1712. svCheats_AmountDetected++;
  1713. }
  1714. }
  1715. #endif
  1716.  
  1717. #if defined SPEED_HACK
  1718. if(svCheats_SecurityLevel[playerid] < SPEED_HACK || SPEED_HACK == -1)
  1719. {
  1720. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1721. {
  1722. new vehicleid = GetPlayerVehicleID(playerid);
  1723. if(svCheats_GetVehicleSpeed(vehicleid) > MAX_SPEED)
  1724. {
  1725. if(GetVehicleModel(vehicleid) != 520)
  1726. {
  1727. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_SPEED_HACK);
  1728. svCheats_AmountDetected++;
  1729. }
  1730. }
  1731. }
  1732. }
  1733. #endif
  1734.  
  1735. #if defined JETPACK_HACK
  1736. if(svCheats_SecurityLevel[playerid] < JETPACK_HACK || JETPACK_HACK == -1)
  1737. {
  1738. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK)
  1739. {
  1740. if(svCheats_GrantedJetpack[playerid] == false)
  1741. {
  1742. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_JETPACK_HACK);
  1743. svCheats_AmountDetected++;
  1744. }
  1745. }
  1746. }
  1747. #endif
  1748.  
  1749. #if defined AIRBREAK_HACK
  1750. if(svCheats_SecurityLevel[playerid] < AIRBREAK_HACK || AIRBREAK_HACK == -1)
  1751. {
  1752. new ai = GetPlayerAnimationIndex(playerid);
  1753. if(ai == 1231 || ai == 1266)
  1754. {
  1755. new Float: playersPos[3];
  1756. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  1757. if(playersPos[2] >= 4.0)
  1758. {
  1759. if(!IsPlayerInRangeOfPoint(playerid, 200.0, 602.74, 871.44, -20.65) && !IsPlayerInRangeOfPoint(playerid, 300.0, 1678.38, -2291.18, -1.00))
  1760. {
  1761. if(GetPointZPos(playersPos[0], playersPos[1]) < playersPos[2] - 15.0)
  1762. {
  1763. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_AIRBREAK_HACK);
  1764. svCheats_AmountDetected++;
  1765. }
  1766. }
  1767. }
  1768. }
  1769. }
  1770. #endif
  1771.  
  1772. #if defined FLY_HACK
  1773. if(svCheats_SecurityLevel[playerid] < FLY_HACK || FLY_HACK == -1)
  1774. {
  1775. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  1776. {
  1777. new ai = GetPlayerAnimationIndex(playerid);
  1778. if(ai == 1538 || ai == 1538 || ai == 1543)
  1779. {
  1780. new Float: playersPos[3];
  1781. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  1782. if(playersPos[2] >= 4.0)
  1783. {
  1784. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_FLY_HACK);
  1785. svCheats_AmountDetected++;
  1786. }
  1787. }
  1788. }
  1789. }
  1790. #endif
  1791.  
  1792. #if defined TELEPORT_HACK
  1793. if(svCheats_SecurityLevel[playerid] < TELEPORT_HACK || TELEPORT_HACK == -1)
  1794. {
  1795. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  1796. {
  1797. new interior = GetPlayerInterior(playerid);
  1798. if(interior > 0)
  1799. {
  1800. new allowedInteriors[10], bool: allowed;
  1801. sscanf(USED_INTERIORS, "a<i>[10]", allowedInteriors);
  1802.  
  1803. for(new i = 0; i < sizeof(allowedInteriors); i++)
  1804. {
  1805. if(allowedInteriors[i] == interior)
  1806. {
  1807. allowed = true;
  1808. break;
  1809. }
  1810. }
  1811.  
  1812. if(allowed == false)
  1813. {
  1814. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_TELEPORT_HACK);
  1815. svCheats_AmountDetected++;
  1816. }
  1817. }
  1818. }
  1819. }
  1820. #endif
  1821.  
  1822. #if defined VEHICLE_REPAIR
  1823. if(svCheats_SecurityLevel[playerid] < VEHICLE_REPAIR || VEHICLE_REPAIR == -1)
  1824. {
  1825. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1826. {
  1827. new vehicleid = GetPlayerVehicleID(playerid), Float: vHealth;
  1828. GetVehicleHealth(vehicleid, vHealth);
  1829. if(vHealth > svCheats_VehicleHealth[vehicleid])
  1830. {
  1831. if(!svCheats_IsPlayerAtRepairPoint(playerid))
  1832. {
  1833. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_VEHICLE_REPAIR);
  1834. svCheats_AmountDetected++;
  1835. }
  1836. }
  1837. svCheats_VehicleHealth[vehicleid] = vHealth;
  1838. }
  1839. }
  1840. #endif
  1841.  
  1842. #if defined CHATSPAM_OFF
  1843. if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  1844. {
  1845. svCheats_SpamCounters[playerid]--;
  1846.  
  1847. if(svCheats_SpamCounters[playerid] < 0)
  1848. {
  1849. svCheats_SpamCounters[playerid] = 0;
  1850. }
  1851. }
  1852. #endif
  1853.  
  1854. #if defined AFK_DISABLED
  1855. if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1)
  1856. {
  1857. if(svCheats_ReportedAFK[playerid] == false)
  1858. {
  1859. svCheats_AFKTime[playerid] += GetTickCount() - svCheats_LastAFKUpdate[playerid];
  1860. svCheats_LastAFKUpdate[playerid] = GetTickCount();
  1861.  
  1862. if(svCheats_ReportedAFK[playerid] == false)
  1863. {
  1864. new AFKMinutes = svCheats_AFKTime[playerid] / 60000;
  1865. if(AFKMinutes >= AFK_MINUTES)
  1866. {
  1867. svCheats_ReportedAFK[playerid] = true;
  1868. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_AFK);
  1869. svCheats_AmountDetected++;
  1870. }
  1871. }
  1872. }
  1873. }
  1874. #endif
  1875.  
  1876. #if defined TABBED_DISABLED
  1877. if(svCheats_SecurityLevel[playerid] < TABBED_DISABLED || TABBED_DISABLED == -1)
  1878. {
  1879. if(svCheats_ReportedTabbed[playerid] == false)
  1880. {
  1881. if(GetPlayerCameraMode(playerid) != 55)
  1882. {
  1883. svCheats_TabbedUpdates[playerid]++;
  1884.  
  1885. if(svCheats_TabbedUpdates[playerid] > 1)
  1886. {
  1887. svCheats_TabbedUpdates[playerid] = 0;
  1888. svCheats_ReportedTabbed[playerid] = true;
  1889. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_TABBED);
  1890. svCheats_AmountDetected++;
  1891. }
  1892. }
  1893. }
  1894. }
  1895. #endif
  1896. }
  1897. }
  1898. #endif
  1899. return 1;
  1900. }
  1901.  
  1902. stock svCheats_Debug(bool: togDebug)
  1903. {
  1904. if(togDebug == true)
  1905. {
  1906. print("(svCheats) Debugging has been turned on");
  1907. }
  1908. else if(togDebug == false)
  1909. {
  1910. print("(svCheats) Debugging has been turned off");
  1911. }
  1912.  
  1913. return svCheats_Debugging = togDebug;
  1914. }
  1915.  
  1916. stock svCheats_SetPlayerSecurityLevel(playerid, secLevel)
  1917. {
  1918. if(svCheats_Debugging == true)
  1919. {
  1920. printf("(svCheats) SetPlayerSecurityLevel(playerid = %d, secLevel = %d)", playerid, secLevel);
  1921. }
  1922.  
  1923. return svCheats_SecurityLevel[playerid] = secLevel;
  1924. }
  1925.  
  1926. stock svCheats_GetPlayerSecurityLevel(playerid)
  1927. {
  1928. if(svCheats_Debugging == true)
  1929. {
  1930. printf("(svCheats) GetPlayerSecurityLevel(playerid = %d)", playerid);
  1931. }
  1932.  
  1933. return svCheats_SecurityLevel[playerid];
  1934. }
  1935.  
  1936. stock svCheats_SetVehicleHealth(vehicleid, Float: vHealth)
  1937. {
  1938. if(svCheats_Debugging == true)
  1939. {
  1940. printf("(svCheats) SetVehicleHealth(vehicleid = %d, vHealth = %f)", vehicleid, vHealth);
  1941. }
  1942.  
  1943. return svCheats_VehicleHealth[vehicleid] = vHealth, SetVehicleHealth(vehicleid, vHealth);
  1944. }
  1945.  
  1946. stock svCheats_GivePlayerWeapon(playerid, weaponid, ammo)
  1947. {
  1948. if(svCheats_Debugging == true)
  1949. {
  1950. printf("(svCheats) GivePlayerWeapon(playerid = %d, weaponid = %d, ammo = %d)", playerid, weaponid, ammo);
  1951. }
  1952.  
  1953. return svCheats_PlayerWeapons[playerid][GetWeaponSlot(weaponid)] = weaponid, GivePlayerWeapon(playerid, weaponid, ammo);
  1954. }
  1955.  
  1956. stock svCheats_ToggleJetpack(playerid, bool: toggleJetpack)
  1957. {
  1958. if(svCheats_Debugging == true)
  1959. {
  1960. printf("(svCheats) ToggleJetpack(playerid = %d, toggleJetpack = %d)", playerid, toggleJetpack);
  1961. }
  1962.  
  1963. return svCheats_GrantedJetpack[playerid] = toggleJetpack;
  1964. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement