public plugin_init()
{
register_plugin("Weapon Model Replacement", "0.0.1", "ZP Dev")
//register Ham_Item_Deploy forward for all CS weapons
for (new i = 1; i < sizeof WEAPONENTNAMES; i++)
{
if (WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "OnItemDeployPost", 1);
}
}
// Ham Weapon Deploy Forward
public OnItemDeployPost(ent)
{
// Get weapon's owner
static id; id = fm_cs_get_weapon_ent_owner(ent);
// Valid owner?
if (!pev_valid(id)) return;
// Replace weapon models with custom ones
switch(cs_get_weapon_id(ent))
{
case CSW_AK47:
{
//AK47 custom model
set_pev(id, pev_viewmodel2, "models/v_custom.mdl") //v_ model
set_pev(id, pev_weaponmodel2, "models/p_custom.mdl") //p_ model
}
case CSW_KNIFE:
{
//Knife custom model
}
}
}
// Get Weapon Entity's Owner
fm_cs_get_weapon_ent_owner(ent)
{
// Prevent server crash if entity's private data not initalized
if (pev_valid(ent) != 2) return -1;
return get_pdata_cbase(ent, 41, 4);
}
Code taken from ZP.
If you don't want to use loop for all weapon, then you can register 1 by 1.