HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <amxmisc>
  3.  
  4. new const PLUGIN[] = "Fegyver Oles Rendszer";
  5. new const VERSION[] = "1.0";
  6. new const AUTHOR[] = "Pista.";
  7.  
  8. new const PREFIX[] = "Informci";
  9.  
  10. new Oles[33], filename[128]
  11. new M4A1Oles[33], AK47Oles[33], AWPOles[33], FAMASOles[33], MP5NAVYOles[33], M3SHOTGUNOles[33], SCOUTOles[33], DEAGLEOles[33], USPOles[33], KESOles[33]
  12.  
  13. public plugin_init() {
  14. register_plugin(PLUGIN, VERSION, AUTHOR)
  15.  
  16. register_clcmd("say /fegyveroles", "FegyverKills");
  17. register_event("DeathMsg", "FegyverOlesek", "a");
  18. set_task(120.0, "OlesVezet",_,_,_, "b");
  19. set_task(60.0, "Uzenet",_,_,_, "b");
  20.  
  21. get_localinfo("amxx_configsdir", filename, charsmax(filename))
  22. format(filename, charsmax(filename), "%s/Mentes.ini", filename)
  23. }
  24. public FegyverKills(id) {
  25. new MenuString[512], Menu;
  26.  
  27. formatex(MenuString, 127, "\wFegyver\y*\r Ölés\d Rendszer^n\rÖsszes\w Ölés:\y [\d%d\y]^n\dOldal:\r", Oles[id])
  28. Menu = menu_create(MenuString, "FegyverKillsh")
  29.  
  30. if(M4A1Oles[id] >= 100000) {
  31. formatex(MenuString, 127, "\wMarverick\r M4A1\y [Teljesítve]")
  32. menu_additem(Menu, MenuString, "1")
  33. }
  34. else {
  35. format(MenuString, 127, "\wMarverick\r M4A1\y [\d%d\r/\d100.000\y]", M4A1Oles[id])
  36. menu_additem(Menu, MenuString, "1")
  37. }
  38. if(AK47Oles[id] >= 100000) {
  39. formatex(MenuString, 127, "\wAlexander Kalasnyikov\r AK47\y [Teljesítve]")
  40. menu_additem(Menu, MenuString, "2")
  41. }
  42. else {
  43. format(MenuString, 127, "\wAlexander Kalasnyikov\r AK47\y [\d%d\r/\d100.000\y]", AK47Oles[id])
  44. menu_additem(Menu, MenuString, "2")
  45. }
  46. if(AWPOles[id] >= 100000) {
  47. formatex(MenuString, 127, "\wAWP\r Magnum\y [Teljesítve]")
  48. menu_additem(Menu, MenuString, "3")
  49. }
  50. else {
  51. formatex(MenuString, 127, "\wAWP\r Magnum\y [\d%d\r/\d100.000\y]", AWPOles[id])
  52. menu_additem(Menu, MenuString, "3")
  53. }
  54. if(FAMASOles[id] >= 100000) {
  55. formatex(MenuString, 127, "\wSt. Étienne\r Famas\y [Teljesítve]")
  56. menu_additem(Menu, MenuString, "4")
  57. }
  58. else {
  59. formatex(MenuString, 127, "\wSt. Étienne\r Famas\y [\d%d\r/\d100.000\y]", FAMASOles[id])
  60. menu_additem(Menu, MenuString, "4")
  61. }
  62. if(MP5NAVYOles[id] >= 100000) {
  63. formatex(MenuString, 127, "\wSMG\r MP5NAVY\y [Teljesítve]")
  64. menu_additem(Menu, MenuString, "5")
  65. }
  66. else {
  67. formatex(MenuString, 127, "\wSMG\r MP5NAVY\y [\d%d\r/\d100.000\y]", MP5NAVYOles[id])
  68. menu_additem(Menu, MenuString, "5")
  69. }
  70. if(M3SHOTGUNOles[id] >= 100000) {
  71. formatex(MenuString, 127, "\wM3\r SHOTGUN\y [Teljesítve]")
  72. menu_additem(Menu, MenuString, "6")
  73. }
  74. else {
  75. formatex(MenuString, 127, "\wM3\r SHOTGUN\y [\d%d\r/\d100.000\y]", M3SHOTGUNOles[id])
  76. menu_additem(Menu, MenuString, "6")
  77. }
  78. if(SCOUTOles[id] >= 100000) {
  79. formatex(MenuString, 127, "\wTávcsöves puska\r SCOUT\y [Teljesítve]")
  80. menu_additem(Menu, MenuString, "7")
  81. }
  82. else {
  83. formatex(MenuString, 127, "\wTávcsöves puska\r SCOUT\y [\d%d\r/\d100.000\y]", SCOUTOles[id])
  84. menu_additem(Menu, MenuString, "7")
  85. }
  86. if(DEAGLEOles[id] >= 100000) {
  87. formatex(MenuString, 127, "\wDesert Eagle\r .50 AE\y [Teljesítve]")
  88. menu_additem(Menu, MenuString, "8")
  89. }
  90. else {
  91. formatex(MenuString, 127, "\wDesert Eagle\r .50 AE\y [\d%d\r/\d100.000\y]", DEAGLEOles[id])
  92. menu_additem(Menu, MenuString, "8")
  93. }
  94. if(USPOles[id] >= 100000) {
  95. formatex(MenuString, 127, "\wUSP\r .45 ACP Tactical\y [Teljesítve]")
  96. menu_additem(Menu, MenuString, "9")
  97. }
  98. else {
  99. formatex(MenuString, 127, "\wUSP\r .45 ACP Tactical\y [\d%d\r/\d100.000\y]", USPOles[id])
  100. menu_additem(Menu, MenuString, "9")
  101. }
  102. if(KESOles[id] >= 100000) {
  103. formatex(MenuString, 127, "\wKés\y [Teljesítve]")
  104. menu_additem(Menu, MenuString, "10")
  105. }
  106. else {
  107. formatex(MenuString, 127, "\wKés\y [\d%d\r/\d100.000\y]", KESOles[id])
  108. menu_additem(Menu, MenuString, "10")
  109. }
  110. menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
  111. menu_setprop(Menu, MPROP_NEXTNAME, "Előre");
  112. menu_setprop(Menu, MPROP_BACKNAME, "Vissza");
  113. menu_setprop(Menu, MPROP_EXITNAME, "Kilépés");
  114.  
  115. menu_display(id, Menu, 0)
  116. return PLUGIN_HANDLED
  117. }
  118. public FegyverKillsh(id, Menu, item) {
  119. if(item == MENU_EXIT) {
  120. menu_destroy(Menu)
  121. return PLUGIN_HANDLED
  122. }
  123. new Data[9], access, callback, szName[64]
  124. menu_item_getinfo(Menu, item, access, Data,charsmax(Data), szName,charsmax(szName), callback)
  125.  
  126. //new Key = str_to_num(Data)
  127. FegyverKills(id)
  128.  
  129. menu_destroy(Menu)
  130. return PLUGIN_HANDLED
  131. }
  132. public FegyverOlesek() {
  133. new Gyilkos = read_data(1)
  134. new Aldozat = read_data(2)
  135. new Jatekos[32]
  136. get_user_name(Gyilkos, Jatekos, 31)
  137.  
  138. if(Gyilkos == Aldozat || Gyilkos == 0) {
  139. return PLUGIN_HANDLED
  140. }
  141. Oles[Gyilkos]++
  142. switch(get_user_weapon(Gyilkos)) {
  143. case CSW_M4A1: M4A1Oles[Gyilkos]++;
  144. case CSW_AK47: AK47Oles[Gyilkos]++;
  145. case CSW_AWP: AWPOles[Gyilkos]++;
  146. case CSW_FAMAS: FAMASOles[Gyilkos]++;
  147. case CSW_MP5NAVY: MP5NAVYOles[Gyilkos]++;
  148. case CSW_M3: M3SHOTGUNOles[Gyilkos]++;
  149. case CSW_SCOUT: SCOUTOles[Gyilkos]++;
  150. case CSW_DEAGLE: DEAGLEOles[Gyilkos]++;
  151. case CSW_USP: USPOles[Gyilkos]++;
  152. case CSW_KNIFE: KESOles[Gyilkos]++;
  153. }
  154. if(M4A1Oles[Gyilkos] == 100000) {
  155. print_color(0, "!g[%s]!y Jtkos:!t %s!y Elrte a(z)!g M4A1ls-t", PREFIX, Jatekos);
  156. return PLUGIN_HANDLED
  157. }
  158. else if(M4A1Oles[Gyilkos] == 100000) {
  159. return PLUGIN_HANDLED
  160. }
  161. else if(AK47Oles[Gyilkos] == 100000) {
  162. print_color(0, "!g[%s]!y Jtkos:!t %s!y Elrte a(z)!g AK47ls-t", PREFIX, Jatekos);
  163. return PLUGIN_HANDLED
  164. }
  165. else if(AWPOles[Gyilkos] == 100000) {
  166. print_color(0, "!g[%s]!y Jtkos:!t %s!y Elrte a(z)!g AWPls-t", PREFIX, Jatekos);
  167. return PLUGIN_HANDLED
  168. }
  169. else if(FAMASOles[Gyilkos] == 100000) {
  170. print_color(0, "!g[%s]!y Jtkos:!t %s!y Elrte a(z)!g FAMASls-t", PREFIX, Jatekos);
  171. return PLUGIN_HANDLED
  172. }
  173. else if(MP5NAVYOles[Gyilkos] == 100000) {
  174. print_color(0, "!g[%s]!y Jtkos:!t %s!y Elrte a(z)!g MP5ls-t", PREFIX, Jatekos);
  175. return PLUGIN_HANDLED
  176. }
  177. else if(M3SHOTGUNOles[Gyilkos] == 100000) {
  178. print_color(0, "!g[%s]!y Jtkos:!t %s!y Elrte a(z)!g M3ls-t", PREFIX, Jatekos);
  179. return PLUGIN_HANDLED
  180. }
  181. else if(SCOUTOles[Gyilkos] == 100000) {
  182. print_color(0, "!g[%s]!y Jtkos:!t %s!y Elrte a(z)!g SCOUTls-t", PREFIX, Jatekos);
  183. return PLUGIN_HANDLED
  184. }
  185. else if(DEAGLEOles[Gyilkos] == 100000) {
  186. print_color(0, "!g[%s]!y Jtkos:!t %s!y Elrte a(z)!g DEAGLEls-t", PREFIX, Jatekos);
  187. return PLUGIN_HANDLED
  188. }
  189. else if(USPOles[Gyilkos] == 100000) {
  190. print_color(0, "!g[%s]!y Jtkos:!t %s!y Elrte a(z)!g USPls-t", PREFIX, Jatekos);
  191. return PLUGIN_HANDLED
  192. }
  193. else if(KESOles[Gyilkos] == 100000) {
  194. print_color(0, "!g[%s]!y Jtkos:!t %s!y Elrte a(z)!g Kesls-t", PREFIX, Jatekos);
  195. return PLUGIN_HANDLED
  196. }
  197. return PLUGIN_CONTINUE
  198. }
  199. public client_authorized(id) {
  200. if(!is_user_bot(id) && !is_user_hltv(id)) {
  201. Betoltes(id)
  202. }
  203. }
  204. public client_disconnect(id) {
  205. if(!is_user_bot(id) && !is_user_hltv(id)) {
  206. Mentes(id)
  207. }
  208. }
  209. public Mentes(id) {
  210. new szData[128], szName[32]
  211. get_user_name(id, szName, charsmax(szName))
  212.  
  213. formatex(szData, charsmax(szData), "%i %i %i %i %i %i %i %i %i %i %i", Oles[id], M4A1Oles[id], AK47Oles[id], AWPOles[id], FAMASOles[id], MP5NAVYOles[id], M3SHOTGUNOles[id], SCOUTOles[id], DEAGLEOles[id], USPOles[id], KESOles[id])
  214. set_data(szName, szData)
  215. }
  216. public Betoltes(id) {
  217. new szData[128], szName[32]
  218. get_user_name(id, szName, charsmax(szName))
  219.  
  220. if(get_data(szName, szData, charsmax(szData))) {
  221. new Oles1[32], M4A1Oles1[32], AK47Oles1[32], AWPOles1[32], FAMASOles1[32], MP5NAVYOles1[32], M3SHOTGUNOles1[32], SCOUTOles1[32], DEAGLEOles1[32], USPOles1[32], KESOles1[32]
  222. parse(szData, Oles1, charsmax(Oles1), M4A1Oles1, charsmax(M4A1Oles1), AK47Oles1, charsmax(AK47Oles1), AWPOles1, charsmax(AWPOles1), FAMASOles1, charsmax(FAMASOles1), MP5NAVYOles1, charsmax(MP5NAVYOles), M3SHOTGUNOles1, charsmax(M3SHOTGUNOles1), SCOUTOles1, charsmax(SCOUTOles1), DEAGLEOles1, charsmax(DEAGLEOles1), USPOles1, charsmax(USPOles1), KESOles1, charsmax(KESOles1))
  223. Oles[id] = str_to_num(Oles1)
  224. M4A1Oles[id] = str_to_num(M4A1Oles1)
  225. AK47Oles[id] = str_to_num(AK47Oles1)
  226. AWPOles[id] = str_to_num(AWPOles1)
  227. FAMASOles[id] = str_to_num(FAMASOles1)
  228. MP5NAVYOles[id] = str_to_num(MP5NAVYOles1)
  229. M3SHOTGUNOles[id] = str_to_num(M3SHOTGUNOles1)
  230. SCOUTOles[id] = str_to_num(SCOUTOles1)
  231. DEAGLEOles[id] = str_to_num(DEAGLEOles1)
  232. USPOles[id] = str_to_num(USPOles1)
  233. KESOles[id] = str_to_num(KESOles1)
  234. }
  235. }
  236. public OlesVezet() {
  237. new Players[32], pnum, Max, id;
  238.  
  239. get_players(Players, pnum)
  240.  
  241. for(new i; i< pnum; i++) {
  242. if(Oles[Players[i]] > Max) {
  243. Max = Oles[Players[i]];
  244. id = Players[i];
  245. }
  246. new szName[32]
  247. get_user_name(id, szName, charsmax(szName))
  248.  
  249. if(!is_user_connected(id) || !is_user_bot(id)) {
  250. print_color(0, "!g[%s]!y Jtkos:!t %s!y Vezet:!g %d!y lsel.!", PREFIX, szName, Max)
  251. return PLUGIN_HANDLED
  252. }
  253. }
  254. return PLUGIN_CONTINUE
  255. }
  256. public Uzenet() {
  257. print_color(0, "!g[%s]!y A Szerveren!t Fegyver ls Rendszer!y futt, amit!g %s!y ksztett!", PREFIX, AUTHOR)
  258. }
  259. stock get_data(const key[], data[], len) {
  260. new vault = fopen(filename, "rt");
  261. new _data[512], _key[64];
  262.  
  263. while( !feof(vault) ) {
  264. fgets(vault, _data, charsmax(_data));
  265. parse(_data, _key, charsmax(_key), data, len);
  266.  
  267. if( equal(_key, key) ) {
  268. fclose(vault);
  269. return 1;
  270. }
  271. }
  272.  
  273. fclose(vault);
  274. copy(data, len, "");
  275.  
  276. return 0;
  277. }
  278.  
  279. stock set_data(const key[], const data[]) {
  280. static const temp_vault_name[] = "set_data.txt";
  281. new file = fopen(temp_vault_name, "wt");
  282.  
  283. new vault = fopen(filename, "rt");
  284. new _data[512], _key[64], _other[32];
  285. new bool:replaced = false;
  286.  
  287. while( !feof(vault) ) {
  288. fgets(vault, _data, charsmax(_data));
  289. parse(_data, _key, charsmax(_key), _other, charsmax(_other));
  290.  
  291. if( equal(_key, key) && !replaced ) {
  292. fprintf(file, "^"%s^" ^"%s^"^n", key, data);
  293.  
  294. replaced = true;
  295. }
  296. else {
  297. fputs(file, _data);
  298. }
  299. }
  300.  
  301. if( !replaced ) {
  302. fprintf(file, "^"%s^" ^"%s^"^n", key, data);
  303. }
  304.  
  305. fclose(file);
  306. fclose(vault);
  307.  
  308. delete_file(filename);
  309.  
  310. while( !rename_file(temp_vault_name, filename, 1) ) { }
  311.  
  312. //delete_file(temp_vault_name);
  313. }
  314. stock print_color(const id, const input[], any:...) {
  315. new count = 1, players[32]
  316. static msg[191]
  317. vformat(msg, 190, input, 3)
  318.  
  319. replace_all(msg, 190, "!g", "^4")
  320. replace_all(msg, 190, "!y", "^1")
  321. replace_all(msg, 190, "!t", "^3")
  322.  
  323. replace_all(msg, 190, "", "á")
  324. replace_all(msg, 190, "", "é")
  325. replace_all(msg, 190, "", "í")
  326. replace_all(msg, 190, "", "ó")
  327. replace_all(msg, 190, "", "ö")
  328. replace_all(msg, 190, "", "ő")
  329. replace_all(msg, 190, "", "ú")
  330. replace_all(msg, 190, "", "ü")
  331. replace_all(msg, 190, "", "ű")
  332. replace_all(msg, 255, "", "Á-")
  333. replace_all(msg, 190, "", "É")
  334. replace_all(msg, 190, "", "Í")
  335. replace_all(msg, 190, "", "Ó")
  336. replace_all(msg, 190, "", "Ö")
  337. replace_all(msg, 190, "", "Ő")
  338. replace_all(msg, 190, "", "Ú")
  339. replace_all(msg, 190, "", "Ü")
  340. replace_all(msg, 190, "", "Ű")
  341.  
  342. if(id)players[0] = id; else get_players(players, count, "ch")
  343. {
  344. for (new i = 0; i < count; i++) {
  345. if (is_user_connected(players[i])) {
  346. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  347.  
  348. write_byte(players[i])
  349. write_string(msg)
  350. message_end()
  351. }
  352. }
  353. }
  354. return PLUGIN_HANDLED
  355. }