Advertisement
Guest User

simple anticheat by Macak beta v0.1

a guest
Aug 17th, 2018
1,021
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.48 KB | None | 0 0
  1. #define Ne_Diraj_Ovo
  2. //------------------------------------------------------------------------------
  3. /*
  4. - Simple anticheat system by Aleksa Djordjevic(Macak)
  5. - Zahvale: sa-mp forum!
  6. - FS radjena za Balkan samp forum
  7. - Ukoliko #define Ne_Diraj_Ovo promenite ovo FS nece raditi! ;)
  8.  
  9. ~ Anticheat Detekcije ~
  10. - Anti Crasher Hack
  11. - Anti JetPack Hack
  12. - Anti Drive Hack
  13. - Anti JoyPad Hack
  14. - Visok Ping Detekcija
  15. - Anti Speed Hack
  16. - Anti Weapon Crasher(Camera Mode)
  17. - Anti Fly Hack
  18. */
  19.  
  20.  
  21.  
  22. #if !defined Ne_Diraj_Ovo
  23. #error Procitaj pravila korscenja, momcino.
  24. #endif
  25. //------------------------------------------------------------------------------include
  26. #define FILTERSCRIPT
  27. #include <a_samp>
  28. #include <streamer>
  29. #include <sscanf2>
  30. #include <YSI\y_ini>
  31. #include <YSI\y_timers>
  32. #include <YSI\y_hooks>
  33. //------------------------------------------------------------------------------
  34. #if defined FILTERSCRIPT
  35. //------------------------------------------------------------------------------
  36. public OnFilterScriptInit()
  37. {
  38. print("________________________________________");
  39. print("~~Anticheat by Macak uspesno ucitan! ~~");
  40. print("________________________________________");
  41. return (true);
  42. }
  43. //------------------------------------------------------------------------------
  44. public OnFilterScriptExit()
  45. {
  46. return (true);
  47. }
  48.  
  49. #else
  50. //------------------------------------------------------------------------------
  51. main()
  52. {
  53. print("________________________________________");
  54. print(" [!!!] ");
  55. print("________________________________________");
  56. }
  57. //------------------------------------------------------------------------------
  58. #endif
  59. //------------------------------------------------------------------------------
  60. #undef MAX_PLAYERS
  61. #define MAX_PLAYERS (500)
  62. //------------------------------------------------------------------------------boje
  63. #define col_ac "{F81414}"
  64. #define BELA "{FFFFFF}"
  65. //------------------------------------------------------------------------------skracenice
  66. #define IPI INVALID_PLAYER_ID
  67. #define SCM SendClientMessage
  68. //------------------------------------------------------------------------------Oruzje dal je validno
  69. #define Pravo_Oruzje(%0) (%0>=1 && %0<=18 || %0>=21 && %0<=46)
  70. //------------------------------------------------------------------------------newovi
  71. new Macak_Bot;
  72. new Povisen_Ping[MAX_PLAYERS];
  73. new JoyPad_Detekcija[MAX_PLAYERS] = {0, ...};
  74. //------------------------------------------------------------------------------
  75. bool:Vozilo_Avion(vozilo)
  76. {
  77. switch(GetVehicleModel(vozilo))
  78. {
  79. case 417, 425, 447, 460, 469, 476, 487, 488, 497, 511, 512, 513, 519,
  80. 520, 548, 553, 563, 577, 592, 593: return true;
  81. }
  82. return (false);
  83. }
  84. //------------------------------------------------------------------------------
  85. static stock GetSpeed(playerid)
  86. {
  87. new Float:ST[4];
  88. if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid), ST[0], ST[1], ST[2]);
  89. else GetPlayerVelocity(playerid, ST[0], ST[1], ST[2]);
  90. ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 178.8617875;
  91. return floatround(ST[3]);
  92. }
  93. //------------------------------------------------------------------------------
  94. static stock Null_Varijable(playerid)
  95. {
  96. Povisen_Ping[playerid] = 0;
  97. JoyPad_Detekcija[playerid] = 0;
  98. }
  99. //------------------------------------------------------------------------------
  100. public OnGameModeInit()
  101. {
  102. Macak_Bot = SetTimer("Anticheat_Provere", 1000, true);
  103. return (true);
  104. }
  105. //------------------------------------------------------------------------------
  106. public OnGameModeExit()
  107. {
  108. KillTimer(Macak_Bot);
  109. return (true);
  110. }
  111. //------------------------------------------------------------------------------
  112. public OnPlayerRequestClass(playerid, classid)
  113. {
  114. return (true);
  115. }
  116. //------------------------------------------------------------------------------
  117. public OnPlayerConnect(playerid)
  118. {
  119. Null_Varijable(playerid);
  120. return (true);
  121. }
  122. //------------------------------------------------------------------------------
  123. public OnPlayerDisconnect(playerid, reason)
  124. {
  125. JoyPad_Detekcija[playerid] = 0;
  126. return (true);
  127. }
  128. //------------------------------------------------------------------------------
  129. public OnPlayerSpawn(playerid)
  130. {
  131. return (true);
  132. }
  133. //------------------------------------------------------------------------------
  134. public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
  135. {
  136. if(playerid == IPI) return (false);
  137. new Float:Pozicija_Igraca[3];
  138. GetPlayerPos(playerid, Pozicija_Igraca[0], Pozicija_Igraca[1], Pozicija_Igraca[2]);
  139. if(!(-20000.0 <= Pozicija_Igraca[2] <= 20000.0)) return (false);
  140. if(hittype == 0 && !Pravo_Oruzje(weaponid))
  141. {
  142. if(fX == 0.000000 && fY == 0.000000 && fZ == 0.000000)
  143. {
  144. new string[120];
  145. format(string,sizeof(string), ""col_ac"[ac_Macak] "BELA"Igrac %s je kikovan zbog pokusaja koriscenja crashera "col_ac"TIP: WS-3", GetName(playerid));
  146. SendClientMessageToAll(0xFFFFFFAA, string);
  147. Kikuj_Igraca(playerid);
  148. return 0;
  149. }
  150. }
  151. if(hittype != BULLET_HIT_TYPE_NONE)
  152. {
  153. if(!(-1000.0 <= fX <= 1000.0) || !(-1000.0 <= fY <= 1000.0) || !(-1000.0 <= fZ <= 1000.0))
  154. {
  155. new ac_string[120];
  156. format(ac_string, sizeof(ac_string), ""col_ac"[ac_Macak] "BELA"Igrac [%d]%s je kikovan zbog pokusaja koriscenja Bullet Crashera!", playerid, GetName(playerid));
  157. SendClientMessageToAll(0xFFFFFFAA, ac_string);
  158. Kikuj_Igraca(playerid);
  159. return (false);
  160. }
  161. }
  162. if(hittype == BULLET_HIT_TYPE_PLAYER)
  163. {
  164. if(fX == 0.000000 && fY == 0.000000 && fZ == 0.500000 && weaponid == 0)
  165. {
  166. new ac_string[135];
  167. format(ac_string, sizeof(ac_string), ""col_ac"[ac_Macak] "BELA"Igrac [%d]%s je kikovan zbog pokusaja koriscenja crashera "col_ac"TIP: WS-2",playerid, GetName(playerid));
  168. SendClientMessageToAll(0xFFFFFFAA, ac_string);
  169. Kikuj_Igraca(playerid);
  170. return (false);
  171. }
  172. }
  173. //printf("Weapon %i fired. hittype: %i hitid: %i pozicija: %f, %f, %f", weaponid, hittype, hitid, fX, fY, fZ); //debugg
  174. return (true);
  175. }
  176. //------------------------------------------------------------------------------
  177. public OnPlayerDeath(playerid, killerid, reason)
  178. {
  179. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT && GetPlayerState(killerid) == PLAYER_STATE_DRIVER && GetPlayerState(killerid) == PLAYER_STATE_PASSENGER)
  180. {
  181. new macak_ac[155];
  182. format(macak_ac, sizeof(macak_ac), ""col_ac"[ac_Macak] "BELA"Igrac [%d]%s je pregazio(DRIVE BY) igraca [%d]%s!", killerid, GetName(killerid), playerid, GetName(playerid));
  183. SendClientMessageToAll(0xFFFFFFAA, macak_ac);
  184. }
  185. return (true);
  186. }
  187.  
  188. public OnVehicleSpawn(vehicleid)
  189. {
  190. return (true);
  191. }
  192.  
  193. public OnVehicleDeath(vehicleid, killerid)
  194. {
  195. return (true);
  196. }
  197.  
  198. public OnPlayerText(playerid, text[])
  199. {
  200. return (true);
  201. }
  202.  
  203. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  204. {
  205. return (true);
  206. }
  207.  
  208. public OnPlayerExitVehicle(playerid, vehicleid)
  209. {
  210. return (true);
  211. }
  212.  
  213. public OnPlayerStateChange(playerid, newstate, oldstate)
  214. {
  215. return (true);
  216. }
  217.  
  218. public OnPlayerEnterCheckpoint(playerid)
  219. {
  220. return (true);
  221. }
  222.  
  223. public OnPlayerLeaveCheckpoint(playerid)
  224. {
  225. return (true);
  226. }
  227.  
  228. public OnPlayerEnterRaceCheckpoint(playerid)
  229. {
  230. return (true);
  231. }
  232.  
  233. public OnPlayerLeaveRaceCheckpoint(playerid)
  234. {
  235. return (true);
  236. }
  237.  
  238. public OnRconCommand(cmd[])
  239. {
  240. return (true);
  241. }
  242.  
  243. public OnPlayerRequestSpawn(playerid)
  244. {
  245. return (true);
  246. }
  247.  
  248. public OnObjectMoved(objectid)
  249. {
  250. return (true);
  251. }
  252.  
  253. public OnPlayerObjectMoved(playerid, objectid)
  254. {
  255. return (true);
  256. }
  257.  
  258. public OnPlayerPickUpPickup(playerid, pickupid)
  259. {
  260. return (true);
  261. }
  262.  
  263. public OnVehicleMod(playerid, vehicleid, componentid)
  264. {
  265. return (true);
  266. }
  267.  
  268. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  269. {
  270. return (true);
  271. }
  272.  
  273. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  274. {
  275. return (true);
  276. }
  277.  
  278. public OnPlayerSelectedMenuRow(playerid, row)
  279. {
  280. return (true);
  281. }
  282.  
  283. public OnPlayerExitedMenu(playerid)
  284. {
  285. return (true);
  286. }
  287. //------------------------------------------------------------------------------
  288. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  289. {
  290. return (true);
  291. }
  292. //------------------------------------------------------------------------------
  293. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  294. {
  295. return (true);
  296. }
  297. //------------------------------------------------------------------------------
  298. public OnRconLoginAttempt(ip[], password[], success)
  299. {
  300. return (true);
  301. }
  302. //------------------------------------------------------------------------------
  303. public OnPlayerUpdate(playerid)
  304. {
  305. new taster, aj_sad, aj_sad1;
  306. GetPlayerKeys(playerid, taster, aj_sad, aj_sad1);
  307. if((aj_sad != 128 && aj_sad != 0 && aj_sad != -128) || (aj_sad1 != 128 && aj_sad1 != 0 && aj_sad1 != -128)) JoyPad_Detekcija[playerid] = 1;
  308. //------------------------------------------------------------------------------
  309. new Float:Pozicija_X, Float:Pozicija_Y, Float:Pozicija_Z;
  310. new anim = GetPlayerAnimationIndex(playerid);
  311. GetPlayerPos(playerid, Pozicija_X, Pozicija_Y, Pozicija_Z);
  312. if((anim >= 1538) && (anim <= 1542) && Pozicija_Z > 5)
  313. {
  314. new ac_Macak[180];
  315. format(ac_Macak, sizeof(ac_Macak), ""col_ac"[ac_Macak] "BELA"[%d]%s je kikovan sa servera od strane anticita "col_ac"Razlog: Fly_Hack", playerid, GetName(playerid));
  316. SendClientMessageToAll(0xFFFFFFAA, ac_Macak);
  317. Kikuj_Igraca(playerid);
  318. return true;
  319. }
  320. if(GetSpeed(playerid) > 291)
  321. {
  322. if(!Vozilo_Avion(GetPlayerVehicleID(playerid)))
  323. {
  324. //if(IsPlayerAdmin(playerid)) return (true);
  325. new ac_Macak[128];
  326. format(ac_Macak, sizeof(ac_Macak), ""col_ac"[ac_Macak] "BELA"[%d]%s je kikovan zbog moguceg koriscenja"col_ac"Speed Hacka Brzina: %d", playerid, GetName(playerid), GetSpeed(playerid));
  327. SendClientMessageToAll(0xFFFFFFAA, ac_Macak);
  328. return (true);
  329. }
  330. }
  331. return (true);
  332. }
  333. //------------------------------------------------------------------------------
  334. public OnPlayerStreamIn(playerid, forplayerid)
  335. {
  336. return (true);
  337. }
  338. //------------------------------------------------------------------------------
  339. public OnPlayerStreamOut(playerid, forplayerid)
  340. {
  341. return (true);
  342. }
  343. //------------------------------------------------------------------------------
  344. public OnVehicleStreamIn(vehicleid, forplayerid)
  345. {
  346. return (true);
  347. }
  348.  
  349. public OnVehicleStreamOut(vehicleid, forplayerid)
  350. {
  351. return (true);
  352. }
  353.  
  354. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  355. {
  356. return (true);
  357. }
  358.  
  359. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  360. {
  361. return (true);
  362. }
  363. //------------------------------------------------------------------------------
  364. forward public Anticheat_Provere();
  365. public Anticheat_Provere()
  366. {
  367. foreach(Player, i)
  368. {
  369. if(IsPlayerConnected(i) && !IsPlayerNPC (i))
  370. {
  371. if(GetPlayerSpecialAction(i) == SPECIAL_ACTION_USEJETPACK && IsPlayerConnected(i) && !IsPlayerAdmin(i))
  372. {
  373. new string[150];
  374. format(string, sizeof string, ""col_ac"[ac_Macak] "BELA"Igrac %s je kikovan zbog jetpack hack-a!", GetName(i));
  375. SendClientMessageToAll(0xFFFFFFAA, string);
  376. SCM(i, 0xFFFFFFAA, ""col_ac"[ac_Macak] "BELA"Kikovani ste zbog JetPack hacka.");
  377. Kikuj_Igraca(i);
  378. }
  379. }
  380. if(IsPlayerConnected(i) && !IsPlayerNPC (i))
  381. {
  382. if(GetPlayerPing(i) > 750) Povisen_Ping[i]++;
  383. else Povisen_Ping[i] = 0;
  384. if(Povisen_Ping[i] > 3)
  385. {
  386. new ac_macak[131];
  387. format(ac_macak, sizeof(ac_macak), ""col_ac"[ac_Macak] "BELA"Igrac %s je kikovan zbog visokog pinga (%d)!", GetName(i), GetPlayerPing(i));
  388. SendClientMessageToAll(0xFFFFFFAA, ac_macak);
  389. Kikuj_Igraca(i);
  390. }
  391. }
  392. if(GetPlayerCameraMode(i) == 53)
  393. {
  394. new Float:Tri_Pozicije[3];
  395. GetPlayerCameraPos(i, Tri_Pozicije[0], Tri_Pozicije[1], Tri_Pozicije[2]);
  396. if(Tri_Pozicije[2] < -50000.0 || Tri_Pozicije[2] > 50000.0)
  397. {
  398. new ac_Macak[128];
  399. format(ac_Macak, sizeof(ac_Macak), ""col_ac"[ac_Macak] "BELA"%s je kickovan sa servera... "col_ac"Razlog: Weapon Crasherr(Camera Mode)", GetName(i));
  400. SendClientMessageToAll(0xFFFFFFAA, ac_Macak);
  401. Kikuj_Igraca(i);
  402. return (false);
  403. }
  404. }
  405. //
  406. if(JoyPad_Detekcija[i] == 1) Callback_JoyPad(i);
  407. }
  408. return (true);
  409. }
  410. //------------------------------------------------------------------------------
  411. /*task Sekund_Tajmer[1001]
  412. {
  413. foreach(Player, i)
  414. {
  415. }
  416. return (true);
  417. }*/
  418. //------------------------------------------------------------------------------
  419. static stock GetName(playerid)
  420. {
  421. new macak[MAX_PLAYER_NAME];
  422. GetPlayerName(playerid, macak, sizeof(macak));
  423. return macak;
  424. }
  425. //------------------------------------------------------------------------------
  426. static stock Kikuj_Igraca(playerid)
  427. {
  428. if (IsPlayerConnected (playerid) && !IsPlayerNPC (playerid))
  429. {
  430. SetTimerEx("Kikuj_Ga", 111, false, "i", playerid);
  431. GameTextForPlayer(playerid, "~r~Kikovani ste od strane ac_Macka", 80000, 4);
  432. TogglePlayerControllable(playerid, 0);
  433. }
  434. return (true);
  435. }
  436. //------------------------------------------------------------------------------
  437. forward public Kikuj_Ga(playerid);
  438. public Kikuj_Ga(playerid)
  439. {
  440. Kick(playerid);
  441. return (true);
  442. }
  443. //------------------------------------------------------------------------------
  444. forward public Callback_JoyPad(playerid);
  445. public Callback_JoyPad(playerid)
  446. {
  447. new ac_Macak[145];
  448. if(playerid == IPI) return (false);
  449. if(IsPlayerNPC(playerid) || IsPlayerAdmin(playerid)) return JoyPad_Detekcija[playerid] = 0; //ako je npc ili ako je rcon admin da ne prolazi kroz proveru
  450.  
  451. format(ac_Macak, sizeof(ac_Macak), ""col_ac"[ac_Macak] "BELA"Igrac %s je kikovan zbog koriscenja Joypad-a.", GetName(playerid));
  452. SendClientMessageToAll(0xFFFFFFAA, ac_Macak);
  453. JoyPad_Detekcija[playerid] = 0;
  454. return (true);
  455. }
  456. //------------------------------------------------------------------------------
  457.  
  458. //------------------------------------------------------------------------------
  459.  
  460. //------------------------------------------------------------------------------
  461.  
  462. //------------------------------------------------------------------------------
  463. //------------------------------------------------------------------------------
  464. /*
  465. END OF BEGINNING
  466. */
  467. //------------------------------------------------------------------------------
  468. //------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement