Advertisement
Guest User

Untitled

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