Advertisement
Guest User

Untitled

a guest
May 2nd, 2012
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 69.41 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.2] Created by SuperViper |
  11. //-----------------------------------------------------------------------------------|
  12.  
  13. #include <a_samp>
  14. #include <sscanf>
  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. // //|
  58. // //|
  59. // //|
  60. /* Change the anticheat settings to best fit your server */ //|
  61. #define MAX_PING (750) // Maximum server ping //|
  62. #define USED_INTERIORS "1 2" // Used interiors separated by a space //|
  63. #define MAX_SPEED (198) // Maximum vehicle speed //|
  64. #define DRIVEBY_WEAPONS "28 29 32" // Driveby allowed weapons separated by a space //|
  65. #define BUNNYHOP_AMOUNT (6) // Amount of jumps before it's called bunny hopping //|
  66. #define CHATSPAM_LINES (4) // Amount of lines sent before it's called spam //|
  67. #define AFK_MINUTES (10) // Amount of minutes before a person is AFK //|
  68. new CurseWords[][] = {"ass", "bitch", "shit", "fuck", "nigger"}; //|
  69. // ================================================================================ ///
  70. // DO NOT TOUCH ANYTHING BELOW THIS ///
  71. // ================================================================================ ///
  72.  
  73. #if defined USE_FOREACH
  74. #tryinclude <foreach>
  75. #endif
  76.  
  77. #if defined USE_YHOOKS
  78. #tryinclude <YSI\y_hooks>
  79. #endif
  80.  
  81. #if defined USE_ZCMD
  82. #tryinclude <zcmd>
  83. #endif
  84.  
  85. #if defined AIRBREAK_HACK
  86. #tryinclude <MapAndreas>
  87. #endif
  88.  
  89. #define CHEAT_HIGH_PING (1)
  90. #define CHEAT_WEAPON_SPAWN (2)
  91. #define CHEAT_SPEED_HACK (3)
  92. #define CHEAT_JETPACK_HACK (4)
  93. #define CHEAT_DRIVEBY (5)
  94. #define CHEAT_DDRIVEBY (6)
  95. #define CHEAT_SWEARING (7)
  96. #define CHEAT_AIRBREAK_HACK (8)
  97. #define CHEAT_BUNNYHOP (9)
  98. #define CHEAT_FLY_HACK (10)
  99. #define CHEAT_TELEPORT_HACK (11)
  100. #define CHEAT_VEHICLE_REPAIR (12)
  101. #define CHEAT_CHATSPAM (13)
  102. #define CHEAT_AFK (14)
  103. #define CHEAT_TABBED (15)
  104. #define CHEAT_GODMODE (16)
  105. #define CHEAT_NINJAJACK (17)
  106. #define CHEAT_HEALTHHACK (18)
  107.  
  108. forward svCheats_Detector();
  109. forward svCheats_OnPlayerCheatUpdate(playerid, cheatid);
  110.  
  111. enum e_svCheats_HH
  112. {
  113. svCheckedBy,
  114. bool: svInVehicle,
  115. svVehicleID,
  116. svVehicleSeat,
  117. Float: svOldPlayerPos[4],
  118. svInterior,
  119. svVirtualWorld,
  120. Float: svHealth,
  121. Float: svArmor,
  122. }
  123.  
  124. new svCheats_SecurityLevel[MAX_PLAYERS], bool: svCheats_Debugging, bool: svCheats_Spawned[MAX_PLAYERS];
  125. new bool: svCheats_GrantedJetpack[MAX_PLAYERS], Float: svCheats_VehicleHealth[MAX_VEHICLES] = 1000.0;
  126. new svCheats_JumpCounters[MAX_PLAYERS], svCheats_JumpCounterTimer[MAX_PLAYERS];
  127. new svCheats_PlayerWeapons[MAX_PLAYERS][13], svCheats_SpamCounters[MAX_PLAYERS];
  128. new svCheats_AFKTime[MAX_PLAYERS], svCheats_LastAFKUpdate[MAX_PLAYERS], bool: svCheats_ReportedAFK[MAX_PLAYERS];
  129. new Float: svCheats_oldPos[MAX_PLAYERS][3];
  130. new svCheats_TabbedUpdates[MAX_PLAYERS], bool: svCheats_ReportedTabbed[MAX_PLAYERS], bool: svCheats_TabbedDisabled[MAX_PLAYERS];
  131. new svCheats_HH[MAX_PLAYERS][e_svCheats_HH];
  132. new svCheats_PossibleNinjaJack[MAX_PLAYERS];
  133. new Float: svCheats_PlayerHealth[MAX_PLAYERS], Float: svCheats_PlayerArmor[MAX_PLAYERS], bool: svCheats_HealthHackDisabled
  134.  
  135. [MAX_PLAYERS];
  136. new svCheats_AmountDetected;
  137.  
  138. #if defined USE_YHOOKS
  139. #if defined GAMEMODE
  140. hook OnGameModeInit()
  141. {
  142. new File: svCheats_Stats;
  143.  
  144. if(!fexist("svCheats_Stats.txt"))
  145. {
  146. svCheats_Stats = fopen("svCheats_Stats.txt", io_append);
  147. fwrite(svCheats_Stats, "0");
  148. }
  149. else
  150. {
  151. new amountDetected[5];
  152. svCheats_Stats = fopen("svCheats_Stats.txt", io_read);
  153. fread(svCheats_Stats, amountDetected);
  154. svCheats_AmountDetected = strval(amountDetected);
  155. }
  156.  
  157. fclose(svCheats_Stats);
  158. SetTimer("svCheats_Detector", TIMER_TIME, 1);
  159. return 1;
  160. }
  161.  
  162. hook OnGameModeExit()
  163. {
  164. new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write);
  165. format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected);
  166. fwrite(svCheats_Stats, amountDetected);
  167. fclose(svCheats_Stats);
  168. return 1;
  169. }
  170. #else
  171. hook OnFilterScriptInit()
  172. {
  173. new File: svCheats_Stats;
  174.  
  175. if(!fexist("svCheats_Stats.txt"))
  176. {
  177. svCheats_Stats = fopen("svCheats_Stats.txt", io_append);
  178. fwrite(svCheats_Stats, "0");
  179. }
  180. else
  181. {
  182. new amountDetected[5];
  183. svCheats_Stats = fopen("svCheats_Stats.txt", io_read);
  184. fread(svCheats_Stats, amountDetected);
  185. svCheats_AmountDetected = strval(amountDetected);
  186. }
  187.  
  188. fclose(svCheats_Stats);
  189. SetTimer("svCheats_Detector", TIMER_TIME, 1);
  190. return 1;
  191. }
  192.  
  193. hook OnFilterScriptExit()
  194. {
  195. new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write);
  196. format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected);
  197. fwrite(svCheats_Stats, amountDetected);
  198. fclose(svCheats_Stats);
  199. return 1;
  200. }
  201. #endif
  202. hook OnPlayerConnect(playerid)
  203. {
  204. svCheats_SecurityLevel[playerid] = 0;
  205.  
  206. #if defined JETPACK_HACK
  207. svCheats_GrantedJetpack[playerid] = false;
  208. #endif
  209.  
  210. #if defined BUNNYHOP_OFF
  211. svCheats_JumpCounters[playerid] = 0;
  212. svCheats_JumpCounterTimer[playerid] = -1;
  213. #endif
  214.  
  215. #if defined CHATSPAM_OFF
  216. svCheats_SpamCounters[playerid] = 0;
  217. #endif
  218.  
  219. #if defined WEAPON_SPAWN
  220. for(new i = 0; i < 13; i++)
  221. {
  222. svCheats_PlayerWeapons[playerid][i] = 0;
  223. }
  224. #endif
  225.  
  226. #if defined AFK_DISABLED
  227. svCheats_AFKTime[playerid] = 0;
  228. svCheats_LastAFKUpdate[playerid] = GetTickCount();
  229. svCheats_ReportedAFK[playerid] = false;
  230. #endif
  231.  
  232. #if defined TABBED_DISABLED
  233. svCheats_TabbedUpdates[playerid] = 0;
  234. svCheats_ReportedTabbed[playerid] = false;
  235. svCheats_TabbedDisabled[playerid] = true;
  236. #endif
  237.  
  238. #if defined HH_USED
  239. svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID;
  240. #endif
  241.  
  242. #if defined NINJAJACK_CHEAT
  243. svCheats_PossibleNinjaJack[playerid] = INVALID_PLAYER_ID;
  244. #endif
  245.  
  246. svCheats_Spawned[playerid] = false;
  247. return 1;
  248. }
  249.  
  250. hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  251. {
  252. #if defined BUNNYHOP_OFF
  253. if(newkeys & KEY_JUMP)
  254. {
  255. if(svCheats_SecurityLevel[playerid] < BUNNYHOP_OFF || BUNNYHOP_OFF == -1)
  256. {
  257. new ai = GetPlayerAnimationIndex(playerid);
  258. if(ai != 1061 && ai != 1062 && ai != 1064 && ai != 1066 && ai != 1195 && ai != 1997 && ai != 1538 || ai
  259.  
  260. != 1538 || ai != 1543)
  261. {
  262. svCheats_JumpCounters[playerid]++;
  263.  
  264. if(svCheats_JumpCounterTimer[playerid] > -1)
  265. {
  266. KillTimer(svCheats_JumpCounterTimer[playerid]);
  267. svCheats_JumpCounterTimer[playerid] = -1;
  268. }
  269.  
  270. if(svCheats_JumpCounters[playerid] == BUNNYHOP_AMOUNT)
  271. {
  272. svCheats_JumpCounters[playerid] = 0;
  273. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_BUNNYHOP);
  274. svCheats_AmountDetected++;
  275. }
  276. else
  277. {
  278. svCheats_JumpCounterTimer[playerid] = SetTimerEx("svCheats_JumpCountersDown", 3000,
  279.  
  280. 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)
  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",
  666.  
  667. svCheats_giveplayerid);
  668. return 1;
  669. }
  670. #endif
  671.  
  672. #if defined ACSTATS_USED
  673. if(strcmp(cmdtext, "/acstats", true) == 0)
  674. {
  675. new string[50];
  676. format(string, sizeof(string), "(svCheats) Cheaters Detected: %d", svCheats_AmountDetected);
  677. SendClientMessage(playerid, -1, string);
  678. return 1;
  679. }
  680. #endif
  681. return 0;
  682. }
  683. #endif
  684.  
  685. #if defined HH_USED
  686. hook OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
  687. {
  688. if(issuerid == INVALID_PLAYER_ID)
  689. {
  690. if(svCheats_HH[playerid][svCheckedBy] != INVALID_PLAYER_ID)
  691. {
  692. new string[128], playersName[MAX_PLAYER_NAME], giveplayerid = svCheats_HH[playerid][svCheckedBy];
  693.  
  694. GetPlayerName(playerid, playersName, sizeof(playersName));
  695. format(string, sizeof(string), "The health hack check on %s has been finished and the result is {F81414}
  696.  
  697. negative{FFFFFF}.", playersName);
  698. SendClientMessage(giveplayerid, -1, string);
  699.  
  700. svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID;
  701.  
  702. SetPlayerVirtualWorld(playerid, svCheats_HH[playerid][svVirtualWorld]);
  703. SetPlayerInterior(playerid, svCheats_HH[playerid][svInterior]);
  704. SetPlayerPos(playerid, svCheats_HH[playerid][svOldPlayerPos][0], svCheats_HH[playerid][svOldPlayerPos][1],
  705.  
  706. svCheats_HH[playerid][svOldPlayerPos][2]);
  707. SetPlayerFacingAngle(playerid, svCheats_HH[playerid][svOldPlayerPos][3]);
  708.  
  709. if(svCheats_HH[playerid][svInVehicle] == true)
  710. {
  711. PutPlayerInVehicle(playerid, svCheats_HH[playerid][svVehicleID], svCheats_HH[playerid][svVehicleSeat]);
  712. }
  713.  
  714. SetPlayerHealth(playerid, svCheats_HH[playerid][svHealth]);
  715. SetPlayerArmour(playerid, svCheats_HH[playerid][svArmor]);
  716.  
  717. SetCameraBehindPlayer(playerid);
  718. }
  719. }
  720.  
  721. #if defined HEALTH_HACK
  722. if(!svCheats_PlayerArmor[playerid] || issuerid == INVALID_PLAYER_ID)
  723. {
  724. svCheats_PlayerHealth[playerid] -= amount;
  725. }
  726. else
  727. {
  728. if(svCheats_PlayerArmor[playerid] - amount >= 0)
  729. {
  730. svCheats_PlayerArmor[playerid] -= amount;
  731. }
  732. else
  733. {
  734. svCheats_PlayerHealth[playerid] -= (amount - svCheats_PlayerArmor[playerid]);
  735. svCheats_PlayerArmor[playerid] = 0;
  736. }
  737. }
  738. #endif
  739. return CallRemoteFunction("svCheats_OnPlayerTakeDamage", "ddfd", playerid, issuerid, amount, weaponid);
  740. }
  741. #endif
  742. #else
  743. #if defined GAMEMODE
  744. forward svCheats_OnGameModeInit();
  745. public OnGameModeInit()
  746. {
  747. new File: svCheats_Stats;
  748.  
  749. if(!fexist("svCheats_Stats.txt"))
  750. {
  751. svCheats_Stats = fopen("svCheats_Stats.txt", io_append);
  752. fwrite(svCheats_Stats, "0");
  753. }
  754. else
  755. {
  756. new amountDetected[5];
  757. svCheats_Stats = fopen("svCheats_Stats.txt", io_read);
  758. fread(svCheats_Stats, amountDetected);
  759. svCheats_AmountDetected = strval(amountDetected);
  760. }
  761.  
  762. fclose(svCheats_Stats);
  763. SetTimer("svCheats_Detector", TIMER_TIME, 1);
  764. return 1;
  765. }
  766.  
  767. #if defined _ALS_OnGameModeInit
  768. #undef OnGameModeInit
  769. #else
  770. #define _ALS_OnGameModeInit
  771. #endif
  772. #define OnGameModeInit svCheats_OnGameModeInit
  773.  
  774. forward svCheats_OnGameModeExit();
  775. public OnGameModeExit()
  776. {
  777. new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write);
  778. format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected);
  779. fwrite(svCheats_Stats, amountDetected);
  780. fclose(svCheats_Stats);
  781. return 1;
  782. }
  783.  
  784. #if defined _ALS_OnGameModeExit
  785. #undef OnGameModeExit
  786. #else
  787. #define _ALS_OnGameModeExit
  788. #endif
  789. #define OnGameModeExit svCheats_OnGameModeExit
  790. #else
  791. forward svCheats_OnFilterScriptInit();
  792. public OnFilterScriptInit()
  793. {
  794. new File: svCheats_Stats;
  795.  
  796. if(!fexist("svCheats_Stats.txt"))
  797. {
  798. svCheats_Stats = fopen("svCheats_Stats.txt", io_append);
  799. fwrite(svCheats_Stats, "0");
  800. }
  801. else
  802. {
  803. new amountDetected[5];
  804. svCheats_Stats = fopen("svCheats_Stats.txt", io_read);
  805. fread(svCheats_Stats, amountDetected);
  806. svCheats_AmountDetected = strval(amountDetected);
  807. }
  808.  
  809. fclose(svCheats_Stats);
  810. SetTimer("svCheats_Detector", TIMER_TIME, 1);
  811. return 1;
  812. }
  813.  
  814. #if defined _ALS_OnFilterScriptInit
  815. #undef OnFilterScriptInit
  816. #else
  817. #define _ALS_OnFilterScriptInit
  818. #endif
  819. #define OnFilterScriptInit svCheats_OnFilterScriptInit
  820.  
  821. forward svCheats_OnFilterScriptExit();
  822. public OnFilterScriptExit()
  823. {
  824. new amountDetected[5], File: svCheats_Stats = fopen("svCheats_Stats.txt", io_write);
  825. format(amountDetected, sizeof(amountDetected), "%d", svCheats_AmountDetected);
  826. fwrite(svCheats_Stats, amountDetected);
  827. fclose(svCheats_Stats);
  828. return 1;
  829. }
  830.  
  831. #if defined _ALS_OnFilterScriptExit
  832. #undef OnFilterScriptExit
  833. #else
  834. #define _ALS_OnFilterScriptExit
  835. #endif
  836. #define OnFilterScriptExit svCheats_OnFilterScriptExit
  837. #endif
  838.  
  839. forward svCheats_OnPlayerDeath(playerid, killerid, reason);
  840. public OnPlayerDeath(playerid, killerid, reason)
  841. {
  842. svCheats_TabbedDisabled[playerid] = true;
  843. svCheats_HealthHackDisabled[playerid] = true;
  844.  
  845. if(killerid == INVALID_PLAYER_ID)
  846. {
  847. if(svCheats_PossibleNinjaJack[playerid] != INVALID_PLAYER_ID)
  848. {
  849. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", svCheats_PossibleNinjaJack[playerid], CHEAT_NINJAJACK);
  850. svCheats_PossibleNinjaJack[playerid] = INVALID_PLAYER_ID;
  851. }
  852. }
  853. return CallRemoteFunction("svCheats_OnPlayerDeat", "ddd", playerid, killerid, reason);;
  854. }
  855.  
  856. #if defined _ALS_OnPlayerDeath
  857. #undef OnPlayerDeath
  858. #else
  859. #define _ALS_OnPlayerDeath
  860. #endif
  861. #define OnPlayerDeath svCheats_OnPlayerDeath
  862.  
  863. forward svCheats_OnPlayerConnect();
  864. public OnPlayerConnect(playerid)
  865. {
  866. svCheats_SecurityLevel[playerid] = 0;
  867.  
  868. #if defined JETPACK_HACK
  869. svCheats_GrantedJetpack[playerid] = false;
  870. #endif
  871.  
  872. #if defined BUNNYHOP_OFF
  873. svCheats_JumpCounters[playerid] = 0;
  874. svCheats_JumpCounterTimer[playerid] = -1;
  875. #endif
  876.  
  877. #if defined CHATSPAM_OFF
  878. svCheats_SpamCounters[playerid] = 0;
  879. #endif
  880.  
  881. #if defined WEAPON_SPAWN
  882. for(new i = 0; i < 13; i++)
  883. {
  884. svCheats_PlayerWeapons[playerid][i] = 0;
  885. }
  886. #endif
  887.  
  888. #if defined AFK_DISABLED
  889. svCheats_AFKTime[playerid] = 0;
  890. svCheats_LastAFKUpdate[playerid] = GetTickCount();
  891. svCheats_ReportedAFK[playerid] = false;
  892. #endif
  893.  
  894. #if defined TABBED_DISABLED
  895. svCheats_TabbedUpdates[playerid] = 0;
  896. svCheats_ReportedTabbed[playerid] = false;
  897. svCheats_TabbedDisabled[playerid] = true;
  898. #endif
  899.  
  900. #if defined HH_USED
  901. svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID;
  902. #endif
  903.  
  904. #if defined NINJAJACK_CHEAT
  905. svCheats_PossibleNinjaJack[playerid] = INVALID_PLAYER_ID;
  906. #endif
  907.  
  908. svCheats_Spawned[playerid] = false;
  909. return CallRemoteFunction("svCheats_OnPlayerConnect", "d", playerid);
  910. }
  911.  
  912. #if defined _ALS_OnPlayerConnect
  913. #undef OnPlayerConnect
  914. #else
  915. #define _ALS_OnPlayerConnect
  916. #endif
  917. #define OnPlayerConnect svCheats_OnPlayerConnect
  918.  
  919. forward svCheats_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  920. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  921. {
  922. #if defined BUNNYHOP_OFF
  923. if(newkeys & KEY_JUMP)
  924. {
  925. if(svCheats_SecurityLevel[playerid] < BUNNYHOP_OFF || BUNNYHOP_OFF == -1)
  926. {
  927. new ai = GetPlayerAnimationIndex(playerid);
  928. if(ai != 1061 && ai != 1062 && ai != 1064 && ai != 1066 && ai != 1195 && ai != 1997 && ai != 1538 || ai
  929.  
  930. != 1538 || ai != 1543)
  931. {
  932. svCheats_JumpCounters[playerid]++;
  933.  
  934. if(svCheats_JumpCounterTimer[playerid] > -1)
  935. {
  936. KillTimer(svCheats_JumpCounterTimer[playerid]);
  937. svCheats_JumpCounerTimer[playerid] = -1;
  938. }
  939.  
  940. if(svCheats_JumpCounters[playerid] == BUNNYHOP_AMOUNT)
  941. {
  942. svCheats_JumpCounters[playerid] = 0;
  943. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_BUNNYHOP);
  944. svCheats_AmountDetected++;
  945. }
  946. else
  947. {
  948. svCheats_JumpCounterTimer[playerid] = SetTimerEx("svCheats_JumpCountersDown", 3000,
  949.  
  950. 0, "i", playerid);
  951. }
  952. }
  953. }
  954. }
  955. #endif
  956.  
  957. #if defined WEAPON_SPAWN
  958. if(newkeys & KEY_FIRE)
  959. {
  960. if(svCheats_SecurityLevel[playerid] < WEAPON_SPAWN || WEAPON_SPAWN == -1)
  961. {
  962. new w = GetPlayerWeapon(playerid);
  963. if(w > 0)
  964. {
  965. if(svCheats_PlayerWeapons[playerid][svCheats_GetWeaponSlot(w)] != w)
  966. {
  967. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_WEAPON_SPAWN);
  968. svCheats_AmountDetected++;
  969. }
  970. }
  971. }
  972. }
  973. #endif
  974. return CallRemoteFunction("svCheats_OnPlayerKeyStateChange", "ddd", playerid, newkeys, oldkeys);
  975. }
  976.  
  977. #if defined _ALS_OnPlayerKeyStateChange
  978. #undef OnPlayerKeyStateChange
  979. #else
  980. #define _ALS_OnPlayerKeyStateChange
  981. #endif
  982. #define OnPlayerKeyStateChange svCheats_OnPlayerKeyStateChange
  983.  
  984. forward svCheats_OnPlayerText(playerid, text[]);
  985. public OnPlayerText(playerid, text[])
  986. {
  987. #if defined SWEARING_OFF
  988. if(svCheats_SecurityLevel[playerid] < SWEARING_OFF || SWEARING_OFF == -1)
  989. {
  990. for(new c = 0; c < sizeof(CurseWords); c++)
  991. {
  992. if(strfind(string, CurseWords[c], true) > -1)
  993. {
  994. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_SWEARING);
  995. svCheats_AmountDetected++;
  996. return 0;
  997. }
  998. }
  999. }
  1000. #endif
  1001.  
  1002. #if defined CHATSPAM_OFF
  1003. if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  1004. {
  1005. svCheats_SpamCounters[playerid]++;
  1006.  
  1007. if(svCheats_SpamCounters[playerid] == CHATSPAM_LINES)
  1008. {
  1009. svCheats_SpamCounters[playerid] = 0;
  1010. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_CHATSPAM);
  1011. svCheats_AmountDetected++;
  1012. return 0;
  1013. }
  1014. }
  1015. #endif
  1016.  
  1017. #if defined AFK_DISABLED
  1018. if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1)
  1019. {
  1020. svCheats_AFKTime[playerid] = 0;
  1021. svCheats_ReportedAFK[playerid] = false;
  1022. }
  1023. #endif
  1024. return CallRemoteFunction("svCheats_OnPlayerText", "ds", playerid, text);
  1025. }
  1026.  
  1027. #if defined _ALS_OnPlayerText
  1028. #undef OnPlayerText
  1029. #else
  1030. #define _ALS_OnPlayerText
  1031. #endif
  1032. #define OnPlayerText svCheats_OnPlayerText
  1033.  
  1034. #if defined VEHICLE_REPAIR
  1035. forward svCheats_OnVehicleSpawn(vehicleid);
  1036. public OnVehicleSpawn(vehicleid)
  1037. {
  1038. svCheats_VehicleHealth[vehicleid] = 1000.0;
  1039. return CallRemoteFunction("svCheats_OnVehicleSpawn", "d", vehicleid);
  1040. }
  1041.  
  1042. #if defined _ALS_OnVehicleSpawn
  1043. #undef OnVehicleSpawn
  1044. #else
  1045. #define _ALS_OnVehicleSpawn
  1046. #endif
  1047. #define OnVehicleSpawn svCheats_OnVehicleSpawn
  1048.  
  1049. forward svCheats_OnPlayerStateChange(playerid, newstate, oldstate);
  1050. public OnPlayerStateChange(playerid, newstate, oldstate)
  1051. {
  1052. if(newstate == PLAYER_STATE_DRIVER)
  1053. {
  1054. #if defined VEHICLE_REPAIR
  1055. new vehicleid = GetPlayerVehicleID(playerid);
  1056. GetVehicleHealth(vehicleid, svCheats_VehicleHealth[vehicleid]);
  1057. #endif
  1058.  
  1059. #if defined NINJAJACK_OFF
  1060. #if defined USE_FOREACH
  1061. foreach(new i: Player)
  1062. {
  1063. if(svCheats_PossibleNinjaJack[i] == playerid)
  1064. {
  1065. svCheats_PossibleNinjaJack[i] = INVALID_PLAYER_ID;
  1066. break;
  1067. }
  1068. }
  1069. #else
  1070. for(new i = 0; i < MAX_PLAYERS; i++)
  1071. {
  1072. if(IsPlayerConnected(i))
  1073. {
  1074. if(svCheats_PossibleNinjaJack[i] == playerid)
  1075. {
  1076. svCheats_PossibleNinjaJack[i] = INVALID_PLAYER_ID;
  1077. break;
  1078. }
  1079. }
  1080. }
  1081. #endif
  1082. #endif
  1083. }
  1084. return CallRemoteFunction("svCheats_OnPlayerStateChange", "ddd", playerid, newstate, oldstate);
  1085. }
  1086.  
  1087. #if defined _ALS_OnPlayerStateChange
  1088. #undef OnPlayerStateChange
  1089. #else
  1090. #define _ALS_OnPlayerStateChange
  1091. #endif
  1092. #define OnPlayerStateChange svCheats_OnPlayerStateChange
  1093. #endif
  1094.  
  1095. #if defined CHEAT_TABBED
  1096. forward svCheats_OnPlayerUpdate(playerid);
  1097. public OnPlayerUpdate(playerid)
  1098. {
  1099. svCheats_TabbedUpdates[playerid] = 0;
  1100. svCheats_ReportedTabbed[playerid] = false;
  1101. return CallRemoteFunction("svCheats_OnPlayerUpdate", "d", playerid);
  1102. }
  1103.  
  1104. #if defined _ALS_OnPlayerUpdate
  1105. #undef OnPlayerUpdate
  1106. #else
  1107. #define _ALS_OnPlayerUpdate
  1108. #endif
  1109. #define OnPlayerUpdate svCheats_OnPlayerUpdate
  1110.  
  1111. forward svCheats_OnPlayerSpawn(playerid);
  1112. public OnPlayerSpawn(playerid)
  1113. {
  1114. svCheats_TabbedDisabled[playerid] = false;
  1115. svCheats_Spawned[playerid] = true;
  1116.  
  1117. #if defined HEALTH_HACK
  1118. svCheats_PlayerHealth[playerid] = 1000;
  1119. svCheats_PlayerArmor[playerid] = 0;
  1120. svCheats_HealthHackDisabled[playerid] = false;
  1121. #endif
  1122. return CallRemoteFunction("svCheats_OnPlayerSpawn", "d", playerid);;
  1123. }
  1124.  
  1125. #if defined _ALS_OnPlayerSpawn
  1126. #undef OnPlayerSpawn
  1127. #else
  1128. #define _ALS_OnPlayerSpawn
  1129. #endif
  1130. #define OnPlayerSpawn svCheats_OnPlayerSpawn
  1131.  
  1132. forward svCheats_OnPlayerEnterVehicle(playerid, vehicleid, ispassenger);
  1133. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  1134. {
  1135. #if defined DRVBY_RESTRICT
  1136. if(svCheats_SecurityLevel[playerid] < DRVBY_RESTRICT || DRVBY_RESTRICT == -1)
  1137. {
  1138. if(ispassenger)
  1139. {
  1140. new w = GetPlayerWeapon(playerid);
  1141. if(w > 0)
  1142. {
  1143. new allowedWeapons[10], bool: allowed;
  1144. sscanf(DRIVEBY_WEAPONS, "a<i>[10]", allowedWeapons);
  1145.  
  1146. for(new i = 0; i < sizeof(allowedWeapons); i++)
  1147. {
  1148. if(w == allowedWeapons[i])
  1149. {
  1150. allowed = true;
  1151. break;
  1152. }
  1153. }
  1154.  
  1155. if(allowed == false)
  1156. {
  1157. SetPlayerArmedWeapon(playerid, 0);
  1158. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_DRIVEBY);
  1159. svCheats_AmountDetected++;
  1160. }
  1161. }
  1162. }
  1163. }
  1164. #endif
  1165.  
  1166. #if defined DDRIVEBY_OFF
  1167. if(svCheats_SecurityLevel[playerid] < DDRIVEBY_OFF || DDRIVEBY_OFF == -1)
  1168. {
  1169. if(!ispassenger)
  1170. {
  1171. new w = GetPlayerWeapon(playerid);
  1172. if(w > 0)
  1173. {
  1174. SetPlayerArmedWeapon(playerid, 0);
  1175. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_DDRIVEBY);
  1176. svCheats_AmountDetected++;
  1177. }
  1178. }
  1179. }
  1180. #endif
  1181.  
  1182. #if defined NINJAJACK_CHEAT
  1183. if(svCheats_SecurityLevel[playerid] < NINJAJACK_CHEAT || NINJAJACK_CHEAT == -1)
  1184. {
  1185. if(!ispassenger)
  1186. {
  1187. #if defined USE_FOREACH
  1188. foreach(new i: Player)
  1189. {
  1190. if(GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER)
  1191. {
  1192. svCheats_PossibleNinjaJack[i] = playerid;
  1193. break;
  1194. }
  1195. }
  1196. #else
  1197. for(new i = 0; i < MAX_PLAYERS; i++)
  1198. {
  1199. if(IsPlayerConnected(i))
  1200. {
  1201. if(GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER)
  1202. {
  1203. svCheats_PossibleNinjaJack[i] = playerid;
  1204. break;
  1205. }
  1206. }
  1207. }
  1208. #endif
  1209. }
  1210. }
  1211. #endif
  1212.  
  1213. return CallRemoteFunction("svCheats_OnPlayerEnterVehicle", "ddd", playerid, vehicleid, ispassenger);
  1214. }
  1215.  
  1216. #if defined _ALS_OnPlayerEnterVehicle
  1217. #undef OnPlayerEnterVehicle
  1218. #else
  1219. #define _ALS_OnPlayerEnterVehicle
  1220. #endif
  1221. #define OnPlayerEnterVehicle svCheats_OnPlayerEnterVehicle
  1222.  
  1223. #if defined USE_ZCMD
  1224. #if defined HH_USED
  1225. COMMAND:hh(playerid, params[])
  1226. {
  1227. if(svCheats_SecurityLevel[playerid] < HH_USED)
  1228. {
  1229. return SendClientMessage(playerid, -1, "You are not authorized to use this command.");
  1230. }
  1231.  
  1232. new svCheats_giveplayerid;
  1233. if(sscanf(params, "u", svCheats_giveplayerid))
  1234. {
  1235. return SendClientMessage(playerid, -1, "USAGE: /hh [player]");
  1236. }
  1237.  
  1238. if(svCheats_ReportedTabbed[svCheats_giveplayerid] == true)
  1239. {
  1240. return SendClientMessage(playerid, -1, "You may not health hack check tabbed players.");
  1241. }
  1242.  
  1243. if(svCheats_HH[svCheats_giveplayerid][svCheckedBy] != INVALID_PLAYER_ID)
  1244. {
  1245. return SendClientMessage(playerid, -1, "That player is already being checked for health hacks.");
  1246. }
  1247.  
  1248. new string[128], playersName[MAX_PLAYER_NAME], Float: playersPos[3];
  1249.  
  1250. GetPlayerName(svCheats_giveplayerid, playersName, sizeof(playersName));
  1251. format(string, sizeof(string), "Checking %s for health hacks...", playersName);
  1252. SendClientMessage(playerid, -1, string);
  1253.  
  1254. GetPlayerPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  1255. SetPlayerCameraLookAt(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  1256. SetPlayerCameraPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2] + 5);
  1257.  
  1258. for(new i = 0; i < 3; i++)
  1259. {
  1260. svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][i] = playersPos[i];
  1261. }
  1262.  
  1263. GetPlayerFacingAngle(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][3]);
  1264.  
  1265. svCheats_HH[svCheats_giveplayerid][svInterior] = GetPlayerInterior(svCheats_giveplayerid);
  1266. svCheats_HH[svCheats_giveplayerid][svVirtualWorld] = GetPlayerVirtualWorld(svCheats_giveplayerid);
  1267.  
  1268. if(IsPlayerInAnyVehicle(svCheats_giveplayerid))
  1269. {
  1270. svCheats_HH[svCheats_giveplayerid][svInVehicle] = true;
  1271. svCheats_HH[svCheats_giveplayerid][svVehicleID] = GetPlayerVehicleID(svCheats_giveplayerid);
  1272. svCheats_HH[svCheats_giveplayerid][svVehicleSeat] = GetPlayerVehicleSeat(svCheats_giveplayerid);
  1273. }
  1274. else
  1275. {
  1276. svCheats_HH[svCheats_giveplayerid][svInVehicle] = false;
  1277. }
  1278.  
  1279. GetPlayerHealth(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svHealth]);
  1280. GetPlayerArmour(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svArmor]);
  1281.  
  1282. svCheats_HH[svCheats_giveplayerid][svCheckedBy] = playerid;
  1283.  
  1284. SetPlayerInterior(svCheats_giveplayerid, 0);
  1285. SetPlayerPos(svCheats_giveplayerid, 0.0, 0.0, 8.0);
  1286. SetPlayerHealth(svCheats_giveplayerid, 100.0);
  1287. SetPlayerArmour(svCheats_giveplayerid, 0.0);
  1288.  
  1289. SetTimerEx("svCheats_HealthHackCheck", 1350 + GetPlayerPing(svCheats_giveplayerid), 0, "i", svCheats_giveplayerid);
  1290. return 1;
  1291. }
  1292. #endif
  1293.  
  1294. #if defined ACSTATS_USED
  1295. COMMAND:acstats(playerid, params[])
  1296. {
  1297. new string[50];
  1298. format(string, sizeof(string), "(svCheats) Cheaters Detected: %d", svCheats_AmountDetected);
  1299. SendClientMessage(playerid, -1, string);
  1300. return 1;
  1301. }
  1302. #endif
  1303. #else
  1304. forward svCheats_OnPlayerCommandText(playerid, cmdtext[]);
  1305. public OnPlayerCommandText(playerid, cmdtext[])
  1306. {
  1307. #if defined HH_USED
  1308. new svCheats_cmd[5];
  1309. sscanf(cmdtext, "s[5]", svCheats_cmd);
  1310. if(strcmp(svCheats_cmd, "/hh", true) == 0)
  1311. {
  1312. if(svCheats_SecurityLevel[playerid] < HH_USED)
  1313. {
  1314. return SendClientMessage(playerid, -1, "You are not authorized to use this command.");
  1315. }
  1316.  
  1317. new svCheats_giveplayerid;
  1318. if(sscanf(cmdtext, "{s[5]}u", svCheats_giveplayeid))
  1319. {
  1320. return SendClientMessage(playerid, -1, "USAGE: /hh [player]");
  1321. }
  1322.  
  1323. if(svCheats_ReportedTabbed[svCheats_giveplayerid] == true)
  1324. {
  1325. return SendClientMessage(playerid, -1, "You may not health hack check tabbed players.");
  1326. }
  1327.  
  1328. if(svCheats_HH[svCheats_giveplayerid][svCheckedBy] != INVALID_PLAYER_ID)
  1329. {
  1330. return SendClientMessage(playerid, -1, "That player is already being checked for health hacks.");
  1331. }
  1332.  
  1333. new string[128], playersName[MAX_PLAYER_NAME], Float: playersPos[3];
  1334.  
  1335. GetPlayerName(svCheats_giveplayerid, playersName, sizeof(playersName));
  1336. format(string, sizeof(string), "Checking %s for health hacks...", playersName);
  1337. SendClientMessage(playerid, -1, string);
  1338.  
  1339. GetPlayerPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  1340. SetPlayerCameraLookAt(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2]);
  1341. SetPlayerCameraPos(svCheats_giveplayerid, playersPos[0], playersPos[1], playersPos[2] + 5);
  1342.  
  1343. for(new i = 0; i < 3; i++)
  1344. {
  1345. svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][i] = playersPos[i];
  1346. }
  1347.  
  1348. GetPlayerFacingAngle(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svOldPlayerPos][3]);
  1349.  
  1350. svCheats_HH[svCheats_giveplayerid][svInterior] = GetPlayerInterior(svCheats_giveplayerid);
  1351. svCheats_HH[svCheats_giveplayerid][svVirtualWorld] = GetPlayerVirtualWorld(svCheats_giveplayerid);
  1352.  
  1353. if(IsPlayerInAnyVehicle(svCheats_giveplayerid))
  1354. {
  1355. svCheats_HH[svCheats_giveplayerid][svInVehicle] = true;
  1356. svCheats_HH[svCheats_giveplayerid][svVehicleID] = GetPlayerVehicleID(svCheats_giveplayerid);
  1357. svCheats_HH[svCheats_giveplayerid][svVehicleSeat] = GetPlayerVehicleSeat(svCheats_giveplayerid);
  1358. }
  1359. else
  1360. {
  1361. svCheats_HH[svCheats_giveplayerid][svInVehicle] = false;
  1362. }
  1363.  
  1364. GetPlayerHealth(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svHealth]);
  1365. GetPlayerArmour(svCheats_giveplayerid, svCheats_HH[svCheats_giveplayerid][svArmor]);
  1366.  
  1367. svCheats_HH[svCheats_giveplayerid][svCheckedBy] = playerid;
  1368.  
  1369. SetPlayerInterior(svCheats_giveplayerid, 0);
  1370. SetPlayerPos(svCheats_giveplayerid, 0.0, 0.0, 8.0);
  1371. SetPlayerHealth(svCheats_giveplayerid, 100.0);
  1372. SetPlayerArmour(svCheats_giveplayerid, 0.0);
  1373.  
  1374. SetTimerEx("svCheats_HealthHackCheck", 1350 + GetPlayerPing(svCheats_giveplayerid), 0, "i",
  1375.  
  1376. svCheats_giveplayerid);
  1377. return 1;
  1378. }
  1379. #endif
  1380.  
  1381. #if defined ACSTATS_USED
  1382. if(strcmp(cmdtext, "/acstats", true) == 0)
  1383. {
  1384. new string[50];
  1385. format(string, sizeof(string), "(svCheats) Cheaters Detected: %d", svCheats_AmountDetected);
  1386. SendClientMessage(playerid, -1, string);
  1387. return 1;
  1388. }
  1389. #endif
  1390. return CallRemoteFunction("svCheats_OnPlayerCommandText", "ds", playerid, cmdtext);
  1391. }
  1392.  
  1393. #if defined _ALS_OnPlayerCommandText
  1394. #undef OnPlayerCommandText
  1395. #else
  1396. #define _ALS_OnPlayerCommandText
  1397. #endif
  1398. #define OnPlayerCommandText svCheats_OnPlayerCommandText
  1399. #endif
  1400.  
  1401. #if defined HH_USED
  1402. forward svCheats_OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid);
  1403. public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
  1404. {
  1405. if(issuerid == INVALID_PLAYER_ID)
  1406. {
  1407. if(svCheats_HH[playerid][svCheckedBy] != INVALID_PLAYER_ID)
  1408. {
  1409. new string[128], playersName[MAX_PLAYER_NAME], playerid = svCheats_HH[playerid][svCheckedBy];
  1410.  
  1411. GetPlayerName(playerid, playersName, sizeof(playersName));
  1412. format(string, sizeof(string), "The health hack check on %s has been finished and the result is {F81414}
  1413.  
  1414. negative{FFFFFF}.", playersName);
  1415. SendClientMessage(giveplayerid, -1, string);
  1416.  
  1417. svCheats_HH[playerid][svCheckedBy] = INVALID_PLAYER_ID;
  1418.  
  1419. SetPlayerVirtualWorld(playerid, svCheats_HH[playerid][svVirtualWorld]);
  1420. SetPlayerInterior(playerid, svCheats_HH[playerid][svInterior]);
  1421. SetPlayerPos(playerid, svCheats_HH[playerid][svOldPlayerPos][0], svCheats_HH[playerid][svOldPlayerPos][1],
  1422.  
  1423. svCheats_HH[playerid][svOldPlayerPos][2]);
  1424. SetPlayerFacingAngle(playerid, svCheats_HH[playerid][svOldPlayerPos][3]);
  1425.  
  1426. if(svCheats_HH[playerid][svInVehicle] == true)
  1427. {
  1428. PutPlayerInVehicle(playerid, svCheats_HH[playerid][svVehicleID], svCheats_HH[playerid][svVehicleSeat]);
  1429. }
  1430.  
  1431. SetPlayerHealth(playerid, svCheats_HH[playerid][svHealth]);
  1432. SetPlayerArmour(playerid, svCheats_HH[playerid][svArmor]);
  1433.  
  1434. SetCameraBehindPlayer(playerid);
  1435. }
  1436. }
  1437.  
  1438. #if defined HEALTH_HACK
  1439. if(!svCheats_PlayerArmor[playerid] || issuerid == INVALID_PLAYER_ID)
  1440. {
  1441. svCheats_PlayerHealth[playerid] -= amount;
  1442. }
  1443. else
  1444. {
  1445. if(svCheats_PlayerArmor[playerid] - amount >= 0)
  1446. {
  1447. svCheats_PlayerArmor[playerid] -= amount;
  1448. }
  1449. else
  1450. {
  1451. svCheats_PlayerHealth[playerid] -= (amount - svCheats_PlayerArmor[playerid]);
  1452. svCheats_PlayerArmor[playerid] = 0;
  1453. }
  1454. }
  1455. #endif
  1456. return CallRemoteFunction("svCheats_OnPlayerTakeDamage", "ddfd", playerid, issuerid, amount, weaponid);
  1457. }
  1458.  
  1459. #if defined _ALS_OnPlayerTakeDamage
  1460. #undef OnPlayerTakeDamage
  1461. #else
  1462. #define _ALS_OnPlayerTakeDamage
  1463. #endif
  1464. #define OnPlayerTakeDamage svCheats_OnPlayerTakeDamage
  1465. #endif
  1466. #endif
  1467. #endif
  1468.  
  1469. forward svCheats_HealthHackCheck(giveplayerid);
  1470. public svCheats_HealthHackCheck(giveplayerid)
  1471. {
  1472. if(svCheats_HH[giveplayerid][svCheckedBy] != INVALID_PLAYER_ID)
  1473. {
  1474. new string[128], playersName[MAX_PLAYER_NAME], playerid = svCheats_HH[giveplayerid][svCheckedBy];
  1475.  
  1476. GetPlayerName(giveplayerid, playersName, sizeof(playersName));
  1477. format(string, sizeof(string), "The health hack check on %s has been finished and the result is {6EF83C}positive
  1478.  
  1479. {FFFFFF}.", playersName);
  1480. SendClientMessage(playerid, -1, string);
  1481.  
  1482. svCheats_HH[giveplayerid][svCheckedBy] = INVALID_PLAYER_ID;
  1483.  
  1484. SetPlayerVirtualWorld(giveplayerid, svCheats_HH[giveplayerid][svVirtualWorld]);
  1485. SetPlayerInterior(giveplayerid, svCheats_HH[giveplayerid][svInterior]);
  1486. SetPlayerPos(giveplayerid, svCheats_HH[giveplayerid][svOldPlayerPos][0], svCheats_HH[giveplayerid][svOldPlayerPos]
  1487.  
  1488. [1], svCheats_HH[giveplayerid][svOldPlayerPos][2]);
  1489. SetPlayerFacingAngle(giveplayerid, svCheats_HH[giveplayerid][svOldPlayerPos][3]);
  1490.  
  1491. if(svCheats_HH[giveplayerid][svInVehicle] == true)
  1492. {
  1493. PutPlayerInVehicle(giveplayerid, svCheats_HH[giveplayerid][svVehicleID], svCheats_HH[giveplayerid]
  1494.  
  1495. [svVehicleSeat]);
  1496. }
  1497.  
  1498. SetPlayerHealth(giveplayerid, svCheats_HH[giveplayerid][svHealth]);
  1499. SetPlayerArmour(giveplayerid, svCheats_HH[giveplayerid][svArmor]);
  1500.  
  1501. SetCameraBehindPlayer(giveplayerid);
  1502.  
  1503. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", giveplayerid, CHEAT_GODMODE);
  1504. svCheats_AmountDetected++;
  1505. }
  1506. return 1;
  1507. }
  1508.  
  1509. forward svCheats_JumpCountersDown(playerid);
  1510. public svCheats_JumpCountersDown(playerid)
  1511. {
  1512. svCheats_JumpCounters[playerid]--;
  1513. svCheats_JumpCounterTimer[playerid] = -1;
  1514. return 1;
  1515. }
  1516.  
  1517. svCheats_GetWeaponSlot(weaponid)
  1518. {
  1519. switch(weaponid)
  1520. {
  1521. case 0, 1:
  1522. {
  1523. return 0;
  1524. }
  1525. case 2, 3, 4, 5, 6, 7, 8, 9:
  1526. {
  1527. return 1;
  1528. }
  1529. case 22, 23, 24:
  1530. {
  1531. return 2;
  1532. }
  1533. case 25, 26, 27:
  1534. {
  1535. return 3;
  1536. }
  1537. case 28, 29, 32:
  1538. {
  1539. return 4;
  1540. }
  1541. case 30, 31:
  1542. {
  1543. return 5;
  1544. }
  1545. case 33, 34:
  1546. {
  1547. return 6;
  1548. }
  1549. case 35, 36, 37, 38:
  1550. {
  1551. return 7;
  1552. }
  1553. case 16, 17, 18, 39, 40:
  1554. {
  1555. return 8;
  1556. }
  1557. case 41, 42, 43:
  1558. {
  1559. return 9;
  1560. }
  1561. case 10, 11, 12, 13, 14, 15:
  1562. {
  1563. return 10;
  1564. }
  1565. case 44, 45, 46:
  1566. {
  1567. return 11;
  1568. }
  1569. }
  1570. return 0;
  1571. }
  1572.  
  1573. svCheats_IsPlayerAtRepairPoint(playerid)
  1574. {
  1575. if(GetPlayerCameraMode(playerid) == 15) return 1;
  1576. if(IsPlayerInRangeOfPoint(playerid, 25.0, 2067.00, -1831.65, 13.55)) return 1;
  1577. if(IsPlayerInRangeOfPoint(playerid, 25.0, 1024.97, -1023.88, 32.10)) return 1;
  1578. if(IsPlayerInRangeOfPoint(playerid, 25.0, 1041.19, -1022.50, 32.11)) return 1;
  1579. if(IsPlayerInRangeOfPoint(playerid, 25.0, 720.25, -457.17, 16.34)) return 1;
  1580. if(IsPlayerInRangeOfPoint(playerid, 25.0, 2386.66, 1045.68, 10.82)) return 1;
  1581. if(IsPlayerInRangeOfPoint(playerid, 25.0, 1972.50, 2163.03, 11.07)) return 1;
  1582. if(IsPlayerInRangeOfPoint(playerid, 25.0, -1420.58, 2586.17, 55.84)) return 1;
  1583. if(IsPlayerInRangeOfPoint(playerid, 25.0, -1904.90, 283.96, 41.05)) return 1;
  1584. if(IsPlayerInRangeOfPoint(playerid, 25.0, -2719.46, 217.77, 4.48)) return 1;
  1585. return 0;
  1586. }
  1587.  
  1588. svCheats_GetVehicleSpeed(vehicleid)
  1589. {
  1590. new Float: vVel[3];
  1591. GetVehicleVelocity(vehicleid, vVel[0], vVel[1], vVel[2]);
  1592. return floatround(floatsqroot((vVel[0]*vVel[1]+vVel[2]*vVel[2]))*100.0*1.6);
  1593. }
  1594.  
  1595. public svCheats_Detector()
  1596. {
  1597. #if defined USE_FOREACH
  1598. foreach(new playerid: Player)
  1599. {
  1600. #if defined HIGH_PING
  1601. if(svCheats_SecurityLevel[playerid] < HIGH_PING || HIGH_PING == -1)
  1602. {
  1603. if(GetPlayerPing(playerid) > MAX_PING)
  1604. {
  1605. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_HIGH_PING);
  1606. svCheats_AmountDetected++;
  1607. }
  1608. }
  1609. #endif
  1610.  
  1611. #if defined SPEED_HACK
  1612. if(svCheats_SecurityLevel[playerid] < SPEED_HACK || SPEED_HACK == -1)
  1613. {
  1614. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1615. {
  1616. new vehicleid = GetPlayerVehicleID(playerid);
  1617. if(svCheats_GetVehicleSpeed(vehicleid) > MAX_SPEED)
  1618. {
  1619. if(GetVehicleModel(vehicleid) != 520)
  1620. {
  1621. new Float: vehicleVelocity[3];
  1622. GetVehicleVelocity(vehicleid, vehicleVelocity[0], vehicleVelocity[1], vehicleVelocity
  1623.  
  1624. [2]);
  1625. if(vehicleVelocity[2] > -0.5)
  1626. {
  1627. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid,
  1628.  
  1629. CHEAT_SPEED_HACK);
  1630. svCheats_AmountDetected++;
  1631. }
  1632. }
  1633. }
  1634. }
  1635. }
  1636. #endif
  1637.  
  1638. #if defined JETPACK_HACK
  1639. if(svCheats_SecurityLevel[playerid] < JETPACK_HACK || JETPACK_HACK == -1)
  1640. {
  1641. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK)
  1642. {
  1643. if(svCheats_GrantedJetpack[playerid] == false)
  1644. {
  1645. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_JETPACK_HACK);
  1646. svCheats_AmountDetected++;
  1647. }
  1648. }
  1649. }
  1650. #endif
  1651.  
  1652. #if defined AIRBREAK_HACK
  1653. if(svCheats_SecurityLevel[playerid] < AIRBREAK_HACK || AIRBREAK_HACK == -1)
  1654. {
  1655. new ai = GetPlayerAnimationIndex(playerid);
  1656. if(ai == 1231 || ai == 1266)
  1657. {
  1658. new Float: playersPos[3];
  1659. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  1660. if(playersPos[2] >= 4.0)
  1661. {
  1662. if(!IsPlayerInRangeOfPoint(playerid, 200.0, 602.74, 871.44, -20.65) && !
  1663.  
  1664. IsPlayerInRangeOfPoint(playerid, 300.0, 1678.38, -2291.18, -1.00))
  1665. {
  1666. if(GetPointZPos(playersPos[0], playersPos[1]) < playersPos[2] - 15.0)
  1667. {
  1668. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid,
  1669.  
  1670. CHEAT_AIRBREAK_HACK);
  1671. svCheats_AmountDetected++;
  1672. }
  1673. }
  1674. }
  1675. }
  1676. }
  1677. #endif
  1678.  
  1679. #if defined FLY_HACK
  1680. if(svCheats_SecurityLevel[playerid] < FLY_HACK || FLY_HACK == -1)
  1681. {
  1682. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  1683. {
  1684. new ai = GetPlayerAnimationIndex(playerid);
  1685. if(ai == 1538 || ai == 1538 || ai == 1543)
  1686. {
  1687. new Float: playersPos[3];
  1688. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  1689. if(playersPos[2] >= 4.0)
  1690. {
  1691. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid,
  1692.  
  1693. CHEAT_FLY_HACK);
  1694. svCheats_AmountDetected++;
  1695. }
  1696. }
  1697. }
  1698. }
  1699. #endif
  1700.  
  1701. #if defined TELEPORT_HACK
  1702. if(svCheats_SecurityLevel[playerid] < TELEPORT_HACK || TELEPORT_HACK == -1)
  1703. {
  1704. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  1705. {
  1706. new interior = GetPlayerInterior(playerid);
  1707. if(interior > 0)
  1708. {
  1709. new allowedInteriors[10], bool: allowed;
  1710. sscanf(USED_INTERIORS, "a<i>[10]", allowedInteriors);
  1711.  
  1712. for(new i = 0; i < sizeof(allowedInteriors); i++)
  1713. {
  1714. if(allowedInteriors[i] == interior)
  1715. {
  1716. allowed = true;
  1717. break;
  1718. }
  1719. }
  1720.  
  1721. if(allowed == false)
  1722. {
  1723. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid,
  1724.  
  1725. CHEAT_TELEPORT_HACK);
  1726. svCheats_AmountDetected++;
  1727. }
  1728. }
  1729. }
  1730. }
  1731. #endif
  1732.  
  1733. #if defined VEHICLE_REPAIR
  1734. if(svCheats_SecurityLevel[playerid] < VEHICLE_REPAIR || VEHICLE_REPAIR == -1)
  1735. {
  1736. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1737. {
  1738. new vehicleid = GetPlayerVehicleID(playerid), Float: vHealth;
  1739. GetVehicleHealth(vehicleid, vHealth);
  1740. if(vHealth > svCheats_VehicleHealth[vehicleid])
  1741. {
  1742. if(!svCheats_IsPlayerAtRepairPoint(playerid))
  1743. {
  1744. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid,
  1745.  
  1746. CHEAT_VEHICLE_REPAIR);
  1747. svCheats_AmountDetected++;
  1748. }
  1749. }
  1750. svCheats_VehicleHealth[vehicleid] = vHealth;
  1751. }
  1752. }
  1753. #endif
  1754.  
  1755. #if defined CHATSPAM_OFF
  1756. if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  1757. {
  1758. svCheats_SpamCounters[playerid]--;
  1759.  
  1760. if(svCheats_SpamCounters[playerid] < 0)
  1761. {
  1762. svCheats_SpamCounters[playerid] = 0;
  1763. }
  1764. }
  1765. #endif
  1766.  
  1767. #if defined AFK_DISABLED
  1768. if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1)
  1769. {
  1770. if(svCheats_ReportedAFK[playerid] == false)
  1771. {
  1772. new Float: playersPos[3];
  1773. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  1774. if(playersPos[0] != svCheats_oldPos[playerid][0] || playersPos[1] != svCheats_oldPos
  1775.  
  1776. [playerid][1] || playersPos[2] != svCheats_oldPos[playerid][2])
  1777. {
  1778. svCheats_AFKTime[playerid] = 0;
  1779. }
  1780. else
  1781. {
  1782. svCheats_AFKTime[playerid] += GetTickCount() - svCheats_LastAFKUpdate[playerid];
  1783. }
  1784.  
  1785. svCheats_LastAFKUpdate[playerid] = GetTickCount();
  1786.  
  1787. svCheats_oldPos[playerid][0] = playersPos[0], svCheats_oldPos[playerid][1] =
  1788.  
  1789. playersPos[1], svCheats_oldPos[playerid][2] = playersPos[2];
  1790.  
  1791. if(svCheats_ReportedAFK[playerid] == false)
  1792. {
  1793. new AFKMinutes = svCheats_AFKTime[playerid] / 60000;
  1794. if(AFKMinutes >= AFK_MINUTES)
  1795. {
  1796. svCheats_ReportedAFK[playerid] = true;
  1797. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_AFK);
  1798. svCheats_AmountDetected++;
  1799. }
  1800. }
  1801. }
  1802. }
  1803. #endif
  1804.  
  1805. #if defined TABBED_DISABLED
  1806. if(svCheats_SecurityLevel[playerid] < TABBED_DISABLED || TABBED_DISABLED == -1)
  1807. {
  1808. if(svCheats_ReportedTabbed[playerid] == false && svCheats_TabbedDisabled[playerid] == false)
  1809. {
  1810. if(GetPlayerCameraMode(playerid) != 55)
  1811. {
  1812. svCheats_TabbedUpdates[playerid]++;
  1813.  
  1814. if(svCheats_TabbedUpdates[playerid] > 1)
  1815. {
  1816. svCheats_TabbedUpdates[playerid] = 0;
  1817. svCheats_ReportedTabbed[playerid] = true;
  1818. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid,
  1819.  
  1820. CHEAT_TABBED);
  1821. svCheats_AmountDetected++;
  1822. }
  1823. }
  1824. }
  1825. }
  1826. #endif
  1827.  
  1828. #if defined HEALTH_HACK
  1829. if(svCheats_SecurityLevel[playerid] < HEALTH_HACK || HEALTH_HACK == -1)
  1830. {
  1831. if(svCheats_HealthHackDisabled[playerid] == false)
  1832. {
  1833. new Float: Health, Float: Armor;
  1834. GetPlayerHealth(playerid, Health);
  1835. GetPlayerArmour(playerid, Armor);
  1836. if(svCheats_PlayerHealth[playerid] < Health || svCheats_PlayerArmor[playerid] < Armor)
  1837. {
  1838. svCheats_PlayerHealth[playerid] = Health;
  1839. svCheats_PlayerArmor[playerid] = Armor;
  1840. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_HEALTHHACK);
  1841. svCheats_AmountDetected++;
  1842. }
  1843. }
  1844. }
  1845. #endif
  1846. }
  1847. #else
  1848. for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
  1849. {
  1850. if(IsPlayerConnected(playerid))
  1851. {
  1852. #if defined HIGH_PING
  1853. if(svCheats_SecurityLevel[playerid] < HIGH_PING || HIGH_PING == -1)
  1854. {
  1855. if(GetPlayerPing(playerid) > MAX_PING)
  1856. {
  1857. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_HIGH_PING);
  1858. svCheats_AmountDetected++;
  1859. }
  1860. }
  1861. #endif
  1862.  
  1863. #if defined SPEED_HACK
  1864. if(svCheats_SecurityLevel[playerid] < SPEED_HACK || SPEED_HACK == -1)
  1865. {
  1866. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1867. {
  1868. new vehicleid = GetPlayerVehicleID(playerid);
  1869. if(svCheats_GetVehicleSpeed(vehicleid) > MAX_SPEED)
  1870. {
  1871. if(GetVehicleModel(vehicleid) != 520)
  1872. {
  1873. new Float: vehicleVelocity[3];
  1874. GetVehicleVelocity(vehicleid, vehicleVelocity[0], vehicleVelocity[1],
  1875.  
  1876. vehicleVelocity[2]);
  1877. if(vehicleVelocity[2] > -0.5)
  1878. {
  1879. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid,
  1880.  
  1881. CHEAT_SPEED_HACK);
  1882. svCheats_AmountDetected++;
  1883. }
  1884. }
  1885. }
  1886. }
  1887. }
  1888. #endif
  1889.  
  1890. #if defined JETPACK_HACK
  1891. if(svCheats_SecurityLevel[playerid] < JETPACK_HACK || JETPACK_HACK == -1)
  1892. {
  1893. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK)
  1894. {
  1895. if(svCheats_GrantedJetpack[playerid] == false)
  1896. {
  1897. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid,
  1898.  
  1899. CHEAT_JETPACK_HACK);
  1900. svCheats_AmountDetected++;
  1901. }
  1902. }
  1903. }
  1904. #endif
  1905.  
  1906. #if defined AIRBREAK_HACK
  1907. if(svCheats_SecurityLevel[playerid] < AIRBREAK_HACK || AIRBREAK_HACK == -1)
  1908. {
  1909. new ai = GetPlayerAnimationIndex(playerid);
  1910. if(ai == 1231 || ai == 1266)
  1911. {
  1912. new Float: playersPos[3];
  1913. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  1914. if(playersPos[2] >= 4.0)
  1915. {
  1916. if(!IsPlayerInRangeOfPoint(playerid, 200.0, 602.74, 871.44, -20.65) && !
  1917.  
  1918. IsPlayerInRangeOfPoint(playerid, 300.0, 1678.38, -2291.18, -1.00))
  1919. {
  1920. if(GetPointZPos(playersPos[0], playersPos[1]) < playersPos[2] - 15.0)
  1921. {
  1922. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid,
  1923.  
  1924. CHEAT_AIRBREAK_HACK);
  1925. svCheats_AmountDetected++;
  1926. }
  1927. }
  1928. }
  1929. }
  1930. }
  1931. #endif
  1932.  
  1933. #if defined FLY_HACK
  1934. if(svCheats_SecurityLevel[playerid] < FLY_HACK || FLY_HACK == -1)
  1935. {
  1936. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  1937. {
  1938. new ai = GetPlayerAnimationIndex(playerid);
  1939. if(ai == 1538 || ai == 1538 || ai == 1543)
  1940. {
  1941. new Float: playersPos[3];
  1942. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  1943. if(playersPos[2] >= 4.0)
  1944. {
  1945. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid,
  1946.  
  1947. CHEAT_FLY_HACK);
  1948. svCheats_AmountDetected++;
  1949. }
  1950. }
  1951. }
  1952. }
  1953. #endif
  1954.  
  1955. #if defined TELEPORT_HACK
  1956. if(svCheats_SecurityLevel[playerid] < TELEPORT_HACK || TELEPORT_HACK == -1)
  1957. {
  1958. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  1959. {
  1960. new interior = GetPlayerInterior(playerid);
  1961. if(interior > 0)
  1962. {
  1963. new allowedInteriors[10], bool: allowed;
  1964. sscanf(USED_INTERIORS, "a<i>[10]", allowedInteriors);
  1965.  
  1966. for(new i = 0; i < sizeof(allowedInteriors); i++)
  1967. {
  1968. if(allowedInteriors[i] == interior)
  1969. {
  1970. allowed = true;
  1971. break;
  1972. }
  1973. }
  1974.  
  1975. if(allowed == false)
  1976. {
  1977. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd",
  1978.  
  1979. playerid, CHEAT_TELEPORT_HACK);
  1980. svCheats_AmountDetected++;
  1981. }
  1982. }
  1983. }
  1984. }
  1985. #endif
  1986.  
  1987. #if defined VEHICLE_REPAIR
  1988. if(svCheats_SecurityLevel[playerid] < VEHICLE_REPAIR || VEHICLE_REPAIR == -1)
  1989. {
  1990. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1991. {
  1992. new vehicleid = GetPlayerVehicleID(playerid), Float: vHealth;
  1993. GetVehicleHealth(vehicleid, vHealth);
  1994. if(vHealth > svCheats_VehicleHealth[vehicleid])
  1995. {
  1996. if(!svCheats_IsPlayerAtRepairPoint(playerid))
  1997. {
  1998. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid,
  1999.  
  2000. CHEAT_VEHICLE_REPAIR);
  2001. svCheats_AmountDetected++;
  2002. }
  2003. }
  2004. svCheats_VehicleHealth[vehicleid] = vHealth;
  2005. }
  2006. }
  2007. #endif
  2008.  
  2009. #if defined CHATSPAM_OFF
  2010. if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  2011. {
  2012. svCheats_SpamCounters[playerid]--;
  2013.  
  2014. if(svCheats_SpamCounters[playerid] < 0)
  2015. {
  2016. svCheats_SpamCounters[playerid] = 0;
  2017. }
  2018. }
  2019. #endif
  2020.  
  2021. #if defined AFK_DISABLED
  2022. if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1)
  2023. {
  2024. if(svCheats_ReportedAFK[playerid] == false)
  2025. {
  2026. new Float: playersPos[3];
  2027. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  2028. if(playersPos[0] != svCheats_oldPos[playerid][0] || playersPos[1] !=
  2029.  
  2030. svCheats_oldPos[playerid][1] || playersPos[2] != svCheats_oldPos[playerid][2])
  2031. {
  2032. svCheats_AFKTime[playerid] = 0;
  2033. }
  2034. else
  2035. {
  2036. svCheats_AFKTime[playerid] += GetTickCount() - svCheats_LastAFKUpdate
  2037.  
  2038. [playerid];
  2039. }
  2040.  
  2041. svCheats_LastAFKUpdate[playerid] = GetTickCount();
  2042.  
  2043. svCheats_oldPos[playerid][0] = playersPos[0], svCheats_oldPos[playerid][1] =
  2044.  
  2045. playersPos[1], svCheats_oldPos[playerid][2] = playersPos[2];
  2046.  
  2047. if(svCheats_ReportedAFK[playerid] == false)
  2048. {
  2049. new AFKMinutes = svCheats_AFKTime[playerid] / 60000;
  2050. if(AFKMinutes >= AFK_MINUTES)
  2051. {
  2052. svCheats_ReportedAFK[playerid] = true;
  2053. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid,
  2054.  
  2055. CHEAT_AFK);
  2056. svCheats_AmountDetected++;
  2057. }
  2058. }
  2059. }
  2060. }
  2061. #endif
  2062.  
  2063. #if defined TABBED_DISABLED
  2064. if(svCheats_SecurityLevel[playerid] < TABBED_DISABLED || TABBED_DISABLED == -1)
  2065. {
  2066. if(svCheats_ReportedTabbed[playerid] == false && svCheats_TabbedDisabled[playerid] == false)
  2067. {
  2068. if(GetPlayerCameraMode(playerid) != 55)
  2069. {
  2070. svCheats_TabbedUpdates[playerid]++;
  2071.  
  2072. if(svCheats_TabbedUpdates[playerid] > 1)
  2073. {
  2074. svCheats_TabbedUpdates[playerid] = 0;
  2075. svCheats_ReportedTabbed[playerid] = true;
  2076. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd",
  2077.  
  2078. playerid, CHEAT_TABBED);
  2079. svCheats_AmountDetected++;
  2080. }
  2081. }
  2082. }
  2083. }
  2084. #endif
  2085.  
  2086. #if defined HEALTH_HACK
  2087. if(svCheats_SecurityLevel[playerid] < HEALTH_HACK || HEALTH_HACK == -1)
  2088. {
  2089. if(svCheats_HealthHackDisabled[playerid] == false)
  2090. {
  2091. new Float: Health, Float: Armor;
  2092. GetPlayerHealth(playerid, Health);
  2093. GetPlayerArmour(playerid, Armor);
  2094. if(svCheats_PlayerHealth[playerid] < Health || svCheats_PlayerArmor[playerid] <
  2095.  
  2096. Armor)
  2097. {
  2098. svCheats_PlayerHealth[playerid] = Health;
  2099. svCheats_PlayerArmor[playerid] = Armor;
  2100. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid,
  2101.  
  2102. CHEAT_HEALTHHACK);
  2103. svCheats_AmountDetected++;
  2104. }
  2105. }
  2106. }
  2107. #endif
  2108. }
  2109. }
  2110. #endif
  2111. return 1;
  2112. }
  2113.  
  2114. stock svCheats_Debug(bool: togDebug)
  2115. {
  2116. if(togDebug == true)
  2117. {
  2118. print("(svCheats) Debugging has been turned on");
  2119. }
  2120. else if(togDebug == false)
  2121. {
  2122. print("(svCheats) Debugging has been turned off");
  2123. }
  2124.  
  2125. return svCheats_Debugging = togDebug;
  2126. }
  2127.  
  2128. stock svCheats_SetPlayerSecurityLevel(playerid, secLevel)
  2129. {
  2130. if(svCheats_Debugging == true)
  2131. {
  2132. printf("(svCheats) SetPlayerSecurityLevel(playerid = %d, secLevel = %d)", playerid, secLevel);
  2133. }
  2134.  
  2135. return svCheats_SecurityLevel[playerid] = secLevel;
  2136. }
  2137.  
  2138. stock svCheats_GetPlayerSecurityLevel(playerid)
  2139. {
  2140. if(svCheats_Debugging == true)
  2141. {
  2142. printf("(svCheats) GetPlayerSecurityLevel(playerid = %d)", playerid);
  2143. }
  2144.  
  2145. return svCheats_SecurityLevel[playerid];
  2146. }
  2147.  
  2148. stock svCheats_SetVehicleHealth(vehicleid, Float: vHealth)
  2149. {
  2150. if(svCheats_Debugging == true)
  2151. {
  2152. printf("(svCheats) SetVehicleHealth(vehicleid = %d, vHealth = %f)", vehicleid, vHealth);
  2153. }
  2154.  
  2155. svCheats_VehicleHealth[vehicleid] = vHealth;
  2156. return SetVehicleHealth(vehicleid, vHealth);
  2157. }
  2158.  
  2159. #if defined _ALS_SetVehicleHealth
  2160. #undef SetVehicleHealth
  2161. #else
  2162. #define _ALS_SetVehicleHealth
  2163. #endif
  2164. #define SetVehicleHealth svCheats_SetVehicleHealth
  2165.  
  2166. stock svCheats_GivePlayerWeapon(playerid, weaponid, ammo)
  2167. {
  2168. if(svCheats_Debugging == true)
  2169. {
  2170. printf("(svCheats) GivePlayerWeapon(playerid = %d, weaponid = %d, ammo = %d)", playerid, weaponid, ammo);
  2171. }
  2172.  
  2173. svCheats_PlayerWeapons[playerid][GetWeaponSlot(weaponid)] = weaponid;
  2174. return GivePlayerWeapon(playerid, weaponid, ammo);
  2175. }
  2176.  
  2177. #if defined _ALS_GivePlayerWeapon
  2178. #undef GivePlayerWeapon
  2179. #else
  2180. #define _ALS_GivePlayerWeapon
  2181. #endif
  2182. #define GivePlayerWeapon svCheats_GivePlayerWeapon
  2183.  
  2184. stock svCheats_ToggleJetpack(playerid, bool: toggleJetpack)
  2185. {
  2186. if(svCheats_Debugging == true)
  2187. {
  2188. printf("(svCheats) ToggleJetpack(playerid = %d, toggleJetpack = %d)", playerid, toggleJetpack);
  2189. }
  2190.  
  2191. return svCheats_GrantedJetpack[playerid] = toggleJetpack;
  2192. }
  2193.  
  2194. stock svCheats_SetPlayerHealth(playerid, Float: pHealth)
  2195. {
  2196. if(svCheats_Debugging == true)
  2197. {
  2198. printf("(svCheats) SetPlayerHealth(playerid = %d, pHealth = %f)", playerid, pHealth);
  2199. }
  2200.  
  2201. svCheats_PlayerHealth[playerid] = pHealth;
  2202. return SetPlayerHealth(playerid, pHealth);
  2203. }
  2204.  
  2205. #if defined _ALS_SetPlayerHealth
  2206. #undef SetPlayerHealth
  2207. #else
  2208. #define _ALS_SetPlayerHealth
  2209. #endif
  2210. #define SetPlayerHealth svCheats_SetPlayerHealth
  2211.  
  2212. stock svCheats_SetPlayerArmour(playerid, Float: pArmour)
  2213. {
  2214. if(svCheats_Debugging == true)
  2215. {
  2216. printf("(svCheats) SetPlayerArmour(playerid = %d, pArmour = %f)", playerid, pArmour);
  2217. }
  2218.  
  2219. svCheats_PlayerArmor[playerid] = pArmour;
  2220. return SetPlayerArmour(playerid, pArmour);
  2221. }
  2222.  
  2223. #if defined _ALS_SetPlayerArmour
  2224. #undef SetPlayerArmour
  2225. #else
  2226. #define _ALS_SetPlayerArmour
  2227. #endif
  2228. #define SetPlayerArmour svCheats_SetPlayerArmour
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement