Optimized version:
Code:
#include <amxmodx>
#include <fakemeta>
#include <zombieplague>
#include <hamsandwich>
#define VIPFLAG ADMIN_LEVEL_H
enum
{
SCOREATTRIB_ARG_PLAYERID = 1,
SCOREATTRIB_ARG_FLAGS
}
enum (<<= 1)
{
SCOREATTRIB_FLAG_NONE = 0,
SCOREATTRIB_FLAG_DEAD,
SCOREATTRIB_FLAG_BOMB,
SCOREATTRIB_FLAG_VIP
}
new g_iExtraHealth, g_iExtraArmor, g_iStartHealth, g_iStartArmor
public plugin_init()
{
register_plugin("Simple VIP", "0.1", "Alliedmodders")
RegisterHam(Ham_Spawn, "player", "OnPlayerSpawnPost", 1)
RegisterHam(Ham_Killed, "player", "OnPlayerKilled")
g_iExtraHealth = register_cvar("sv_extra_HP", "15")
g_iExtraArmor = register_cvar("sv_extra_armor", "15")
g_iStartHealth = register_cvar("sv_start_HP", "150")
g_iStartArmor = register_cvar("sv_start_armor", "100")
register_message(get_user_msgid("ScoreAttrib"), "OnScoreAttrib")
}
public OnPlayerSpawnPost(id)
{
if(is_user_alive(id) && !zp_get_user_zombie(id) && get_user_flags(id) & VIPFLAG)
{
set_pev(id, pev_health, get_pcvar_float(g_iStartHealth))
set_pev(id, pev_armorvalue, get_pcvar_float(g_iStartArmor))
}
}
public OnPlayerKilled(victim, attacker)
{
if(!is_user_alive(attacker) || victim == attacker)
return
if(!zp_get_user_zombie(attacker) && get_user_flags(attacker) & VIPFLAG)
{
set_pev(attacker, pev_health, pev(attacker, pev_health) + get_pcvar_float(g_iExtraHealth))
set_pev(attacker, pev_armorvalue, pev(attacker, pev_armorvalue) + get_pcvar_float(g_iExtraArmor))
}
}
public OnScoreAttrib()
{
new id = get_msg_arg_int(SCOREATTRIB_ARG_PLAYERID)
if(get_user_flags(id) & VIPFLAG) set_msg_arg_int(SCOREATTRIB_ARG_FLAGS, ARG_BYTE, SCOREATTRIB_FLAG_VIP);
}