Advertisement
Guest User

AntiCheat 1.7

a guest
Mar 1st, 2013
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.02 KB | None | 0 0
  1. /*
  2. This is property of Glad2BeHere And No one Has right to claim it
  3. Copyright Information Belong to me the orignal creater of
  4. #include <admin> © ® SM ™
  5.  
  6. This System Was Design To Stop Hackers
  7.  
  8. This System Was Designed To Work With GameMode's
  9.  
  10.  
  11. This Was Designed To Stop Hackers
  12.  
  13. Updated 1.1 The Entire Anti- Cheat Script Was Created
  14. Updated 1.4 Added GiveHealth + Give Armour
  15. Updated 1.7 AntiAd added
  16. Updates 1.8 Anti Teleport unreleased Sneak peak of what to be made in the version but may
  17. be released with 2.0....
  18.  
  19. */
  20.  
  21.  
  22. /*
  23. String Saver....
  24.  
  25. native Log(fileName[], input[]); // Save Hacks Made
  26. native FName(playerid); // Get Player Name
  27.  
  28. PlayerCash........
  29.  
  30. native GivePlayerCash(playerid, money); // Give Player Cash
  31. native ResetPlayerCash(playerid); // resets player cash
  32. native GetPlayerCash(playerid); // Gets Player Cash
  33. native SetPlayerCash(playerid, money); // SetPlayerCash
  34.  
  35. Weapons....
  36.  
  37. native GiveWeapon(playerid, weaponid, ammo); // Gives Player weapon + ammo
  38.  
  39. Life......
  40. native GiveHealth(playerid, Health); //gives player health
  41. native GiveArmour(playerid, Armour); // gives player armour
  42.  
  43.  
  44. banning....
  45.  
  46. native AntiAd(playerid, text[]); // stops advertisement
  47. native SHIP(playerid); // Get Player IP Address
  48. native AddBan(playerid); // Ban Player
  49. native CheckBan(ip[]); // Check to see if playerban
  50. native AddRangeBan(PIP[]); //Range Ban
  51.  
  52. */
  53.  
  54.  
  55.  
  56.  
  57. #include < a_samp >
  58. #include < YSI\y_hooks >
  59. #include < foreach >
  60.  
  61. #define BanMessage "You Have Been Banned Please Visit Our Forum at forum.sa-mp.com"
  62. #define ReturnText 0
  63.  
  64. enum SInfo
  65. {
  66. SMoney,
  67. Float: SArmour,
  68. Float: SHealth,
  69. SWeapon[13],
  70. SAmmo[13],
  71. SBan
  72. }
  73. new System[MAX_PLAYERS][SInfo];
  74.  
  75. hook OnGameModeInit()
  76. {
  77. return 1;
  78. }
  79.  
  80. hook OnPlayerConnect(playerid)
  81. {
  82. ResetPlayerCash(playerid);
  83. return 1;
  84. }
  85.  
  86. hook OnPlayerText(playerid, text[])
  87. {
  88. if(AntiAd(playerid, text)) return 0;
  89. return ReturnText;
  90. }
  91.  
  92. hook OnPlayerSpawn(playerid)
  93. {
  94. new string[256];
  95. for(new x=0; x < 13; x++)
  96. {
  97. GiveWeapon(playerid, System[playerid][SWeapon][x],System[playerid][SAmmo][x]);
  98. }
  99. if(System[playerid][SBan] == 1)
  100. {
  101. SendClientMessage(playerid, -1, BanMessage);
  102. Kick(playerid);
  103. }
  104. new range[4][4];
  105. split(SHIP(playerid), range, '.');
  106. format(string, sizeof(string), "%s.%s.*.*", range[0], range[1]);
  107. if(CheckBan(string) == 1)
  108. {
  109.  
  110. SendClientMessage(playerid, 0xFFFF00FF, "SERVER: {FFFFFF}Your range is banned from this server. (Request getting whitelisted at www.American Roleplay.org)");
  111. Kick(playerid);
  112. return 1;
  113. }
  114. if(CheckBan(SHIP(playerid)) == 1)
  115. {
  116. SetPlayerName(playerid, "BannedPlayer");
  117. SendClientMessage(playerid, 0xFFFF00FF, "SERVER: {FFFFFF}You are banned from this server. (Make a ban appeal at www.American Roleplay.org)");
  118. Kick(playerid);
  119. return 1;
  120. }
  121. return 1;
  122. }
  123.  
  124. hook OnPlayerDeath(playerid, killerid, reason)
  125. {
  126. for(new x=0; x < 13; x++)
  127. {
  128. System[playerid][SWeapon][x] = 0; System[playerid][SAmmo][x] = 0;
  129. }
  130. return 1;
  131. }
  132.  
  133. hook OnPlayerUpdate(playerid)
  134. {
  135. new string[256];
  136. foreach(Player, i)
  137. {
  138. if(GetPlayerCash(playerid) != GetPlayerMoney(playerid))
  139. {
  140. if(IsPlayerAdmin(i))
  141. {
  142. format(string, 256, "Hack Alert %s: Value: %d", FName(playerid), GetPlayerMoney(playerid));
  143. SendClientMessage(playerid, 0x049C7100, string);
  144. }
  145. ResetPlayerMoney(playerid);
  146. GivePlayerMoney(playerid,GetPlayerCash(playerid));
  147. Log("MoneyHackers.log", string);
  148. SendClientMessage(i, 0xFFFF00FF, "Glad2BeHere AntiCheat Found Another");
  149. }
  150. if(GetPlayerWeapon(playerid) != System[playerid][SWeapon][0] && GetPlayerWeapon(playerid) != System[playerid][SWeapon][1] && GetPlayerWeapon(playerid) != System[playerid][SWeapon][2] && GetPlayerWeapon(playerid) != System[playerid][SWeapon][3] &&
  151. GetPlayerWeapon(playerid) != System[playerid][SWeapon][4] && GetPlayerWeapon(playerid) != System[playerid][SWeapon][5] && GetPlayerWeapon(playerid) != System[playerid][SWeapon][6] && GetPlayerWeapon(playerid) != System[playerid][SWeapon][7] &&
  152. GetPlayerWeapon(playerid) != System[playerid][SWeapon][8] && GetPlayerWeapon(playerid) != System[playerid][SWeapon][9] && GetPlayerWeapon(playerid) != System[playerid][SWeapon][10] && GetPlayerWeapon(playerid) != System[playerid][SWeapon][11] && GetPlayerWeapon(playerid) != System[playerid][SWeapon][12])
  153. {
  154. if(IsPlayerAdmin(i))
  155. {
  156. format(string, 256, "Hack Alert %s: Weapon: %s", FName(playerid), RWN(GetPlayerWeapon(i)));
  157. SendClientMessage(i, 0x049C7100, string);
  158. SendClientMessage(i, 0xFFFF00FF, "Glad2BeHere AntiCheat System Has Banned Another");
  159. }
  160. Log("WeaponHackers.log", string);
  161. AddBan(playerid);
  162. Kick(playerid);
  163. }
  164. if(System[playerid][SHealth] || System[playerid][SArmour])
  165. {
  166. if(IsPlayerAdmin(i))
  167. {
  168. format(string, 256, "Hack Alert %s: Hacking Health/Armour", FName(playerid));
  169. SendClientMessage(i, 0x049C7100, string);
  170. SendClientMessage(i, 0xFFFF00FF, "Glad2BeHere AntiCheat System Has Banned Another");
  171. }
  172. Log("Health/ArmourHackers.log", string);
  173. AddBan(playerid);
  174. Kick(playerid);
  175. }
  176. }
  177. return 1;
  178. }
  179.  
  180. hook OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
  181. {
  182. if(System[playerid][SArmour] > 0)
  183. {
  184. System[playerid][SArmour] -= amount;
  185.  
  186. }
  187. else if(System[playerid][SArmour] <= 0 && System[playerid][SHealth])
  188. {
  189. if(System[playerid][SArmour] < 0)
  190. {
  191. System[playerid][SArmour] = 0;
  192. }
  193. System[playerid][SHealth] -= amount;
  194. }
  195. return 1;
  196. }
  197.  
  198. stock Log(sz_fileName[], sz_input[]) {
  199.  
  200. new sz_logEntry[156], i_dateTime[2][3], File: fileHandle = fopen(sz_fileName, io_append);
  201. gettime(i_dateTime[0][0], i_dateTime[0][1], i_dateTime[0][2]);
  202. getdate(i_dateTime[1][0], i_dateTime[1][1], i_dateTime[1][2]);
  203. format(sz_logEntry, sizeof(sz_logEntry), "[%i/%i/%i - %i:%i:%i] %s\r\n", i_dateTime[1][0], i_dateTime[1][1], i_dateTime[1][2], i_dateTime[0][0], i_dateTime[0][1], i_dateTime[0][2], sz_input);
  204. fwrite(fileHandle, sz_logEntry);
  205. return fclose(fileHandle);
  206. }
  207.  
  208. stock FName(playerid)
  209. {
  210. new name[MAX_PLAYER_NAME];
  211. GetPlayerName(playerid, name, sizeof(name));
  212. return name;
  213. }
  214.  
  215. stock GivePlayerCash(playerid, money)
  216. {
  217. System[playerid][SMoney] += money;
  218. ResetPlayerMoney(playerid);
  219. GivePlayerMoney(playerid,System[playerid][SMoney]);
  220. return System[playerid][SMoney];
  221. }
  222.  
  223. stock SetPlayerCash(playerid, money)
  224. {
  225. System[playerid][SMoney] = money;
  226. ResetPlayerMoney(playerid);
  227. GivePlayerMoney(playerid,System[playerid][SMoney]);
  228. return System[playerid][SMoney];
  229. }
  230.  
  231. stock ResetPlayerCash(playerid)
  232. {
  233. System[playerid][SMoney] = 0;
  234. ResetPlayerMoney(playerid);
  235. GivePlayerMoney(playerid,System[playerid][SMoney]);
  236. return System[playerid][SMoney];
  237. }
  238.  
  239. stock GetPlayerCash(playerid)
  240. {
  241. return System[playerid][SMoney];
  242. }
  243.  
  244. stock GiveWeapon(playerid, weaponid, ammo)
  245. {
  246. if(weaponid == 0 || weaponid == 1)
  247. {
  248. System[playerid][SAmmo][0] = ammo;
  249. System[playerid][SWeapon][0] = weaponid;
  250. }
  251. else if(weaponid == 2 || weaponid == 3 || weaponid == 4 || weaponid == 5 || weaponid == 6 || weaponid == 7 || weaponid == 8 || weaponid == 9)
  252. {
  253. System[playerid][SAmmo][1] = ammo;
  254. System[playerid][SWeapon][1] = weaponid;
  255. }
  256. else if(weaponid == 22 || weaponid == 23 || weaponid == 24)
  257. {
  258. System[playerid][SAmmo][2] = ammo;
  259. System[playerid][SWeapon][2] = weaponid;
  260. }
  261. else if(weaponid == 25 || weaponid == 26 || weaponid == 27)
  262. {
  263. System[playerid][SWeapon][3] = weaponid;
  264. System[playerid][SAmmo][3] = ammo;
  265. }
  266. else if(weaponid == 28 || weaponid == 29 || weaponid == 32)
  267. {
  268. System[playerid][SAmmo][4] = ammo;
  269. System[playerid][SWeapon][4] = weaponid;
  270. }
  271. else if(weaponid == 30 || weaponid == 31)
  272. {
  273. System[playerid][SAmmo][5] = ammo;
  274. System[playerid][SWeapon][5] = weaponid;
  275. }
  276. else if(weaponid == 33 || weaponid == 34)
  277. {
  278. System[playerid][SWeapon][6] = weaponid;
  279. System[playerid][SAmmo][6] = ammo;
  280. }
  281. else if(weaponid == 35 || weaponid == 36 || weaponid == 37 || weaponid == 38)
  282. {
  283. System[playerid][SAmmo][7] = ammo;
  284. System[playerid][SWeapon][7] = weaponid;
  285. }
  286. else if(weaponid == 16 || weaponid == 17 || weaponid == 18 || weaponid == 39)
  287. {
  288. System[playerid][SAmmo][8] = ammo;
  289. System[playerid][SWeapon][8] = weaponid;
  290. }
  291. else if(weaponid == 41 || weaponid == 42 || weaponid == 43)
  292. {
  293. System[playerid][SAmmo][9] = ammo;
  294. System[playerid][SWeapon][9] = weaponid;
  295. }
  296. else if(weaponid == 10 || weaponid == 11 || weaponid == 12 || weaponid == 13 || weaponid == 14 || weaponid == 15)
  297. {
  298. System[playerid][SWeapon][10] = weaponid;
  299. System[playerid][SAmmo][10] = ammo;
  300. }
  301. else if(weaponid == 44 || weaponid == 45 || weaponid == 46)
  302. {
  303. System[playerid][SAmmo][11] = ammo;
  304. System[playerid][SWeapon][11] = weaponid;
  305.  
  306. }
  307. else if(weaponid == 40)
  308. {
  309. System[playerid][SAmmo][12] = ammo;
  310. System[playerid][SWeapon][12] = weaponid;
  311. }
  312. PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
  313. GivePlayerWeapon(playerid, weaponid, ammo);
  314. return 1;
  315. }
  316.  
  317. stock RWN(weaponid)
  318. {
  319. new name[32];
  320. GetWeaponName(weaponid, name, sizeof(name));
  321. if(weaponid == 0) format(name, sizeof(name), "None");
  322. return name;
  323. }
  324.  
  325. stock GiveHealth(playerid, Float:SGHealth)
  326. {
  327. System[playerid][SHealth] = SGHealth;
  328. SetPlayerHealth(playerid, System[playerid][SHealth]);
  329. return System[playerid][SHealth];
  330. }
  331.  
  332. stock GiveArmour(playerid, Float:SGArmour)
  333. {
  334.  
  335. System[playerid][SHealth] = SGArmour;
  336. SetPlayerArmour(playerid, System[playerid][SArmour]);
  337. return System[playerid][SArmour];
  338. }
  339.  
  340. stock SHIP(playerid)
  341. {
  342. new ip[16];
  343. GetPlayerIp(playerid, ip, sizeof(ip));
  344. return ip;
  345. }
  346.  
  347. stock AddBan(playerid)
  348. {
  349. new string[24];
  350. new File:ban = fopen("ban.cfg", io_append);
  351. format(string, sizeof(string), "%s\r\n", SHIP(playerid));
  352. fwrite(ban, string);
  353. fclose(ban);
  354. }
  355.  
  356. stock AddRangeBan(PIP[])
  357. {
  358. new string[24];
  359. new File:ban = fopen("ban.cfg", io_append);
  360. format(string, sizeof(string), "%s\r\n", PIP);
  361. fwrite(ban, string);
  362. fclose(ban);
  363. }
  364.  
  365. stock CheckBan(ip[])
  366. {
  367. new string[20];
  368. new File: file = fopen("ban.cfg", io_read);
  369. while(fread(file, string))
  370. {
  371. if (strcmp(ip, string, true, strlen(ip)) == 0)
  372. {
  373. fclose(file);
  374. return 1;
  375. }
  376. }
  377. fclose(file);
  378. return 0;
  379. }
  380.  
  381. stock AntiAd(playerid, text[])
  382. {
  383. new strR[255], is1=0, r=0;
  384. while(strlen(text[is1]))
  385. {
  386. if('0'<=text[is1]<='9')
  387. {
  388. new is2=is1+1, p=0;
  389. while(p==0)
  390. {
  391. if('0'<=text[is2]<='9'&&strlen(text[is2]))
  392. {
  393. is2++;
  394. }
  395. else
  396. {
  397. strmid(strR[r],text,is1,is2,255);
  398. if(strval(strR[r])<255) r++;
  399. is1=is2;
  400. p=1;
  401. }
  402. }
  403. }
  404. is1++;
  405. }
  406. if(r>=4)
  407. {
  408. new strMy[255];
  409. foreach(Player, i)
  410. {
  411. if(IsPlayerAdmin(i))
  412. {
  413. format(strMy, sizeof(strMy), "G2BHWarn: %s is attempting to Server Advertise: %s", FName(playerid), text);
  414. SendClientMessage(i, -1, strMy);
  415. }
  416. }
  417. new pr2;
  418. for(new z=0;z<r;z++)
  419. {
  420.  
  421. while((pr2=strfind(text,strR[z],true))!=-1)
  422. {
  423. for(new i=pr2,j=pr2+strlen(strR[z]);i<j;i++)
  424. {
  425. text[i]='*';
  426. }
  427. }
  428. }
  429. return 1;
  430. }
  431. return 0;
  432. }
  433.  
  434. stock split(const strsrc[], strdest[][], delimiter)
  435. {
  436. new i, li;
  437. new aNum;
  438. new len;
  439. while(i <= strlen(strsrc))
  440. {
  441. if(strsrc[i] == delimiter || i == strlen(strsrc))
  442. {
  443. len = strmid(strdest[aNum], strsrc, li, i, 128);
  444. strdest[aNum][len] = 0;
  445. li = i+1;
  446. aNum++;
  447. }
  448. i++;
  449. }
  450. return 1;
  451. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement