Revision Difference
halo.Add#528584
<function name="Add" parent="halo" type="libraryfunc">
<description>
Applies a <page>halo</page> glow effect to one or multiple entities.
<warning>Using this function outside of the <page>GM:PreDrawHalos</page> hook can cause instability or crashes.</warning>
<note>The ignoreZ parameter will cause the halos to draw over the player's viewmodel. You can work around this using <page>render.DepthRange</page> in the <page>GM:PreDrawViewModel</page>, <page>GM:PostDrawViewModel</page>, <page>GM:PreDrawPlayerHands</page> and <page>GM:PostDrawPlayerHands</page> hooks.</note>
</description>
<realm>Client</realm>
<file line="13-L33">lua/includes/modules/halo.lua</file>⤶
<args>
<arg name="entities" type="table">A table of entities to add the halo effect to</arg>⤶
<arg name="color" type="table">The desired color of the halo. See <page>Color</page></arg>⤶
<arg name="entities" type="table">A table of entities to add the halo effect to.</arg>⤶
<arg name="color" type="table">The desired color of the halo. See <page>Color</page>.</arg>⤶
<arg name="blurX" type="number" default="2">The strength of the halo's blur on the x axis.</arg>
<arg name="blurY" type="number" default="2">The strength of the halo's blur on the y axis.</arg>
<arg name="passes" type="number" default="1">The number of times the halo should be drawn per frame. Increasing this may hinder player FPS.</arg>
<arg name="passes" type="number" default="1">The number of times the halo should be drawn per frame. **Increasing this may hinder player FPS**.</arg>
<arg name="additive" type="boolean" default="true">Sets the render mode of the halo to additive.</arg>
<arg name="ignoreZ" type="boolean" default="false">Renders the halo through anything when set to true.</arg>
<arg name="ignoreZ" type="boolean" default="false">Renders the halo through anything when set to `true`.</arg>
</args>
</function>
<example>
<description>Adds a halo around all props in the map using an O(n) operation and iterating through unseen objects which can be extremely expensive to process.</description>
<code>
hook.Add( "PreDrawHalos", "AddPropHalos", function()
halo.Add( ents.FindByClass( "prop_physics*" ), Color( 255, 0, 0 ), 5, 5, 2 )
local color_red = Color( 255, 0, 0 )
⤶
hook.Add( "PreDrawHalos", "AddPropHalos", function()
halo.Add( ents.FindByClass( "prop_physics*" ), color_red, 5, 5, 2 )⤶
end )
</code>
<output>
⤶
<image src="halo_example.png" alt="_halo_example.png"/>All the props on the map will be rendered with a red halo, a blur amount of 5, and two passes.
<image src="halo_example.png" alt="_halo_example.png"/>All the props on the map will be rendered with a red halo, a blur amount of 5, and two passes.
</output>
⤶
</example>⤶
⤶
⤶
<example>⤶
</example>⤶
⤶
<example>⤶
<description>Adds a green halo around all admins.</description>
<code>
hook.Add( "PreDrawHalos", "AddStaffHalos", function()
local color_green = Color( 0, 255, 0 )
⤶
hook.Add( "PreDrawHalos", "AddStaffHalos", function()⤶
local staff = {}
local i = 0
local count = 0
for _, ply in ipairs( player.GetAll() ) do
if ( ply:IsAdmin() ) then
i = i + 1
count = count + 1
staff[i] = ply
end
end
halo.Add( staff, Color( 0, 255, 0 ), 0, 0, 2, true, true )
halo.Add( staff, color_green, 0, 0, 2, true, true )
end )
</code>
⤶
</example></example>