Kód:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
new sync,frags[33],blink[33],show_hfc[33],on,on_kill,fcolor,fmin,fmax,blink_cvar,blink_time
public plugin_init() {
register_plugin("HUD Frag Counter", "1.2", "<VeCo>")
register_cvar("hfc_version","1.2",FCVAR_SERVER | FCVAR_SPONLY)
on = register_cvar("hfc_on","1")
on_kill = register_cvar("hfc_show_only_on_kill","0")
blink_cvar = register_cvar("hfc_blink","1")
blink_time = register_cvar("hfc_blink_time","2.0")
fcolor = register_cvar("hfc_color","0 255 0")
fmin = register_cvar("hfc_min_frags","3")
fmax = register_cvar("hfc_max_frags","10")
RegisterHam(Ham_Spawn,"player","event_spawn",1)
register_forward(FM_PlayerPreThink,"player_think")
register_event("DeathMsg","hook_death","a")
sync = CreateHudSyncObj()
}
public event_spawn(id)
{
if(!get_pcvar_num(on) || !is_user_alive(id)) return
frags[id] = 0
}
public player_think(id)
{
if(!get_pcvar_num(on) || !is_user_alive(id) || frags[id] < get_pcvar_num(fmin)) return
new color[17],red[5],green[7],blue[5]
get_pcvar_string(fcolor,color,16)
parse(color,red,4,green,6,blue,4)
if(!get_pcvar_num(on_kill))
{
set_hudmessage(str_to_num(red), str_to_num(green), str_to_num(blue), -1.0, 0.45, blink[id], 6.0, 0.1,0.1,0.2,-1)
ShowSyncHudMsg(id,sync,"%i",frags[id])
} else {
if(show_hfc[id])
{
set_hudmessage(str_to_num(red), str_to_num(green), str_to_num(blue), -1.0, 0.45, blink[id], 6.0, 0.1,0.1,0.2,-1)
ShowSyncHudMsg(id,sync,"%i",frags[id])
}
}
}
public hook_death()
{
new killer = read_data(1)
new victim = read_data(2)
if(!get_pcvar_num(on) || get_user_userid(killer) == get_user_userid(victim)) return
if(frags[killer] < get_pcvar_num(fmax)) frags[killer]++
if(get_pcvar_num(blink_cvar))
{
blink[killer] = 1
set_task(get_pcvar_float(blink_time),"remove_blink",killer)
}
if(get_pcvar_num(on_kill))
{
show_hfc[killer] = true
set_task(get_pcvar_float(blink_time),"remove_hfc",killer)
}
}
public remove_blink(id)
{
if(!is_user_connected(id)) return
blink[id] = 0
}
public remove_hfc(id)
{
if(!is_user_connected(id)) return
show_hfc[id] = false
}