GM:PostPlayerDraw

From Garry's Mod
Jump to: navigation, search
 GM:PostPlayerDraw( )

Contents

Description

Called after the player was drawn.

NOTE This is a rendering hook with a 3D rendering context.
This means that the only rendering functions will work in it are functions with a 3D rendering context.

Arguments

Player ply

The player that was drawn.

Examples

Example

Show each player's name above their model.

local function DrawName( ply )
	if ( !IsValid( ply ) ) then return end 
	if ( ply == LocalPlayer() ) then return end -- Don't draw a name when the player is you
	if ( !ply:Alive() ) then return end -- Check if the player is alive 
 
	local Distance = LocalPlayer():GetPos():Distance( ply:GetPos() ) --Get the distance between you and the player
	
	if ( Distance < 1000 ) then --If the distance is less than 1000 units, it will draw the name
 
		local offset = Vector( 0, 0, 85 )
		local ang = LocalPlayer():EyeAngles()
		local pos = ply:GetPos() + offset + ang:Up()
	 
		ang:RotateAroundAxis( ang:Forward(), 90 )
		ang:RotateAroundAxis( ang:Right(), 90 )
	 
		
		cam.Start3D2D( pos, Angle( 0, ang.y, 90 ), 0.25 )
			draw.DrawText( ply:GetName(), "HudSelectionText", 2, 2, team.GetColor(ply:Team()), TEXT_ALIGN_CENTER )
		cam.End3D2D()
	end
end
hook.Add( "PostPlayerDraw", "DrawName", DrawName )


Examples

Example

Draw a headcrab hat on all players.

local model = ClientsideModel( "models/headcrabclassic.mdl" )
model:SetNoDraw( true )

hook.Add( "PostPlayerDraw" , "manual_model_draw_example" , function( ply )
	if not IsValid(ply) or not ply:Alive() then return end

	local attach_id = ply:LookupAttachment('eyes')
	if not attach_id then return end
			
	local attach = ply:GetAttachment(attach_id)
			
	if not attach then return end
			
	local pos = attach.Pos
	local ang = attach.Ang
		
	model:SetModelScale(1.1, 0)
	pos = pos + (ang:Forward() * 2.5)
	ang:RotateAroundAxis(ang:Right(), 20)
		
	model:SetPos(pos)
	model:SetAngles(ang)

	model:SetRenderOrigin(pos)
	model:SetRenderAngles(ang)
	model:SetupBones()
	model:DrawModel()
	model:SetRenderOrigin()
	model:SetRenderAngles()

end )


Personal tools
Navigation