HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. /*
  2. Alap: Kezdõ hp: a = 200
  3. + hp: b = 100
  4. törlés: Halálkor
  5. vissza töltõdés: vki meghal, kör elején
  6. + adotság: Korlátozás: Max = 1200 HP
  7.  
  8. Kapzsi: Kezdõ hp: 3b = 300
  9. + hp: c = 10
  10. törlés: Soha
  11. vissza töltõdés: vki meghal, kör elején
  12. + adotság: Nincs
  13.  
  14. 1x fent, 1x lent: Kezdõ hp: b =100
  15. + hp: 2a = 400
  16. törlés: Kör elején
  17. vissza töltõdés: vki meghal, kör elején
  18. + adotság: Korlátozás: Max = 1200 HP
  19.  
  20. Láma: Kezdõ hp: 3a = 600
  21. + hp: 0
  22. törlés: Kör elején
  23. vissza töltõdés: vki meghal, kör elején
  24. + adotság: Nincs
  25.  
  26. Pro: Kezdõ hp: 1
  27. + hp: 5a = 1000
  28. törlés: Halálkor
  29. vissza töltõdés: vki meghal, kör elején
  30. + adotság: Korlátozás: Max = 2001 HP
  31.  
  32. Kemény: Kezdõ hp: 5a + 5b = 1500
  33. + hp: 0
  34. törlés: Kör elején
  35. vissza töltõdés: csak kör elején
  36. + adotság: Nincs
  37.  
  38. Gránátos: Kezdõ hp: 3b = 300
  39. + hp: c = 10
  40. törlés: Halálkor
  41. vissza töltõdés: vki meghal, kör elején
  42. + adotság: Kap 1 HE, 1 SG és 1 Flas gránátot, ha meghal valaki, vagy kör eleje van.
  43.  
  44. Leállíthatatlan Kezdõ hp: 25a = 5000
  45. + hp: 2b = 200
  46. törlés: Kör elején
  47. vissza töltõdés: 10 mp-ként, kör elején
  48. + adotság: 10 mp-ként b = 100 Hp-t veszít
  49. */
  50.  
  51. #include <amxmodx>
  52. #include <amxmisc>
  53. #include <fun>
  54.  
  55. #define PLUGIN "HP mod"
  56. #define VERSION "1.0"
  57. #define AUTHOR "VP" // Vagy: Itep
  58.  
  59. new players[32], pnum, hp, pl[32], pclass[32], pci[32]
  60.  
  61. new a_elet, b_elet, be_ki, vote_ido, c_elet
  62.  
  63. new HPVoteMenu, HPVotes[2], HPVoting
  64.  
  65. new const CLASSES[8][] = {
  66. "Alap", // 0
  67. "Kapzsi", // 1
  68. "1x fent, 1x lent", // 2
  69. "La'ma", // 3
  70. "Pro", // 4
  71. "Keme'ny", // 5
  72. "Gra'na'tos", // 6
  73. "Lea'lli'thatatlan" // 7
  74. }
  75.  
  76. public plugin_init() {
  77. register_plugin(PLUGIN, VERSION, AUTHOR)
  78.  
  79. set_task(0.5,"elet",0,"param",1,"b")
  80. set_task(10.0,"lea",1,"param",1,"b")
  81.  
  82. register_logevent("round_start", 2, "0=World triggered", "1=Round_Start")
  83. register_event("DeathMsg","halal","a")
  84.  
  85. register_concmd("hp_vote", "StartVote")
  86. register_concmd("hp_jatekosok", "cmd_jatekosok")
  87. register_clcmd("say /faj", "ChangeClass")
  88. register_clcmd("say_team /faj", "ChangeClass")
  89. register_clcmd("hp_faj", "cmd_faj", ADMIN_SLAY,"<Id> <Faj (0-8)>")
  90.  
  91. a_elet = register_cvar("hp_a_elet","200")
  92. b_elet = register_cvar("hp_b_elet","100")
  93. c_elet = register_cvar("hp_c_elet", "10")
  94. be_ki = register_cvar("hp_mod","0")
  95. vote_ido = register_cvar("hp_vote_ido", "15.0")
  96.  
  97. set_task(15.0, "StartVote")
  98.  
  99. }
  100.  
  101. public cmd_faj(id,level,cid)
  102. {
  103. if(!get_pcvar_num(be_ki)) return PLUGIN_HANDLED;
  104. if (!cmd_access(id,level,cid,3)) return PLUGIN_HANDLED;
  105.  
  106. new arg1[3]
  107. new arg2[3]
  108.  
  109. read_argv(1,arg1,2)
  110. read_argv(2,arg2,2)
  111.  
  112. new player = str_to_num(arg1)
  113. new fajid = str_to_num(arg2)
  114. if ((player<33) && (player>0) && (fajid<9) && (fajid>-1)) {
  115. pci[player]=fajid
  116. client_print(player,print_chat,"Kovetkezo kortol a te uj fajod: %s",CLASSES[fajid])
  117. new nev[32]
  118. get_user_name(player,nev,31)
  119. client_print(id,print_console,"Kovetkezo kortol %s-nek az uj faja: %s",nev,CLASSES[fajid])
  120. } else {
  121. console_print(id," Nem lehet! ")
  122. return PLUGIN_HANDLED
  123. }
  124.  
  125. return PLUGIN_HANDLED
  126. }
  127.  
  128.  
  129. public ChangeClass(id)
  130. {
  131. if(!get_pcvar_num(be_ki)) return PLUGIN_HANDLED;
  132. new menu = menu_create("Faj Menu" , "Class_Handle")
  133. menu_additem(menu ,"Alap", "0" , 0)
  134. menu_additem(menu ,"Kapzsi", "1" , 0)
  135. menu_additem(menu ,"1x fent, 1x lent", "2" , 0)
  136. menu_additem(menu ,"La'ma", "3" , 0)
  137. menu_additem(menu ,"Pro", "4" , 0)
  138. menu_additem(menu ,"Keme'ny", "5" , 0)
  139. menu_additem(menu ,"Gra'na'tos", "6" , 0)
  140. menu_additem(menu ,"Lea'li'thatatlan", "7" , 0)
  141. menu_setprop(menu , MPROP_EXIT , MEXIT_ALL)
  142. menu_display(id , menu , 0)
  143. return PLUGIN_CONTINUE;
  144. }
  145.  
  146. public Class_Handle(id , menu , item)
  147. {
  148. if(item == MENU_EXIT) menu_destroy(menu)
  149. new data[6], szName[64]
  150. new aces, callback
  151. menu_item_getinfo(menu, item, aces, data,charsmax(data), szName,charsmax(szName), callback)
  152. new i = str_to_num(data)
  153. pci[id] = i
  154. client_print(id,print_chat,"Kovetkezo kortol a te uj fajod: %s",CLASSES[i])
  155. menu_destroy(menu)
  156. return PLUGIN_CONTINUE;
  157. }
  158.  
  159. public vp_hp(elet)
  160. {
  161. get_players(players, pnum, "ah")
  162. for(new i=0; i<pnum; i++) {
  163.  
  164. switch(pclass[players[i]]) {
  165. case 0: {
  166. if (pl[players[i]]>10) pl[players[i]]=10 // Korlátozás: Max = 1200 HP
  167. set_user_health(players[i],elet + pl[players[i]]*get_pcvar_num(b_elet)) //Alap
  168. }
  169. case 1: {
  170. set_user_health(players[i],3*get_pcvar_num(b_elet) + pl[players[i]]*get_pcvar_num(c_elet)) //Kapzsi
  171. }
  172. case 2: {
  173. if (pl[players[i]]>3) pl[players[i]]=3 // Korlátozás: Max = 1500 HP
  174. set_user_health(players[i],get_pcvar_num(b_elet) + pl[players[i]]*get_pcvar_num(a_elet)*2) //1xFent1xLent
  175. }
  176. case 3: {
  177. set_user_health(players[i],3*elet) // Láma
  178. }
  179. case 4: {
  180. if (pl[players[i]]>2) pl[players[i]]=2 // Korlátozás: Max = 2001 HP
  181. set_user_health(players[i],1 + pl[players[i]]*get_pcvar_num(a_elet)*5) //Pro
  182. }
  183. /* case 5: {
  184. Csak kör elején kap Hp-t! //Kemény
  185. } */
  186. case 6: {
  187. set_user_health(players[i],3*get_pcvar_num(b_elet) + pl[players[i]]*get_pcvar_num(c_elet) ) //Gránátos
  188. give_item(players[i],"weapon_hegrenade")
  189. give_item(players[i],"weapon_smokegrenade")
  190. give_item(players[i],"weapon_flashbang")
  191. }
  192. /* case 7: {
  193. Csak kör elején kap Hp-t! //Leállíthatatlan
  194. } */
  195. }
  196.  
  197.  
  198. }
  199. return PLUGIN_CONTINUE
  200. }
  201.  
  202. public StartVote(id)
  203. {
  204. if( HPVoting )
  205. {
  206. client_print(id, print_chat, "Sajnalom, a szavazas mar folyamatban van!")
  207. return PLUGIN_HANDLED;
  208. }
  209.  
  210. HPVoteMenu = menu_create("\rLegyen HP mod?", "mh")
  211.  
  212. menu_additem(HPVoteMenu, "Legyen!", "0", 0)
  213. menu_additem(HPVoteMenu, "Ne legyen.", "1", 0)
  214.  
  215. new tempid
  216.  
  217. get_players(players, pnum)
  218. for( new i; i<pnum; i++ )
  219. {
  220. tempid = players[i]
  221. menu_display(tempid, HPVoteMenu, 0)
  222. HPVoting++;
  223. }
  224. new Float:ido = get_pcvar_float(vote_ido)
  225. set_task(ido, "EndVote")
  226.  
  227. return PLUGIN_CONTINUE;
  228. }
  229.  
  230. public mh(id, menu, item)
  231. {
  232. if( item == MENU_EXIT || !HPVoting )
  233. {
  234. return PLUGIN_HANDLED;
  235. }
  236.  
  237. new data[6], szName[64]
  238. new aces, callback
  239. menu_item_getinfo(menu, item, aces, data,charsmax(data), szName,charsmax(szName), callback)
  240. new voteid = str_to_num(data)
  241. HPVotes[voteid]++
  242.  
  243. return PLUGIN_CONTINUE;
  244. }
  245. public EndVote()
  246. {
  247.  
  248. client_print(0, print_chat, "%d ember szeretne HP mod-ozni!", HPVotes[0] )
  249. client_print(0, print_chat, "%d ember nem szerten HP mod-ozni!", HPVotes[1] )
  250.  
  251. if( HPVotes[0] > HPVotes[1] ) {
  252. set_pcvar_num(be_ki, 1)
  253. vp_hp(get_pcvar_num(a_elet))
  254. } else if( HPVotes[0] < HPVotes[1] ) set_pcvar_num(be_ki, 0)
  255. else client_print(0, print_chat, "A szavazas sikertelen!")
  256.  
  257. menu_destroy(HPVoteMenu)
  258. HPVoting = 0;
  259.  
  260. }
  261.  
  262. public elet(param)
  263. {
  264. get_players(players, pnum, "ah")
  265. for(new i=0; i<pnum; i++) {
  266. hp = get_user_health(players[i])
  267. new b
  268. if (hp>255) {
  269. set_hudmessage(85, 255, 85, 0.035, 0.9)
  270. show_hudmessage(players[i], "%d HP", hp)
  271. b = 1
  272. } else if (b==1) {
  273. set_hudmessage(85, 255, 85, 0.035, 0.9)
  274. show_hudmessage(players[i], " ")
  275. b = 0
  276. }
  277. }
  278. }
  279.  
  280. public lea(param)
  281. {
  282. get_players(players, pnum, "ah")
  283. for(new i=0; i<pnum; i++)
  284. if (pclass[players[i]] == 7) {
  285. if (get_user_health(players[i]) > 100)
  286. set_user_health(players[i],get_user_health(players[i])-get_pcvar_num(b_elet)+get_pcvar_num(b_elet)*2*pl[players[i]])
  287. pl[players[i]] = 0
  288. }
  289. }
  290.  
  291.  
  292. public round_start()
  293. {
  294. if(!get_pcvar_num(be_ki)) return PLUGIN_HANDLED;
  295.  
  296. get_players(players, pnum, "ah")
  297. for(new i=0; i<pnum; i++) {
  298. if (pclass[players[i]] != pci[players[i]]) {
  299. pclass[players[i]] = pci[players[i]]
  300. pl[players[i]]=0
  301. }
  302.  
  303. switch(pclass[players[i]]) {
  304. /* case 0: {
  305. Halálkor törlõdik //Alap
  306. } */
  307. /* case 1: {
  308. Soha nem törlõdik. //Kapzsi
  309. } */
  310. case 2: {
  311. pl[players[i]] = 0 //1xFent1xLent
  312. }
  313. case 3: {
  314. pl[players[i]] = 0 // Láma
  315. }
  316. /* case 4: {
  317. Halálkor törlõdik //Pro
  318. } */
  319. case 5: {
  320. pl[players[i]] = 0 //Kemény
  321. }
  322. /* case 6: {
  323. Halálkor törlõdik //Gránátos
  324. } */
  325. case 7: {
  326. pl[players[i]] = 0 //Leállíthatatlan
  327. }
  328. }
  329.  
  330. client_print(players[i], print_chat, "A fajod: %s", CLASSES[pclass[players[i]]])
  331. client_print(players[i], print_chat, "/faj parancsal tudod meváltoztatni.")
  332.  
  333. if (pclass[players[i]] == 5) set_user_health(players[i],5*get_pcvar_num(a_elet) + 5*get_pcvar_num(b_elet))
  334. if (pclass[players[i]] == 7) set_user_health(players[i],get_pcvar_num(a_elet)*25 - pl[players[i]]*get_pcvar_num(b_elet))
  335. }
  336. vp_hp(get_pcvar_num(a_elet))
  337. return PLUGIN_CONTINUE;
  338. }
  339.  
  340.  
  341. public halal()
  342. {
  343. if(!get_pcvar_num(be_ki)) return PLUGIN_HANDLED;
  344.  
  345. new tamado = read_data( 1 )
  346. new halott = read_data( 2 )
  347. new headshot = read_data( 3 )
  348.  
  349. client_print(halott, print_chat, "A tamadod a %d HP-javal a %s fajba tartozik.", get_user_health(tamado), CLASSES[pclass[tamado]])
  350. if (tamado != 0) client_print(tamado, print_chat, "Akit megoltel az a(z) %s fajba tartozik.", CLASSES[pclass[halott]])
  351.  
  352. if(get_user_team(tamado) != get_user_team(halott)) {
  353. pl[tamado]++
  354. if (headshot) pl[tamado]++
  355. }
  356.  
  357. vp_hp(get_pcvar_num(a_elet))
  358.  
  359. switch(pclass[halott]) {
  360. case 0: {
  361. pl[halott] = 0 //Alap
  362. }
  363. /* case 1: {
  364. Soha nem törlõdik. //Kapzsi
  365. } */
  366. /* case 2: {
  367. Kör elején törlõdik //1xFent1xLent
  368. } */
  369. /* case 3: {
  370. Kör elején törlõdik // Láma
  371. } */
  372. case 4: {
  373. pl[halott] = 0 //Pro
  374. }
  375. /* case 5: {
  376. Kör elején törlõdik //Kemény
  377. } */
  378. case 6: {
  379. pl[halott] = 0 //Gránátos
  380. }
  381. /* case 7: {
  382. Kör elején törlõdik // Leállíthatatlan
  383. } */
  384. }
  385.  
  386. return PLUGIN_CONTINUE;
  387. }
  388.  
  389. public cmd_jatekosok(id,level,cid)
  390. {
  391. if(!get_pcvar_num(be_ki)) return PLUGIN_HANDLED;
  392. get_players(players, pnum, "h")
  393. for(new i=0; i<pnum; i++) {
  394. new nev[32]
  395. get_user_name(players[i],nev,31)
  396. client_print(id,print_console,"%d: %s-nak/nek a faja: %s.",players[i], nev,CLASSES[pclass[players[i]]])
  397. }
  398. return PLUGIN_CONTINUE;
  399. }
  400.