HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <engine>
  4.  
  5. #define PLUGIN "Admin rendszer"
  6. #define VERSION "1.0"
  7. #define AUTHOR "qKKKJ"
  8.  
  9. #define FILE_NAME "adminok.ini"
  10.  
  11. #define MAP ADMIN_MAP
  12. #define VOTE ADMIN_VOTE
  13.  
  14. new bool: bannolhat[33] = false
  15. new bool: olhet[33] = false
  16. new bool: kickelhet[33] = false
  17. new bool: menujog[33] = false
  18. new configsDir[64]
  19. new Temp[192]
  20.  
  21. public plugin_init()
  22. {
  23. register_plugin(PLUGIN, VERSION, AUTHOR)
  24.  
  25. get_configsdir(configsDir, 63)
  26. format(configsDir, 63, "%s/%s", configsDir, FILE_NAME)
  27. register_concmd("adminmenu", "ShowMenu")
  28. }
  29. //Alap menu
  30. public ShowMenu(id)
  31. {
  32. if(menujog[id] == true) {
  33. new menu = menu_create("Admin menu by qKKKJ", "mh_MyMenu");
  34. formatex(Temp, charsmax(Temp), "%s", kickelhet[id] ? "Kick":"\dKick")
  35. menu_additem(menu, Temp, "", 0); // case 0
  36. formatex(Temp, 191, "%s", bannolhat[id] ? "Ban":"\dBan")
  37. menu_additem(menu, Temp, "", 0); // case 1
  38. formatex(Temp, 191, "%s", olhet[id] ? "Megoles":"\dMegoles")
  39. menu_additem(menu, Temp, "", 0); // case 2
  40. menu_additem(menu, "Informacio", "", 0); // case 4
  41.  
  42. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  43.  
  44. menu_display(id, menu, 0);
  45. }
  46. else client_print(id, print_console, "Nincs elerhetoseged ehhez a parancshoz!")
  47. return PLUGIN_HANDLED;
  48. }
  49.  
  50. public mh_MyMenu(id, menu, item)
  51. {
  52. if(item == MENU_EXIT)
  53. {
  54. menu_cancel(id);
  55. return PLUGIN_HANDLED;
  56. }
  57.  
  58. new command[6], name[64], access, callback;
  59.  
  60. menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  61.  
  62. switch(item)
  63. {
  64. case 0: kickmenu(id)
  65. case 1: banmenu(id)
  66. case 2: olesmenu(id)
  67. case 3: show_motd(id, "addons/amxmodx/configs/info.txt")
  68. }
  69.  
  70. menu_destroy(menu);
  71.  
  72. return PLUGIN_HANDLED;
  73. }
  74. //Kickmenu
  75. public kickmenu(id)
  76. {
  77. if(kickelhet[id] == true) {
  78. new menu = menu_create("Kit akarsz kirugni?", "kick_hnd");
  79. new players[32], pnum, tempid;
  80. new szName[32], szTempid[10];
  81. get_players(players, pnum);
  82. for( new i; i<pnum; i++ )
  83. {
  84. tempid = players[i];
  85. get_user_name(tempid, szName, charsmax(szName));
  86. num_to_str(tempid, szTempid, charsmax(szTempid));
  87. menu_additem(menu, szName, szTempid, 0);
  88. }
  89. menu_display(id, menu, 0);
  90. }
  91. }
  92. public kick_hnd(id, menu, item)
  93. {
  94. if( item == MENU_EXIT ) {
  95. menu_destroy(menu);
  96. return PLUGIN_HANDLED;
  97. }
  98. new data[6], szName[64];
  99. new access, callback;
  100. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  101. new tempid = str_to_num(data);
  102. new tmpnev[32], admnev[32]
  103. get_user_name(id, admnev, 31)
  104. get_user_name(tempid, tmpnev, 31)
  105. server_cmd("amx_kick ^"%s^"", tmpnev)
  106. client_print(0, print_chat, "%s kickelte %s -t", admnev, tmpnev)
  107. menu_destroy(menu);
  108. return PLUGIN_HANDLED;
  109. }
  110. //Ban menu ido valasztas
  111. public banmenu(id)
  112. {
  113. if(bannolhat[id] == true) {
  114. new menu = menu_create("Valazd ki mennyi idore szeretnel bannolni", "bn_ido");
  115.  
  116. menu_additem(menu, "5 perc", "", 0); // case 0
  117. menu_additem(menu, "10 perc", "", 0); // case 1
  118. menu_additem(menu, "15 pec", "", 0); // case 2
  119. menu_additem(menu, "1 ora", "", 0); // case 3
  120. menu_additem(menu, "2 ora", "", 0); // case 4
  121. menu_additem(menu, "3 ora", "", 0); // case 5
  122.  
  123. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  124.  
  125. menu_display(id, menu, 0);
  126. }
  127. return PLUGIN_HANDLED;
  128. }
  129.  
  130. public bn_ido(id, menu, item)
  131. {
  132. if(item == MENU_EXIT)
  133. {
  134. menu_cancel(id);
  135. return PLUGIN_HANDLED;
  136. }
  137.  
  138. new command[6], name[64], access, callback;
  139.  
  140. menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  141.  
  142. switch(item)
  143. {
  144. case 0: fivebn(id)
  145. case 1: tizperc(id)
  146. case 2: tizenot(id)
  147. case 3: egyora(id)
  148. case 4: ketora(id)
  149. case 5: haromora(id)
  150. }
  151.  
  152. menu_destroy(menu);
  153.  
  154. return PLUGIN_HANDLED;
  155. }
  156. //5 perc ban
  157. public fivebn(id)
  158. {
  159. new menu = menu_create("Kit akarsz bannolni?", "five_hand");
  160. new players[32], pnum, tempid;
  161. new szName[32], szTempid[10];
  162. get_players(players, pnum);
  163. for( new i; i<pnum; i++ )
  164. {
  165. tempid = players[i];
  166. get_user_name(tempid, szName, charsmax(szName));
  167. num_to_str(tempid, szTempid, charsmax(szTempid));
  168. menu_additem(menu, szName, szTempid, 0);
  169. }
  170. menu_display(id, menu, 0);
  171.  
  172. }
  173. public five_hand(id, menu, item)
  174. {
  175. if( item == MENU_EXIT ) {
  176. menu_destroy(menu);
  177. return PLUGIN_HANDLED;
  178. }
  179. new data[6], szName[64];
  180. new access, callback;
  181. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  182. new tempid = str_to_num(data);
  183. new tmpnev[32], admnev[32]
  184. get_user_name(id, admnev, 31)
  185. get_user_name(tempid, tmpnev, 31)
  186. server_cmd("amx_ban ^"%s^" ^"5^"", tmpnev)
  187. client_print(0, print_chat, "%s bannolta %s -t 5 percre", admnev, tmpnev)
  188. menu_destroy(menu);
  189. return PLUGIN_HANDLED;
  190. }
  191. //10 p
  192. public tizperc(id)
  193. {
  194. new menu = menu_create("Kit akarsz bannolni?", "ten_hand");
  195. new players[32], pnum, tempid;
  196. new szName[32], szTempid[10];
  197. get_players(players, pnum);
  198. for( new i; i<pnum; i++ )
  199. {
  200. tempid = players[i];
  201. get_user_name(tempid, szName, charsmax(szName));
  202. num_to_str(tempid, szTempid, charsmax(szTempid));
  203. menu_additem(menu, szName, szTempid, 0);
  204. }
  205. menu_display(id, menu, 0);
  206.  
  207. }
  208. public ten_hand(id, menu, item)
  209. {
  210. if( item == MENU_EXIT ) {
  211. menu_destroy(menu);
  212. return PLUGIN_HANDLED;
  213. }
  214. new data[6], szName[64];
  215. new access, callback;
  216. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  217. new tempid = str_to_num(data);
  218. new tmpnev[32], admnev[32]
  219. get_user_name(id, admnev, 31)
  220. get_user_name(tempid, tmpnev, 31)
  221. server_cmd("amx_ban ^"%s^" ^"10^"", tmpnev)
  222. client_print(0, print_chat, "%s bannolta %s -t 10 percre", admnev, tmpnev)
  223. menu_destroy(menu);
  224. return PLUGIN_HANDLED;
  225. }
  226. //15 p
  227. public tizenot(id)
  228. {
  229. new menu = menu_create("Kit akarsz bannolni?", "tot_hand");
  230. new players[32], pnum, tempid;
  231. new szName[32], szTempid[10];
  232. get_players(players, pnum);
  233. for( new i; i<pnum; i++ )
  234. {
  235. tempid = players[i];
  236. get_user_name(tempid, szName, charsmax(szName));
  237. num_to_str(tempid, szTempid, charsmax(szTempid));
  238. menu_additem(menu, szName, szTempid, 0);
  239. }
  240. menu_display(id, menu, 0);
  241.  
  242. }
  243. public tot_hand(id, menu, item)
  244. {
  245. if( item == MENU_EXIT ) {
  246. menu_destroy(menu);
  247. return PLUGIN_HANDLED;
  248. }
  249. new data[6], szName[64];
  250. new access, callback;
  251. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  252. new tempid = str_to_num(data);
  253. new tmpnev[32], admnev[32]
  254. get_user_name(id, admnev, 31)
  255. get_user_name(tempid, tmpnev, 31)
  256. server_cmd("amx_ban ^"%s^" ^"15^"", tmpnev)
  257. client_print(0, print_chat, "%s bannolta %s -t 15 percre", admnev, tmpnev)
  258. menu_destroy(menu);
  259. return PLUGIN_HANDLED;
  260. }
  261. //1 o
  262. public egyora(id)
  263. {
  264. new menu = menu_create("Kit akarsz bannolni?", "ora_hand");
  265. new players[32], pnum, tempid;
  266. new szName[32], szTempid[10];
  267. get_players(players, pnum);
  268. for( new i; i<pnum; i++ )
  269. {
  270. tempid = players[i];
  271. get_user_name(tempid, szName, charsmax(szName));
  272. num_to_str(tempid, szTempid, charsmax(szTempid));
  273. menu_additem(menu, szName, szTempid, 0);
  274. }
  275. menu_display(id, menu, 0);
  276.  
  277. }
  278. public ora_hand(id, menu, item)
  279. {
  280. if( item == MENU_EXIT ) {
  281. menu_destroy(menu);
  282. return PLUGIN_HANDLED;
  283. }
  284. new data[6], szName[64];
  285. new access, callback;
  286. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  287. new tempid = str_to_num(data);
  288. new tmpnev[32], admnev[32]
  289. get_user_name(id, admnev, 31)
  290. get_user_name(tempid, tmpnev, 31)
  291. server_cmd("amx_ban ^"%s^" ^"60^"", tmpnev)
  292. client_print(0, print_chat, "%s bannolta %s -t 1 orara", admnev, tmpnev)
  293. menu_destroy(menu);
  294. return PLUGIN_HANDLED;
  295. }
  296. //2 o
  297. public ketora(id)
  298. {
  299. new menu = menu_create("Kit akarsz bannolni?", "ketora_hand");
  300. new players[32], pnum, tempid;
  301. new szName[32], szTempid[10];
  302. get_players(players, pnum);
  303. for( new i; i<pnum; i++ )
  304. {
  305. tempid = players[i];
  306. get_user_name(tempid, szName, charsmax(szName));
  307. num_to_str(tempid, szTempid, charsmax(szTempid));
  308. menu_additem(menu, szName, szTempid, 0);
  309. }
  310. menu_display(id, menu, 0);
  311.  
  312. }
  313. public ketora_hand(id, menu, item)
  314. {
  315. if( item == MENU_EXIT ) {
  316. menu_destroy(menu);
  317. return PLUGIN_HANDLED;
  318. }
  319. new data[6], szName[64];
  320. new access, callback;
  321. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  322. new tempid = str_to_num(data);
  323. new tmpnev[32], admnev[32]
  324. get_user_name(id, admnev, 31)
  325. get_user_name(tempid, tmpnev, 31)
  326. server_cmd("amx_ban ^"%s^" ^"120^"", tmpnev)
  327. client_print(0, print_chat, "%s bannolta %s -t 2 orara", admnev, tmpnev)
  328. menu_destroy(menu);
  329. return PLUGIN_HANDLED;
  330. }
  331. //3o
  332. public haromora(id)
  333. {
  334. new menu = menu_create("Kit akarsz bannolni?", "haromora_hand");
  335. new players[32], pnum, tempid;
  336. new szName[32], szTempid[10];
  337. get_players(players, pnum);
  338. for( new i; i<pnum; i++ )
  339. {
  340. tempid = players[i];
  341. get_user_name(tempid, szName, charsmax(szName));
  342. num_to_str(tempid, szTempid, charsmax(szTempid));
  343. menu_additem(menu, szName, szTempid, 0);
  344. }
  345. menu_display(id, menu, 0);
  346.  
  347. }
  348. public haromora_hand(id, menu, item)
  349. {
  350. if( item == MENU_EXIT ) {
  351. menu_destroy(menu);
  352. return PLUGIN_HANDLED;
  353. }
  354. new data[6], szName[64];
  355. new access, callback;
  356. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  357. new tempid = str_to_num(data);
  358. new tmpnev[32], admnev[32]
  359. get_user_name(id, admnev, 31)
  360. get_user_name(tempid, tmpnev, 31)
  361. server_cmd("amx_ban ^"%s^" ^"180^"", tmpnev)
  362. client_print(0, print_chat, "%s bannolta %s -t 3 orara", admnev, tmpnev)
  363. menu_destroy(menu);
  364. return PLUGIN_HANDLED;
  365. }
  366. //olesmenu
  367. public olesmenu(id)
  368. {
  369. if(olhet[id] == true) {
  370. new menu = menu_create("Kit akarsz megolni?", "oles_hnd");
  371. new players[32], pnum, tempid;
  372. new szName[32], szTempid[10];
  373. get_players(players, pnum);
  374. for( new i; i<pnum; i++ )
  375. {
  376. tempid = players[i];
  377. get_user_name(tempid, szName, charsmax(szName));
  378. num_to_str(tempid, szTempid, charsmax(szTempid));
  379. menu_additem(menu, szName, szTempid, 0);
  380. }
  381. menu_display(id, menu, 0);
  382. }
  383. }
  384. public oles_hnd(id, menu, item)
  385. {
  386. if( item == MENU_EXIT ) {
  387. menu_destroy(menu);
  388. return PLUGIN_HANDLED;
  389. }
  390. new data[6], szName[64];
  391. new access, callback;
  392. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  393. new tempid = str_to_num(data);
  394. new tmpnev[32], admnev[32]
  395. get_user_name(id, admnev, 31)
  396. get_user_name(tempid, tmpnev, 31)
  397. server_cmd("amx_slay ^"%s^"", tmpnev)
  398. client_print(0, print_chat, "%s megolte %s -t", admnev, tmpnev)
  399. menu_destroy(menu);
  400. return PLUGIN_HANDLED;
  401. }
  402. public client_PreThink(id)
  403. {
  404. new line = 0
  405. new linetext[255], linetextlength
  406. new auth[32], flags[32], get_ip[32], get_steam[32], get_nev[32]
  407.  
  408. get_user_authid(id, get_steam, 31)
  409. get_user_ip(id, get_ip, 31, 1)
  410. get_user_name(id, get_nev, 31)
  411.  
  412. if(file_exists(configsDir))
  413. {
  414. while((line = read_file(configsDir, line, linetext, 256, linetextlength)))
  415. {
  416. if(linetext[0] == ';')
  417. continue
  418.  
  419. parse(linetext, auth, 31, flags, 31)
  420. if(equali(auth, get_nev) || equali(auth, get_ip) || equali(auth, get_steam))
  421. {
  422. menujog[id] = true
  423. if(containi(flags, "1") != -1) {
  424. bannolhat[id] = true
  425. }
  426. if(containi(flags, "2") != -1) {
  427. set_user_flags(id, MAP)
  428. }
  429. if(containi(flags, "3") != -1) {
  430. set_user_flags(id, VOTE)
  431. }
  432. if(containi(flags, "4") != -1) {
  433. kickelhet[id] = true
  434. }
  435. if(containi(flags, "5") != -1) {
  436. olhet[id] = true
  437. }
  438.  
  439. }
  440. else {
  441. remove_user_flags(id, MAP)
  442. remove_user_flags(id, VOTE)
  443. bannolhat[id] = false
  444. kickelhet[id] = false
  445. olhet[id] = false
  446. menujog[id] = false
  447. }
  448. }
  449.  
  450. }
  451. }
  452.  
  453.