Advertisement
Guest User

V2.0 [FINAL RELEASE]

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