Work fine:
PHP Code:
// Now include
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
// http://wiki.alliedmods.net/CBasePlayerItem_%28CS%29
// m_pPlayer 41 45 +4 CBasePlayer* ( get_pdata_cbase() )
#define m_pPlayer 41
#define CBasePlayerItem 4
// Precache
public plugin_precache()
{
// Precache model if needed
//precache_model("models/v_ak47.mdl");
//precache_model("models/p_ak47.mdl");
//precache_model("models/w_ak47.mdl");
}
// Init
public plugin_init()
{
// Register SetModel forward (PRE)
register_forward(FM_SetModel, "SetModelPre", 0);
// Register Deploy weapon_c4 forward (POST)
RegisterHam(Ham_Item_Deploy, "weapon_c4", "C4DeployPost", 1);
}
// Hook setmodel (PRE)
public SetModelPre(pEntity, const szModel[])
{
// If modelname not equal c4 model...
if (!equal(szModel, "models/w_c4.mdl"))
return FMRES_IGNORED;
// Now set new model
entity_set_model(pEntity, "models/w_ak47.mdl");
// Block
return FMRES_SUPERCEDE;
}
// Hook deploy c4 (POST)
public C4DeployPost(pEntity)
{
// Now get owner of weapon from private data (from variable m_pPlayer of CBasePlayerItem class)
new pPlayer = get_pdata_cbase(pEntity, m_pPlayer, CBasePlayerItem);
// Now set view and player model (v_ and p_)
entity_set_string(pPlayer, EV_SZ_viewmodel, "models/v_ak47.mdl");
entity_set_string(pPlayer, EV_SZ_weaponmodel, "models/p_ak47.mdl");
}
__________________