Advertisement
Guest User

mdb Ban system v4.8

a guest
Feb 18th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 73.68 KB | None | 0 0
  1. #pragma semicolon 1
  2. #pragma ctrlchar '\'
  3.  
  4. new TeamName[4][] =
  5. {
  6. "",
  7. "TERRORIST",
  8. "CT",
  9. "SPECTATOR"
  10. };
  11. new banfile[40] =
  12. {
  13. 97, 100, 100, 111, 110, 115, 47, 97, 109, 120, 109, 111, 100, 120, 47, 99, 111, 110, 102, 105, 103, 115, 47, 109, 100, 98, 66, 97, 110, 115, 47, 98, 97, 110, 115, 46, 99, 102, 103, 0
  14. }
  15. new configfile[41] =
  16. {
  17. 97, 100, 100, 111, 110, 115, 47, 97, 109, 120, 109, 111, 100, 120, 47, 99, 111, 110, 102, 105, 103, 115, 47, 109, 100, 98, 66, 97, 110, 115, 47, 99, 111, 110, 102, 105, 103, 46, 114, 99, 0
  18. }
  19. new dbanfile[43] =
  20. {
  21. 97, 100, 100, 111, 110, 115, 47, 97, 109, 120, 109, 111, 100, 120, 47, 99, 111, 110, 102, 105, 103, 115, 47, 109, 100, 98, 66, 97, 110, 115, 47, 98, 97, 110, 108, 105, 115, 116, 46, 116, 120, 116, 0
  22. }
  23. new debugfile[41] =
  24. {
  25. 97, 100, 100, 111, 110, 115, 47, 97, 109, 120, 109, 111, 100, 120, 47, 99, 111, 110, 102, 105, 103, 115, 47, 109, 100, 98, 66, 97, 110, 115, 47, 100, 101, 98, 117, 103, 46, 116, 120, 116, 0
  26. }
  27. new razlog[63];
  28. new vreme;
  29. new ip[17];
  30. new admin[17];
  31. new tempbanip[17];
  32. new playermID[33][33];
  33. new noviCS[33];
  34. new g_menuPlayers[33][32];
  35. new g_menuPlayerName[33][33];
  36. new g_menuPlayersNum[33];
  37. new g_menuOption[33];
  38. new g_menuSettings[33];
  39. new logfile[65];
  40. new infofile[64];
  41. new chatfile[64];
  42. new logpath[64];
  43. new g_menuPosition[33];
  44. new g_menuUserid[33];
  45. new banmode;
  46. new delay;
  47. new debug_enable;
  48. new cvarovi[18];
  49. new Color:msgcolor_bans = 5;
  50. new Color:msgcolor_sys = 6;
  51. new Array:banlist;
  52. new Array:g_bantimes;
  53. new bool:chatactive;
  54.  
  55.  
  56.  
  57. cmd_access(id, level, cid, num, bool:accesssilent)
  58. {
  59. !!! Removed Phi
  60. new has_access = 0;
  61. new var1;
  62. if (is_dedicated_server())
  63. {
  64. var1 = 0;
  65. }
  66. else
  67. {
  68. var1 = 1;
  69. }
  70. if (var1 == id)
  71. {
  72. has_access = 1;
  73. }
  74. else
  75. {
  76. if (level == 16777216)
  77. {
  78. if (is_user_admin(id))
  79. {
  80. has_access = 1;
  81. }
  82. }
  83. if (level & get_user_flags(id, 0))
  84. {
  85. has_access = 1;
  86. }
  87. if (level)
  88. {
  89. }
  90. else
  91. {
  92. has_access = 1;
  93. }
  94. }
  95. if (has_access)
  96. {
  97. if (num > read_argc())
  98. {
  99. new hcmd[32];
  100. new hinfo[128];
  101. new hflag = 0;
  102. get_concmd(cid, hcmd, 31, hflag, hinfo, 127, level, -1);
  103. console_print(id, "%L: %s %s", id, "USAGE", hcmd, hinfo);
  104. return 0;
  105. }
  106. return 1;
  107. }
  108. if (!accesssilent)
  109. {
  110. console_print(id, "%L", id, "NO_ACC_COM");
  111. }
  112. return 0;
  113. }
  114.  
  115. access(id, level)
  116. {
  117. if (level == 16777216)
  118. {
  119. return is_user_admin(id);
  120. }
  121. if (level)
  122. {
  123. return level & get_user_flags(id, 0);
  124. }
  125. return 1;
  126. }
  127.  
  128. cmd_target(id, String:arg[], flags)
  129. {
  130. !!! Removed Phi
  131. new player = find_player("bl", arg);
  132. if (player)
  133. {
  134. if (find_player("blj", arg) != player)
  135. {
  136. console_print(id, "%L", id, "MORE_CL_MATCHT");
  137. return 0;
  138. }
  139. }
  140. else
  141. {
  142. if (var4 && arg[0] == 35 && arg[1])
  143. {
  144. player = find_player("k", str_to_num(arg[1]));
  145. }
  146. }
  147. if (!player)
  148. {
  149. console_print(id, "%L", id, "CL_NOT_FOUND");
  150. return 0;
  151. }
  152. if (flags & 1)
  153. {
  154. if (get_user_flags(player, 0) & 1 && flags & 2)
  155. {
  156. new imname[32];
  157. get_user_name(player, imname, 31);
  158. console_print(id, "%L", id, "CLIENT_IMM", imname);
  159. return 0;
  160. }
  161. }
  162. if (flags & 4)
  163. {
  164. if (!is_user_alive(player))
  165. {
  166. new imname[32];
  167. get_user_name(player, imname, 31);
  168. console_print(id, "%L", id, "CANT_PERF_DEAD", imname);
  169. return 0;
  170. }
  171. }
  172. if (flags & 8)
  173. {
  174. if (is_user_bot(player))
  175. {
  176. new imname[32];
  177. get_user_name(player, imname, 31);
  178. console_print(id, "%L", id, "CANT_PERF_BOT", imname);
  179. return 0;
  180. }
  181. }
  182. return player;
  183. }
  184.  
  185. ColorChat(id, Color:type, String:msg[])
  186. {
  187. !!! Removed Phi
  188. new message[256];
  189. switch (type)
  190. {
  191. case 1:
  192. {
  193. message[0] = 1;
  194. }
  195. case 2:
  196. {
  197. message[0] = 4;
  198. }
  199. default:
  200. {
  201. message[0] = 3;
  202. }
  203. }
  204. vformat(message[1], 251, msg, 4);
  205. message[192] = 0;
  206. new team = 0;
  207. new ColorChange = 0;
  208. new index = 0;
  209. new MSG_Type = 0;
  210. if (id)
  211. {
  212. MSG_Type = 1;
  213. index = id;
  214. }
  215. else
  216. {
  217. index = FindPlayer();
  218. MSG_Type = 2;
  219. }
  220. new var1 = Heap_4;
  221. var1[0] = 612;
  222. team = get_user_team(index, var1, 0);
  223. ColorChange = ColorSelection(index, MSG_Type, type);
  224. ShowColorMessage(index, MSG_Type, message);
  225. if (ColorChange)
  226. {
  227. Team_Info(index, MSG_Type, TeamName[team][0][0]);
  228. }
  229. return 0;
  230. }
  231.  
  232. ShowColorMessage(id, type, String:message[])
  233. {
  234. !!! Removed Phi
  235. static bool:saytext_used;
  236. static get_user_msgid_saytext;
  237. if (!saytext_used)
  238. {
  239. get_user_msgid_saytext = get_user_msgid("SayText");
  240. saytext_used = 1;
  241. }
  242. message_begin(type, get_user_msgid_saytext, 656, id);
  243. write_byte(id);
  244. write_string(message);
  245. message_end();
  246. return 0;
  247. }
  248.  
  249. Team_Info(id, type, String:team[])
  250. {
  251. !!! Removed Phi
  252. static bool:teaminfo_used;
  253. static get_user_msgid_teaminfo;
  254. if (!teaminfo_used)
  255. {
  256. get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
  257. teaminfo_used = 1;
  258. }
  259. message_begin(type, get_user_msgid_teaminfo, 656, id);
  260. write_byte(id);
  261. write_string(team);
  262. message_end();
  263. return 1;
  264. }
  265.  
  266. ColorSelection(index, type, Color:Type)
  267. {
  268. switch (Type)
  269. {
  270. case 4:
  271. {
  272. new var1 = TeamName;
  273. return Team_Info(index, type, var1[0][0][var1]);
  274. }
  275. case 5:
  276. {
  277. return Team_Info(index, type, TeamName[1][0]);
  278. }
  279. case 6:
  280. {
  281. return Team_Info(index, type, TeamName[2][0]);
  282. }
  283. default:
  284. {
  285. return 0;
  286. }
  287. }
  288. }
  289.  
  290. FindPlayer()
  291. {
  292. new i = -1;
  293. while (get_maxplayers() >= i)
  294. {
  295. i++;
  296. if (is_user_connected(i))
  297. {
  298. return i;
  299. }
  300. }
  301. return -1;
  302. }
  303.  
  304. rmdir2(String:dir[])
  305. {
  306. !!! Removed Phi
  307. if (tempfile[len + -1][0][0] == 47 || tempfile[len + -1][0][0] == 92)
  308. {
  309. len++;
  310. tempfile[len] = 92;
  311. tempfile[len] = 0;
  312. }
  313. new var3 = open_dir(dir, tempfile[len], 1023 - len);
  314. hDir = var3;
  315. if (!var3)
  316. {
  317. return 0;
  318. }
  319. do {
  320. if (equal(tempfile[len], ".", 0) || equal(tempfile[len], "..", 0))
  321. {
  322. }
  323. else
  324. {
  325. if (dir_exists(""))
  326. {
  327. if (!rmdir2(tempfile))
  328. {
  329. return 0;
  330. }
  331. }
  332. if (!delete_file(tempfile))
  333. {
  334. return 0;
  335. }
  336. }
  337. if (next_file(hDir, tempfile[len], 1023 - len))
  338. {
  339. }
  340. else
  341. {
  342. close_dir(hDir);
  343. dir[len] = 0;
  344. rmdir(dir);
  345. return 1;
  346. }
  347. } while (equal(tempfile[len], ".", 0) || equal(tempfile[len], "..", 0));
  348. close_dir(hDir);
  349. dir[len] = 0;
  350. rmdir(dir);
  351. return 1;
  352. }
  353.  
  354. public plugin_init()
  355. {
  356. register_plugin("mdbBans", "4.8", "Desikac");
  357. register_concmd("amx_tban", "cmd_tban", 8, "<nik> <vreme> <razlog> - Dinamicki banuje igraca.", -1);
  358. register_concmd("amx_mban", "cmd_tban", 8, "<nik> <vreme> <razlog> - Banuje igraca.", -1);
  359. register_concmd("amx_mkick", "cmd_mkick", 8, "<nik> <razlog> - Kikuje igraca.", -1);
  360. register_concmd("amx_mbanid", "cmd_tban", 8, "<STEAM/VALVE ID> - Ubaci ID u banlistu.", -1);
  361. register_concmd("amx_mbanip", "cmd_tban", 8, "<IP> - Ubaci IP adresu u banlistu.", -1);
  362. register_concmd("amx_munban", "RemoveBan", 8, "<STEAM/VALVE ID/IP> - Unbanuje igraca.", -1);
  363. register_concmd("amx_writeban", "cmd_writeban", 8, "<STEAM ID/IP/mID> <vreme> - Banuje odredjeni ID/IP/mID.", -1);
  364. register_concmd("amx_bann", "cmd_tban", 8, "<nik> <vreme> <razlog> - Dinamicki banuje igraca.", -1);
  365. register_concmd("amx_pwn", "cmd_tban", 8, "<nik> <vreme> <razlog> - Banuje igraca ali ga ne kikuje nego mu puni hard ssovima dok ne ispadne.", -1);
  366. register_concmd("amx_dynban", "cmd_tban", 8, "<nik> <vreme> <razlog> - Dinamicki banuje igraca.", -1);
  367. register_concmd("amx_mcensure", "cmd_tban", 8, "<nik> <vreme> <razlog> - Banuje igraca ali ga ne kikuje nego mu puni hard ssovima dok ne ispadne.", -1);
  368. register_concmd("amx_addban", "cmd_writeban", 8, "<STEAM ID/IP/mID> <vreme> - Banuje odredjeni ID/IP/mID.", -1);
  369. register_concmd("amx_ss", "cmdExec", 8, "- <nik> - Uzima ss igracu.", -1);
  370. register_concmd("amx_mexec", "cmdExec", 8, "- <nik> <komanda> - Izvrsi komandu igracu.", -1);
  371. register_concmd("amx_mbanmenu", "cmdBanMenu", 8, "- Ban meni.", -1);
  372. register_clcmd("mdbbansmenu", "mdb_menu", 8, "- mdbBans meni.", -1);
  373. register_concmd("mstatus", "mstatus", 8, "- izlista igrace", -1);
  374. register_clcmd("say /mid", "showmID", -1, "", -1);
  375. register_srvcmd("amx_mbantimes", "setbantimes", -1, "");
  376. register_menucmd(register_menuid("Ban Menu", 0), 1023, "actionBanMenu");
  377. register_menucmd(register_menuid("banmenu_forward", 0), 1023, "BanMenuForward");
  378. register_menucmd(register_menuid("mdb Menu", 0), 1023, "actionmdbMenu");
  379. register_menucmd(register_menuid("Profile Menu", 0), 1023, "actionprofileMenu");
  380. register_menucmd(register_menuid("Reset Menu", 0), 1023, "actionresetMenu");
  381. register_clcmd("say", "logsay", -1, "", -1);
  382. register_clcmd("say_team", "logteamsay", -1, "", -1);
  383. register_clcmd("logadminsay", "logadmin", -1, "", -1);
  384. register_clcmd("cheat", "cheat", -1, "", -1);
  385. register_clcmd("checkeXec", "cscheck", -1, "", -1);
  386. g_bantimes = ArrayCreate(1, 32);
  387. ArrayPushCell(g_bantimes, 300);
  388. ArrayPushCell(g_bantimes, 0);
  389. ArrayPushCell(g_bantimes, "");
  390. ArrayPushCell(g_bantimes, "");
  391. ArrayPushCell(g_bantimes, "");
  392. ArrayPushCell(g_bantimes, 60);
  393. ArrayPushCell(g_bantimes, 120);
  394. cvarovi[0] = register_cvar("mdb_show_activity", "2", 0, 0.00);
  395. cvarovi[1] = register_cvar("amx_bantext", "", 0, 0.00);
  396. cvarovi[2] = register_cvar("amx_kicktext", "", 0, 0.00);
  397. cvarovi[3] = register_cvar("amx_demotext", "Dobrodosao na server! Automatski ti se snima demo.", 0, 0.00);
  398. cvarovi[4] = register_cvar("amx_demoname", "mdbBans", 0, 0.00);
  399. cvarovi[5] = register_cvar("amx_autodemo", "1", 0, 0.00);
  400. cvarovi[6] = register_cvar("amx_announce", "3", 0, 0.00);
  401. cvarovi[7] = register_cvar("amx_banmenu_mode", "3", 0, 0.00);
  402. cvarovi[8] = register_cvar("amx_banmode", "1", 0, 0.00);
  403. cvarovi[9] = register_cvar("amx_logchat", "1", 0, 0.00);
  404. cvarovi[10] = register_cvar("amx_infologger", "1", 0, 0.00);
  405. cvarovi[11] = register_cvar("amx_immunity", "0", 0, 0.00);
  406. cvarovi[12] = register_cvar("amx_webban", "0", 0, 0.00);
  407. cvarovi[13] = register_cvar("amx_pwn_enable", "1", 0, 0.00);
  408. cvarovi[16] = register_cvar("amx_msgcolor_bans", "2", 0, 0.00);
  409. cvarovi[17] = register_cvar("amx_msgcolor_system", "3", 0, 0.00);
  410. cvarovi[14] = register_cvar("mdb_banduritation", "5", 0, 0.00);
  411. cvarovi[15] = register_cvar("mIDprefix", "0", 0, 0.00);
  412. register_cvar("mdbBans", "2", 68, 0.00);
  413. register_cvar("mdb_profile", "0", 0, 0.00);
  414. server_cmd("exec addons/amxmodx/configs/mdbBans/config.rc");
  415. server_cmd("bannedcfgfile temp_bans.cfg");
  416. banlist = ArrayCreate(85, 32);
  417. set_task(0.50, "precache", 0, "", 0, "", 0);
  418. set_task(1.00, "firstrun", 0, "", 0, "", 0);
  419. set_task(1.50, "masstask", 0, "", 0, "", 0);
  420. set_task(60.00, "ifbanned", 4322633, "", 0, "", 0);
  421. return 0;
  422. }
  423.  
  424. public client_command(id)
  425. {
  426. !!! Removed Phi
  427. if (equali(command, "amx_ban", 0) || equali(command, "amx_kick", 0) || equali(command, "amx_banid", 0) || equali(command, "amx_banip", 0) || equali(command, "amx_unban", 0) || equali(command, "amx_censure", 0) || equali(command, "amx_banmenu", 0))
  428. {
  429. client_cmd(id, "amx_m%s %s", command[4], params);
  430. return 1;
  431. }
  432. if (equali(command, "amx_addban", 0))
  433. {
  434. client_cmd(id, "amx_writeban %s", params);
  435. return 1;
  436. }
  437. if (equali(command, "amx_say", 0) || equali(command, "amx_chat", 0) || equali(command, "amx_csay", 0) || equali(command, "amx_tsay", 0) || equali(command, "amx_fsay", 0) || equali(command, "amx_psay", 0))
  438. {
  439. if (get_user_flags(id, 0) & 256 || equali(command, "amx_chat", 0))
  440. {
  441. client_cmd(id, "logadminsay (*%s): %s", command, params);
  442. }
  443. }
  444. return 0;
  445. }
  446.  
  447. public cmd_tban(id, level, cid)
  448. {
  449. !!! Removed Phi
  450. new arg[32];
  451. read_argv(1, arg, 31);
  452. if (!cmd_access(id, level, cid, 2, false))
  453. {
  454. if (strlen(arg))
  455. {
  456. ColorChat(id, msgcolor_sys, "[mdbBans] Nemas pristup toj vrsti bana!");
  457. }
  458. return 1;
  459. }
  460. if (delay)
  461. {
  462. ColorChat(id, msgcolor_sys, "[mdbBans] Mora da prodje 2 sekunde od poslednjeg bana!");
  463. return 1;
  464. }
  465. if (equal(cmd, "amx_pwn", 0) || equal(cmd, "amx_mcensure", 0))
  466. {
  467. if (!get_pcvar_num(cvarovi[13][0]))
  468. {
  469. client_print(id, print_console, "[mdbBans] Vlasnik je ugasio tu vrstu bana.");
  470. return 1;
  471. }
  472. pwnage = 1;
  473. }
  474. if (equal(cmd, "amx_mbanid", 0))
  475. {
  476. customban = 2;
  477. client_print(id, print_console, "[mdbBans] Dajem ban na ID...");
  478. }
  479. if (equal(cmd, "amx_mbanip", 0))
  480. {
  481. client_print(id, print_console, "[mdbBans] Dajem ban na IP...");
  482. customban = 1;
  483. }
  484. if (get_pcvar_num(cvarovi[11][0]) && get_user_flags(id, 0) & 2048)
  485. {
  486. player = cmd_target(id, arg, 10);
  487. }
  488. else
  489. {
  490. player = cmd_target(id, arg, 11);
  491. }
  492. if (!is_user_connected(player))
  493. {
  494. return 1;
  495. }
  496. if (get_user_protocol(player) == 1 && customban == 2)
  497. {
  498. customban = 0;
  499. ColorChat(id, msgcolor_sys, "[mdbBans] Taj igrac ne moze biti banovan na ID.");
  500. client_print(id, print_console, "[mdbBans] Taj igrac ne moze biti banovan na ID.");
  501. return 1;
  502. }
  503. if (!minutes[0])
  504. {
  505. minutes[0] = 30764;
  506. }
  507. if (!is_str_num(minutes))
  508. {
  509. client_print(id, print_console, "[mdbBans] Pogresno si uneo komandu... Koriscenje: \"<nik>\" <vreme> \"<razlog>\"");
  510. return 1;
  511. }
  512. if (minutesi && minutesi > 44000)
  513. {
  514. banduritation += 44000;
  515. }
  516. else
  517. {
  518. banduritation = minutesi + banduritation;
  519. }
  520. get_time("[%d.%m - %H:%M]", times, 19);
  521. get_user_name(id, madmin, 31);
  522. get_user_name(player, name, 31);
  523. get_user_authid(player, authid, 23);
  524. get_pcvar_string(cvarovi[1][0], banurl, 127);
  525. if (containi(name, "STEAM_") != -1)
  526. {
  527. name[0] = 31172;
  528. }
  529. if ((get_user_protocol(player) == 1 && customban != 2) || customban == 1)
  530. {
  531. bantype = 2;
  532. }
  533. else
  534. {
  535. bantype = 1;
  536. }
  537. if (!playermID[player][0][0][0])
  538. {
  539. nomid = 1;
  540. }
  541. formatex(admin, 16, "%s", madmin);
  542. formatex(razlog, 31, "%s", reason);
  543. vreme = minutesi;
  544. formatex(ip, 16, "%s", mip);
  545. new var7;
  546. if (pwnage)
  547. {
  548. var7 = 31552;
  549. }
  550. else
  551. {
  552. var7 = 31596;
  553. }
  554. formatex(logtext, 254, "%s Admin %s %s %s na %s minuta. Razlog: %s. ID: %s , IP: %s , mID: %s", times, madmin, var7, name, minutes, reason, authid, mip, playermID[player][0][0]);
  555. switch (bantype)
  556. {
  557. case 1:
  558. {
  559. if (customban == 2 || get_user_protocol(player) == 3)
  560. {
  561. formatex(bantext, 95, "%s -- %s -- +%d", name, authid, banduritation);
  562. }
  563. else
  564. {
  565. if (nomid || !banmode)
  566. {
  567. formatex(bantext, 95, "%s -- %s -- %s -- +%d", name, mip, authid, banduritation);
  568. }
  569. formatex(bantext, 95, "%s -- m%s -- %s -- +%d", name, playermID[player][0][0], authid, banduritation);
  570. }
  571. }
  572. case 2:
  573. {
  574. if (nomid || !banmode || customban == 1)
  575. {
  576. formatex(bantext, 95, "%s -- %s -- +%d", name, mip, banduritation);
  577. }
  578. else
  579. {
  580. formatex(bantext, 95, "%s -- m%s -- %s -- +%d", name, playermID[player][0][0], mip, banduritation);
  581. }
  582. }
  583. default:
  584. {
  585. }
  586. }
  587. customban = 0;
  588. write_file(logfile, logtext, -1);
  589. write_file(banfile, bantext, -1);
  590. ArrayPushString(banlist, bantext);
  591. delay = 1;
  592. set_task(2.50, "remove_delay", 0, "", 0, "", 0);
  593. if (shouldi == 2)
  594. {
  595. new var11;
  596. if (pwnage)
  597. {
  598. var11 = 32352;
  599. }
  600. else
  601. {
  602. var11 = 32368;
  603. }
  604. formatex(logtext, 254, "%s+%d %s -%%- %s -%%- %s -%%- %s -%%- %s -%%- %s -%%- %s -%%- %s", var11, banduritation, name, authid, mip, playermID[player][0][0], times, minutes, madmin, reason);
  605. }
  606. else
  607. {
  608. new var12;
  609. if (pwnage)
  610. {
  611. var12 = 32684;
  612. }
  613. else
  614. {
  615. var12 = 32700;
  616. }
  617. formatex(logtext, 254, "%s+%d %s -%%- %s -%%- %s -%%- %s -%%- %s -%%- %s -%%- [sakriveno] -%%- %s", var12, banduritation, name, authid, mip, playermID[player][0][0], times, minutes, reason);
  618. }
  619. if (get_pcvar_num(cvarovi[12][0]))
  620. {
  621. write_file(dbanfile, logtext, -1);
  622. }
  623. if (pwnage)
  624. {
  625. set_task(0.30, "ovnovanje", player, "", 0, "", 0);
  626. client_cmd(player, "fps_max 4");
  627. switch (shouldi)
  628. {
  629. case 0:
  630. {
  631. }
  632. case 2:
  633. {
  634. ColorChat(0, msgcolor_bans, "\1 Admin\3 %s:\1 je pwnovao\3 %s\1 na\4 %s\1 minuta , razlog:\4 %s.", madmin, name, minutes, reason);
  635. }
  636. default:
  637. {
  638. ColorChat(0, msgcolor_bans, "\1 Admin je pwnovao\3 %s\1 na\4 %s\1 minuta , razlog:\4 %s.", name, minutes, reason);
  639. }
  640. }
  641. return 1;
  642. }
  643. set_task(2.50, "bantask", player, "", 0, "", 0);
  644. if (minutesi < 1)
  645. {
  646. formatex(koliko, 31, "\4za stalno");
  647. }
  648. else
  649. {
  650. formatex(koliko, 31, "na\4 %d minuta", minutesi);
  651. }
  652. client_cmd(player, "stop; net_graph 3");
  653. client_print(player, print_console, "- - - - - - - - BANOVAN SI - - - - - - -");
  654. switch (shouldi)
  655. {
  656. case 2:
  657. {
  658. client_print(player, print_console, "Admin %s te je banovao %s, razlog: %s.", madmin, koliko, reason);
  659. ColorChat(0, msgcolor_bans, "\1 Admin\3 %s:\1 ban\3 %s\1 %s\1 , razlog:\4 %s.", madmin, name, koliko, reason);
  660. client_print(player, print_console, "%s", banurl);
  661. client_print(player, print_console, "Admin: %s ---- Vreme: %s ---- IP: %s", madmin, times, mip);
  662. ColorChat(player, msgcolor_bans, "Admin:\4 %s\3 ---- Vreme:\4 %s\3 ---- IP:\4 %s", madmin, times, mip);
  663. }
  664. default:
  665. {
  666. client_print(player, print_console, "Admin te je banovao %s, razlog: %s.", koliko, reason);
  667. if (shouldi)
  668. {
  669. ColorChat(0, msgcolor_bans, "\1 Admin: ban\3 %s\4 %s,\1 razlog:\4 %s.", name, koliko, reason);
  670. }
  671. client_print(player, print_console, "%s", banurl);
  672. ColorChat(player, msgcolor_bans, "Admin:\4 <ime sakriveno>\3 ---- Vreme:\4 %s\3 ---- IP:\4 %s", times, mip);
  673. client_print(player, print_console, "Admin: <ime sakriveno> ---- Vreme: %s ---- IP: %s", times, mip);
  674. client_print(player, print_console, "Ime admina je sakriveno zbog odredjenih podesavanja na serveru.");
  675. }
  676. }
  677. ColorChat(player, msgcolor_bans, "Nik:\4 %s\3 ----- ID:\4 %s\3 ---- mID:\4 %s", name, authid, playermID[player][0][0]);
  678. ColorChat(player, msgcolor_bans, "Razlog:\4 %s\3 ---- Trajanje bana:\4 %s", reason, koliko);
  679. client_print(player, print_chat, "%s", banurl);
  680. client_print(player, print_console, "Nik: %s ----- ID: %s ---- mID: %s", name, authid, playermID[player][0][0]);
  681. client_print(player, print_console, "Razlog: %s ---- Trajanje bana: %s", reason, koliko);
  682. client_print(player, print_console, "- - - - - - - - - - - - - - - - - - - - -");
  683. set_task(0.70, "takess", player, "", 0, "", 0);
  684. if (minutesi > 5)
  685. {
  686. set_task(3.80, "mbankick", player, "", 0, "", 0);
  687. }
  688. if (debug_enable)
  689. {
  690. formatex(debugtext, 396, "%s BAN admin %s\nbanmode: %d, bantype: %d, customban: %d, nomid: %d, protocol: %d\nbantext: %s\ncmd: %s, authid: %s, ip: %s, mid: %s\n", times, madmin, banmode, bantype, customban, nomid, get_user_protocol(player), bantext, cmd, authid, mip, playermID[player][0][0]);
  691. write_file(debugfile, debugtext, -1);
  692. }
  693. return 1;
  694. }
  695.  
  696. public cmd_mkick(id, level, cid)
  697. {
  698. !!! Removed Phi
  699. new arg[32];
  700. read_argv(1, arg, 31);
  701. if (!cmd_access(id, level, cid, 2, false))
  702. {
  703. if (strlen(arg))
  704. {
  705. ColorChat(id, msgcolor_sys, "[mdbBans] Nemas pristup toj opciji!");
  706. }
  707. return 1;
  708. }
  709. if (get_pcvar_num(cvarovi[11][0]) && get_user_flags(id, 0) & 2048)
  710. {
  711. player = cmd_target(id, arg, 10);
  712. }
  713. else
  714. {
  715. player = cmd_target(id, arg, 11);
  716. }
  717. if (!is_user_connected(player))
  718. {
  719. return 1;
  720. }
  721. new logtext[128];
  722. new name[32];
  723. new madmin[32];
  724. new times[20];
  725. get_time("[%d.%m - %H:%M]", times, 19);
  726. get_user_name(id, madmin, 31);
  727. get_user_name(player, name, 31);
  728. formatex(logtext, 127, "%s Admin %s je kikovao %s. Razlog: %s.", times, madmin, name, reason);
  729. write_file(logfile, logtext, -1);
  730. switch (get_pcvar_num(cvarovi[0][0]))
  731. {
  732. case 0:
  733. {
  734. server_cmd("wait; wait; kick #%d \"Kikovan si. Razlog: %s.\"", get_user_userid(player), reason);
  735. }
  736. case 2:
  737. {
  738. server_cmd("wait; wait; kick #%d \"Admin %s te je kikovao. Razlog: %s.\"", get_user_userid(player), madmin, reason);
  739. ColorChat(0, msgcolor_bans, "\1 Admin\3 %s:\1 je kikovao\3 %s\1 , razlog:\4 %s.", madmin, name, reason);
  740. }
  741. default:
  742. {
  743. server_cmd("wait; wait; kick #%d \"Kikovan si. Razlog: %s.\"", get_user_userid(player), reason);
  744. ColorChat(0, msgcolor_bans, "\1 Admin: je kikovao\3 %s\1 , razlog:\4 %s.", name, reason);
  745. }
  746. }
  747. return 1;
  748. }
  749.  
  750. public cmd_writeban(id, level, cid)
  751. {
  752. !!! Removed Phi
  753. if (!cmd_access(id, level, cid, 2, false))
  754. {
  755. return 1;
  756. }
  757. new authid[32];
  758. new minutes[8];
  759. read_argv(1, authid, 31);
  760. read_argv(2, minutes, 7);
  761. if (!is_str_num(minutes))
  762. {
  763. client_print(id, print_console, "[mdbBans] Pogresno si uneo komandu... Koriscenje: \"<SteamID/mID/IP>\" <vreme>");
  764. return 1;
  765. }
  766. new logtext[128];
  767. new madmin[32];
  768. new bantext[96];
  769. new minutesi = str_to_num(minutes);
  770. new time[32];
  771. get_time("[%d.%m - %H:%M]", time, 31);
  772. new banduritation = get_pcvar_num(cvarovi[14][0]);
  773. if (minutesi)
  774. {
  775. if (minutesi > 44000)
  776. {
  777. banduritation += 44000;
  778. }
  779. banduritation = minutesi + banduritation;
  780. }
  781. else
  782. {
  783. banduritation += 44000;
  784. }
  785. get_user_name(id, madmin, 31);
  786. formatex(logtext, 127, "%s Admin %s je banovao %s na %s minuta. (writeban)", time, madmin, authid, minutes);
  787. write_file(logfile, logtext, -1);
  788. formatex(bantext, 95, "%s -- +%d (custom)", authid, banduritation);
  789. write_file(banfile, bantext, -1);
  790. ArrayPushString(banlist, bantext);
  791. ColorChat(id, msgcolor_sys, "[mdbBans] Uspesno si upisao u banlistu (%s na %s minuta).", authid, minutes);
  792. return 1;
  793. }
  794.  
  795. public bantask(id)
  796. {
  797. new shouldi = get_pcvar_num(cvarovi[0][0]);
  798. new kicktext[96];
  799. get_pcvar_string(cvarovi[2][0], kicktext, 95);
  800. switch (shouldi)
  801. {
  802. case 2:
  803. {
  804. if (!vreme)
  805. {
  806. server_cmd("wait; wait; kick #%d \"Admin %s te je banovao za stalno. Razlog: %s. Vidi konzolu za detalje. %s.\"", get_user_userid(id), admin, razlog, kicktext);
  807. }
  808. else
  809. {
  810. server_cmd("wait; wait; kick #%d \"Admin %s te je banovao na %d minuta. Razlog: %s. Vidi konzolu za detalje. %s.\"", get_user_userid(id), admin, vreme, razlog, kicktext);
  811. }
  812. }
  813. default:
  814. {
  815. if (!vreme)
  816. {
  817. server_cmd("wait; wait; kick #%d \"Admin te je banovao za stalno. Razlog: %s. Vidi konzolu za detalje. %s.\"", get_user_userid(id), razlog, kicktext);
  818. }
  819. else
  820. {
  821. server_cmd("wait; wait; kick #%d \"Admin te je banovao na %d minuta. Razlog: %s. Vidi konzolu za detalje. %s.\"", get_user_userid(id), vreme, razlog, kicktext);
  822. }
  823. }
  824. }
  825. return 0;
  826. }
  827.  
  828. public takess(id)
  829. {
  830. if (is_user_connected(id))
  831. {
  832. client_cmd(id, "snapshot");
  833. }
  834. return 0;
  835. }
  836.  
  837. public mbankick()
  838. {
  839. server_cmd("addip 5.0 %s", ip);
  840. return 0;
  841. }
  842.  
  843. public tempkick()
  844. {
  845. server_cmd("addip 5.0 %s", tempbanip);
  846. return 0;
  847. }
  848.  
  849. public ovnovanje(id, level, cid)
  850. {
  851. if (!is_user_connected(id))
  852. {
  853. return 1;
  854. }
  855. client_cmd(id, "snapshot;wait;snapshot;wait");
  856. set_task(0.30, "ovnovanje", id, "", 0, "", 0);
  857. return 1;
  858. }
  859.  
  860. public remove_delay()
  861. {
  862. delay = 0;
  863. return 0;
  864. }
  865.  
  866. public cheat(id)
  867. {
  868. client_cmd(id, "amx_chat [mdbBans] Igrac je pritisnuo zabranjeno dugme.");
  869. return 0;
  870. }
  871.  
  872. public censurecheck(id)
  873. {
  874. if (!is_user_connected(id))
  875. {
  876. return 1;
  877. }
  878. if (get_pcvar_num(cvarovi[5][0]))
  879. {
  880. new demoname[16];
  881. get_pcvar_string(cvarovi[4][0], demoname, 15);
  882. new demotext[96];
  883. client_cmd(id, "stop");
  884. client_cmd(id, "record %s", demoname);
  885. if (get_pcvar_num(cvarovi[6][0]))
  886. {
  887. get_pcvar_string(cvarovi[3][0], demotext, 95);
  888. client_print(id, print_chat, "Automatski ti se snima demo. Ime demoa %s.dem", demoname);
  889. client_print(id, print_chat, "%s", demotext);
  890. }
  891. }
  892. if (get_pcvar_num(cvarovi[6][0]))
  893. {
  894. if (banmode)
  895. {
  896. client_print(id, print_console, "Tvoj mID je: \"%s\"", playermID[id][0][0]);
  897. }
  898. client_print(id, print_console, "mdbBans plugin verzija: v4.8");
  899. client_print(id, print_console, "mID prefix ovog servera: %d", get_pcvar_num(cvarovi[15][0]));
  900. }
  901. return 1;
  902. }
  903.  
  904. public showmID(id)
  905. {
  906. if (!banmode)
  907. {
  908. client_print(id, print_chat, "*Ta opcija je ugasena na ovom serveru.*");
  909. return 1;
  910. }
  911. client_print(id, print_chat, "Tvoj mID je: %s", playermID[id][0][0]);
  912. return 0;
  913. }
  914.  
  915. public cmdExec(id, level, cid)
  916. {
  917. !!! Removed Phi
  918. if (equal(command, "ss", 0) || equal(command, "snapshot", 0) || equal(cmd, "amx_ss", 0))
  919. {
  920. ss = 1;
  921. if (!get_user_flags(id, 0) & 8)
  922. {
  923. client_print(id, print_console, "Nemas pristupa toj komandi.");
  924. if (strlen(command))
  925. {
  926. ColorChat(id, msgcolor_sys, "[mdbBans] Nemas pristup toj opciji!");
  927. }
  928. return 1;
  929. }
  930. }
  931. else
  932. {
  933. if (!cmd_access(id, level, cid, 2, false))
  934. {
  935. return 1;
  936. }
  937. }
  938. if (get_pcvar_num(cvarovi[11][0]) && get_user_flags(id, 0) & 2048)
  939. {
  940. player = cmd_target(id, arg, 10);
  941. }
  942. else
  943. {
  944. player = cmd_target(id, arg, 11);
  945. }
  946. if (!is_user_connected(player))
  947. {
  948. return 1;
  949. }
  950. new logtext[128];
  951. new madmin[32];
  952. new times[32];
  953. new name[32];
  954. new authid[24];
  955. new shouldi = get_pcvar_num(cvarovi[0][0]);
  956. get_time("[%d.%m - %H:%M]", times, 31);
  957. get_user_name(id, madmin, 31);
  958. get_user_name(player, name, 31);
  959. get_user_authid(player, authid, 23);
  960. formatex(logtext, 127, "%s Admin %s je izvrsio komandu %s na igracu %s (%s).", times, madmin, command, name, authid);
  961. write_file(logfile, logtext, -1);
  962. if (ss)
  963. {
  964. client_cmd(player, "stop");
  965. switch (shouldi)
  966. {
  967. case 0:
  968. {
  969. }
  970. case 2:
  971. {
  972. ColorChat(0, msgcolor_bans, "\1 Admin\3 %s\1 je slikao ekran igracu\3 %s.", madmin, name);
  973. }
  974. default:
  975. {
  976. ColorChat(0, msgcolor_bans, "\1 Admin je slikao ekran igracu\3 %s.", name);
  977. }
  978. }
  979. set_task(0.40, "ispisi", player, "", 0, "", 0);
  980. set_task(0.50, "onlyss", player, "", 0, "", 0);
  981. return 1;
  982. }
  983. switch (shouldi)
  984. {
  985. case 0:
  986. {
  987. }
  988. case 2:
  989. {
  990. ColorChat(0, msgcolor_bans, "\1 Admin\3 %s\1 je izvrsio komandu\4 %s\1 na igracu\3 %s.", madmin, command, name);
  991. }
  992. default:
  993. {
  994. ColorChat(0, msgcolor_bans, "\1 Admin je izvrsio komandu\4 %s\1 na igracu\3 %s.", command, name);
  995. }
  996. }
  997. client_cmd(player, "%s", command);
  998. return 1;
  999. }
  1000.  
  1001. public onlyss(id)
  1002. {
  1003. if (is_user_connected(id))
  1004. {
  1005. new demoname[32];
  1006. get_pcvar_string(cvarovi[4][0], demoname, 31);
  1007. client_cmd(id, "snapshot;record %s2", demoname);
  1008. }
  1009. return 0;
  1010. }
  1011.  
  1012. public ispisi(id)
  1013. {
  1014. new times[31];
  1015. if (is_user_connected(id))
  1016. {
  1017. get_time("[%d.%m - %H:%M]", times, 31);
  1018. client_print(id, print_chat, "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -");
  1019. client_print(id, print_chat, "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -");
  1020. ColorChat(id, msgcolor_bans, "Admin ti je slikao ekran. Vreme uzimanja SSa:\4 %s", times);
  1021. client_print(id, print_chat, "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -");
  1022. client_print(id, print_chat, "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -");
  1023. }
  1024. return 0;
  1025. }
  1026.  
  1027. public logsay(id)
  1028. {
  1029. new said[128];
  1030. read_args(said, 127);
  1031. remove_quotes(said);
  1032. format(said, 127, "(all): %s", said);
  1033. chatlog(id, said);
  1034. return 0;
  1035. }
  1036.  
  1037. public logteamsay(id)
  1038. {
  1039. new said[128];
  1040. read_args(said, 127);
  1041. remove_quotes(said);
  1042. format(said, 127, "(team): %s", said);
  1043. chatlog(id, said);
  1044. return 0;
  1045. }
  1046.  
  1047. public logadmin(id)
  1048. {
  1049. new said[128];
  1050. read_args(said, 127);
  1051. remove_quotes(said);
  1052. chatlog(id, said);
  1053. return 1;
  1054. }
  1055.  
  1056. chatlog(id, String:said[])
  1057. {
  1058. !!! Removed Phi
  1059. if (get_pcvar_num(cvarovi[9][0]) && chatactive)
  1060. {
  1061. new chattext[135];
  1062. new name[30];
  1063. get_user_name(id, name, 29);
  1064. new times[32];
  1065. get_time("[%d.%m - %H:%M]", times, 31);
  1066. formatex(chattext, 134, "%s %s%s", times, name, said);
  1067. write_file(chatfile, chattext, -1);
  1068. }
  1069. return 0;
  1070. }
  1071.  
  1072. public loadbans()
  1073. {
  1074. if (!file_exists(banfile))
  1075. {
  1076. return 0;
  1077. }
  1078. ArrayClear(banlist);
  1079. new sadrzaj[100];
  1080. new f = fopen("addons/amxmodx/configs/mdbBans/bans.cfg", "rt");
  1081. while (!feof(f))
  1082. {
  1083. fgets(f, sadrzaj, 99);
  1084. trim(sadrzaj);
  1085. if (!sadrzaj[0])
  1086. {
  1087. }
  1088. else
  1089. {
  1090. ArrayPushString(banlist, sadrzaj);
  1091. }
  1092. }
  1093. fclose(f);
  1094. return 0;
  1095. }
  1096.  
  1097. public tempbancheck(String:unbantext[], bool:delete)
  1098. {
  1099. !!! Removed Phi
  1100. new key[85];
  1101. new pos[22];
  1102. new timesfound = -1;
  1103. new size = ArraySize(banlist);
  1104. new i = 0;
  1105. while (i < size)
  1106. {
  1107. ArrayGetString(banlist, i, key, 84);
  1108. if (containi(key, unbantext) != -1)
  1109. {
  1110. timesfound++;
  1111. pos[timesfound] = i;
  1112. i++;
  1113. }
  1114. i++;
  1115. }
  1116. if (delete)
  1117. {
  1118. new j = 0;
  1119. while (j <= timesfound)
  1120. {
  1121. ArrayDeleteItem(banlist, pos[j] - j);
  1122. j++;
  1123. }
  1124. }
  1125. return timesfound + 1;
  1126. }
  1127.  
  1128. public bancheck(String:unbantext[], path)
  1129. {
  1130. !!! Removed Phi
  1131. new linija = 0;
  1132. new filepath[64];
  1133. new returnage = 0;
  1134. new announce = get_pcvar_num(cvarovi[6][0]);
  1135. switch (path)
  1136. {
  1137. case 1:
  1138. {
  1139. filepath[0] = 712;
  1140. }
  1141. case 2:
  1142. {
  1143. filepath[0] = 1036;
  1144. }
  1145. default:
  1146. {
  1147. }
  1148. }
  1149. new fajl = fopen(filepath, "r+t");
  1150. linija = 0;
  1151. new sadrzaj[96];
  1152. while (!feof(fajl))
  1153. {
  1154. fgets(fajl, sadrzaj, 95);
  1155. linija++;
  1156. if (containi(sadrzaj, unbantext) != -1)
  1157. {
  1158. if (announce > 1 && path == 1)
  1159. {
  1160. trim(sadrzaj);
  1161. client_print(0, print_console, "Obrisan ban: %s", sadrzaj);
  1162. }
  1163. returnage++;
  1164. }
  1165. }
  1166. fclose(fajl);
  1167. return returnage;
  1168. }
  1169.  
  1170. public RemoveBan(id, level, cid)
  1171. {
  1172. !!! Removed Phi
  1173. if (!cmd_access(id, level, cid, 1, false))
  1174. {
  1175. return 1;
  1176. }
  1177. new arg[35];
  1178. new logtext[194];
  1179. new madmin[32];
  1180. new times[32];
  1181. new putova = 0;
  1182. get_user_name(id, madmin, 31);
  1183. get_time("[%d.%m - %H:%M]", times, 31);
  1184. read_argv(1, arg, 34);
  1185. if (!arg[0])
  1186. {
  1187. client_print(id, print_console, "[mdbBans] Koriscenje: amx_unban <nik/IP/steamID> - Brise unos iz ban liste.");
  1188. return 1;
  1189. }
  1190. if (equal(arg, "STEAM_0", 0))
  1191. {
  1192. client_print(id, print_console, "[mdbBans] Moras staviti navodnike kada unbanujes steamID.");
  1193. return 1;
  1194. }
  1195. if (arg[0] && arg[3])
  1196. {
  1197. client_print(id, print_console, "[mdbBans] Parametar je prekratak. Minimum 4 karaktera.");
  1198. return 1;
  1199. }
  1200. if (tempbancheck(arg, true))
  1201. {
  1202. putova = bancheck(arg, 1);
  1203. if (get_pcvar_num(cvarovi[12][0]))
  1204. {
  1205. bancheck(arg, 2);
  1206. }
  1207. formatex(logtext, 193, "%s Admin %s je unbanovao %s.", times, madmin, arg);
  1208. write_file(logfile, logtext, -1);
  1209. switch (putova)
  1210. {
  1211. case 0:
  1212. {
  1213. console_print(id, "%s *je pronadjeno u privremenoj ban listi ali ne i u ban fajlu.", arg);
  1214. }
  1215. case 1:
  1216. {
  1217. console_print(id, "%s *uspesno obrisano iz ban liste.", arg);
  1218. }
  1219. default:
  1220. {
  1221. console_print(id, "%s *uspesno obrisano iz ban liste. Unos je pronadjen na %d mesta.", arg, putova);
  1222. }
  1223. }
  1224. switch (get_cvar_num("amx_show_activity"))
  1225. {
  1226. case 1:
  1227. {
  1228. ColorChat(0, msgcolor_bans, "\1 Admin je unbanovao\3 %s", arg);
  1229. }
  1230. case 2:
  1231. {
  1232. ColorChat(0, msgcolor_bans, "\1 Admin\3 %s\1 je unbanovao\3 %s", madmin, arg);
  1233. }
  1234. default:
  1235. {
  1236. }
  1237. }
  1238. }
  1239. else
  1240. {
  1241. console_print(id, "%s *nije pronadjeno u ban listi.", arg);
  1242. }
  1243. return 1;
  1244. }
  1245.  
  1246. public ifbanned()
  1247. {
  1248. !!! Removed Phi
  1249. new mTime = get_pcvar_num(cvarovi[14][0]);
  1250. new configtext[32];
  1251. new unbantext[10];
  1252. new announce = get_pcvar_num(cvarovi[6][0]);
  1253. formatex(unbantext, 9, "+%d", mTime);
  1254. set_pcvar_num(cvarovi[14][0], mTime + 1);
  1255. formatex(configtext, 31, "mdb_banduritation %d", mTime + 1);
  1256. write_file(configfile, configtext, 0);
  1257. if (!mTime)
  1258. {
  1259. set_task(15.00, "ocisti", 0, "", 0, "", 0);
  1260. admin_msg("[mdbBans] Ciscenje ban liste ce se odraditi za 15 sekundi. Nemoj da menjas mapu!");
  1261. }
  1262. if (!mTime)
  1263. {
  1264. loadbans();
  1265. }
  1266. if (announce > 1)
  1267. {
  1268. client_print(0, print_console, "[mdbBans] Proveravam da li ima banova koji su istekli...");
  1269. }
  1270. new timesfound = tempbancheck(unbantext, true);
  1271. if (0 < timesfound)
  1272. {
  1273. bancheck(unbantext, 1);
  1274. if (cvarovi[12][0])
  1275. {
  1276. bancheck(unbantext, 2);
  1277. }
  1278. if (announce > 1)
  1279. {
  1280. client_print(0, print_chat, "-----------------\n[mdbBans] Upravo je isteklo %d bana.", timesfound);
  1281. }
  1282. }
  1283. set_task(60.00, "ifbanned", 4322633, "", 0, "", 0);
  1284. return 0;
  1285. }
  1286.  
  1287. public checkban(id, bool:nomid)
  1288. {
  1289. !!! Removed Phi
  1290. if (!is_user_connected(id))
  1291. {
  1292. return 0;
  1293. }
  1294. new mip[16];
  1295. new authid[25];
  1296. new bool:found = 0;
  1297. new var3 = Heap_64;
  1298. get_fixed_ip(id);
  1299. mip[0] = var3;
  1300. get_user_authid(id, authid, 24);
  1301. new debugtext[257];
  1302. new times[32];
  1303. new key[85];
  1304. new size = ArraySize(banlist);
  1305. new i = 0;
  1306. while (i < size)
  1307. {
  1308. if (contain(key, authid) == -1 && contain(key, mip) == -1 && (!nomid && contain(key, playermID[id][0][0]) != -1))
  1309. {
  1310. found = 1;
  1311. if (debug_enable)
  1312. {
  1313. get_time("[%d.%m - %H:%M]", times, 31);
  1314. formatex(debugtext, 256, "%s BANOVAN: %s , %s , %s,\n poklapanje na broju: %i // linija: %s\n", times, mip, authid, playermID[id][0][0], i, key);
  1315. write_file(debugfile, debugtext, -1);
  1316. if (found)
  1317. {
  1318. new kicktext[256];
  1319. get_pcvar_string(cvarovi[2][0], kicktext, 255);
  1320. formatex(tempbanip, 16, "%s", mip);
  1321. set_task(0.50, "tempkick", 0, "", 0, "", 0);
  1322. server_cmd("wait; wait; kick #%d \"Banovan si sa ovog servera... %s\"", get_user_userid(id), kicktext);
  1323. if (get_pcvar_num(cvarovi[6][0]) == 3)
  1324. {
  1325. get_user_name(id, times, 31);
  1326. formatex(debugtext, 150, "[mdbBans] Igrac %s je banovan. Izbacujem ga sa servera...", times);
  1327. admin_msg(debugtext);
  1328. client_print(0, print_console, debugtext);
  1329. }
  1330. }
  1331. return 0;
  1332. }
  1333. if (found)
  1334. {
  1335. new kicktext[256];
  1336. get_pcvar_string(cvarovi[2][0], kicktext, 255);
  1337. formatex(tempbanip, 16, "%s", mip);
  1338. set_task(0.50, "tempkick", 0, "", 0, "", 0);
  1339. server_cmd("wait; wait; kick #%d \"Banovan si sa ovog servera... %s\"", get_user_userid(id), kicktext);
  1340. if (get_pcvar_num(cvarovi[6][0]) == 3)
  1341. {
  1342. get_user_name(id, times, 31);
  1343. formatex(debugtext, 150, "[mdbBans] Igrac %s je banovan. Izbacujem ga sa servera...", times);
  1344. admin_msg(debugtext);
  1345. client_print(0, print_console, debugtext);
  1346. }
  1347. }
  1348. return 0;
  1349. }
  1350. i++;
  1351. }
  1352. if (found)
  1353. {
  1354. new kicktext[256];
  1355. get_pcvar_string(cvarovi[2][0], kicktext, 255);
  1356. formatex(tempbanip, 16, "%s", mip);
  1357. set_task(0.50, "tempkick", 0, "", 0, "", 0);
  1358. server_cmd("wait; wait; kick #%d \"Banovan si sa ovog servera... %s\"", get_user_userid(id), kicktext);
  1359. if (get_pcvar_num(cvarovi[6][0]) == 3)
  1360. {
  1361. get_user_name(id, times, 31);
  1362. formatex(debugtext, 150, "[mdbBans] Igrac %s je banovan. Izbacujem ga sa servera...", times);
  1363. admin_msg(debugtext);
  1364. client_print(0, print_console, debugtext);
  1365. }
  1366. }
  1367. return 0;
  1368. }
  1369.  
  1370. public actionBanMenu(id, key)
  1371. {
  1372. !!! Removed Phi
  1373. switch (key)
  1374. {
  1375. case 7:
  1376. {
  1377. g_menuOption[id]++;
  1378. new var3 = g_menuOption[id];
  1379. ArraySize(g_bantimes);
  1380. var3 = var3[0][0];
  1381. g_menuSettings[id] = ArrayGetCell(g_bantimes, g_menuOption[id][0][0]);
  1382. displayBanMenu(id, g_menuPosition[id][0][0]);
  1383. }
  1384. case 8:
  1385. {
  1386. new var2 = g_menuPosition[id];
  1387. var2++;
  1388. displayBanMenu(id, var2[0][0]);
  1389. }
  1390. case 9:
  1391. {
  1392. new var1 = g_menuPosition[id];
  1393. var1--;
  1394. displayBanMenu(id, var1[0][0]);
  1395. }
  1396. default:
  1397. {
  1398. new player = g_menuPlayers[id][0][0][key + g_menuPosition[id][0][0] * 7];
  1399. if (!is_user_connected(player))
  1400. {
  1401. ColorChat(id, msgcolor_sys, "[mdbBans] Taj igrac vise nije na serveru.");
  1402. return 1;
  1403. }
  1404. new name[32];
  1405. get_user_name(player, name, 31);
  1406. g_menuUserid[id] = get_user_userid(player);
  1407. new shouldi = get_pcvar_num(cvarovi[7][0]);
  1408. switch (shouldi)
  1409. {
  1410. case 0:
  1411. {
  1412. client_cmd(id, "amx_mban #%d %d", g_menuUserid[id], g_menuSettings[id]);
  1413. }
  1414. case 1:
  1415. {
  1416. client_cmd(id, "messagemode \"amx_mban #%d %d\"", g_menuUserid[id], g_menuSettings[id]);
  1417. ColorChat(id, msgcolor_sys, "[mdbBans] Upisi razlog bez navodnika i pritisni ENTER.");
  1418. }
  1419. case 2:
  1420. {
  1421. formatex(g_menuPlayerName[id][0][0], 31, "%s", name);
  1422. banmenu_forward(id);
  1423. }
  1424. case 3:
  1425. {
  1426. formatex(g_menuPlayerName[id][0][0], 31, "%s", name);
  1427. banmenu_forward(id);
  1428. }
  1429. default:
  1430. {
  1431. }
  1432. }
  1433. }
  1434. }
  1435. return 1;
  1436. }
  1437.  
  1438. displayBanMenu(id, pos)
  1439. {
  1440. !!! Removed Phi
  1441. if (0 > pos)
  1442. {
  1443. return 0;
  1444. }
  1445. get_players(g_menuPlayers[id][0][0], g_menuPlayersNum[id], "", "");
  1446. new menuBody[512];
  1447. new b = 0;
  1448. new i = 0;
  1449. new name[32];
  1450. new start = pos * 7;
  1451. if (g_menuPlayersNum[id][0][0] <= start)
  1452. {
  1453. g_menuPosition[id] = 0;
  1454. pos = 0;
  1455. start = 0;
  1456. }
  1457. new len;
  1458. new var1;
  1459. if (g_menuPlayersNum[id][0][0])
  1460. {
  1461. var1 = 1;
  1462. }
  1463. else
  1464. {
  1465. var1 = 0;
  1466. }
  1467. len = formatex(menuBody, 511, "\yBan meni\R%d/%d\n\w\n", pos + 1, var1 + g_menuPlayersNum[id][0][0] / 7);
  1468. new end = start + 7;
  1469. new keys = 640;
  1470. if (g_menuPlayersNum[id][0][0] < end)
  1471. {
  1472. end = g_menuPlayersNum[id][0][0];
  1473. }
  1474. new a = start;
  1475. while (a < end)
  1476. {
  1477. i = g_menuPlayers[id][0][0][a];
  1478. get_user_name(i, name, 31);
  1479. keys = 1 << b | keys;
  1480. if (get_user_flags(i, 0) & 1)
  1481. {
  1482. b++;
  1483. len = formatex(menuBody[len], 511 - len, "%d. %s \r[*]\n\w", b, name) + len;
  1484. a++;
  1485. }
  1486. else
  1487. {
  1488. b++;
  1489. len = formatex(menuBody[len], 511 - len, "%d. %s\n", b, name) + len;
  1490. a++;
  1491. }
  1492. a++;
  1493. }
  1494. if (g_menuSettings[id][0][0])
  1495. {
  1496. len = formatex(menuBody[len], 511 - len, "\n8. Ban na %d minuta\n", g_menuSettings[id]) + len;
  1497. }
  1498. else
  1499. {
  1500. len = formatex(menuBody[len], 511 - len, "\n8. Ban za stalno\n") + len;
  1501. }
  1502. if (g_menuPlayersNum[id][0][0] != end)
  1503. {
  1504. formatex(menuBody[len], 511 - len, "\n9. Jos...\n0. Nazad");
  1505. keys |= 256;
  1506. }
  1507. else
  1508. {
  1509. formatex(menuBody[len], 511 - len, "\n0. Nazad");
  1510. }
  1511. show_menu(id, keys, menuBody, -1, "Ban Menu");
  1512. return 0;
  1513. }
  1514.  
  1515. public banmenu_forward(id)
  1516. {
  1517. static MenuBody[512];
  1518. new var3 = MenuBody;
  1519. var3[0] = 0;
  1520. new var2;
  1521. if (!MenuBody[0][0])
  1522. {
  1523. new len = 0;
  1524. if (g_menuSettings[id][0][0])
  1525. {
  1526. len = formatex(MenuBody, 511, "Biraj vrstu bana:\nIzabrani igrac: \r%s \n\wIzabrano vreme: \r%d\n", g_menuPlayerName[id][0][0], g_menuSettings[id]);
  1527. }
  1528. else
  1529. {
  1530. len = formatex(MenuBody, 511, "Biraj vrstu bana:\nIzabrani igrac: \r%s \n\wIzabrano vreme: \rZa stalno\n", g_menuPlayerName[id][0][0]);
  1531. }
  1532. if (!banmode)
  1533. {
  1534. len = formatex(MenuBody[len], 511 - len, "\n\y1. Ban") + len;
  1535. }
  1536. else
  1537. {
  1538. len = formatex(MenuBody[len], 511 - len, "\n\y1. Dinamicki ban") + len;
  1539. }
  1540. len = formatex(MenuBody[len], 511 - len, "\n\d2. Cenzura") + len;
  1541. new var1;
  1542. if (get_pcvar_num(cvarovi[13][0]))
  1543. {
  1544. var1 = 52632;
  1545. }
  1546. else
  1547. {
  1548. var1 = 52640;
  1549. }
  1550.  
  1551. / * ERROR! Das Objekt des Typs "Lysis.DSentinel" kann nicht in Typ "Lysis.DReturn" umgewandelt werden. * /
  1552. function "banmenu_forward"
  1553. public banmenu_forward(id)
  1554.  
  1555. public BanMenuForward(id, key)
  1556. {
  1557. !!! Removed Phi
  1558. new shouldi = get_pcvar_num(cvarovi[7][0]);
  1559. switch (key)
  1560. {
  1561. case 0:
  1562. {
  1563. switch (shouldi)
  1564. {
  1565. case 2:
  1566. {
  1567. client_cmd(id, "amx_mban #%d %d", g_menuUserid[id], g_menuSettings[id]);
  1568. }
  1569. case 3:
  1570. {
  1571. client_cmd(id, "messagemode \"amx_mban #%d %d\"", g_menuUserid[id], g_menuSettings[id]);
  1572. }
  1573. default:
  1574. {
  1575. }
  1576. }
  1577. }
  1578. case 1:
  1579. {
  1580. banmenu_forward(id);
  1581. ColorChat(id, msgcolor_sys, "[mdbBans] Cenzuru vise nije moguce davati od kada je izasao novi CS. :(");
  1582. return 1;
  1583. }
  1584. case 2:
  1585. {
  1586. if (!get_pcvar_num(cvarovi[13][0]))
  1587. {
  1588. ColorChat(id, msgcolor_sys, "[mdbBans] Greska: Pwn je ugasen na ovom serveru.");
  1589. banmenu_forward(id);
  1590. return 1;
  1591. }
  1592. switch (shouldi)
  1593. {
  1594. case 2:
  1595. {
  1596. client_cmd(id, "amx_pwn #%d %d", g_menuUserid[id], g_menuSettings[id]);
  1597. }
  1598. case 3:
  1599. {
  1600. client_cmd(id, "messagemode \"amx_pwn #%d %d\"", g_menuUserid[id], g_menuSettings[id]);
  1601. }
  1602. default:
  1603. {
  1604. }
  1605. }
  1606. }
  1607. case 3:
  1608. {
  1609. switch (shouldi)
  1610. {
  1611. case 2:
  1612. {
  1613. client_cmd(id, "amx_kick #%d", g_menuUserid[id]);
  1614. }
  1615. case 3:
  1616. {
  1617. client_cmd(id, "messagemode \"amx_kick #%d\"", g_menuUserid[id]);
  1618. }
  1619. default:
  1620. {
  1621. }
  1622. }
  1623. }
  1624. case 4:
  1625. {
  1626. client_cmd(id, "amx_ss #%d", g_menuUserid[id]);
  1627. displayBanMenu(id, g_menuPosition[id][0][0]);
  1628. return 1;
  1629. }
  1630. case 7:
  1631. {
  1632. switch (shouldi)
  1633. {
  1634. case 2:
  1635. {
  1636. client_cmd(id, "amx_mbanid #%d %d", g_menuUserid[id], g_menuSettings[id]);
  1637. }
  1638. case 3:
  1639. {
  1640. client_cmd(id, "messagemode \"amx_mbanid #%d %d\"", g_menuUserid[id], g_menuSettings[id]);
  1641. }
  1642. default:
  1643. {
  1644. }
  1645. }
  1646. }
  1647. case 8:
  1648. {
  1649. switch (shouldi)
  1650. {
  1651. case 2:
  1652. {
  1653. client_cmd(id, "amx_mbanip #%d %d", g_menuUserid[id], g_menuSettings[id]);
  1654. }
  1655. case 3:
  1656. {
  1657. client_cmd(id, "messagemode \"amx_mbanip #%d %d\"", g_menuUserid[id], g_menuSettings[id]);
  1658. }
  1659. default:
  1660. {
  1661. }
  1662. }
  1663. }
  1664. case 9:
  1665. {
  1666. }
  1667. default:
  1668. {
  1669. }
  1670. }
  1671. if (shouldi == 3)
  1672. {
  1673. ColorChat(id, msgcolor_sys, "[mdbBans] Upisi razlog bez navodnika i pritisni ENTER.");
  1674. if (g_menuSettings[id][0][0])
  1675. {
  1676. ColorChat(id, msgcolor_sys, "[mdbBans] Izabrani igrac: %s , vreme: %d minuta", g_menuPlayerName[id][0][0], g_menuSettings[id]);
  1677. }
  1678. ColorChat(id, msgcolor_sys, "[mdbBans] Izabrani igrac: %s , vreme: za stalno", g_menuPlayerName[id][0][0]);
  1679. }
  1680. displayBanMenu(id, g_menuPosition[id][0][0]);
  1681. return 1;
  1682. }
  1683.  
  1684. public mdb_menu(id)
  1685. {
  1686. !!! Removed Phi
  1687. if (!get_user_flags(id, 0) & 8)
  1688. {
  1689. return 1;
  1690. }
  1691. static MenuBody[512];
  1692. MenuBody[0] = 0;
  1693. new bool:acs = 0;
  1694. if (get_user_flags(id, 0) & 2048)
  1695. {
  1696. acs = 1;
  1697. }
  1698. if (!MenuBody[0][0])
  1699. {
  1700. new len = formatex(MenuBody, 511, "mdbBans 4.8\n");
  1701. len = formatex(MenuBody[len], 511 - len, "\n\y1. Ban meni") + len;
  1702. len = formatex(MenuBody[len], 511 - len, "\n\y2. Komande plugina (detalji)") + len;
  1703. len = formatex(MenuBody[len], 511 - len, "\n\y3. Vesti o pluginu") + len;
  1704. new var1;
  1705. if (acs)
  1706. {
  1707. var1 = 57624;
  1708. }
  1709. else
  1710. {
  1711. var1 = 57632;
  1712. }
  1713. len = formatex(MenuBody[len], 511 - len, "\n\%s4. Trazi novu verziju", var1) + len;
  1714. len = formatex(MenuBody[len], 511 - len, "\n\d5. Globalna banlista") + len;
  1715. new var2;
  1716. if (acs)
  1717. {
  1718. var2 = 57788;
  1719. }
  1720. else
  1721. {
  1722. var2 = 57796;
  1723. }
  1724. len = formatex(MenuBody[len], 511 - len, "\n\%s6. Pomoc", var2) + len;
  1725. new var3;
  1726. if (acs)
  1727. {
  1728. var3 = 57888;
  1729. }
  1730. else
  1731. {
  1732. var3 = 57896;
  1733. }
  1734. len = formatex(MenuBody[len], 511 - len, "\n\%s7. Rezim rada...", var3) + len;
  1735. new var4;
  1736. if (acs)
  1737. {
  1738. var4 = 58024;
  1739. }
  1740. else
  1741. {
  1742. var4 = 58032;
  1743. }
  1744. len = formatex(MenuBody[len], 511 - len, "\n\%s8. Resetovanje plugina...", var4) + len;
  1745. len = formatex(MenuBody[len], 511 - len, "\n\n\n\w0. Zatvori") + len;
  1746. }
  1747. new keys = 0;
  1748. if (acs)
  1749. {
  1750. keys = 767;
  1751. }
  1752. else
  1753. {
  1754. keys = 519;
  1755. }
  1756. show_menu(id, keys, "", -1, "mdb Menu");
  1757. return 1;
  1758. }
  1759.  
  1760. public actionmdbMenu(id, key)
  1761. {
  1762. new vesti[256];
  1763. switch (key)
  1764. {
  1765. case 0:
  1766. {
  1767. client_cmd(id, "amx_mbanmenu");
  1768. }
  1769. case 1:
  1770. {
  1771. formatex(vesti, 255, "<html><body bgcolor=\"Black\" ><img class=\"floatcenter\" src=\"http://ehrs.info/mdbbans/dtljops.PNG\" height=\"100%%\" width=\"100%%\"></body></html>");
  1772. show_motd(id, vesti, "mdbBans - Komande i cvarovi");
  1773. }
  1774. case 2:
  1775. {
  1776. new vesti[256];
  1777. formatex(vesti, 255, "<html><body bgcolor=\"Black\" ><img class=\"floatcenter\" src=\"http://ehrs.info/mdbbans/vesti.PNG\" height=\"100%%\" width=\"100%%\"></body></html>");
  1778. show_motd(id, vesti, "mdbBans v4.8 - Vesti");
  1779. }
  1780. case 3:
  1781. {
  1782. new vesti[256];
  1783. formatex(vesti, 255, "<html><body bgcolor=\"Black\" ><img class=\"floatcenter\" src=\"http://ehrs.info/mdbbans/v48.PNG\" height=\"100%%\" width=\"100%%\"></body></html>");
  1784. show_motd(id, vesti, "mdbBans v4.8 - Update");
  1785. }
  1786. case 4:
  1787. {
  1788. ColorChat(id, msgcolor_sys, "[mdbBans] Ova opcija je izbacena jer je bagovala.");
  1789. ColorChat(id, msgcolor_sys, "[mdbBans] Bice vracena u nekoj od sledecih verzija. :)");
  1790. mdb_menu(id);
  1791. }
  1792. case 5:
  1793. {
  1794. new vesti[256];
  1795. formatex(vesti, 255, "<html><body bgcolor=\"Black\" ><img class=\"floatcenter\" src=\"http://ehrs.info/mdbbans/pomoc.PNG\" height=\"100%%\" width=\"100%%\"></body></html>");
  1796. show_motd(id, vesti, "mdbBans v4.8 - Pomoc");
  1797. }
  1798. case 6:
  1799. {
  1800. static MenuBody[512];
  1801. new var5 = MenuBody;
  1802. var5[0] = 0;
  1803. new var2;
  1804. if (!MenuBody[0][0])
  1805. {
  1806. new len = formatex(MenuBody, 511, "\yIzaberi profil:\n");
  1807. len = formatex(MenuBody[len], 511 - len, "\n\w1. Default\n\ySve opcije plugina su aktivne.") + len;
  1808. len = formatex(MenuBody[len], 511 - len, "\n\w2. Lite Mod\n\ySve dodatne opcije plugina ce biti onemogucene.") + len;
  1809. len = formatex(MenuBody[len], 511 - len, "\n\w3. Safe Mod\n\ySve dodatne i neke osnovne opcije ce biti onemogucene.\nNamenjeno ukoliko imate ozbiljnih problema sa serverom/pluginom.") + len;
  1810. len = formatex(MenuBody[len], 511 - len, "\n\w4. Debug\n\yPravi fajl mdb_debug.txt u mdbBans folderu sa informacijama o banovanim igracima.") + len;
  1811. len = formatex(MenuBody[len], 511 - len, "\n\n\wTrenutni profil: \r%d", get_cvar_num("mdb_profile") + 1) + len;
  1812. len = formatex(MenuBody[len], 511 - len, "\n\rNAPOMENA: Menjanje profila automatski restartuje server!") + len;
  1813. new var6 = len;
  1814. len = formatex(MenuBody[len], 511 - len, "\n\n\w0. Nazad") + var6;
  1815. var2 = var6;
  1816. }
  1817. else
  1818. {
  1819. var2 = var5;
  1820. }
  1821. new keys = 527;
  1822. show_menu(id, keys, "", -1, "Profile Menu");
  1823. }
  1824. case 7:
  1825. {
  1826. static MenuBody[512];
  1827. new var3 = MenuBody;
  1828. var3[0] = 0;
  1829. new var1;
  1830. if (!MenuBody[0][0])
  1831. {
  1832. new len = formatex(MenuBody, 511, "\yResetovanje plugina\n");
  1833. len = formatex(MenuBody[len], 511 - len, "\n\w1. Master reset\n\yObrise SVE fajlove koje koristi plugin i ponovo ga instalira.") + len;
  1834. len = formatex(MenuBody[len], 511 - len, "\n\w2. Reset podesavanja\n\yVrati sva podesavanja na 'fabricko' stanje. Banovi i logovi ostaju.") + len;
  1835. len = formatex(MenuBody[len], 511 - len, "\n\w3. Obrisi ban listu\n\yObrise sve banove. Podesavanja i logovi ostaju.") + len;
  1836. len = formatex(MenuBody[len], 511 - len, "\n\n\rNAPOMENA: Master reset zahteva restart servera!") + len;
  1837. new var4 = len;
  1838. len = formatex(MenuBody[len], 511 - len, "\n\n\w0. Nazad") + var4;
  1839. var1 = var4;
  1840. }
  1841. else
  1842. {
  1843. var1 = var3;
  1844. }
  1845. new keys = 519;
  1846. show_menu(id, keys, "", -1, "Reset Menu");
  1847. }
  1848. default:
  1849. {
  1850. }
  1851. }
  1852. return 1;
  1853. }
  1854.  
  1855. public actionprofileMenu(id, key)
  1856. {
  1857. if (get_cvar_num("mdb_profile") == key)
  1858. {
  1859. ColorChat(id, msgcolor_sys, "[mdbBans] Ovaj profil je vec aktivan.");
  1860. return 1;
  1861. }
  1862. switch (key)
  1863. {
  1864. case 0:
  1865. {
  1866. write_file(configfile, "mdb_profile 0", 3);
  1867. }
  1868. case 1:
  1869. {
  1870. write_file(configfile, "mdb_profile 1", 3);
  1871. }
  1872. case 2:
  1873. {
  1874. write_file(configfile, "mdb_profile 2", 3);
  1875. }
  1876. case 3:
  1877. {
  1878. write_file(configfile, "mdb_profile 3", 3);
  1879. }
  1880. case 9:
  1881. {
  1882. mdb_menu(id);
  1883. }
  1884. default:
  1885. {
  1886. }
  1887. }
  1888. if (key < 4)
  1889. {
  1890. ColorChat(id, msgcolor_sys, "[mdbBans] Profil uspesno promenjen. Server ce se restartovati ...");
  1891. set_task(5.00, "restartsrv", 0, "", 0, "", 0);
  1892. }
  1893. return 1;
  1894. }
  1895.  
  1896. public actionresetMenu(id, key)
  1897. {
  1898. if (key < 2)
  1899. {
  1900. server_cmd("amx_bantext \"\";amx_kicktext \"\";amx_demotext \"Dobrodosao na server! Automatski ti se snima demo.\";amx_demoname mdbBans;amx_autodemo 1;amx_announce 3");
  1901. server_cmd("amx_banmenu_mode 3;amx_banmode 1;amx_logchat 1;amx_infologger 1;amx_immunity 0;amx_webban 0;amx_pwn_enable 1");
  1902. server_exec();
  1903. }
  1904. switch (key)
  1905. {
  1906. case 0:
  1907. {
  1908. server_cmd("mdb_banduritation 5;mIDprefix 0;mdbBans 2;mdb_profile 0");
  1909. rmdir2("addons/amxmodx/configs/mdbBans");
  1910. ColorChat(id, msgcolor_sys, "[mdbBans] Zapoceto resetovanje plugina. Server ce se restartovati!");
  1911. ColorChat(id, msgcolor_sys, "[mdbBans] Plugin ce biti ponovo instaliran nakog restarta.");
  1912. remove_task(4322633, 0);
  1913. set_task(6.00, "restartsrv", 0, "", 0, "", 0);
  1914. }
  1915. case 1:
  1916. {
  1917. podesavanja();
  1918. ColorChat(id, msgcolor_sys, "[mdbBans] Podesavanja plugina su uspesno resetovana.");
  1919. }
  1920. case 2:
  1921. {
  1922. if (file_exists(banfile))
  1923. {
  1924. delete_file(banfile);
  1925. write_file(banfile, "mdbBans banlist:", -1);
  1926. }
  1927. ColorChat(id, msgcolor_sys, "[mdbBans] Uspesno obrisana ban lista. Sacekaj minut da se refreshuje ili promeni mapu.");
  1928. }
  1929. case 9:
  1930. {
  1931. mdb_menu(id);
  1932. }
  1933. default:
  1934. {
  1935. }
  1936. }
  1937. return 1;
  1938. }
  1939.  
  1940. public restartsrv()
  1941. {
  1942. new map[32];
  1943. get_mapname(map, 31);
  1944. server_cmd("changelevel %s", map);
  1945. return 0;
  1946. }
  1947.  
  1948. public cmdBanMenu(id, level, cid)
  1949. {
  1950. !!! Removed Phi
  1951. if (!cmd_access(id, level, cid, 1, false))
  1952. {
  1953. return 1;
  1954. }
  1955. g_menuOption[id] = 0;
  1956. if (random_num(1, 17) == 7)
  1957. {
  1958. ColorChat(id, msgcolor_sys, "[mdbBans] Za kontrolni meni plugina kucaj 'mdbbansmenu'");
  1959. }
  1960. if (0 < ArraySize(g_bantimes))
  1961. {
  1962. g_menuSettings[id] = ArrayGetCell(g_bantimes, g_menuOption[id][0][0]);
  1963. }
  1964. else
  1965. {
  1966. g_menuSettings[id] = 0;
  1967. }
  1968. g_menuPosition[id] = 0;
  1969. displayBanMenu(id, 0);
  1970. return 1;
  1971. }
  1972.  
  1973. public setbantimes()
  1974. {
  1975. new buff[32];
  1976. new args = read_argc();
  1977. if (args <= 1)
  1978. {
  1979. server_print("Koriscenje: amx_mbantimes <vreme1> [vreme2] [vreme3] ...");
  1980. server_print(" koristi 0 za ban za stalno.");
  1981. return 0;
  1982. }
  1983. ArrayClear(g_bantimes);
  1984. new i = 1;
  1985. while (i < args)
  1986. {
  1987. read_argv(i, buff, 31);
  1988. ArrayPushCell(g_bantimes, str_to_num(buff));
  1989. i++;
  1990. }
  1991. return 0;
  1992. }
  1993.  
  1994. public mstatus(id, level, cid)
  1995. {
  1996. if (!cmd_access(id, level, cid, 1, false))
  1997. {
  1998. return 1;
  1999. }
  2000. if (!banmode)
  2001. {
  2002. client_print(id, print_console, "[mdbBans] Ta opcija je nedostupna jer je dinamicko banovanje ugaseno.");
  2003. return 1;
  2004. }
  2005. new players[32];
  2006. new inum = 0;
  2007. new name[32];
  2008. new authid[32];
  2009. get_players(players, inum, "", "");
  2010. console_print(id, "Lista igraca na serveru, njihovi STEAM ID i mID");
  2011. new a = 0;
  2012. while (a < inum)
  2013. {
  2014. get_user_authid(players[a], authid, 31);
  2015. get_user_name(players[a], name, 31);
  2016. console_print(id, "%2d. %s ---- %s ---- %s", players[a], name, authid, playermID[players[a]][0][0]);
  2017. a++;
  2018. }
  2019. console_print(id, "Ukupno online igraca: %d", inum);
  2020. return 1;
  2021. }
  2022.  
  2023. public precache()
  2024. {
  2025. if (!dir_exists("addons/amxmodx/configs/mdbBans"))
  2026. {
  2027. mkdir("addons/amxmodx/configs/mdbBans");
  2028. }
  2029. if (!dir_exists("addons/amxmodx/configs/mdbBans/chatlogs"))
  2030. {
  2031. mkdir("addons/amxmodx/configs/mdbBans/chatlogs");
  2032. }
  2033. if (!dir_exists("addons/amxmodx/configs/mdbBans/infologs"))
  2034. {
  2035. mkdir("addons/amxmodx/configs/mdbBans/infologs");
  2036. }
  2037. if (!dir_exists("addons/amxmodx/configs/mdbBans/logs"))
  2038. {
  2039. mkdir("addons/amxmodx/configs/mdbBans/logs");
  2040. }
  2041. if (!file_exists(banfile))
  2042. {
  2043. write_file(banfile, "mdbBans banlist:", -1);
  2044. }
  2045. new pathlog[6];
  2046. get_time("%y%m", pathlog, 5);
  2047. formatex(logfile, 63, "addons/amxmodx/configs/mdbBans/logs/%s.txt", pathlog);
  2048. get_time("%y%m%d", logpath, 31);
  2049. formatex(infofile, 63, "addons/amxmodx/configs/mdbBans/infologs/%s.txt", logpath);
  2050. formatex(chatfile, 63, "addons/amxmodx/configs/mdbBans/chatlogs/%s.txt", logpath);
  2051. chatactive = 1;
  2052. server_cmd("exec addons/amxmodx/configs/mdbBans/podesavanja.cfg");
  2053. banmode = get_pcvar_num(cvarovi[8][0]);
  2054. set_task(300.00, "precache", 0, "", 0, "", 0);
  2055. loadbans();
  2056. return 0;
  2057. }
  2058.  
  2059. public firstrun()
  2060. {
  2061. !!! Removed Phi
  2062. new times[32];
  2063. get_time("[%d.%m - %H:%M]", times, 31);
  2064. new logtext[96];
  2065. if (get_pcvar_num(cvarovi[14][0]) == 5)
  2066. {
  2067. set_pcvar_num(cvarovi[14][0], 50000);
  2068. set_cvar_string("mdbBans", "4.8");
  2069. new mIDprefix = random_num(1, 999);
  2070. new filetext2[17];
  2071. formatex(filetext2, 16, "mIDprefix %d", mIDprefix);
  2072. set_pcvar_num(cvarovi[15][0], mIDprefix);
  2073. write_file(configfile, "mdb_banduritation 50000", 0);
  2074. write_file(configfile, filetext2, 1);
  2075. write_file(configfile, "mdbBans 4.8", 2);
  2076. write_file(configfile, "mdb_profile 0", 3);
  2077. formatex(logtext, 96, "%s mdbBans v4.8 je uspesno instaliran!", times);
  2078. write_file(logfile, logtext, -1);
  2079. format(logtext, 96, "%s Ubacena su default podesavanja u fajl podesavanja.cfg", times);
  2080. write_file(logfile, logtext, -1);
  2081. set_task(1.00, "podesavanja", 0, "", 0, "", 0);
  2082. }
  2083. else
  2084. {
  2085. if (equal(shouldi, "4.0", 0) || equal(shouldi, "4.1", 0) || equal(shouldi, "4.2", 0) || equal(shouldi, "4.5", 0) || equal(shouldi, "4.6", 0) || equal(shouldi, "4.7", 0))
  2086. {
  2087. formatex(logtext, 96, "%s Pronadjena verzija %s. Vrsim update.", times, shouldi);
  2088. write_file(logfile, logtext, -1);
  2089. set_cvar_string("mdbBans", "4.8");
  2090. write_file(configfile, "mdbBans 4.8", 2);
  2091. write_file(configfile, "mdb_profile 0", 3);
  2092. formatex(logtext, 96, "%s mdbBans je uspesno updatovan na verziju 4.8!", times);
  2093. write_file(logfile, logtext, -1);
  2094. set_task(1.00, "podesavanja", 0, "", 0, "", 0);
  2095. set_task(0.10, "ocisti", 0, "", 0, "", 0);
  2096. }
  2097. }
  2098. return 0;
  2099. }
  2100.  
  2101. public podesavanja()
  2102. {
  2103. new fajl[64];
  2104. formatex(fajl, 63, "addons/amxmodx/configs/mdbBans/podesavanja.cfg");
  2105. new ptext[256];
  2106. new shouldi[64];
  2107. formatex(ptext, 128, "amx_banmode %d //0 = normalno banovanje (steamID + ip) , 1 = dinamicko banovanje (steamID/IP + mID)", banmode);
  2108. write_file(fajl, ptext, 0);
  2109. formatex(ptext, 150, "mdb_show_activity %d //da li da se ime admina pokazuje u ban porukama? / 2 - da / 1 - ne / 0 - ne i bez ban poruka", get_pcvar_num(get_cvar_pointer("amx_show_activity")));
  2110. write_file(fajl, ptext, 1);
  2111. formatex(ptext, 128, "");
  2112. write_file(fajl, ptext, 2);
  2113. formatex(ptext, 128, "amx_pwn_enable %d //da li je upaljen pwn? (amx_pwn)?", get_pcvar_num(cvarovi[13][0]));
  2114. write_file(fajl, ptext, 3);
  2115. get_pcvar_string(cvarovi[1][0], shouldi, 63);
  2116. formatex(ptext, 255, "amx_bantext \"%s\" //koji se text ispisuje igracu kada popije ban (na ss-u)?", shouldi);
  2117. write_file(fajl, ptext, 4);
  2118. get_pcvar_string(cvarovi[2][0], shouldi, 63);
  2119. formatex(ptext, 191, "amx_kicktext \"%s\" //koji se text ispisuje igracu u kick poruci posle bana? (ono you have been banned ...)", shouldi);
  2120. write_file(fajl, ptext, 5);
  2121. formatex(ptext, 150, "amx_announce %d //ispisivanje poruka / 0 - nista / 1 - samo bitne poruke / 2 - i isticanje banova / 3 - i ban status", get_pcvar_num(cvarovi[6][0]));
  2122. write_file(fajl, ptext, 6);
  2123. formatex(ptext, 128, "amx_banmenu_mode %d //0 - klasican ban meni / 1 - klasican + razlog / 2 - napredan / 3 - napredan + razlog", get_pcvar_num(cvarovi[7][0]));
  2124. write_file(fajl, ptext, 7);
  2125. formatex(ptext, 128, "amx_mbantimes 300 0 5 10 30 60 120 //vremena u banmeniju, koristi 0 za perma ban.");
  2126. write_file(fajl, ptext, 8);
  2127. formatex(ptext, 128, "amx_immunity %d // 0 - head admini (L flag) mogu da banuju preko imuniteta / 1 - ne moze niko", get_pcvar_num(cvarovi[11][0]));
  2128. write_file(fajl, ptext, 9);
  2129. formatex(ptext, 128, "amx_webban %d // Da li koristis web ban listu? 1 - da, 0 - ne", get_pcvar_num(cvarovi[12][0]));
  2130. write_file(fajl, ptext, 10);
  2131. formatex(ptext, 150, "amx_msgcolor_bans 2 //boja ban poruka i poruka na SSu banovanog igraca. (ono admin taj je banovao tog na X minuta...)");
  2132. write_file(fajl, ptext, 11);
  2133. formatex(ptext, 150, "amx_msgcolor_system 3 //boja sistemskih poruka (greske i informacije, sve poruke koje sadrze [mdbBans] tag)");
  2134. write_file(fajl, ptext, 12);
  2135. write_file(fajl, "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *", 14);
  2136. write_file(fajl, "// // // Dodatne opcije plugina - rade samo u normalnom profilu // // //", 15);
  2137. write_file(fajl, "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *", 16);
  2138. formatex(ptext, 128, "amx_autodemo %i //da li da se igracima snima demo?", get_pcvar_num(cvarovi[5][0]));
  2139. write_file(fajl, ptext, 17);
  2140. get_pcvar_string(cvarovi[4][0], shouldi, 31);
  2141. formatex(ptext, 128, "amx_demoname %s //kako da se zove demo?", shouldi);
  2142. write_file(fajl, ptext, 18);
  2143. get_pcvar_string(cvarovi[3][0], shouldi, 63);
  2144. formatex(ptext, 255, "amx_demotext \"%s\" //poruka koja se ispise igracu pri konekciji ako se snima demo.", shouldi);
  2145. write_file(fajl, ptext, 19);
  2146. formatex(ptext, 128, "amx_logchat %d //da li da se loguje chat servera (say, team say)?", get_pcvar_num(cvarovi[9][0]));
  2147. write_file(fajl, ptext, 20);
  2148. formatex(ptext, 128, "amx_infologger %d //da li da se loguje info igraca i admina (STEAM ID i IP)?", get_pcvar_num(cvarovi[10][0]));
  2149. write_file(fajl, ptext, 21);
  2150. write_file(fajl, ";KODOVI ZA BOJE (za msgcolor_bans i msgcolor_sys podesavanja):", 23);
  2151. write_file(fajl, ";0 - default boja (uglavnom zuta) / 1 - zelena / 2 - crvena / 3 - plava / 4 - zavisno od tima (crvena/plava/bela) / 5 - bela", 24);
  2152. write_file(fajl, "\n;Za detaljniij opis podesavnaja pogledaj temu za plugin na KGB forumu.", 25);
  2153. return 0;
  2154. }
  2155.  
  2156. public ocisti()
  2157. {
  2158. !!! Removed Phi
  2159. new line = 0;
  2160. new stxtsize = 0;
  2161. new data[256];
  2162. new var2 = read_file(banfile, line, data, 255, stxtsize);
  2163. line = var2;
  2164. while (var2)
  2165. {
  2166. if (stxtsize)
  2167. {
  2168. write_file("mdbBans_temp.cfg", data, -1);
  2169. }
  2170. }
  2171. if (get_pcvar_num(cvarovi[12][0]) && file_exists(dbanfile))
  2172. {
  2173. new var3 = read_file(dbanfile, line, data, 255, stxtsize);
  2174. line = var3;
  2175. while (var3)
  2176. {
  2177. if (stxtsize)
  2178. {
  2179. write_file("mdbBans_tempd.cfg", data, -1);
  2180. }
  2181. }
  2182. }
  2183. server_cmd("mp_chattime 100");
  2184. admin_msg("[mdbBans] Zapoceto uredjivanje ban liste...");
  2185. set_task(2.00, "continue_update", 0, "", 0, "", 0);
  2186. return 0;
  2187. }
  2188.  
  2189. public continue_update()
  2190. {
  2191. !!! Removed Phi
  2192. if (get_pcvar_num(cvarovi[12][0]) && file_exists("mdbBans_tempd.cfg"))
  2193. {
  2194. delete_file(dbanfile);
  2195. rename_file("mdbBans_tempd.cfg", "addons/amxmodx/configs/mdbBans/banlist.txt", 1);
  2196. }
  2197. server_cmd("mp_chattime 5");
  2198. admin_msg("[mdbBans] Uredjivanje ban liste je uspesno zavrseno.");
  2199. return 1;
  2200. }
  2201.  
  2202. public masstask()
  2203. {
  2204. !!! Removed Phi
  2205. if (shouldi > 0 && shouldi < 3)
  2206. {
  2207. server_cmd("amx_autodemo 0; amx_infologger 0; amx_logchat 0");
  2208. if (shouldi == 2)
  2209. {
  2210. server_cmd("amx_banmode 0");
  2211. }
  2212. }
  2213. if (shouldi == 3)
  2214. {
  2215. debug_enable = 1;
  2216. }
  2217. switch (get_pcvar_num(cvarovi[16][0]))
  2218. {
  2219. case 0:
  2220. {
  2221. msgcolor_bans = 1;
  2222. }
  2223. case 1:
  2224. {
  2225. msgcolor_bans = 2;
  2226. }
  2227. case 2:
  2228. {
  2229. msgcolor_bans = 5;
  2230. }
  2231. case 3:
  2232. {
  2233. msgcolor_bans = 6;
  2234. }
  2235. case 4:
  2236. {
  2237. msgcolor_bans = 3;
  2238. }
  2239. case 5:
  2240. {
  2241. msgcolor_bans = 4;
  2242. }
  2243. default:
  2244. {
  2245. }
  2246. }
  2247. switch (get_pcvar_num(cvarovi[17][0]))
  2248. {
  2249. case 0:
  2250. {
  2251. msgcolor_sys = 1;
  2252. }
  2253. case 1:
  2254. {
  2255. msgcolor_sys = 2;
  2256. }
  2257. case 2:
  2258. {
  2259. msgcolor_sys = 5;
  2260. }
  2261. case 3:
  2262. {
  2263. msgcolor_sys = 6;
  2264. }
  2265. case 4:
  2266. {
  2267. msgcolor_sys = 3;
  2268. }
  2269. case 5:
  2270. {
  2271. msgcolor_sys = 4;
  2272. }
  2273. default:
  2274. {
  2275. }
  2276. }
  2277. return 0;
  2278. }
  2279.  
  2280. public client_putinserver(id)
  2281. {
  2282. if (is_user_bot(id))
  2283. {
  2284. return 0;
  2285. }
  2286. if (!banmode)
  2287. {
  2288. formatex(playermID[id][0][0], 16, "[nema mID]");
  2289. checkban(id, true);
  2290. }
  2291. else
  2292. {
  2293. set_task(4.50, "loadmID", id, "", 0, "", 0);
  2294. }
  2295. noviCS[id] = 1;
  2296. set_task(2.50, "infolog", id, "", 0, "", 0);
  2297. set_task(10.00, "censurecheck", id, "", 0, "", 0);
  2298. return 0;
  2299. }
  2300.  
  2301. public client_disconnect(id)
  2302. {
  2303. playermID[id][0][0][0] = 0;
  2304. g_menuPlayers[id][0][0][0] = 0;
  2305. g_menuUserid[id] = 0;
  2306. g_menuPlayerName[id][0][0][0] = 0;
  2307. return 0;
  2308. }
  2309.  
  2310. public loadmID(id)
  2311. {
  2312. !!! Removed Phi
  2313. if (!is_user_connected(id))
  2314. {
  2315. return 1;
  2316. }
  2317. new announce = get_pcvar_num(cvarovi[6][0]);
  2318. if (get_user_protocol(id) == 3)
  2319. {
  2320. if (0 < announce)
  2321. {
  2322. client_print(id, print_chat, "Ti nemas mID jer koristis CS sa novim protokolom.");
  2323. }
  2324. formatex(playermID[id][0][0], 31, "[NoviCS/Steam]");
  2325. noviCS[id] = 2;
  2326. checkban(id, true);
  2327. return 1;
  2328. }
  2329. new mID[32];
  2330. get_user_info(id, "mD", mID, 31);
  2331. if (containi(mID, "STEAM") != -1)
  2332. {
  2333. server_cmd("kick #%d \"Zasto stavljas SteamID umesto mIDa? Jeli? Mater ti jebem u picku da ti jebam ja tebi malo, a?", get_user_userid(id));
  2334. return 1;
  2335. }
  2336. if (8 < strlen(mID))
  2337. {
  2338. mID[0] = 87272;
  2339. if (0 < announce)
  2340. {
  2341. client_print(id, print_chat, "Tvoj mID nije u ispravnom formatu! Brisem ga.");
  2342. }
  2343. }
  2344. if (mID[0])
  2345. {
  2346. if (0 < announce)
  2347. {
  2348. client_print(id, print_chat, "Tvoj mID je: \"%s\"", mID);
  2349. }
  2350. }
  2351. else
  2352. {
  2353. if (0 < announce)
  2354. {
  2355. client_print(id, print_chat, "Nemas mID. Dodeljen ti je novi.");
  2356. }
  2357. formatex(mID, 31, "%d%d", random_num(1000, 9999), random_num(1000, 9999));
  2358. client_cmd(id, "setinfo _pw \"\"");
  2359. client_cmd(id, "setinfo mD %s", mID);
  2360. }
  2361. formatex(playermID[id][0][0], 31, "%s", mID);
  2362. checkban(id, false);
  2363. return 1;
  2364. }
  2365.  
  2366. public infolog(id)
  2367. {
  2368. !!! Removed Phi
  2369. if (!is_user_connected(id))
  2370. {
  2371. return 1;
  2372. }
  2373. new authid[32];
  2374. get_user_authid(id, authid, 31);
  2375. client_cmd(id, "checkeXec");
  2376. if (get_pcvar_num(cvarovi[10][0]))
  2377. {
  2378. new name[32];
  2379. new time[32];
  2380. new joined[256];
  2381. new authid[32];
  2382. new mip[32];
  2383. get_user_authid(id, authid, 31);
  2384. get_user_ip(id, mip, 31, 1);
  2385. get_user_name(id, name, 29);
  2386. get_time("[%d.%m - %H:%M]", time, 31);
  2387. if (get_user_flags(id, 0) & 8)
  2388. {
  2389. formatex(joined, 255, "%s*** Admin %s (%s /// %s) se konektovao. ***", time, name, authid, mip);
  2390. }
  2391. else
  2392. {
  2393. formatex(joined, 255, "%s Igrac %s (%s /// %s) se konektovao.", time, name, authid, mip);
  2394. }
  2395. write_file(infofile, joined, -1);
  2396. }
  2397. return 1;
  2398. }
  2399.  
  2400. public cscheck(id)
  2401. {
  2402. !!! Removed Phi
  2403. if (noviCS[id][0][0] == 2)
  2404. {
  2405. client_print(id, print_console, "[mdbBans] E PA NEMA !!");
  2406. }
  2407. else
  2408. {
  2409. if (noviCS[id][0][0])
  2410. {
  2411. noviCS[id] = 0;
  2412. }
  2413. client_print(id, print_console, "[mdbBans] Sta pokusavas?");
  2414. }
  2415. return 1;
  2416. }
  2417.  
  2418. get_user_protocol(id)
  2419. {
  2420. !!! Removed Phi
  2421. if (contain(authid, "L") == -1 && contain(authid, "P") == -1)
  2422. {
  2423. return 1;
  2424. }
  2425. if (noviCS[id][0][0])
  2426. {
  2427. return 3;
  2428. }
  2429. return 2;
  2430. }
  2431.  
  2432. get_fixed_ip(id)
  2433. {
  2434. new mip[16];
  2435. get_user_ip(id, mip, 15, 1);
  2436. new len = strlen(mip);
  2437. new count = 0;
  2438. new after = 0;
  2439. new fixed[16] = mip;
  2440. new i = 0;
  2441. while (i < len)
  2442. {
  2443. if (count == 3)
  2444. {
  2445. after++;
  2446. }
  2447. if (mip[i] == 46)
  2448. {
  2449. count++;
  2450. i++;
  2451. }
  2452. i++;
  2453. }
  2454. switch (after)
  2455. {
  2456. case 1:
  2457. {
  2458. formatex(fixed, 19, "%sXX", mip);
  2459. }
  2460. case 2:
  2461. {
  2462. formatex(fixed, 19, "%sX", mip);
  2463. }
  2464. default:
  2465. {
  2466. }
  2467. }
  2468.  
  2469. / * ERROR! Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. * /
  2470. function "get_fixed_ip"
  2471. get_fixed_ip(id)
  2472.  
  2473. admin_msg(String:msg[])
  2474. {
  2475. new players[32];
  2476. new inum = 0;
  2477. get_players(players, inum, "", "");
  2478. new i = 0;
  2479. while (i < inum)
  2480. {
  2481. if (access(players[i], 256))
  2482. {
  2483. ColorChat(players[i], msgcolor_sys, msg);
  2484. i++;
  2485. }
  2486. i++;
  2487. }
  2488. return 0;
  2489. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement