Advertisement
Guest User

Untitled

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