Revision Difference
GM:EntityEmitSound#511354
<function name="EntityEmitSound" parent="GM" type="hook">⤶
<ishook>yes</ishook>⤶
<description>⤶
Called whenever a sound has been played. This will not be called clientside if the server played the sound without the client also calling <page>Entity:EmitSound</page>.⤶
⤶
<bug issue="1021">This is not called for scripted sequences.</bug>⤶
</description>⤶
<realm>Shared</realm>⤶
<predicted>No</predicted>⤶
<args>⤶
<arg name="data" type="table">Information about the played sound. Changes done to this table can be applied by returning true from this hook.

See <page>EmitSoundInfo</page>.</arg>⤶
</args>⤶
<rets>⤶
<ret name="" type="boolean">Return true to apply all changes done to the data table.⤶
⤶
Return false to prevent the sound from playing.⤶
⤶
Return nil or nothing to play the sound without altering it.</ret>⤶
</rets>⤶
</function>⤶
⤶
<example>⤶
<description>Slows down all sounds to reflect <page>game.SetTimeScale</page>.</description>⤶
<code>⤶
hook.Add( "EntityEmitSound", "TimeWarpSounds", function( t )⤶
⤶
local p = t.Pitch⤶
⤶
if ( game.GetTimeScale() != 1 ) then⤶
p = p * game.GetTimeScale()⤶
end⤶
⤶
if ( GetConVarNumber( "host_timescale" ) != 1 && GetConVarNumber( "sv_cheats" ) &gt;= 1 ) then⤶
p = p * GetConVarNumber( "host_timescale" )⤶
end⤶
⤶
if ( p != t.Pitch ) then⤶
t.Pitch = math.Clamp( p, 0, 255 )⤶
return true⤶
end⤶
⤶
if ( CLIENT && engine.GetDemoPlaybackTimeScale() != 1 ) then⤶
t.Pitch = math.Clamp( t.Pitch * engine.GetDemoPlaybackTimeScale(), 0, 255 )⤶
return true⤶
end⤶
⤶
end )⤶
</code>⤶
⤶
</example>