Garry's Mod Wiki

Revision Difference

GM:PlayerNoClip#511121

<function name="PlayerNoClip" parent="GM" type="hook">⤶ <ishook>yes</ishook>⤶ <description>Called when a player tries to switch noclip mode.</description>⤶ <realm>Shared</realm>⤶ <predicted>Yes</predicted>⤶ <args>⤶ <arg name="ply" type="Player">The person who entered/exited noclip</arg>⤶ <arg name="desiredState" type="boolean">Represents the noclip state (on/off) the user will enter if this hook allows them to.</arg>⤶ </args>⤶ <rets>⤶ <ret name="" type="boolean">Return false to disallow the switch.</ret>⤶ </rets>⤶ </function>⤶ ⤶ <example>⤶ <description>Disable Noclip for all but admins.</description>⤶ <code>⤶ local function DisableNoclip( ply )⤶ return ply:IsAdmin()⤶ end⤶ hook.Add( "PlayerNoClip", "DisableNoclip", DisableNoclip )⤶ </code>⤶ ⤶ </example>⤶ ⤶ ⤶ <example>⤶ <description>Get the player when they enter/exit no clip and display their status</description>⤶ <code>⤶ hook.Add( "PlayerNoClip", "isInNoClip", function( ply, desiredNoClipState )⤶ if ( desiredNoClipState ) then⤶ print( ply:Name() .. " wants to enter noclip." )⤶ else⤶ print( ply:Name() .. " wants to leave noclip." )⤶ end⤶ end )⤶ </code>⤶ <outputfixedwidth>Fixed width</outputfixedwidth>⤶ <output>⤶ Player [1][Player1] true⤶ Player [1][Player2] false⤶ </output>⤶ ⤶ </example>⤶ ⤶ ⤶ <example>⤶ <description>While keeping the default behaviour of admin-only noclip, the following example will also allow anyone to turn it off (if it's set on by a third-party administration addon, for example).</description>⤶ <code>⤶ hook.Add( "PlayerNoClip", "FeelFreeToTurnItOff", function( ply, desiredState )⤶ if ( desiredState == false ) then -- the player wants to turn noclip off⤶ return true -- always allow⤶ elseif ( ply:IsAdmin() ) then⤶ return true -- allow administrators to enter noclip⤶ end⤶ end )⤶ </code>⤶ ⤶ </example>