Guest User

Untitled

a guest
Aug 14th, 2018
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.40 KB | None | 0 0
  1. #include <a_samp>
  2. #include <YSI\y_ini>
  3. #include <zcmd>
  4. #include <YSI\y_timers>
  5. //===============================[MAIN SETTINGS]================================
  6. #define NAME "NGuard"
  7. #define WEBSITE "www.samp-balkan.blogspot.com"
  8. #define VERSION "v0.1"
  9. #define LAST_UPDATE "8.23.2015"
  10. #define DEVELOPER "Ermin Nuhanovic"
  11. #define SCRIPT_LINES 454
  12. //==============================================================================
  13.  
  14. #define GUARD "{FFEE00}"
  15. #define BIJELA "{FFFFFF}"
  16. #define CRVENA "{FF0000}"
  17.  
  18. #define DIALOG_AC (1889)
  19.  
  20. #pragma tabsize 0
  21.  
  22. #define function%0(%1) \
  23. forward%0(%1); public%0(%1)
  24.  
  25. /*AntiCheat*/
  26. #define CHEAT_SPEEDHACK 1
  27. #define CHEAT_GUNHACK 2
  28.  
  29. static Float:pPos[3];
  30.  
  31. enum weapons
  32. {
  33. Melee,
  34. Thrown,
  35. Pistols,
  36. Shotguns,
  37. SubMachine,
  38. Assault,
  39. Rifles,
  40. Heavy,
  41. Handheld,
  42.  
  43. }
  44. new Weapons[MAX_PLAYERS][weapons];
  45.  
  46. enum aCinfo
  47. {
  48. ac_sobeit,
  49. ac_speed,
  50. ac_gunhack
  51.  
  52. };
  53. new anticheat[aCinfo];
  54. new createCar[MAX_PLAYERS];
  55. #define AC_STRING "Sobeit/GoC detector\t%s\nSpeedHack\t\t%s\nGunHack\t\t%s"
  56.  
  57. public OnFilterScriptInit()
  58. {
  59. new fFile2[24];
  60. format(fFile2, sizeof(fFile2), "/NGuard/Anticheat.ini");
  61. if(!fexist(fFile2))
  62. {
  63. new INI:sFile2 = INI_Open(fFile2);
  64. INI_SetTag(sFile2,"data");
  65. INI_WriteInt(sFile2, "Sobeit/GoC", 1);
  66. INI_WriteInt(sFile2, "Speed", 1);
  67. INI_WriteInt(sFile2, "Gunhack", 1);
  68. INI_Close(sFile2);
  69. }
  70. else if(fexist(fFile2))
  71. {
  72. INI_ParseFile(fFile2, "UcitajAnticheat");
  73. printf("> Sobeit/GoC je na: %d", anticheat[ac_sobeit]);
  74. printf("> Speed je na: %d", anticheat[ac_speed]);
  75. printf("> Gunhack je na: %d", anticheat[ac_gunhack]);
  76. }
  77. print("_________________________________________________________________________");
  78. SetTimer("AntiSpeedHack",10000,true);
  79. return 1;
  80. }
  81.  
  82. public OnPlayerSpawn(playerid)
  83. {
  84. //--------------------------------------------------------------------------
  85. /*Sobeit provjere*/
  86. if(anticheat[ac_sobeit] == 1 && !IsPlayerAdmin(playerid))
  87. {
  88. /*Prva prvojera pomocu sobeit/goc buga sa palicom*/
  89. TogglePlayerControllable(playerid,0); //zaledi igraca
  90. Sobeit_Check(playerid);
  91. SendClientMessage(playerid,-1, ""GUARD"San City AC: "BIJELA"Traze se ne dozvoljeni modovi/hackovi/programi/skripte.");
  92. }
  93. //--------------------------------------------------------------------------
  94. return 1;
  95. }
  96.  
  97. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  98. {
  99. if(dialogid == DIALOG_AC)
  100. {
  101. if(!response) return 1;
  102. switch(listitem)
  103. {
  104. case 0://Sobeit/GoC detector
  105. {
  106. if(anticheat[ac_sobeit] == 0) anticheat[ac_sobeit] = 1;
  107. else anticheat[ac_sobeit] = 0;
  108. }
  109. case 1://Speed
  110. {
  111. if(anticheat[ac_speed] == 0) anticheat[ac_speed] = 1;
  112. else anticheat[ac_speed] = 0;
  113. }
  114. case 2://Gunhack
  115. {
  116. if(anticheat[ac_gunhack] == 0) anticheat[ac_gunhack] = 1;
  117. else anticheat[ac_gunhack] = 0;
  118. }
  119. }
  120. DialogAntiCheat(playerid);
  121. UpdateAnticheat();
  122. return 1;
  123. }
  124. return 1;
  125. }
  126.  
  127. forward UcitajAnticheat(name[], value[]);
  128. public UcitajAnticheat(name[], value[])
  129. {
  130. INI_Int("Sobeit/GoC", anticheat[ac_sobeit]);
  131. INI_Int("Speed", anticheat[ac_speed]);
  132. INI_Int("Gunhack", anticheat[ac_gunhack]);
  133. return 1;
  134. }
  135.  
  136. public OnFilterScriptExit()
  137. {
  138. // Exit here
  139. return 1;
  140. }
  141.  
  142. public OnPlayerConnect(playerid)
  143. {
  144. return 1;
  145. }
  146.  
  147. public OnObjectMoved(objectid)
  148. {
  149.  
  150. return 1;
  151. }
  152.  
  153. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  154. {
  155.  
  156. return 1;
  157. }
  158.  
  159. public OnPlayerUpdate(playerid)
  160. {
  161. CheckWeapons(playerid);
  162. return 1;
  163. }
  164.  
  165. forward KickTimer(playerid);
  166. public KickTimer(playerid)
  167. {
  168. Kick(playerid);
  169. return 1;
  170. }
  171.  
  172. forward AntiSpeedHack();
  173. public AntiSpeedHack()
  174. {
  175. foreach(Player, i)
  176. {
  177. if(GetPlayerSpeed2(i) > 230)
  178. {
  179. CallLocalFunction("OnAntiCheatDetect", "dd", i, CHEAT_SPEEDHACK);
  180. }
  181. }
  182. return 1;
  183. }
  184.  
  185. CMD:nguard(playerid, params[], help)
  186. {
  187. if(IsPlayerAdmin(playerid))
  188. {
  189. #pragma unused help
  190. #pragma unused params
  191. DialogAntiCheat(playerid);
  192. } else return SendClientMessage(playerid,-1, ""GUARD"San City AC: "BIJELA"Niste ovlasceni da koristite ovu komandu!");
  193. return 1;
  194. }
  195.  
  196. stock DialogAntiCheat(playerid)
  197. {
  198. new dialogstring[256];
  199.  
  200. new acsobe[32],acgun[32],acspeed[32];
  201.  
  202. if(anticheat[ac_sobeit] == 0) acsobe = "{F81414}Iskljuceno";
  203. else acsobe = "{00C800}Ukljuceno";
  204.  
  205. if(anticheat[ac_speed] == 0) acspeed = "{F81414}Iskljuceno";
  206. else acspeed = "{00C800}Ukljuceno";
  207.  
  208. if(anticheat[ac_gunhack] == 0) acgun = "{F81414}Iskljuceno";
  209. else acgun = "{00C800}Ukljuceno";
  210.  
  211. format(dialogstring, sizeof(dialogstring), AC_STRING, acsobe, acspeed, acgun);
  212. ShowPlayerDialog(playerid, DIALOG_AC, DIALOG_STYLE_LIST, "AntiCheat kontrola", dialogstring, "Promjeni", "Izadji");
  213.  
  214. strdel(dialogstring, 0, sizeof(dialogstring));
  215. return 1;
  216. }
  217.  
  218. stock UpdateAnticheat()
  219. {
  220. new serFile[24];
  221. format(serFile, sizeof(serFile), "/NGuard/Anticheat.ini");
  222. new INI:sFile = INI_Open(serFile);
  223. INI_SetTag(sFile,"data");
  224. INI_WriteInt(sFile, "Sobeit/GoC", anticheat[ac_sobeit]);
  225. INI_WriteInt(sFile, "Speed", anticheat[ac_speed]);
  226. INI_WriteInt(sFile, "Gunhack", anticheat[ac_gunhack]);
  227. INI_Close(sFile);
  228. }
  229.  
  230. stock Sobeit_Check(playerid)
  231. {
  232. GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
  233. createCar[playerid] = AddStaticVehicleEx (457, pPos[0],pPos[1],pPos[2],180.0, random(200), random(200), 15);
  234. PutPlayerInVehicle(playerid, createCar[playerid], 0);
  235.  
  236. RemovePlayerFromVehicle(playerid);
  237. DestroyVehicle(createCar[playerid]);
  238.  
  239. defer Sobeit_Check_2(playerid);
  240. return 1;
  241. }
  242.  
  243. timer Sobeit_Check_2[3000](playerid)
  244. {
  245. if(ProvjeriGuns(playerid))
  246. {
  247. nguard_Kick(playerid, ""GUARD"San City AC: "BIJELA"Izbaceni ste sa servera | Razlog: Sobeit/GoC");
  248. }
  249. else
  250. {
  251. //Druga provjera
  252. SendClientMessage(playerid,-1, ""GUARD"San City AC: "BIJELA"Prosli ste prvu provjeru. Sacekajte da anti-cheat odradi jos jednu!");
  253. TogglePlayerControllable(playerid,0);
  254. defer AntiSobeit1(playerid);
  255. }
  256. return 1;
  257. }
  258.  
  259. stock nguard_Kick(playerid, razlog[])
  260. {
  261. SetTimerEx("KickTimer", 300, false, "d", playerid);
  262. SendClientMessage(playerid, -1, razlog);
  263. return 1;
  264. }
  265.  
  266. stock ProvjeriGuns(playerid)
  267. {
  268. new weapon, ammo;
  269. new ukupno;
  270. for (new i = 0; i <= 12; i++)
  271. {
  272. GetPlayerWeaponData(playerid, i, weapon, ammo);
  273. if(weapon != 0) ukupno++;
  274. }
  275. if(ukupno != 0) return 1;
  276. return 0;
  277. }
  278.  
  279. stock CheckWeapons(playerid)
  280. {
  281. new weaponid = GetPlayerWeapon(playerid);//This will cause the "weaponid not defined" Error
  282.  
  283. if(weaponid >= 1 && weaponid <= 15)
  284. {
  285. if(weaponid == Weapons[playerid][Melee])
  286. {
  287. return 1;
  288. }
  289. else
  290. {
  291. CallLocalFunction("OnAntiCheatDetect", "dd", playerid, CHEAT_GUNHACK);
  292. }
  293. }
  294. if( weaponid >= 16 && weaponid <= 18 || weaponid == 39 ) // Checking Thrown
  295. {
  296. if(weaponid == Weapons[playerid][Thrown])
  297. {
  298. return 1;
  299. }
  300. else
  301. {
  302. CallLocalFunction("OnAntiCheatDetect", "dd", playerid, CHEAT_GUNHACK);
  303. }
  304. }
  305. if( weaponid >= 22 && weaponid <= 24 ) // Checking Pistols
  306. {
  307. if(weaponid == Weapons[playerid][Pistols])
  308. {
  309. return 1;
  310. }
  311. else
  312. {
  313. CallLocalFunction("OnAntiCheatDetect", "dd", playerid, CHEAT_GUNHACK);
  314. }
  315. }
  316. if( weaponid >= 25 && weaponid <= 27 ) // Checking Shotguns
  317. {
  318. if(weaponid == Weapons[playerid][Shotguns])
  319. {
  320. return 1;
  321. }
  322. else
  323. {
  324. CallLocalFunction("OnAntiCheatDetect", "dd", playerid, CHEAT_GUNHACK);
  325. }
  326. }
  327. if( weaponid == 28 || weaponid == 29 || weaponid == 32 ) // Checking Sub Machine Guns
  328. {
  329. if(weaponid == Weapons[playerid][SubMachine])
  330. {
  331. return 1;
  332. }
  333. else
  334. {
  335. CallLocalFunction("OnAntiCheatDetect", "dd", playerid, CHEAT_GUNHACK);
  336. }
  337. }
  338. if( weaponid == 30 || weaponid == 31 ) // Checking Assault
  339. {
  340. if(weaponid == Weapons[playerid][Assault])
  341. {
  342. return 1;
  343. }
  344. else
  345. {
  346. CallLocalFunction("OnAntiCheatDetect", "dd", playerid, CHEAT_GUNHACK);
  347. }
  348. }
  349. if( weaponid == 33 || weaponid == 34 ) // Checking Rifles
  350. {
  351. if(weaponid == Weapons[playerid][Rifles])
  352. {
  353. return 1;
  354. }
  355. else
  356. {
  357. CallLocalFunction("OnAntiCheatDetect", "dd", playerid, CHEAT_GUNHACK);
  358. }
  359. }
  360. if( weaponid >= 35 && weaponid <= 38 ) // Checking Heavy
  361. {
  362. if(weaponid == Weapons[playerid][Heavy])
  363. {
  364. return 1;
  365. }
  366. else
  367. {
  368. CallLocalFunction("OnAntiCheatDetect", "dd", playerid, CHEAT_GUNHACK);
  369. }
  370. }
  371. if( weaponid >= 39 && weaponid <= 45 ) // HandHeld
  372. {
  373. if(weaponid == Weapons[playerid][Handheld])
  374. {
  375. return 1;
  376. }
  377. else
  378. {
  379. CallLocalFunction("OnAntiCheatDetect", "dd", playerid, CHEAT_GUNHACK);
  380. }
  381. }
  382. else { return 1; }
  383.  
  384. return 1;
  385. }
  386.  
  387. timer AntiSobeit1[5000](playerid)
  388. {
  389. new Float:x2, Float:y2, Float:z2;
  390. GetPlayerCameraFrontVector(playerid, x2, y2, z2);
  391. #pragma unused x2
  392. #pragma unused y2
  393. if(z2 < -0.8)
  394. {
  395. nguard_Kick(playerid, ""GUARD"San City AC: "BIJELA"Izbaceni ste sa servera | Razlog: Sobeit/GoC");
  396. }
  397. if(z2 > -0.8)
  398. {
  399. TogglePlayerControllable(playerid,1);
  400. SendClientMessage(playerid,-1, ""GUARD"San City AC: "BIJELA"Nismo uspjeli pronaci ne dozvoljene alate. Ugodno igranje na nasem serveru!");
  401. }
  402. return 1;
  403. }
  404.  
  405. function OnAntiCheatDetect(playerid, cheatid)
  406. {
  407. if(playerid == INVALID_PLAYER_ID) return 1;
  408. switch(cheatid)
  409. {
  410. case CHEAT_SPEEDHACK:
  411. {
  412. if(anticheat[ac_speed] == 0) return 1;
  413. if(IsPlayerAdmin(playerid)) return 1;
  414. new string[148];
  415. format(string,sizeof(string),""GUARD"San City AC: "BIJELA"Obavijest:{ffffff} Igrac: "GUARD"%s{ffffff} [ID : "GUARD"%d{ffffff}] [ Provjerite ga,mozda koristi Speed Hack ]", ImeIgraca(playerid),playerid,GetPlayerSpeed2(playerid));
  416. SendClientMessageToAll(-1,string);
  417. format(string,sizeof(string),""GUARD"San City AC: "BIJELA"Obavijest:{ffffff} Igrac: "GUARD"%s {ffffff}[ Brzina: "GUARD"%d{ffffff} km/h ]", ImeIgraca(playerid),GetPlayerSpeed2(playerid));
  418. SendClientMessageToAll(-1,string);
  419. return 1;
  420. }
  421. case CHEAT_GUNHACK:
  422. {
  423. if(anticheat[ac_gunhack] == 0) return 1;
  424. if(IsPlayerAdmin(playerid)) return 1;
  425. nguard_Kick(playerid, ""GUARD"San City AC: "BIJELA"Izbaceni ste sa servera | Razlog: Weapon Hack");
  426. return 1;
  427. }
  428. }
  429. return 1;
  430. }
  431.  
  432. stock ImeIgraca(playerid)
  433. {
  434. new ime[MAX_PLAYER_NAME];
  435. GetPlayerName(playerid, ime, sizeof(ime));
  436. return ime;
  437. }
  438.  
  439. stock GetPlayerSpeed2(playerid)
  440. {
  441. new Float:ST[4];
  442. if(IsPlayerInAnyVehicle(playerid))
  443. GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
  444. else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
  445. ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) *183.666667;
  446. return floatround(ST[3]);
  447. }
Advertisement
Add Comment
Please, Sign In to add comment