Код:
#include <amxmodx>
#include <fun>
#define PLUGIN_VERSION "1.0c"
new health_add
new health_hs_add
new health_max
new health_max_vip
new nKiller
new nKiller_hp
new nHp_add
new nHp_max
new nHp_max_vip
public plugin_init()
{
register_plugin("Vampire", PLUGIN_VERSION, "Finalls")
health_add = register_cvar("amx_vampire_hp", "15")
health_hs_add = register_cvar("amx_vampire_hp_hs", "40")
health_max = register_cvar("amx_vampire_max_hp", "115")
health_max_vip = register_cvar("amx_vampire_max_hp_vip", "200")
register_event("DeathMsg", "hook_death", "a", "1>0")
}
public hook_death()
{
// Killer id
nKiller = read_data(1)
if(!(get_user_flags(nKiller) & ADMIN_LEVEL_H))
return PLUGIN_HANDLED
if ( (read_data(3) == 1) && (read_data(5) == 0) )
{
nHp_add = get_pcvar_num (health_hs_add)
}
else
nHp_add = get_pcvar_num (health_add)
nHp_max = get_pcvar_num (health_max)
nHp_max_vip = get_pcvar_num (health_max_vip)
// Updating Killer HP
nKiller_hp = get_user_health(nKiller)
nKiller_hp += nHp_add
// Maximum HP check
if (!(get_user_flags(nKiller) == ADMIN_LEVEL_H))
{
if (nKiller_hp > nHp_max_vip) nKiller_hp = nHp_max_vip
}else{
if (nKiller_hp > nHp_max) nKiller_hp = nHp_max
}
set_user_health(nKiller, nKiller_hp)
// Hud message "Healed +15/+40 hp"
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(nKiller, "Healed +%d hp", nHp_add)
// Screen fading
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, nKiller)
write_short(1<<10)
write_short(1<<10)
write_short(0x0000)
write_byte(0)
write_byte(0)
write_byte(200)
write_byte(75)
message_end()
return PLUGIN_CONTINUE
}