HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. /* Plugin generated by AMXX-Studio */
  2. /*Usp menu fixelt verzio*/
  3.  
  4. #include <amxmodx>
  5. #include <amxmisc>
  6. #include <colorchat>
  7. #include <fakemeta>
  8.  
  9. #define PLUGIN "USPMenu"
  10. #define VERSION "2.0"
  11. #define AUTHOR "CryTeX"
  12.  
  13. new pont[33]
  14. new usp[33]
  15.  
  16. new prefix[] = "USP"
  17.  
  18. new filename[128];
  19.  
  20. public plugin_init() {
  21. register_plugin(PLUGIN, VERSION, AUTHOR)
  22. register_clcmd("say /usp", "uspmenu")
  23. register_clcmd("chooseteam", "uspmenu")
  24. register_clcmd("say /pont", "pontokchat")
  25. register_event("CurWeapon", "fegyvervaltas", "be", "1=1")
  26. register_event("DeathMsg", "halal", "a")
  27. get_localinfo("amxx_configsdir", filename, charsmax(filename))
  28. format(filename, charsmax(filename), "%s/uspmentes.ini", filename)
  29. }
  30. public halal(){
  31. new killer = read_data(1)
  32. new victim = read_data(2)
  33.  
  34. if(killer == victim)
  35. {
  36. return PLUGIN_HANDLED
  37. }
  38. pont[killer]++
  39. return PLUGIN_HANDLED
  40. }
  41. public pontokchat(id)
  42. {
  43. ColorChat(id, GREEN, "USP^3»^1 Pontjaid száma:^3 %i", pont[id])
  44. }
  45. public uspmenu(id)
  46. {
  47. new cim[121]
  48. new szCim[512]
  49.  
  50. formatex(cim, charsmax(cim), "\rUSP\w menü^n\rPontok:\w%i^n\rOldal:\w", pont[id])
  51. new menu = menu_create(cim, "usp_handler");
  52.  
  53. menu_additem(menu, "\rUSP 1\d [1]\w [Megszerezve]", "1", 0);
  54. if(pont[id] < 25)
  55. {
  56. formatex(szCim, charsmax(szCim), "\dUSP 2 [2] [%i/25 pont]", pont[id])
  57. menu_additem(menu, szCim, "2",0)
  58. }
  59. else
  60. menu_additem(menu, "\rUSP 2\d [2]\w [Megszerezve]", "2",0)
  61. if(pont[id] < 50)
  62. {
  63. formatex(szCim, charsmax(szCim), "\dUSP 3 [3] [%i/50 pont]", pont[id])
  64. menu_additem(menu, szCim, "3",0)
  65. }
  66. else
  67. menu_additem(menu, "\rUSP 3\d [3]\w [Megszerezve]", "3", 0);
  68. if(pont[id] < 75)
  69. {
  70. formatex(szCim, charsmax(szCim), "\dUSP 4 [4] [%i/75 pont]", pont[id])
  71. menu_additem(menu, szCim, "4",0)
  72. }
  73. else
  74. menu_additem(menu, "\rUSP 4\d [4]\w [Megszerezve]", "4",0)
  75. if(pont[id] < 100)
  76. {
  77. formatex(szCim, charsmax(szCim), "\dUSP 5 [5] [%i/100 pont]", pont[id])
  78. menu_additem(menu, szCim, "4",0)
  79. }
  80. else
  81. menu_additem(menu, "\rUSP 5\d [5]\w [Megszerezve]", "5", 0);
  82. if(pont[id] < 150)
  83. {
  84. formatex(szCim, charsmax(szCim), "\dUSP 6 [6] [%i/150 pont]", pont[id])
  85. menu_additem(menu, szCim, "6",0)
  86. }
  87. else
  88. menu_additem(menu, "\rUSP 6\d [6]\w [Megszerezve]", "6",0)
  89. if(pont[id] < 200)
  90. {
  91. formatex(szCim, charsmax(szCim), "\dUSP 7 [7] [%i/200 pont]", pont[id])
  92. menu_additem(menu, szCim, "7",0)
  93. }
  94. else
  95. menu_additem(menu, "\rUSP 7\d [7]\w [Megszerezve]", "7", 0);
  96. if(pont[id] < 300)
  97. {
  98. formatex(szCim, charsmax(szCim), "\dUSP 8 [8] [%i/300 pont]", pont[id])
  99. menu_additem(menu, szCim, "8",0)
  100. }
  101. else
  102. menu_additem(menu, "\rUSP 8\d [8]\w [Megszerezve]", "8", 0);
  103.  
  104. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  105. menu_setprop(menu, MPROP_BACKNAME, "Előző");
  106. menu_setprop(menu, MPROP_NEXTNAME, "Következő");
  107. menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
  108. menu_display(id, menu, 0);
  109.  
  110. return PLUGIN_HANDLED;
  111. }
  112.  
  113. public usp_handler(id, menu, item)
  114. {
  115. if(item == MENU_EXIT)
  116. {
  117. menu_cancel(id);
  118. return PLUGIN_HANDLED;
  119. }
  120.  
  121. new command[6], name[64], access, callback;
  122.  
  123. menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
  124.  
  125. switch(item)
  126. {
  127. case 0:{
  128. if(pont[id] >= 0)
  129. {
  130. usp[id] = 1
  131. ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 1^1-et!", prefix)
  132. }
  133. else
  134. {
  135. ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 2^1-ig hátravan még^3 %i^1 pont!", prefix, 0-pont[id])
  136. }
  137. }
  138. case 1:{
  139. if(pont[id] >= 25)
  140. {
  141. usp[id] = 2
  142. ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 2^1-őt!", prefix)
  143. }
  144. else
  145. {
  146. ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 2^1-ig hátravan még^3 %i^1 pont!", prefix, 25-pont[id])
  147. }
  148. }
  149. case 2:{
  150. if(pont[id] >= 50)
  151. {
  152. usp[id] = 3
  153. ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 3^1-mat!", prefix)
  154. }
  155. else
  156. {
  157. ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 3^1-ig hátravan még^3 %i^1 pont!", prefix, 50-pont[id])
  158. }
  159. }
  160. case 3:{
  161. if(pont[id] >= 75)
  162. {
  163. usp[id] = 4
  164. ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 4^1-et!", prefix)
  165. }
  166. else
  167. {
  168. ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 4^1-ig hátravan még^3 %i^1 pont!", prefix, 75-pont[id])
  169. }
  170. }
  171. case 4:{
  172. if(pont[id] >= 100)
  173. {
  174. usp[id] = 5
  175. ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 5^1-öt!", prefix)
  176. }
  177. else
  178. {
  179. ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 5^1-ig hátravan még^3 %i^1 pont!", prefix, 100-pont[id])
  180. }
  181. }
  182. case 5:{
  183. if(pont[id] >= 150)
  184. {
  185. usp[id] = 6
  186. ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 6^1-ot!", prefix)
  187. }
  188. else
  189. {
  190. ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 6^1-ig hátravan még^3 %i^1 pont!", prefix, 150-pont[id])
  191. }
  192. }
  193. case 6:{
  194. if(pont[id] >= 200)
  195. {
  196. usp[id] = 7
  197. ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 7^1-et!", prefix)
  198. }
  199. else
  200. {
  201. ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 7^1-ig hátravan még^3 %i^1 pont!", prefix, 200-pont[id])
  202. }
  203. }
  204. case 7:{
  205. if(pont[id] >= 300)
  206. {
  207. usp[id] = 8
  208. ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 8^1-at!", prefix)
  209. }
  210. else
  211. {
  212. ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 8^1-ig hátravan még %i pont!", prefix, 300-pont[id])
  213. }
  214. }
  215. }
  216.  
  217. menu_destroy(menu);
  218.  
  219. return PLUGIN_HANDLED;
  220. }
  221. public plugin_precache()
  222. {
  223. precache_model("models/uspmenu/v_usp_1.mdl")
  224. precache_model("models/uspmenu/v_usp_2.mdl")
  225. precache_model("models/uspmenu/v_usp_3.mdl")
  226. precache_model("models/uspmenu/v_usp_4.mdl")
  227. precache_model("models/uspmenu/v_usp_5.mdl")
  228. precache_model("models/uspmenu/v_usp_6.mdl")
  229. precache_model("models/uspmenu/v_usp_7.mdl")
  230. precache_model("models/uspmenu/v_usp_8.mdl")
  231. }
  232. public fegyvervaltas(id)
  233. {
  234. new weapon = get_user_weapon(id)
  235.  
  236. if(usp[id] == 1 && weapon == CSW_USP)
  237. {
  238. set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_1.mdl")
  239. }
  240. if(usp[id] == 2 && weapon == CSW_USP)
  241. {
  242. set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_2.mdl")
  243. }
  244. if(usp[id] == 3 && weapon == CSW_USP)
  245. {
  246. set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_3.mdl")
  247. }
  248. if(usp[id] == 4 && weapon == CSW_USP)
  249. {
  250. set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_4.mdl")
  251. }
  252. if(usp[id] == 5 && weapon == CSW_USP)
  253. {
  254. set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_5.mdl")
  255. }
  256. if(usp[id] == 6 && weapon == CSW_USP)
  257. {
  258. set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_6.mdl")
  259. }
  260. if(usp[id] == 7 && weapon == CSW_USP)
  261. {
  262. set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_7.mdl")
  263. }
  264. if(usp[id] == 8 && weapon == CSW_USP)
  265. {
  266. set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_8.mdl")
  267. }
  268. }
  269. stock get_data(const key[], data[], len) {
  270. new vault = fopen(filename, "rt");
  271. new _data[512], _key[64];
  272.  
  273. while( !feof(vault) ) {
  274. fgets(vault, _data, charsmax(_data));
  275. parse(_data, _key, charsmax(_key), data, len);
  276.  
  277. if( equal(_key, key) ) {
  278. fclose(vault);
  279. return 1;
  280. }
  281. }
  282.  
  283. fclose(vault);
  284. copy(data, len, "");
  285.  
  286. return 0;
  287. }
  288.  
  289. stock set_data(const key[], const data[]) {
  290. static const temp_vault_name[] = "set_data.txt";
  291. new file = fopen(temp_vault_name, "wt");
  292.  
  293. new vault = fopen(filename, "rt");
  294. new _data[512], _key[64], _other[32];
  295. new bool:replaced = false;
  296.  
  297. while( !feof(vault) ) {
  298. fgets(vault, _data, charsmax(_data));
  299. parse(_data, _key, charsmax(_key), _other, charsmax(_other));
  300.  
  301. if( equal(_key, key) && !replaced ) {
  302. fprintf(file, "^"%s^" ^"%s^"^n", key, data);
  303.  
  304. replaced = true;
  305. }
  306. else {
  307. fputs(file, _data);
  308. }
  309. }
  310.  
  311. if( !replaced ) {
  312. fprintf(file, "^"%s^" ^"%s^"^n", key, data);
  313. }
  314.  
  315. fclose(file);
  316. fclose(vault);
  317.  
  318. delete_file(filename);
  319.  
  320. while( !rename_file(temp_vault_name, filename, 1) ) { }
  321.  
  322. //delete_file(temp_vault_name);
  323. }
  324. public client_disconnect(id) {
  325. if(!is_user_bot(id) && !is_user_hltv(id)) {
  326. save(id);
  327. }
  328. }
  329.  
  330. public save(id) {
  331. new szData[128];
  332. new steamid[32]; get_user_authid(id, steamid, charsmax(steamid));
  333. if(contain(steamid, "_ID_LAN") != -1) get_user_ip(id, steamid, charsmax(steamid), 1);
  334.  
  335. formatex(szData, charsmax(szData), "%i %i", usp[id], pont[id]);
  336. set_data(steamid, szData)
  337. }
  338. public client_authorized(id) {
  339. if(!is_user_bot(id) && !is_user_hltv(id)) {
  340. load(id);
  341. }
  342. }
  343.  
  344. public load(id) {
  345. new szData[128];
  346. new steamid[32]; get_user_authid(id, steamid, charsmax(steamid));
  347. if(contain(steamid, "_ID_LAN") != -1) get_user_ip(id, steamid, charsmax(steamid), 1);
  348.  
  349. if(get_data(steamid, szData, charsmax(szData))) {
  350. new valami[32], valami2[32];
  351. parse(szData, valami, charsmax(valami), valami2, charsmax(valami2));
  352. usp[id] = str_to_num(valami)
  353. pont[id] = str_to_num(valami2)
  354. }
  355. }
  356. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  357. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
  358. */
  359.