/*
Alap: Kezdõ hp: a = 200
+ hp: b = 100
törlés: Halálkor
vissza töltõdés: vki meghal, kör elején
+ adotság: Korlátozás: Max = 1200 HP
Kapzsi: Kezdõ hp: 3b = 300
+ hp: c = 10
törlés: Soha
vissza töltõdés: vki meghal, kör elején
+ adotság: Nincs
1x fent, 1x lent: Kezdõ hp: b =100
+ hp: 2a = 400
törlés: Kör elején
vissza töltõdés: vki meghal, kör elején
+ adotság: Korlátozás: Max = 1200 HP
Láma: Kezdõ hp: 3a = 600
+ hp: 0
törlés: Kör elején
vissza töltõdés: vki meghal, kör elején
+ adotság: Nincs
Pro: Kezdõ hp: 1
+ hp: 5a = 1000
törlés: Halálkor
vissza töltõdés: vki meghal, kör elején
+ adotság: Korlátozás: Max = 2001 HP
Kemény: Kezdõ hp: 5a + 5b = 1500
+ hp: 0
törlés: Kör elején
vissza töltõdés: csak kör elején
+ adotság: Nincs
Gránátos: Kezdõ hp: 3b = 300
+ hp: c = 10
törlés: Halálkor
vissza töltõdés: vki meghal, kör elején
+ adotság: Kap 1 HE, 1 SG és 1 Flas gránátot, ha meghal valaki, vagy kör eleje van.
Leállíthatatlan Kezdõ hp: 25a = 5000
+ hp: 2b = 200
törlés: Kör elején
vissza töltõdés: 10 mp-ként, kör elején
+ adotság: 10 mp-ként b = 100 Hp-t veszít
*/
#include <amxmodx>
#include <amxmisc>
#include <fun>
#define PLUGIN "HP mod"
#define VERSION "1.0"
#define AUTHOR "VP" // Vagy: Itep
new players[32], pnum, hp, pl[32], pclass[32], pci[32]
new a_elet, b_elet, be_ki, vote_ido, c_elet
new HPVoteMenu, HPVotes[2], HPVoting
new const CLASSES[8][] = {
"Alap", // 0
"Kapzsi", // 1
"1x fent, 1x lent", // 2
"La'ma", // 3
"Pro", // 4
"Keme'ny", // 5
"Gra'na'tos", // 6
"Lea'lli'thatatlan" // 7
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
set_task(0.5,"elet",0,"param",1,"b")
set_task(10.0,"lea",1,"param",1,"b")
register_logevent("round_start", 2, "0=World triggered", "1=Round_Start")
register_event("DeathMsg","halal","a")
register_concmd("hp_vote", "StartVote")
register_concmd("hp_jatekosok", "cmd_jatekosok")
register_clcmd("say /faj", "ChangeClass")
register_clcmd("say_team /faj", "ChangeClass")
register_clcmd("hp_faj", "cmd_faj", ADMIN_SLAY,"<Id> <Faj (0-8)>")
a_elet = register_cvar("hp_a_elet","200")
b_elet = register_cvar("hp_b_elet","100")
c_elet = register_cvar("hp_c_elet", "10")
be_ki = register_cvar("hp_mod","0")
vote_ido = register_cvar("hp_vote_ido", "15.0")
set_task(15.0, "StartVote")
}
public cmd_faj(id,level,cid)
{
if(!get_pcvar_num(be_ki)) return PLUGIN_HANDLED;
if (!cmd_access(id,level,cid,3)) return PLUGIN_HANDLED;
new arg1[3]
new arg2[3]
read_argv(1,arg1,2)
read_argv(2,arg2,2)
new player = str_to_num(arg1)
new fajid = str_to_num(arg2)
if ((player<33) && (player>0) && (fajid<9) && (fajid>-1)) {
pci[player]=fajid
client_print(player,print_chat,"Kovetkezo kortol a te uj fajod: %s",CLASSES[fajid])
new nev[32]
get_user_name(player,nev,31)
client_print(id,print_console,"Kovetkezo kortol %s-nek az uj faja: %s",nev,CLASSES[fajid])
} else {
console_print(id," Nem lehet! ")
return PLUGIN_HANDLED
}
return PLUGIN_HANDLED
}
public ChangeClass(id)
{
if(!get_pcvar_num(be_ki)) return PLUGIN_HANDLED;
new menu = menu_create("Faj Menu" , "Class_Handle")
menu_additem(menu ,"Alap", "0" , 0)
menu_additem(menu ,"Kapzsi", "1" , 0)
menu_additem(menu ,"1x fent, 1x lent", "2" , 0)
menu_additem(menu ,"La'ma", "3" , 0)
menu_additem(menu ,"Pro", "4" , 0)
menu_additem(menu ,"Keme'ny", "5" , 0)
menu_additem(menu ,"Gra'na'tos", "6" , 0)
menu_additem(menu ,"Lea'li'thatatlan", "7" , 0)
menu_setprop(menu , MPROP_EXIT , MEXIT_ALL)
menu_display(id , menu , 0)
return PLUGIN_CONTINUE;
}
public Class_Handle(id , menu , item)
{
if(item == MENU_EXIT) menu_destroy(menu)
new data[6], szName[64]
new aces, callback
menu_item_getinfo(menu, item, aces, data,charsmax(data), szName,charsmax(szName), callback)
new i = str_to_num(data)
pci[id] = i
client_print(id,print_chat,"Kovetkezo kortol a te uj fajod: %s",CLASSES[i])
menu_destroy(menu)
return PLUGIN_CONTINUE;
}
public vp_hp(elet)
{
get_players(players, pnum, "ah")
for(new i=0; i<pnum; i++) {
switch(pclass[players[i]]) {
case 0: {
if (pl[players[i]]>10) pl[players[i]]=10 // Korlátozás: Max = 1200 HP
set_user_health(players[i],elet + pl[players[i]]*get_pcvar_num(b_elet)) //Alap
}
case 1: {
set_user_health(players[i],3*get_pcvar_num(b_elet) + pl[players[i]]*get_pcvar_num(c_elet)) //Kapzsi
}
case 2: {
if (pl[players[i]]>3) pl[players[i]]=3 // Korlátozás: Max = 1500 HP
set_user_health(players[i],get_pcvar_num(b_elet) + pl[players[i]]*get_pcvar_num(a_elet)*2) //1xFent1xLent
}
case 3: {
set_user_health(players[i],3*elet) // Láma
}
case 4: {
if (pl[players[i]]>2) pl[players[i]]=2 // Korlátozás: Max = 2001 HP
set_user_health(players[i],1 + pl[players[i]]*get_pcvar_num(a_elet)*5) //Pro
}
/* case 5: {
Csak kör elején kap Hp-t! //Kemény
} */
case 6: {
set_user_health(players[i],3*get_pcvar_num(b_elet) + pl[players[i]]*get_pcvar_num(c_elet) ) //Gránátos
give_item(players[i],"weapon_hegrenade")
give_item(players[i],"weapon_smokegrenade")
give_item(players[i],"weapon_flashbang")
}
/* case 7: {
Csak kör elején kap Hp-t! //Leállíthatatlan
} */
}
}
return PLUGIN_CONTINUE
}
public StartVote(id)
{
if( HPVoting )
{
client_print(id, print_chat, "Sajnalom, a szavazas mar folyamatban van!")
return PLUGIN_HANDLED;
}
HPVoteMenu = menu_create("\rLegyen HP mod?", "mh")
menu_additem(HPVoteMenu, "Legyen!", "0", 0)
menu_additem(HPVoteMenu, "Ne legyen.", "1", 0)
new tempid
get_players(players, pnum)
for( new i; i<pnum; i++ )
{
tempid = players[i]
menu_display(tempid, HPVoteMenu, 0)
HPVoting++;
}
new Float:ido = get_pcvar_float(vote_ido)
set_task(ido, "EndVote")
return PLUGIN_CONTINUE;
}
public mh(id, menu, item)
{
if( item == MENU_EXIT || !HPVoting )
{
return PLUGIN_HANDLED;
}
new data[6], szName[64]
new aces, callback
menu_item_getinfo(menu, item, aces, data,charsmax(data), szName,charsmax(szName), callback)
new voteid = str_to_num(data)
HPVotes[voteid]++
return PLUGIN_CONTINUE;
}
public EndVote()
{
client_print(0, print_chat, "%d ember szeretne HP mod-ozni!", HPVotes[0] )
client_print(0, print_chat, "%d ember nem szerten HP mod-ozni!", HPVotes[1] )
if( HPVotes[0] > HPVotes[1] ) {
set_pcvar_num(be_ki, 1)
vp_hp(get_pcvar_num(a_elet))
} else if( HPVotes[0] < HPVotes[1] ) set_pcvar_num(be_ki, 0)
else client_print(0, print_chat, "A szavazas sikertelen!")
menu_destroy(HPVoteMenu)
HPVoting = 0;
}
public elet(param)
{
get_players(players, pnum, "ah")
for(new i=0; i<pnum; i++) {
hp = get_user_health(players[i])
new b
if (hp>255) {
set_hudmessage(85, 255, 85, 0.035, 0.9)
show_hudmessage(players[i], "%d HP", hp)
b = 1
} else if (b==1) {
set_hudmessage(85, 255, 85, 0.035, 0.9)
show_hudmessage(players[i], " ")
b = 0
}
}
}
public lea(param)
{
get_players(players, pnum, "ah")
for(new i=0; i<pnum; i++)
if (pclass[players[i]] == 7) {
if (get_user_health(players[i]) > 100)
set_user_health(players[i],get_user_health(players[i])-get_pcvar_num(b_elet)+get_pcvar_num(b_elet)*2*pl[players[i]])
pl[players[i]] = 0
}
}
public round_start()
{
if(!get_pcvar_num(be_ki)) return PLUGIN_HANDLED;
get_players(players, pnum, "ah")
for(new i=0; i<pnum; i++) {
if (pclass[players[i]] != pci[players[i]]) {
pclass[players[i]] = pci[players[i]]
pl[players[i]]=0
}
switch(pclass[players[i]]) {
/* case 0: {
Halálkor törlõdik //Alap
} */
/* case 1: {
Soha nem törlõdik. //Kapzsi
} */
case 2: {
pl[players[i]] = 0 //1xFent1xLent
}
case 3: {
pl[players[i]] = 0 // Láma
}
/* case 4: {
Halálkor törlõdik //Pro
} */
case 5: {
pl[players[i]] = 0 //Kemény
}
/* case 6: {
Halálkor törlõdik //Gránátos
} */
case 7: {
pl[players[i]] = 0 //Leállíthatatlan
}
}
client_print(players[i], print_chat, "A fajod: %s", CLASSES[pclass[players[i]]])
client_print(players[i], print_chat, "/faj parancsal tudod meváltoztatni.")
if (pclass[players[i]] == 5) set_user_health(players[i],5*get_pcvar_num(a_elet) + 5*get_pcvar_num(b_elet))
if (pclass[players[i]] == 7) set_user_health(players[i],get_pcvar_num(a_elet)*25 - pl[players[i]]*get_pcvar_num(b_elet))
}
vp_hp(get_pcvar_num(a_elet))
return PLUGIN_CONTINUE;
}
public halal()
{
if(!get_pcvar_num(be_ki)) return PLUGIN_HANDLED;
new tamado = read_data( 1 )
new halott = read_data( 2 )
new headshot = read_data( 3 )
client_print(halott, print_chat, "A tamadod a %d HP-javal a %s fajba tartozik.", get_user_health(tamado), CLASSES[pclass[tamado]])
if (tamado != 0) client_print(tamado, print_chat, "Akit megoltel az a(z) %s fajba tartozik.", CLASSES[pclass[halott]])
if(get_user_team(tamado) != get_user_team(halott)) {
pl[tamado]++
if (headshot) pl[tamado]++
}
vp_hp(get_pcvar_num(a_elet))
switch(pclass[halott]) {
case 0: {
pl[halott] = 0 //Alap
}
/* case 1: {
Soha nem törlõdik. //Kapzsi
} */
/* case 2: {
Kör elején törlõdik //1xFent1xLent
} */
/* case 3: {
Kör elején törlõdik // Láma
} */
case 4: {
pl[halott] = 0 //Pro
}
/* case 5: {
Kör elején törlõdik //Kemény
} */
case 6: {
pl[halott] = 0 //Gránátos
}
/* case 7: {
Kör elején törlõdik // Leállíthatatlan
} */
}
return PLUGIN_CONTINUE;
}
public cmd_jatekosok(id,level,cid)
{
if(!get_pcvar_num(be_ki)) return PLUGIN_HANDLED;
get_players(players, pnum, "h")
for(new i=0; i<pnum; i++) {
new nev[32]
get_user_name(players[i],nev,31)
client_print(id,print_console,"%d: %s-nak/nek a faja: %s.",players[i], nev,CLASSES[pclass[players[i]]])
}
return PLUGIN_CONTINUE;
}