Revision Difference
WEAPON:FireAnimationEvent#512155
<function name="FireAnimationEvent" parent="WEAPON" type="hook">⤶
<ishook>yes</ishook>⤶
<description>⤶
Called before firing animation events, such as muzzle flashes or shell ejections.⤶
⤶
This will only be called serverside for 3000-range events, and clientside for 5000-range and other events.⤶
</description>⤶
<realm>Shared</realm>⤶
<predicted>No</predicted>⤶
<args>⤶
<arg name="pos" type="Vector">Position of the effect.</arg>⤶
<arg name="ang" type="Angle">Angle of the effect.</arg>⤶
<arg name="event" type="number">The event ID of happened even. See [this page](http://developer.valvesoftware.com/wiki/Animation_Events).</arg>⤶
<arg name="options" type="string">Name or options of the event.</arg>⤶
</args>⤶
<rets>⤶
<ret name="" type="boolean">Return true to disable the effect.</ret>⤶
</rets>⤶
</function>⤶
⤶
<example>⤶
<description>Disables muzzle flashes. Taken from tool gun source code.</description>⤶
<code>⤶
function SWEP:FireAnimationEvent( pos, ang, event, options )⤶
⤶
-- Disables animation based muzzle event⤶
if ( event == 21 ) then return true end ⤶
⤶
-- Disable thirdperson muzzle flash⤶
if ( event == 5003 ) then return true end⤶
⤶
end⤶
</code>⤶
⤶
</example>⤶
⤶
⤶
<example>⤶
<description>Counter-Strike: Source like muzzle flashes.</description>⤶
<code>⤶
function SWEP:FireAnimationEvent( pos, ang, event, options )⤶
⤶
if ( !self.CSMuzzleFlashes ) then return end⤶
⤶
-- CS Muzzle flashes⤶
if ( event == 5001 or event == 5011 or event == 5021 or event == 5031 ) then⤶
⤶
local data = EffectData()⤶
data:SetFlags( 0 )⤶
data:SetEntity( self.Owner:GetViewModel() )⤶
data:SetAttachment( math.floor( ( event - 4991 ) / 10 ) )⤶
data:SetScale( 1 ) -- Change me⤶
⤶
if ( self.CSMuzzleX ) then⤶
util.Effect( "CS_MuzzleFlash_X", data )⤶
else⤶
util.Effect( "CS_MuzzleFlash", data )⤶
end⤶
⤶
return true⤶
end⤶
⤶
end⤶
</code>⤶
⤶
</example>