HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <fakemeta>
  3. #include <nvault>
  4. #include <cstrike>
  5. #include <fun>
  6. #include <hamsandwich>
  7.  
  8. #define PLUGIN "Unlocker"
  9. #define VERSION "1.0"
  10. #define AUTHOR "DeRoiD"
  11.  
  12. new fegyver_ak47[33],fegyver_m4a1[33],fegyver_famas[33],fegyver_tmp[33],fegyver_awp[33],pont[33]
  13. new fejloves, oles
  14. new csapat_menu, kijelzo, spawn_elohoz
  15. new ak47_ar,m4a1_ar, famas_ar, tmp_ar, awp_ar
  16. new szerver_prefix[] = "[DeRoiD's Unlocker]"
  17. new unlocker_vault, name[33][32]
  18.  
  19. public plugin_init() {
  20. register_plugin(PLUGIN, VERSION, AUTHOR)
  21. register_clcmd("say /unlocker","unlockmenu")
  22. register_clcmd("say_team /unlocker","unlockmenu")
  23. register_event("DeathMsg","halal","a")
  24.  
  25. RegisterHam(Ham_Spawn, "player", "ujraeledes", 0)
  26.  
  27. unlocker_vault = nvault_open("UnlockerV1")
  28.  
  29. fejloves = register_cvar("oles_fejlovessel","3")
  30. oles = register_cvar("oles_sima","2")
  31.  
  32. csapat_menu = register_cvar("csapat_menu","0") //Akiknek megjelenik a menu!0=Mindenki/1=CT/2=TE
  33. kijelzo = register_cvar("kijelzo","1") //Ahol mutatja a pontokat !0=Menuben/1=HUD
  34. spawn_elohoz = register_cvar("elohoz","1") // Ujraeledesnel mutassa a menut? 1=Igen / 0=Nem
  35.  
  36. tmp_ar = register_cvar("tmp_ara","0")
  37. famas_ar = register_cvar("famas_ara","47")
  38. ak47_ar = register_cvar("ak47_ara","89")
  39. m4a1_ar = register_cvar("m4a1_ara","147")
  40. awp_ar = register_cvar("awp_ara","302")
  41.  
  42. if(get_pcvar_num(kijelzo) == 1){
  43. set_task(2.0, "kijelzo_hud", 0, _, _, "b")
  44. }
  45. }
  46. public ujraeledes(id){
  47. if(!is_user_alive(id)){
  48. if(get_pcvar_num(spawn_elohoz) == 1){
  49. unlockmenu(id)
  50. }
  51. else if(get_pcvar_num(spawn_elohoz) == 0){
  52. client_print(id,print_chat,"")
  53. }
  54. }
  55. }
  56. public halal() {
  57. new killer = read_data(1)
  58. new victim = read_data(2)
  59. new headshot = read_data(3)
  60. if(killer == victim) {
  61. return PLUGIN_HANDLED
  62. }
  63. if(headshot) {
  64. pont[killer] += get_pcvar_num(fejloves)
  65. client_print(killer,print_chat,"%s +%d Pont (Headshot)",szerver_prefix,get_pcvar_num(fejloves))
  66. }
  67. else
  68. {
  69. pont[killer] += get_pcvar_num(oles)
  70. client_print(killer,print_chat,"%s +%d Pont",szerver_prefix,get_pcvar_num(oles))
  71. }
  72. return PLUGIN_HANDLED
  73. }
  74. public unlockmenu(id) {
  75. new menu_cim[121],egy[121],ketto[121],harom[121],negy[121],ot[121]
  76. if(get_pcvar_num(kijelzo) == 0){
  77. format(menu_cim,charsmax(menu_cim),"\w%s \rUnlocker^n\yPont : \r%i",szerver_prefix,pont[id])
  78. }
  79. else
  80. if(get_pcvar_num(kijelzo) == 1){
  81. format(menu_cim,charsmax(menu_cim),"\w%s \rUnlocker^n",szerver_prefix)
  82. }
  83. format(egy,charsmax(egy),"\dTMP - Locked \y[\w%i \rPont\y]",get_pcvar_num(tmp_ar))
  84. format(ketto,charsmax(ketto),"\dFAMAS - Locked \y[\w%i \rPont\y]",get_pcvar_num(famas_ar))
  85. format(harom,charsmax(harom),"\dAK47 - Locked \y[\w%i \rPont\y]",get_pcvar_num(ak47_ar))
  86. format(negy,charsmax(negy),"\dM4A1 - Locked \y[\w%i \rPont\y]",get_pcvar_num(m4a1_ar))
  87. format(ot,charsmax(ot),"\dAWP - Locked \y[\w%i \rPont\y]",get_pcvar_num(awp_ar))
  88.  
  89. new menu = menu_create(menu_cim,"unlockmenu_handler")
  90.  
  91. if(fegyver_tmp[id] == 1) {
  92. menu_additem(menu,"\rTMP \w- \yUnlocked","1",0)
  93. }
  94. else if(fegyver_tmp[id] == 0) {
  95. menu_additem(menu,egy,"6",0)
  96. }
  97. if(fegyver_famas[id] == 1) {
  98. menu_additem(menu,"\rFAMAS \w- \yUnlocked","2",0)
  99. }
  100. else if(fegyver_famas[id] == 0) {
  101. menu_additem(menu,ketto,"7",0)
  102. }
  103. if(fegyver_ak47[id] == 1) {
  104. menu_additem(menu,"\rAK47 \w- \yUnlocked","3",0)
  105. }
  106. else if(fegyver_ak47[id] == 0) {
  107. menu_additem(menu,harom,"8",0)
  108. }
  109. if(fegyver_m4a1[id] == 1) {
  110. menu_additem(menu,"\rM4A1 \w- \yUnlocked","4",0)
  111. }
  112. else if(fegyver_m4a1[id] == 0) {
  113. menu_additem(menu,negy,"9",0)
  114. }
  115. if(fegyver_awp[id] == 1) {
  116. menu_additem(menu,"\rAWP \w- \yUnlocked","5",0)
  117. }
  118. else if(fegyver_awp[id] == 0) {
  119. menu_additem(menu,ot,"10",0)
  120. }
  121. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  122.  
  123. if(get_pcvar_num(csapat_menu) == 0){
  124. menu_display(id, menu, 0);
  125. }
  126. else if(cs_get_user_team(id) == CS_TEAM_CT && get_pcvar_num(csapat_menu) == 1){
  127. menu_display(id, menu, 0);
  128. }
  129. else if(cs_get_user_team(id) == CS_TEAM_T && get_pcvar_num(csapat_menu) == 2){
  130. menu_display(id, menu, 0);
  131. }
  132. }
  133. public unlockmenu_handler(id,menu,item) {
  134. if(item == MENU_EXIT) {
  135. menu_destroy(menu)
  136. return PLUGIN_HANDLED
  137. }
  138. new data[9], szName[64], szam1[33], szam2[33], szam3[33], szam4[33], szam5[33]
  139. szam1[id] = get_pcvar_num(tmp_ar) - pont[id]
  140. szam2[id] = get_pcvar_num(famas_ar) - pont[id]
  141. szam3[id] = get_pcvar_num(ak47_ar) - pont[id]
  142. szam4[id] = get_pcvar_num(m4a1_ar) - pont[id]
  143. szam5[id] = get_pcvar_num(awp_ar) - pont[id]
  144. new access, callback
  145. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  146. new key = str_to_num(data)
  147. switch(key)
  148. {
  149. // Ha mar unlockolva vannak a fegyverek
  150. case 1:{
  151. strip_user_weapons(id)
  152. give_item(id, "weapon_tmp")
  153. cs_set_user_bpammo(id, CSW_TMP, 120)
  154. client_print(id,print_chat,"%s Sikeres valasztas!",szerver_prefix)
  155. masodlagos(id)
  156. }
  157. case 2:{
  158. strip_user_weapons(id)
  159. give_item(id, "weapon_famas")
  160. cs_set_user_bpammo(id, CSW_FAMAS, 90)
  161. client_print(id,print_chat,"%s Sikeres valasztas!",szerver_prefix)
  162. masodlagos(id)
  163. }
  164. case 3:{
  165. strip_user_weapons(id)
  166. give_item(id, "weapon_ak47")
  167. cs_set_user_bpammo(id, CSW_AK47, 90)
  168. client_print(id,print_chat,"%s Sikeres valasztas!",szerver_prefix)
  169. masodlagos(id)
  170. }
  171. case 4:{
  172. strip_user_weapons(id)
  173. give_item(id, "weapon_m4a1")
  174. cs_set_user_bpammo(id, CSW_M4A1, 90)
  175. client_print(id,print_chat,"%s Sikeres valasztas!",szerver_prefix)
  176. masodlagos(id)
  177. }
  178. case 5:{
  179. strip_user_weapons(id)
  180. give_item(id, "weapon_awp")
  181. cs_set_user_bpammo(id, CSW_AWP, 30)
  182. client_print(id,print_chat,"%s Sikeres valasztas!",szerver_prefix)
  183. masodlagos(id)
  184. }
  185. // Ha nincs unlockolva!
  186. case 6:{
  187. if(pont[id] >= get_pcvar_num(tmp_ar)){
  188. fegyver_tmp[id] = 1
  189. pont[id] -= get_pcvar_num(tmp_ar)
  190. client_print(id,print_chat,"%s Sikeres vasarlas!",szerver_prefix)
  191. unlockmenu(id)
  192. client_cmd(id, "spk ^"buttons/lightswitch2^"")
  193. }
  194. else
  195. {
  196. client_print(id,print_chat,"%s Nincs eleg pontod, kell meg %d!",szerver_prefix,szam1[id])
  197. client_cmd(id, "spk ^"buttons/latchunlocked2^"")
  198. }
  199. }
  200. case 7:{
  201. if(pont[id] >= get_pcvar_num(famas_ar)){
  202. fegyver_famas[id] = 1
  203. pont[id] -= get_pcvar_num(famas_ar)
  204. client_print(id,print_chat,"%s Sikeres vasarlas!",szerver_prefix)
  205. unlockmenu(id)
  206. client_cmd(id, "spk ^"buttons/lightswitch2^"")
  207. }
  208. else
  209. {
  210. client_print(id,print_chat,"%s Nincs eleg pontod, kell meg %d!",szerver_prefix,szam2[id])
  211. client_cmd(id, "spk ^"buttons/latchunlocked2^"")
  212. }
  213. }
  214. case 8:{
  215. if(pont[id] >= get_pcvar_num(ak47_ar)){
  216. fegyver_ak47[id] = 1
  217. pont[id] -= get_pcvar_num(ak47_ar)
  218. client_print(id,print_chat,"%s Sikeres vasarlas!",szerver_prefix)
  219. unlockmenu(id)
  220. client_cmd(id, "spk ^"buttons/lightswitch2^"")
  221. }
  222. else
  223. {
  224. client_print(id,print_chat,"%s Nincs eleg pontod, kell meg %d!",szerver_prefix,szam3[id])
  225. client_cmd(id, "spk ^"buttons/latchunlocked2^"")
  226. }
  227. }
  228. case 9:{
  229. if(pont[id] >= get_pcvar_num(m4a1_ar)){
  230. fegyver_m4a1[id] = 1
  231. pont[id] -= get_pcvar_num(m4a1_ar)
  232. client_print(id,print_chat,"%s Sikeres vasarlas!",szerver_prefix)
  233. unlockmenu(id)
  234. client_cmd(id, "spk ^"buttons/lightswitch2^"")
  235. }
  236. else
  237. {
  238. client_print(id,print_chat,"%s Nincs eleg pontod, kell meg %d!",szerver_prefix,szam4[id])
  239. client_cmd(id, "spk ^"buttons/latchunlocked2^"")
  240. }
  241. }
  242. case 10:{
  243. if(pont[id] >= get_pcvar_num(awp_ar)){
  244. fegyver_awp[id] = 1
  245. pont[id] -= get_pcvar_num(awp_ar)
  246. client_print(id,print_chat,"%s Sikeres vasarlas!",szerver_prefix)
  247. unlockmenu(id)
  248. client_cmd(id, "spk ^"buttons/lightswitch2^"")
  249. }
  250. else
  251. {
  252. client_print(id,print_chat,"%s Nincs eleg pontod, kell meg %d!",szerver_prefix,szam5[id])
  253. client_cmd(id, "spk ^"buttons/latchunlocked2^"")
  254. }
  255. }
  256. }
  257. menu_destroy(menu)
  258. return PLUGIN_HANDLED
  259. }
  260. public masodlagos(id) {
  261. give_item(id, "weapon_knife")
  262. give_item(id, "weapon_deagle")
  263. cs_set_user_bpammo(id, CSW_DEAGLE, 35)
  264. give_item(id, "weapon_hegrenade")
  265. give_item(id, "weapon_flashbang")
  266.  
  267. }
  268. public kijelzo_hud(){
  269. new players[32], num, id
  270. get_players(players, num)
  271.  
  272. for(new i; i < num; i++)
  273. {
  274. id = players[id]
  275. set_hudmessage(255, 255, 255, -1.0, 0.0, 0, 6.0, 12.0)
  276. show_hudmessage(id, "%s Pontjaid : %d",szerver_prefix, pont[id])
  277. }
  278. }
  279. public client_disconnect(id)
  280. {
  281. mentes(id)
  282. }
  283.  
  284. public client_connect(id)
  285. {
  286. get_user_name(id, name[id], 31)
  287. betoltes(id)
  288. }
  289. public mentes(id)
  290. {
  291. new vaultkey[64],vaultdata[256]
  292. format(vaultkey,63,"%s-PONTOK", name[id])
  293. format(vaultdata,255,"%i#%i#%i#%i#%i#%i",pont[id], fegyver_tmp[id],
  294. fegyver_famas[id], fegyver_ak47[id], fegyver_m4a1[id], fegyver_awp[id])
  295. nvault_set(unlocker_vault,vaultkey,vaultdata)
  296. return PLUGIN_CONTINUE
  297. }
  298. public betoltes(id)
  299. {
  300. new vaultkey[64],vaultdata[256]
  301. format(vaultkey,63,"%s-PONTOK", name[id])
  302. format(vaultdata,255,"%i#%i#%i#%i#%i#%i",pont[id], fegyver_tmp[id],
  303. fegyver_famas[id], fegyver_ak47[id], fegyver_m4a1[id], fegyver_awp[id])
  304. nvault_get(unlocker_vault,vaultkey,vaultdata,255)
  305. replace_all(vaultdata, 255, "#", " ")
  306. new a1[32], a2[32], a3[32], a4[32], a5[32], a6[32]
  307. parse(vaultdata, a1, 31, a2, 31, a3, 31, a4, 31, a5, 31, a6, 31)
  308. pont[id] = str_to_num(a1)
  309. fegyver_tmp[id] = str_to_num(a2)
  310. fegyver_famas[id] = str_to_num(a3)
  311. fegyver_ak47[id] = str_to_num(a4)
  312. fegyver_m4a1[id] = str_to_num(a5)
  313. fegyver_awp[id] = str_to_num(a6)
  314. return PLUGIN_CONTINUE;
  315. }
  316.