#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>
#include <zombieplague>
const OFFSET_ACTIVE_ITEM = 373
const OFFSET_WEAPONOWNER = 41
const OFFSET_LINUX = 5
const OFFSET_LINUX_WEAPONS = 4
new mp5tiger_V_MODEL[64] = "models/swat/v_mp5t.mdl"
new mp5tiger_P_MODEL[64] = "models/swat/p_mp5t.mdl"
new mp5tiger_W_MODEL[64] = "models/swat/w_mp5t.mdl"
new const mp5tiger_name[] = "weapon_mp5tiger_lars"
new const mp5tiger_spr[][] =
{
"sprites/swat/640hud46.spr",
"sprites/swat/640hud7.spr"
}
new gmsgWeaponList
new const WEAPONENTNAMES[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10",
"weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550",
"weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
"weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",
"weapon_ak47", "weapon_knife", "weapon_p90" }
public plugin_init()
{
register_plugin("[ZP] MP5 Tiger", "1.0", "LARS-BLOODLIKER")
for (new i = 1; i < sizeof WEAPONENTNAMES; i++)
if (WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "fw_Item_Deploy_Post", 1)
register_forward(FM_SetModel, "fw_SetModel")
RegisterHam(Ham_Item_AddToPlayer, "weapon_mp5navy", "fw_mp5tiger_AddToPlayer")
gmsgWeaponList = get_user_msgid("WeaponList")
register_clcmd(mp5tiger_name, "command_mp5tiger")
}
public plugin_precache()
{
precache_model(mp5tiger_V_MODEL)
precache_model(mp5tiger_P_MODEL)
precache_model(mp5tiger_W_MODEL)
new sFile[64]
formatex(sFile, charsmax(sFile), "sprites/%s.txt", mp5tiger_name)
for(new i = 0; i < sizeof(mp5tiger_spr); i++)
{
precache_generic(mp5tiger_spr[i])
}
}
public command_mp5tiger(Player)
{
engclient_cmd(Player, "weapon_mp5navy")
return PLUGIN_HANDLED
}
public fw_SetModel(entity, model[])
{
if(!is_valid_ent(entity))
return FMRES_IGNORED
static szClassName[33]
entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
if(!equal(szClassName, "weaponbox"))
return FMRES_IGNORED
if(equal(model, "models/w_mp5.mdl"))
{
entity_set_model(entity, mp5tiger_W_MODEL)
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}
public fw_mp5tiger_AddToPlayer(id)
{
if(!is_user_connected(id))
return HAM_IGNORED
message_begin(MSG_ONE, gmsgWeaponList, _, id)
write_string(mp5tiger_name)
write_byte(10)
write_byte(120)
write_byte(-1)
write_byte(-1)
write_byte(0)
write_byte(7)
write_byte(CSW_MP5NAVY)
message_end()
return HAM_IGNORED
}
public fw_Item_Deploy_Post(weapon_ent)
{
static owner
owner = fm_cs_get_weapon_ent_owner(weapon_ent)
static weaponid
weaponid = cs_get_weapon_id(weapon_ent)
replace_weapon_models(owner, weaponid)
}
replace_weapon_models(id, weaponid)
{
switch (weaponid)
{
case CSW_MP5NAVY:
{
if (zp_get_user_zombie(id) || zp_get_user_survivor(id))
return
set_pev(id, pev_viewmodel2, mp5tiger_V_MODEL)
set_pev(id, pev_weaponmodel2, mp5tiger_P_MODEL)
message_begin(MSG_ONE, gmsgWeaponList, _, id)
write_string(mp5tiger_name)
write_byte(10)
write_byte(120)
write_byte(-1)
write_byte(-1)
write_byte(0)
write_byte(7)
write_byte(CSW_MP5NAVY)
message_end()
}
}
}
stock fm_cs_get_current_weapon_ent(id)
{
return get_pdata_cbase(id, OFFSET_ACTIVE_ITEM, OFFSET_LINUX)
}
stock fm_cs_get_weapon_ent_owner(ent)
{
return get_pdata_cbase(ent, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS)
}