Advertisement
Guest User

Untitled

a guest
Apr 29th, 2012
366
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 35.88 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.0] Created by SuperViper |
  11. //-----------------------------------------------------------------------------------|
  12.  
  13. #include <a_samp>
  14. #include <sscanf>
  15.  
  16. // ==================================== SETTINGS ================================== ///
  17. // //|
  18. /* Comment if you are using this include inside of a filterscript */ //|
  19. #define GAMEMODE //|
  20. // //|
  21. /* Comment if you would like to use regular 'for' loops instead of foreach */ //|
  22. #define USE_FOREACH //|
  23. // //|
  24. /* Comment if you would like to use regular 'ALS' hooks instead of y_hooks */ //|
  25. #define USE_YHOOKS //|
  26. // //|
  27. /* Change this amount to set how fast the timer (in ms) to detect cheats runs */ //|
  28. #define TIMER_TIME 1250 //|
  29. // //|
  30. /* Comment the anticheat(s) that you dont want and change the security level */ //|
  31. #define HIGH_PING (2) //|
  32. #define WEAPON_SPAWN (1) //|
  33. #define SPEED_HACK (1) //|
  34. #define JETPACK_HACK (1) //|
  35. #define DRVBY_RESTRICT (-1) //|
  36. #define DDRIVEBY_OFF (-1) //|
  37. #define SWEARING_OFF (-1) //|
  38. //#define AIRBREAK_HACK (1) //|
  39. #define BUNNYHOP_OFF (1) //|
  40. #define FLY_HACK (1) //|
  41. #define TELEPORT_HACK (1) //|
  42. #define VEHICLE_REPAIR (1) //|
  43. #define CHATSPAM_OFF (-1) //|
  44. #define AFK_DISABLED (2) //|
  45. #define TABBED_DISABLED (2) //|
  46. // //|
  47. // //|
  48. // //|
  49. /* Change the anticheat settings to best fit your server */ //|
  50. #define MAX_PING (750) // Maximum server ping //|
  51. #define USED_INTERIORS "1 2" // Used interiors separated by a space //|
  52. #define MAX_SPEED (198) // Maximum vehicle speed //|
  53. #define DRIVEBY_WEAPONS "28 29 32" // Driveby allowed weapons separated by a space //|
  54. #define BUNNYHOP_AMOUNT (6) // Amount of jumps before it's called bunny hopping //|
  55. #define CHATSPAM_LINES (4) // Amount of lines sent before it's called spam //|
  56. #define AFK_MINUTES (10) // Amount of minutes before a person is AFK //|
  57. new CurseWords[][] = {"ass", "bitch", "shit", "fuck", "nigger"}; //|
  58. // ================================================================================ ///
  59. // DO NOT TOUCH ANYTHING BELOW THIS ///
  60. // ================================================================================ ///
  61.  
  62. #if defined USE_FOREACH
  63. #tryinclude <foreach>
  64. #endif
  65.  
  66. #if defined USE_YHOOKS
  67. #tryinclude <YSI\y_hooks>
  68. #endif
  69.  
  70. #if defined AIRBREAK_HACK
  71. #tryinclude <MapAndreas>
  72. #endif
  73.  
  74. #define CHEAT_HIGH_PING (1)
  75. #define CHEAT_WEAPON_SPAWN (2)
  76. #define CHEAT_SPEED_HACK (3)
  77. #define CHEAT_JETPACK_HACK (4)
  78. #define CHEAT_DRIVEBY (5)
  79. #define CHEAT_DDRIVEBY (6)
  80. #define CHEAT_SWEARING (7)
  81. #define CHEAT_AIRBREAK_HACK (8)
  82. #define CHEAT_BUNNYHOP (9)
  83. #define CHEAT_FLY_HACK (10)
  84. #define CHEAT_TELEPORT_HACK (11)
  85. #define CHEAT_VEHICLE_REPAIR (12)
  86. #define CHEAT_CHATSPAM (13)
  87. #define CHEAT_AFK (14)
  88. #define CHEAT_TABBED (15)
  89.  
  90. forward svCheats_Detector();
  91. forward svCheats_OnPlayerCheatUpdate(playerid, cheatid);
  92.  
  93. new svCheats_SecurityLevel[MAX_PLAYERS], bool: svCheats_Debugging;
  94. new bool: svCheats_GrantedJetpack[MAX_PLAYERS], Float: svCheats_VehicleHealth[MAX_VEHICLES] = 1000.0;
  95. new svCheats_JumpCounters[MAX_PLAYERS], svCheats_JumpCounterTimer[MAX_PLAYERS];
  96. new svCheats_PlayerWeapons[MAX_PLAYERS][13], svCheats_SpamCounters[MAX_PLAYERS];
  97. new svCheats_AFKTime[MAX_PLAYERS], svCheats_LastAFKUpdate[MAX_PLAYERS], bool: svCheats_ReportedAFK[MAX_PLAYERS];
  98. new svCheats_TabbedUpdates[MAX_PLAYERS], bool: svCheats_ReportedTabbed[MAX_PLAYERS], bool: svCheats_TabbedDisabled[MAX_PLAYERS];
  99.  
  100. #if defined USE_YHOOKS
  101. #if defined GAMEMODE
  102. hook OnGameModeInit()
  103. {
  104. SetTimer("svCheats_Detector", TIMER_TIME, 1);
  105. return 1;
  106. }
  107. #else
  108. hook OnFilterScriptInit()
  109. {
  110. SetTimer("svCheats_Detector", TIMER_TIME, 1);
  111. return 1;
  112. }
  113. #endif
  114. hook OnPlayerConnect(playerid)
  115. {
  116. svCheats_SecurityLevel[playerid] = 0;
  117.  
  118. #if defined JETPACK_HACK
  119. svCheats_GrantedJetpack[playerid] = false;
  120. #endif
  121.  
  122. #if defined BUNNYHOP_OFF
  123. svCheats_JumpCounters[playerid] = 0;
  124. svCheats_JumpCounterTimer[playerid] = -1;
  125. #endif
  126.  
  127. #if defined CHATSPAM_OFF
  128. svCheats_SpamCounters[playerid] = 0;
  129. #endif
  130.  
  131. #if defined WEAPON_SPAWN
  132. for(new i = 0; i < 13; i++)
  133. {
  134. svCheats_PlayerWeapons[playerid][i] = 0;
  135. }
  136. #endif
  137.  
  138. #if defined AFK_DISABLED
  139. svCheats_AFKTime[playerid] = 0;
  140. svCheats_LastAFKUpdate[playerid] = GetTickCount();
  141. svCheats_ReportedAFK[playerid] = false;
  142. #endif
  143.  
  144. #if defined TABBED_DISABLED
  145. svCheats_TabbedUpdates[playerid] = 0;
  146. svCheats_ReportedTabbed[playerid] = false;
  147. svCheats_TabbedDisabled[playerid] = true;
  148. #endif
  149. return 1;
  150. }
  151.  
  152. hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  153. {
  154. #if defined BUNNYHOP_OFF
  155. if(newkeys & KEY_JUMP)
  156. {
  157. if(svCheats_SecurityLevel[playerid] < BUNNYHOP_OFF || BUNNYHOP_OFF == -1)
  158. {
  159. new ai = GetPlayerAnimationIndex(playerid);
  160. if(ai != 1061 && ai != 1062 && ai != 1064 && ai != 1066 && ai != 1195 && ai != 1997)
  161. {
  162. svCheats_JumpCounters[playerid]++;
  163.  
  164. if(svCheats_JumpCounterTimer[playerid] > -1)
  165. {
  166. KillTimer(svCheats_JumpCounterTimer[playerid]);
  167. svCheats_JumpCounterTimer[playerid] = -1;
  168. }
  169.  
  170. if(svCheats_JumpCounters[playerid] == BUNNYHOP_AMOUNT)
  171. {
  172. svCheats_JumpCounters[playerid] = 0;
  173. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_BUNNYHOP);
  174. }
  175. else
  176. {
  177. svCheats_JumpCounterTimer[playerid] = SetTimerEx("svCheats_JumpCountersDown", 3000, 0, "i", playerid);
  178. }
  179. }
  180. }
  181. }
  182. #endif
  183.  
  184. #if defined WEAPON_SPAWN
  185. if(newkeys & KEY_FIRE)
  186. {
  187. if(svCheats_SecurityLevel[playerid] < WEAPON_SPAWN || WEAPON_SPAWN == -1)
  188. {
  189. new w = GetPlayerWeapon(playerid);
  190. if(w > 0)
  191. {
  192. if(svCheats_PlayerWeapons[playerid][svCheats_GetWeaponSlot(w)] != w)
  193. {
  194. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_WEAPON_SPAWN);
  195. }
  196. }
  197. }
  198. }
  199. #endif
  200. return 1;
  201. }
  202.  
  203. hook OnPlayerText(playerid, text[])
  204. {
  205. #if defined SWEARING_OFF
  206. if(svCheats_SecurityLevel[playerid] < SWEARING_OFF || SWEARING_OFF == -1)
  207. {
  208. for(new c = 0; c < sizeof(CurseWords); c++)
  209. {
  210. if(strfind(text, CurseWords[c], true) > -1)
  211. {
  212. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_SWEARING);
  213. break;
  214. }
  215. }
  216. }
  217. #endif
  218.  
  219. #if defined CHATSPAM_OFF
  220. if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  221. {
  222. svCheats_SpamCounters[playerid]++;
  223.  
  224. if(svCheats_SpamCounters[playerid] == CHATSPAM_LINES)
  225. {
  226. svCheats_SpamCounters[playerid] = 0;
  227. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_CHATSPAM);
  228. }
  229. }
  230. #endif
  231.  
  232. #if defined AFK_DISABLED
  233. if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1)
  234. {
  235. svCheats_AFKTime[playerid] = 0;
  236. svCheats_ReportedAFK[playerid] = false;
  237. }
  238. #endif
  239. return 0;
  240. }
  241.  
  242. #if defined VEHICLE_REPAIR
  243. hook OnVehicleSpawn(vehicleid)
  244. {
  245. svCheats_VehicleHealth[vehicleid] = 1000.0;
  246. return 1;
  247. }
  248.  
  249. hook OnPlayerStateChange(playerid, newstate, oldstate)
  250. {
  251. if(newstate == PLAYER_STATE_DRIVER)
  252. {
  253. new vehicleid = GetPlayerVehicleID(playerid);
  254. GetVehicleHealth(vehicleid, svCheats_VehicleHealth[vehicleid]);
  255. }
  256. return 1;
  257. }
  258. #endif
  259.  
  260. #if defined CHEAT_TABBED
  261. hook OnPlayerUpdate(playerid)
  262. {
  263. svCheats_TabbedUpdates[playerid] = 0;
  264. svCheats_ReportedTabbed[playerid] = false;
  265. return 1;
  266. }
  267.  
  268. hook OnPlayerDeath(playerid, killerid, reason)
  269. {
  270. svCheats_TabbedDisabled[playerid] = true;
  271. return 1;
  272. }
  273.  
  274. hook OnPlayerSpawn(playerid)
  275. {
  276. svCheats_TabbedDisabled[playerid] = false;
  277. return 1;
  278. }
  279. #endif
  280.  
  281. hook OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  282. {
  283. #if defined DRVBY_RESTRICT
  284. if(svCheats_SecurityLevel[playerid] < DRVBY_RESTRICT || DRVBY_RESTRICT == -1)
  285. {
  286. if(ispassenger)
  287. {
  288. new w = GetPlayerWeapon(playerid);
  289. if(w > 0)
  290. {
  291. new allowedWeapons[10], bool: allowed;
  292. sscanf(DRIVEBY_WEAPONS, "a<i>[10]", allowedWeapons);
  293.  
  294. for(new i = 0; i < sizeof(allowedWeapons); i++)
  295. {
  296. if(w == allowedWeapons[i])
  297. {
  298. allowed = true;
  299. break;
  300. }
  301. }
  302.  
  303. if(allowed == false)
  304. {
  305. SetPlayerArmedWeapon(playerid, 0);
  306. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_DRIVEBY);
  307. }
  308. }
  309. }
  310. }
  311. #endif
  312.  
  313. #if defined DDRIVEBY_OFF
  314. if(svCheats_SecurityLevel[playerid] < DDRIVEBY_OFF || DDRIVEBY_OFF == -1)
  315. {
  316. if(!ispassenger)
  317. {
  318. new w = GetPlayerWeapon(playerid);
  319. if(w > 0)
  320. {
  321. SetPlayerArmedWeapon(playerid, 0);
  322. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_DDRIVEBY);
  323. }
  324. }
  325. }
  326. #endif
  327.  
  328. return 1;
  329. }
  330. #else
  331. #if defined GAMEMODE
  332. forward svCheats_OnGameModeInit();
  333. public OnGameModeInit()
  334. {
  335. SetTimer("svCheats_Detector", TIMER_TIME, 1);
  336. return 1;
  337. }
  338.  
  339. #if defined _ALS_OnGameModeInit
  340. #undef OnGameModeInit
  341. #else
  342. #define _ALS_OnGameModeInit
  343. #endif
  344. #define OnGameModeInit svCheats_OnGameModeInit
  345. #else
  346. forward svCheats_OnFilterScriptInit();
  347. public OnFilterScriptInit()
  348. {
  349. SetTimer("svCheats_Detector", TIMER_TIME, 1);
  350. return 1;
  351. }
  352.  
  353. #if defined _ALS_OnFilterScriptInit
  354. #undef OnFilterScriptInit
  355. #else
  356. #define _ALS_OnFilterScriptInit
  357. #endif
  358. #define OnFilterScriptInit svCheats_OnFilterScriptInit
  359. #endif
  360. forward svCheats_OnPlayerConnect();
  361. public OnPlayerConnect(playerid)
  362. {
  363. svCheats_SecurityLevel[playerid] = 0;
  364.  
  365. #if defined JETPACK_HACK
  366. svCheats_GrantedJetpack[playerid] = false;
  367. #endif
  368.  
  369. #if defined BUNNYHOP_OFF
  370. svCheats_JumpCounters[playerid] = 0;
  371. svCheats_JumpCounterTimer[playerid] = -1;
  372. #endif
  373.  
  374. #if defined CHATSPAM_OFF
  375. svCheats_SpamCounters[playerid] = 0;
  376. #endif
  377.  
  378. #if defined WEAPON_SPAWN
  379. for(new i = 0; i < 13; i++)
  380. {
  381. svCheats_PlayerWeapons[playerid][i] = 0;
  382. }
  383. #endif
  384.  
  385. #if defined AFK_DISABLED
  386. svCheats_AFKTime[playerid] = 0;
  387. svCheats_LastAFKUpdate[playerid] = GetTickCount();
  388. svCheats_ReportedAFK[playerid] = false;
  389. #endif
  390.  
  391. #if defined TABBED_DISABLED
  392. svCheats_TabbedUpdates[playerid] = 0;
  393. svCheats_ReportedTabbed[playerid] = false;
  394. svCheats_TabbedDisabled[playerid] = true;
  395. #endif
  396. return CallRemoteFunction("svCheats_OnPlayerConnect", "d", playerid);
  397. }
  398.  
  399. #if defined _ALS_OnPlayerConnect
  400. #undef OnPlayerConnect
  401. #else
  402. #define _ALS_OnPlayerConnect
  403. #endif
  404. #define OnPlayerConnect svCheats_OnPlayerConnect
  405.  
  406. forward svCheats_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  407. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  408. {
  409. #if defined BUNNYHOP_OFF
  410. if(newkeys & KEY_JUMP)
  411. {
  412. if(svCheats_SecurityLevel[playerid] < BUNNYHOP_OFF || BUNNYHOP_OFF == -1)
  413. {
  414. new ai = GetPlayerAnimationIndex(playerid);
  415. if(ai != 1061 && ai != 1062 && ai != 1064 && ai != 1066 && ai != 1195 && ai != 1997)
  416. {
  417. svCheats_JumpCounters[playerid]++;
  418.  
  419. if(svCheats_JumpCounterTimer[playerid] > -1)
  420. {
  421. KillTimer(svCheats_JumpCounterTimer[playerid]);
  422. svCheats_JumpCounerTimer[playerid] = -1;
  423. }
  424.  
  425. if(svCheats_JumpCounters[playerid] == BUNNYHOP_AMOUNT)
  426. {
  427. svCheats_JumpCounters[playerid] = 0;
  428. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_BUNNYHOP);
  429. }
  430. else
  431. {
  432. svCheats_JumpCounterTimer[playerid] = SetTimerEx("svCheats_JumpCountersDown", 3000, 0, "i", playerid);
  433. }
  434. }
  435. }
  436. }
  437. #endif
  438.  
  439. #if defined WEAPON_SPAWN
  440. if(newkeys & KEY_FIRE)
  441. {
  442. if(svCheats_SecurityLevel[playerid] < WEAPON_SPAWN || WEAPON_SPAWN == -1)
  443. {
  444. new w = GetPlayerWeapon(playerid);
  445. if(w > 0)
  446. {
  447. if(svCheats_PlayerWeapons[playerid][svCheats_GetWeaponSlot(w)] != w)
  448. {
  449. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_WEAPON_SPAWN);
  450. }
  451. }
  452. }
  453. }
  454. #endif
  455. return CallRemoteFunction("svCheats_OnPlayerKeyStateChange", "ddd", playerid, newkeys, oldkeys);
  456. }
  457.  
  458. #if defined _ALS_OnPlayerKeyStateChange
  459. #undef OnPlayerKeyStateChange
  460. #else
  461. #define _ALS_OnPlayerKeyStateChange
  462. #endif
  463. #define OnPlayerKeyStateChange svCheats_OnPlayerKeyStateChange
  464.  
  465. forward svCheats_OnPlayerText(playerid, text[]);
  466. public OnPlayerText(playerid, text[])
  467. {
  468. #if defined SWEARING_OFF
  469. if(svCheats_SecurityLevel[playerid] < SWEARING_OFF || SWEARING_OFF == -1)
  470. {
  471. for(new c = 0; c < sizeof(CurseWords); c++)
  472. {
  473. if(strfind(string, CurseWords[c], true) > -1)
  474. {
  475. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_SWEARING);
  476. break;
  477. }
  478. }
  479. }
  480. #endif
  481.  
  482. #if defined CHATSPAM_OFF
  483. if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  484. {
  485. svCheats_SpamCounters[playerid]++;
  486.  
  487. if(svCheats_SpamCounters[playerid] == CHATSPAM_LINES)
  488. {
  489. svCheats_SpamCounters[playerid] = 0;
  490. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_CHATSPAM);
  491. }
  492. }
  493. #endif
  494.  
  495. #if defined AFK_DISABLED
  496. if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1)
  497. {
  498. svCheats_AFKTime[playerid] = 0;
  499. svCheats_ReportedAFK[playerid] = false;
  500. }
  501. #endif
  502. return CallRemoteFunction("svCheats_OnPlayerText", "ds", playerid, text);
  503. }
  504.  
  505. #if defined _ALS_OnPlayerText
  506. #undef OnPlayerText
  507. #else
  508. #define _ALS_OnPlayerText
  509. #endif
  510. #define OnPlayerText svCheats_OnPlayerText
  511.  
  512. #if defined VEHICLE_REPAIR
  513. forward svCheats_OnVehicleSpawn(vehicleid);
  514. public OnVehicleSpawn(vehicleid)
  515. {
  516. svCheats_VehicleHealth[vehicleid] = 1000.0;
  517. return CallRemoteFunction("svCheats_OnVehicleSpawn", "d", vehicleid);
  518. }
  519.  
  520. #if defined _ALS_OnVehicleSpawn
  521. #undef OnVehicleSpawn
  522. #else
  523. #define _ALS_OnVehicleSpawn
  524. #endif
  525. #define OnVehicleSpawn svCheats_OnVehicleSpawn
  526.  
  527. forward svCheats_OnPlayerStateChange(playerid, newstate, oldstate);
  528. public OnPlayerStateChange(playerid, newstate, oldstate)
  529. {
  530. if(newstate == PLAYER_STATE_DRIVER)
  531. {
  532. new vehicleid = GetPlayerVehicleID(playerid);
  533. GetVehicleHealth(vehicleid, svCheats_VehicleHealth[vehicleid]);
  534. }
  535. return CallRemoteFunction("svCheats_OnPlayerStateChange", "ddd", playerid, newstate, oldstate);
  536. }
  537.  
  538. #if defined _ALS_OnPlayerStateChange
  539. #undef OnPlayerStateChange
  540. #else
  541. #define _ALS_OnPlayerStateChange
  542. #endif
  543. #define OnPlayerStateChange svCheats_OnPlayerStateChange
  544. #endif
  545.  
  546. #if defined CHEAT_TABBED
  547. forward svCheats_OnPlayerUpdate(playerid);
  548. public OnPlayerUpdate(playerid)
  549. {
  550. svCheats_TabbedUpdates[playerid] = 0;
  551. svCheats_ReportedTabbed[playerid] = false;
  552. return CallRemoteFunction("svCheats_OnPlayerUpdate", "d", playerid);
  553. }
  554.  
  555. #if defined _ALS_OnPlayerUpdate
  556. #undef OnPlayerUpdate
  557. #else
  558. #define _ALS_OnPlayerUpdate
  559. #endif
  560. #define OnPlayerUpdate svCheats_OnPlayerUpdate
  561.  
  562. forward svCheats_OnPlayerDeath(playerid, killerid, reason);
  563. public OnPlayerDeath(playerid, killerid, reason)
  564. {
  565. svCheats_TabbedDisabled[playerid] = true;
  566. return CallRemoteFunction("svCheats_OnPlayerDeath", "ddd", playerid, killerid, reason);
  567. }
  568.  
  569. #if defined _ALS_OnPlayerDeath
  570. #undef OnPlayerDeath
  571. #else
  572. #define _ALS_OnPlayerDeath
  573. #endif
  574. #define OnPlayerDeath svCheats_OnPlayerDeath
  575.  
  576. forward svCheats_OnPlayerSpawn(playerid);
  577. public OnPlayerSpawn(playerid)
  578. {
  579. svCheats_TabbedDisabled[playerid] = false;
  580. return CallRemoteFunction("svCheats_OnPlayerSpawn", "d", playerid);;
  581. }
  582.  
  583. #if defined _ALS_OnPlayerSpawn
  584. #undef OnPlayerSpawn
  585. #else
  586. #define _ALS_OnPlayerSpawn
  587. #endif
  588. #define OnPlayerSpawn svCheats_OnPlayerSpawn
  589.  
  590. forward svCheats_OnPlayerEnterVehicle(playerid, vehicleid, ispassenger);
  591. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  592. {
  593. #if defined DRVBY_RESTRICT
  594. if(svCheats_SecurityLevel[playerid] < DRVBY_RESTRICT || DRVBY_RESTRICT == -1)
  595. {
  596. if(ispassenger)
  597. {
  598. new w = GetPlayerWeapon(playerid);
  599. if(w > 0)
  600. {
  601. new allowedWeapons[10], bool: allowed;
  602. sscanf(DRIVEBY_WEAPONS, "a<i>[10]", allowedWeapons);
  603.  
  604. for(new i = 0; i < sizeof(allowedWeapons); i++)
  605. {
  606. if(w == allowedWeapons[i])
  607. {
  608. allowed = true;
  609. break;
  610. }
  611. }
  612.  
  613. if(allowed == false)
  614. {
  615. SetPlayerArmedWeapon(playerid, 0);
  616. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_DRIVEBY);
  617. }
  618. }
  619. }
  620. }
  621. #endif
  622.  
  623. #if defined DDRIVEBY_OFF
  624. if(svCheats_SecurityLevel[playerid] < DDRIVEBY_OFF || DDRIVEBY_OFF == -1)
  625. {
  626. if(!ispassenger)
  627. {
  628. new w = GetPlayerWeapon(playerid);
  629. if(w > 0)
  630. {
  631. SetPlayerArmedWeapon(playerid, 0);
  632. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_DDRIVEBY);
  633. }
  634. }
  635. }
  636. #endif
  637.  
  638. return CallRemoteFunction("svCheats_OnPlayerEnterVehicle", "ddd", playerid, vehicleid, ispassenger);
  639. }
  640.  
  641. #if defined _ALS_OnPlayerEnterVehicle
  642. #undef OnPlayerEnterVehicle
  643. #else
  644. #define _ALS_OnPlayerEnterVehicle
  645. #endif
  646. #define OnPlayerEnterVehicle svCheats_OnPlayerEnterVehicle
  647. #endif
  648. #endif
  649.  
  650. forward svCheats_JumpCountersDown(playerid);
  651. public svCheats_JumpCountersDown(playerid)
  652. {
  653. svCheats_JumpCounters[playerid]--;
  654. svCheats_JumpCounterTimer[playerid] = -1;
  655. return 1;
  656. }
  657.  
  658. svCheats_GetWeaponSlot(weaponid)
  659. {
  660. switch(weaponid)
  661. {
  662. case 0, 1:
  663. {
  664. return 0;
  665. }
  666. case 2, 3, 4, 5, 6, 7, 8, 9:
  667. {
  668. return 1;
  669. }
  670. case 22, 23, 24:
  671. {
  672. return 2;
  673. }
  674. case 25, 26, 27:
  675. {
  676. return 3;
  677. }
  678. case 28, 29, 32:
  679. {
  680. return 4;
  681. }
  682. case 30, 31:
  683. {
  684. return 5;
  685. }
  686. case 33, 34:
  687. {
  688. return 6;
  689. }
  690. case 35, 36, 37, 38:
  691. {
  692. return 7;
  693. }
  694. case 16, 17, 18, 39, 40:
  695. {
  696. return 8;
  697. }
  698. case 41, 42, 43:
  699. {
  700. return 9;
  701. }
  702. case 10, 11, 12, 13, 14, 15:
  703. {
  704. return 10;
  705. }
  706. case 44, 45, 46:
  707. {
  708. return 11;
  709. }
  710. }
  711. return 0;
  712. }
  713.  
  714. svCheats_IsPlayerAtRepairPoint(playerid)
  715. {
  716. if(GetPlayerCameraMode(playerid) == 15) return 1;
  717. if(IsPlayerInRangeOfPoint(playerid, 25.0, 2067.00, -1831.65, 13.55)) return 1;
  718. if(IsPlayerInRangeOfPoint(playerid, 25.0, 1024.97, -1023.88, 32.10)) return 1;
  719. if(IsPlayerInRangeOfPoint(playerid, 25.0, 1041.19, -1022.50, 32.11)) return 1;
  720. if(IsPlayerInRangeOfPoint(playerid, 25.0, 720.25, -457.17, 16.34)) return 1;
  721. if(IsPlayerInRangeOfPoint(playerid, 25.0, 2386.66, 1045.68, 10.82)) return 1;
  722. if(IsPlayerInRangeOfPoint(playerid, 25.0, 1972.50, 2163.03, 11.07)) return 1;
  723. if(IsPlayerInRangeOfPoint(playerid, 25.0, -1420.58, 2586.17, 55.84)) return 1;
  724. if(IsPlayerInRangeOfPoint(playerid, 25.0, -1904.90, 283.96, 41.05)) return 1;
  725. if(IsPlayerInRangeOfPoint(playerid, 25.0, -2719.46, 217.77, 4.48)) return 1;
  726. return 0;
  727. }
  728.  
  729. svCheats_GetVehicleSpeed(vehicleid)
  730. {
  731. new Float: vVel[3];
  732. GetVehicleVelocity(vehicleid, vVel[0], vVel[1], vVel[2]);
  733. return floatround(floatsqroot((vVel[0]*vVel[1]+vVel[2]*vVel[2]))*100.0*1.6);
  734. }
  735.  
  736. public svCheats_Detector()
  737. {
  738. #if defined USE_FOREACH
  739. foreach(new playerid: Player)
  740. {
  741. #if defined HIGH_PING
  742. if(svCheats_SecurityLevel[playerid] < HIGH_PING || HIGH_PING == -1)
  743. {
  744. if(GetPlayerPing(playerid) > MAX_PING)
  745. {
  746. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_HIGH_PING);
  747. }
  748. }
  749. #endif
  750.  
  751. #if defined SPEED_HACK
  752. if(svCheats_SecurityLevel[playerid] < SPEED_HACK || SPEED_HACK == -1)
  753. {
  754. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  755. {
  756. new vehicleid = GetPlayerVehicleID(playerid);
  757. if(svCheats_GetVehicleSpeed(vehicleid) > MAX_SPEED)
  758. {
  759. if(GetVehicleModel(vehicleid) != 520)
  760. {
  761. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_SPEED_HACK);
  762. }
  763. }
  764. }
  765. }
  766. #endif
  767.  
  768. #if defined JETPACK_HACK
  769. if(svCheats_SecurityLevel[playerid] < JETPACK_HACK || JETPACK_HACK == -1)
  770. {
  771. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK)
  772. {
  773. if(svCheats_GrantedJetpack[playerid] == false)
  774. {
  775. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_JETPACK_HACK);
  776. }
  777. }
  778. }
  779. #endif
  780.  
  781. #if defined AIRBREAK_HACK
  782. if(svCheats_SecurityLevel[playerid] < AIRBREAK_HACK || AIRBREAK_HACK == -1)
  783. {
  784. new ai = GetPlayerAnimationIndex(playerid);
  785. if(ai == 1231 || ai == 1266)
  786. {
  787. new Float: playersPos[3];
  788. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  789. if(playersPos[2] >= 4.0)
  790. {
  791. if(!IsPlayerInRangeOfPoint(playerid, 200.0, 602.74, 871.44, -20.65) && !IsPlayerInRangeOfPoint(playerid, 300.0, 1678.38, -2291.18, -1.00))
  792. {
  793. if(GetPointZPos(playersPos[0], playersPos[1]) < playersPos[2] - 15.0)
  794. {
  795. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_AIRBREAK_HACK);
  796. }
  797. }
  798. }
  799. }
  800. }
  801. #endif
  802.  
  803. #if defined FLY_HACK
  804. if(svCheats_SecurityLevel[playerid] < FLY_HACK || FLY_HACK == -1)
  805. {
  806. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  807. {
  808. new ai = GetPlayerAnimationIndex(playerid);
  809. if(ai == 1538 || ai == 1538 || ai == 1543)
  810. {
  811. new Float: playersPos[3];
  812. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  813. if(playersPos[2] >= 4.0)
  814. {
  815. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_FLY_HACK);
  816. }
  817. }
  818. }
  819. }
  820. #endif
  821.  
  822. #if defined TELEPORT_HACK
  823. if(svCheats_SecurityLevel[playerid] < TELEPORT_HACK || TELEPORT_HACK == -1)
  824. {
  825. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  826. {
  827. new interior = GetPlayerInterior(playerid);
  828. if(interior > 0)
  829. {
  830. new allowedInteriors[10], bool: allowed;
  831. sscanf(USED_INTERIORS, "a<i>[10]", allowedInteriors);
  832.  
  833. for(new i = 0; i < sizeof(allowedInteriors); i++)
  834. {
  835. if(allowedInteriors[i] == interior)
  836. {
  837. allowed = true;
  838. break;
  839. }
  840. }
  841.  
  842. if(allowed == false)
  843. {
  844. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_TELEPORT_HACK);
  845. }
  846. }
  847. }
  848. }
  849. #endif
  850.  
  851. #if defined VEHICLE_REPAIR
  852. if(svCheats_SecurityLevel[playerid] < VEHICLE_REPAIR || VEHICLE_REPAIR == -1)
  853. {
  854. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  855. {
  856. new vehicleid = GetPlayerVehicleID(playerid), Float: vHealth;
  857. GetVehicleHealth(vehicleid, vHealth);
  858. if(vHealth > svCheats_VehicleHealth[vehicleid])
  859. {
  860. if(!svCheats_IsPlayerAtRepairPoint(playerid))
  861. {
  862. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_VEHICLE_REPAIR);
  863. }
  864. }
  865. svCheats_VehicleHealth[vehicleid] = vHealth;
  866. }
  867. }
  868. #endif
  869.  
  870. #if defined CHATSPAM_OFF
  871. if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  872. {
  873. svCheats_SpamCounters[playerid]--;
  874.  
  875. if(svCheats_SpamCounters[playerid] < 0)
  876. {
  877. svCheats_SpamCounters[playerid] = 0;
  878. }
  879. }
  880. #endif
  881.  
  882. #if defined AFK_DISABLED
  883. if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1)
  884. {
  885. if(svCheats_ReportedAFK[playerid] == false)
  886. {
  887. svCheats_AFKTime[playerid] += GetTickCount() - svCheats_LastAFKUpdate[playerid];
  888. svCheats_LastAFKUpdate[playerid] = GetTickCount();
  889.  
  890. if(svCheats_ReportedAFK[playerid] == false)
  891. {
  892. new AFKMinutes = svCheats_AFKTime[playerid] / 60000;
  893. if(AFKMinutes >= AFK_MINUTES)
  894. {
  895. svCheats_ReportedAFK[playerid] = true;
  896. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_AFK);
  897. }
  898. }
  899. }
  900. }
  901. #endif
  902.  
  903. #if defined TABBED_DISABLED
  904. if(svCheats_SecurityLevel[playerid] < TABBED_DISABLED || TABBED_DISABLED == -1)
  905. {
  906. if(svCheats_ReportedTabbed[playerid] == false)
  907. {
  908. if(GetPlayerCameraMode(playerid) != 55)
  909. {
  910. svCheats_TabbedUpdates[playerid]++;
  911.  
  912. if(svCheats_TabbedUpdates[playerid] > 1)
  913. {
  914. svCheats_TabbedUpdates[playerid] = 0;
  915. svCheats_ReportedTabbed[playerid] = true;
  916. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_TABBED);
  917. }
  918. }
  919. }
  920. }
  921. #endif
  922. }
  923. #else
  924. for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
  925. {
  926. if(IsPlayerConnected(playerid))
  927. {
  928. #if defined HIGH_PING
  929. if(svCheats_SecurityLevel[playerid] < HIGH_PING || HIGH_PING == -1)
  930. {
  931. if(GetPlayerPing(playerid) > MAX_PING)
  932. {
  933. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_HIGH_PING);
  934. }
  935. }
  936. #endif
  937.  
  938. #if defined SPEED_HACK
  939. if(svCheats_SecurityLevel[playerid] < SPEED_HACK || SPEED_HACK == -1)
  940. {
  941. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  942. {
  943. new vehicleid = GetPlayerVehicleID(playerid);
  944. if(svCheats_GetVehicleSpeed(vehicleid) > MAX_SPEED)
  945. {
  946. if(GetVehicleModel(vehicleid) != 520)
  947. {
  948. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_SPEED_HACK);
  949. }
  950. }
  951. }
  952. }
  953. #endif
  954.  
  955. #if defined JETPACK_HACK
  956. if(svCheats_SecurityLevel[playerid] < JETPACK_HACK || JETPACK_HACK == -1)
  957. {
  958. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK)
  959. {
  960. if(svCheats_GrantedJetpack[playerid] == false)
  961. {
  962. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_JETPACK_HACK);
  963. }
  964. }
  965. }
  966. #endif
  967.  
  968. #if defined AIRBREAK_HACK
  969. if(svCheats_SecurityLevel[playerid] < AIRBREAK_HACK || AIRBREAK_HACK == -1)
  970. {
  971. new ai = GetPlayerAnimationIndex(playerid);
  972. if(ai == 1231 || ai == 1266)
  973. {
  974. new Float: playersPos[3];
  975. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  976. if(playersPos[2] >= 4.0)
  977. {
  978. if(!IsPlayerInRangeOfPoint(playerid, 200.0, 602.74, 871.44, -20.65) && !IsPlayerInRangeOfPoint(playerid, 300.0, 1678.38, -2291.18, -1.00))
  979. {
  980. if(GetPointZPos(playersPos[0], playersPos[1]) < playersPos[2] - 15.0)
  981. {
  982. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_AIRBREAK_HACK);
  983. }
  984. }
  985. }
  986. }
  987. }
  988. #endif
  989.  
  990. #if defined FLY_HACK
  991. if(svCheats_SecurityLevel[playerid] < FLY_HACK || FLY_HACK == -1)
  992. {
  993. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  994. {
  995. new ai = GetPlayerAnimationIndex(playerid);
  996. if(ai == 1538 || ai == 1538 || ai == 1543)
  997. {
  998. new Float: playersPos[3];
  999. GetPlayerPos(playerid, playersPos[0], playersPos[1], playersPos[2]);
  1000. if(playersPos[2] >= 4.0)
  1001. {
  1002. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_FLY_HACK);
  1003. }
  1004. }
  1005. }
  1006. }
  1007. #endif
  1008.  
  1009. #if defined TELEPORT_HACK
  1010. if(svCheats_SecurityLevel[playerid] < TELEPORT_HACK || TELEPORT_HACK == -1)
  1011. {
  1012. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  1013. {
  1014. new interior = GetPlayerInterior(playerid);
  1015. if(interior > 0)
  1016. {
  1017. new allowedInteriors[10], bool: allowed;
  1018. sscanf(USED_INTERIORS, "a<i>[10]", allowedInteriors);
  1019.  
  1020. for(new i = 0; i < sizeof(allowedInteriors); i++)
  1021. {
  1022. if(allowedInteriors[i] == interior)
  1023. {
  1024. allowed = true;
  1025. break;
  1026. }
  1027. }
  1028.  
  1029. if(allowed == false)
  1030. {
  1031. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_TELEPORT_HACK);
  1032. }
  1033. }
  1034. }
  1035. }
  1036. #endif
  1037.  
  1038. #if defined VEHICLE_REPAIR
  1039. if(svCheats_SecurityLevel[playerid] < VEHICLE_REPAIR || VEHICLE_REPAIR == -1)
  1040. {
  1041. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1042. {
  1043. new vehicleid = GetPlayerVehicleID(playerid), Float: vHealth;
  1044. GetVehicleHealth(vehicleid, vHealth);
  1045. if(vHealth > svCheats_VehicleHealth[vehicleid])
  1046. {
  1047. if(!svCheats_IsPlayerAtRepairPoint(playerid))
  1048. {
  1049. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_VEHICLE_REPAIR);
  1050. }
  1051. }
  1052. svCheats_VehicleHealth[vehicleid] = vHealth;
  1053. }
  1054. }
  1055. #endif
  1056.  
  1057. #if defined CHATSPAM_OFF
  1058. if(svCheats_SecurityLevel[playerid] < CHATSPAM_OFF || CHATSPAM_OFF == -1)
  1059. {
  1060. svCheats_SpamCounters[playerid]--;
  1061.  
  1062. if(svCheats_SpamCounters[playerid] < 0)
  1063. {
  1064. svCheats_SpamCounters[playerid] = 0;
  1065. }
  1066. }
  1067. #endif
  1068.  
  1069. #if defined AFK_DISABLED
  1070. if(svCheats_SecurityLevel[playerid] < AFK_DISABLED || AFK_DISABLED == -1)
  1071. {
  1072. if(svCheats_ReportedAFK[playerid] == false)
  1073. {
  1074. svCheats_AFKTime[playerid] += GetTickCount() - svCheats_LastAFKUpdate[playerid];
  1075. svCheats_LastAFKUpdate[playerid] = GetTickCount();
  1076.  
  1077. if(svCheats_ReportedAFK[playerid] == false)
  1078. {
  1079. new AFKMinutes = svCheats_AFKTime[playerid] / 60000;
  1080. if(AFKMinutes >= AFK_MINUTES)
  1081. {
  1082. svCheats_ReportedAFK[playerid] = true;
  1083. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_AFK);
  1084. }
  1085. }
  1086. }
  1087. }
  1088. #endif
  1089.  
  1090. #if defined TABBED_DISABLED
  1091. if(svCheats_SecurityLevel[playerid] < TABBED_DISABLED || TABBED_DISABLED == -1)
  1092. {
  1093. if(svCheats_ReportedTabbed[playerid] == false)
  1094. {
  1095. if(GetPlayerCameraMode(playerid) != 55)
  1096. {
  1097. svCheats_TabbedUpdates[playerid]++;
  1098.  
  1099. if(svCheats_TabbedUpdates[playerid] > 1)
  1100. {
  1101. svCheats_TabbedUpdates[playerid] = 0;
  1102. svCheats_ReportedTabbed[playerid] = true;
  1103. CallRemoteFunction("svCheats_OnPlayerCheatUpdate", "dd", playerid, CHEAT_TABBED);
  1104. }
  1105. }
  1106. }
  1107. }
  1108. #endif
  1109. }
  1110. }
  1111. #endif
  1112. return 1;
  1113. }
  1114.  
  1115. stock svCheats_Debug(bool: togDebug)
  1116. {
  1117. if(togDebug == true)
  1118. {
  1119. print("(svCheats) Debugging has been turned on");
  1120. }
  1121. else if(togDebug == false)
  1122. {
  1123. print("(svCheats) Debugging has been turned off");
  1124. }
  1125.  
  1126. return svCheats_Debugging = togDebug;
  1127. }
  1128.  
  1129. stock svCheats_SetPlayerSecurityLevel(playerid, secLevel)
  1130. {
  1131. if(svCheats_Debugging == true)
  1132. {
  1133. printf("(svCheats) SetPlayerSecurityLevel(playerid = %d, secLevel = %d)", playerid, secLevel);
  1134. }
  1135.  
  1136. return svCheats_SecurityLevel[playerid] = secLevel;
  1137. }
  1138.  
  1139. stock svCheats_GetPlayerSecurityLevel(playerid)
  1140. {
  1141. if(svCheats_Debugging == true)
  1142. {
  1143. printf("(svCheats) GetPlayerSecurityLevel(playerid = %d)", playerid);
  1144. }
  1145.  
  1146. return svCheats_SecurityLevel[playerid];
  1147. }
  1148.  
  1149. stock svCheats_SetVehicleHealth(vehicleid, Float: vHealth)
  1150. {
  1151. if(svCheats_Debugging == true)
  1152. {
  1153. printf("(svCheats) SetVehicleHealth(vehicleid = %d, vHealth = %f)", vehicleid, vHealth);
  1154. }
  1155.  
  1156. return svCheats_VehicleHealth[vehicleid] = vHealth, SetVehicleHealth(vehicleid, vHealth);
  1157. }
  1158.  
  1159. stock svCheats_GivePlayerWeapon(playerid, weaponid, ammo)
  1160. {
  1161. if(svCheats_Debugging == true)
  1162. {
  1163. printf("(svCheats) GivePlayerWeapon(playerid = %d, weaponid = %d, ammo = %d)", playerid, weaponid, ammo);
  1164. }
  1165.  
  1166. return svCheats_PlayerWeapons[playerid][GetWeaponSlot(weaponid)] = weaponid, GivePlayerWeapon(playerid, weaponid, ammo);
  1167. }
  1168.  
  1169. stock svCheats_ToggleJetpack(playerid, bool: toggleJetpack)
  1170. {
  1171. if(svCheats_Debugging == true)
  1172. {
  1173. printf("(svCheats) ToggleJetpack(playerid = %d, toggleJetpack = %d)", playerid, toggleJetpack);
  1174. }
  1175.  
  1176. return svCheats_GrantedJetpack[playerid] = toggleJetpack;
  1177. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement