Code:
#include <amxmodx>
#include <cstrike>
#include <hamsandwich>
#include <fakemeta>
#define VIP_FLAG ADMIN_LEVEL_C | ADMIN_LEVEL_H
enum _:MODEL_DATA
{
WEAPONID,
PATH[128]
}
static const OFFSET_DIFF_LINUX = 4
static const m_pPlayer = 41
static const m_iId = 43
static const VIP_MODELS[][MODEL_DATA] =
{
{-1, "-1"},
{ CSW_M4A1, "models/vip_weapons/v_m4a1.mdl" },
{ CSW_AK47, "models/vip_weapons/v_ak47.mdl" },
{ CSW_AWP, "models/vip_weapons/v_awp.mdl" },
{ CSW_DEAGLE, "models/vip_weapons/v_deagle.mdl" },
{ CSW_USP, "models/vip_weapons/v_usp.mdl" },
{ CSW_FAMAS, "models/vip_weapons/v_famas.mdl" },
{ CSW_SG550, "models/vip_weapons/v_sg550.mdl" },
{ CSW_XM1014, "models/vip_weapons/v_xm1014.mdl" },
}
new WEAPON_POS[31]
new bool:g_bHasAcces[MAX_PLAYERS + 1]
public plugin_init( )
{
register_plugin( "Vip models" , "1.0" , "Aooka" );
for(new i = 0, szWeaponName[32]; i < sizeof(VIP_MODELS); i++)
{
if(VIP_MODELS[i][WEAPONID] == -1)
continue
get_weaponname(VIP_MODELS[i][WEAPONID], szWeaponName, charsmax(szWeaponName))
RegisterHam(Ham_Item_Deploy, szWeaponName, "Ham_Item_Deploy_Post", _:true)
}
}
public client_connect(id)
{
g_bHasAcces[id] = bool:(get_user_flags(id) & VIP_FLAG)
}
public Ham_Item_Deploy_Post(const iWeaponEnt)
{
static iOwner
iOwner = get_pdata_cbase(iWeaponEnt, m_pPlayer, OFFSET_DIFF_LINUX)
if(!g_bHasAcces[iOwner])
{
return HAM_IGNORED
}
static iWeaponID
iWeaponID = get_pdata_cbase(iWeaponID, m_iId, OFFSET_DIFF_LINUX)
if(WEAPON_POS[iWeaponID] != 0)
{
set_pev(iOwner, pev_viewmodel2, VIP_MODELS[WEAPON_POS[iWeaponID]])
}
return HAM_IGNORED
}
public plugin_precache( )
{
for(new i = 0, iPos; i < sizeof(VIP_MODELS); i++)
{
if(file_exists(VIP_MODELS[i][PATH]))
{
precache_model(VIP_MODELS[i][PATH])
iPos = VIP_MODELS[i][WEAPONID]
WEAPON_POS[iPos] = i
} else set_fail_state("Model %s does not exists", VIP_MODELS[i][PATH])
}
}