
// original post https://forums.alliedmods.net/showpost.php?p=2336207&postcount=26

stock SendWeaponAnim(animation, weapon, owner = 0) 
{
	if(!owner)
	{
		const m_pPlayer = 41; 
		owner = get_pdata_cbase(weapon, m_pPlayer, .linuxdiff = 4); 
	}
	
	set_pev(owner, pev_weaponanim, animation); 

	if(ExecuteHam(Ham_Weapon_UseDecrement, weapon) && engfunc(EngFunc_CanSkipPlayer, owner))
	{
		return;
	}

	message_begin(MSG_ONE, SVC_WEAPONANIM, .player = owner); 
	write_byte(animation); 
	write_byte(pev(weapon, pev_body)); 
	message_end(); 
}

// or if you don't know weapon index:

stock SendWeaponAnim(animation, owner, weapon = 0)
{
	if(!weapon) 
	{
		const m_pActiveItem = 373; 
		weapon = get_pdata_cbase(owner, m_pActiveItem, .linuxdiff = 5); 
	}

	set_pev(owner, pev_weaponanim, animation); 
	if(ExecuteHam(Ham_Weapon_UseDecrement, weapon) && engfunc(EngFunc_CanSkipPlayer, owner))
	{
		return;
	}
	
	message_begin(MSG_ONE, SVC_WEAPONANIM , .player = owner); 
	write_byte(animation); 
	write_byte(pev(weapon, pev_body)); 
	message_end(); 
}





