Garry's Mod Wiki

Revision Difference

Global.IsFirstTimePredicted#514873

<function name="IsFirstTimePredicted" parent="Global" type="libraryfunc">⤶ <description>⤶ Returns if this is the first time this hook was predicted.⤶ ⤶ This is useful for one-time logic in your SWEPs PrimaryAttack, SecondaryAttack and Reload and other (to prevent those hooks from being called rapidly in succession). It's also useful in a Move hook for when the client predicts movement.⤶ ⤶ Visit <page>Prediction</page> for more information about this behavior.⤶ ⤶ <note>This is already used internally for <page>Entity:EmitSound</page>, <page>Weapon:SendWeaponAnim</page> and <page>Entity:FireBullets</page>, but NOT in <page>util.Effect</page>.</note>⤶ </description>⤶ <realm>Shared</realm>⤶ <rets>⤶ <ret name="" type="boolean">Whether or not this is the first time being predicted.</ret>⤶ </rets>⤶ </function>⤶ ⤶ <example>⤶ <description>An override for <page>GM:KeyPress</page> in the gamemode Trouble in Terrorist Town, to work around the hook being called multiple times.</description>⤶ <code>⤶ -- Note that for some reason KeyPress and KeyRelease are called multiple times⤶ -- for the same key event in multiplayer.⤶ function GM:KeyPress(ply, key)⤶ if not IsFirstTimePredicted() then return end⤶ if not IsValid(ply) or ply != LocalPlayer() then return end⤶ ⤶ if key == IN_SPEED and ply:IsActiveTraitor() then⤶ timer.Simple(0.05, function() RunConsoleCommand("+voicerecord") end)⤶ end⤶ end⤶ </code>⤶ ⤶ </example>