Traces
Description
Traces are invisible lines that can be used for stuff like checking if there's empty space in front of the player.
Syntax
_TraceLine()
Arguments:
- vector_start - Start of line. Type: vector
- vector_direction - Rotates the line. Type: vector
- length - Length of the line. Type: number
- ignore - EntID that will not be detected. Type: number
Returns:
Nothing
PlayerLookTrace()
Arguments:
- playerid - PlayerID of player. Type: number
- length - Length of the line. Type: number
Returns:
Nothing
_TraceHit()
Arguments:
Nothing
Returns:
- hit_something - Is true if trace hit something. Type: bool
_TraceHitWorld()
Arguments:
Nothing
Returns:
- hit_world - Is true if trace hit world geometry. Type: bool
_TraceHitNonWorld()
Arguments:
Nothing
Returns:
- hit_entity - Is true if trace hit entity. Type: bool
_TraceDidHitWater()
Arguments:
Nothing
Returns:
- hit_water - Is true if trace hit water. Type: bool
_TraceDidHitHitbox()
Arguments:
Nothing
Returns:
- hit_hitbox - Is true if trace hit hitbox. Type: bool
_TraceDidHitSky()
Arguments:
Nothing
Returns:
- hit_sky - Is true if trace hit skybox. Type: bool
_TraceGetEnt()
Arguments:
Nothing
Returns:
- entid - EntID of entity that was hit by trace. Returns 0 if no entity was found. Type: number
_TraceGetTexture()
Arguments:
Nothing
Returns:
- texture - Texture of surface that was hit by trace. Returns **studio** if no geometry was hit. Type: string
_TraceGetSurfaceNormal()
Arguments:
Nothing
Returns:
- texture - This is probably a normal map of the texture. Type: probably string
_TraceFraction()
Arguments:
Nothing
Returns:
- percentage - Percentage of trace length that something was detected at. Type: number
_TraceEndPos()
Arguments:
Nothing
Returns:
- vector - Vector with the end position of trace. Type: vector
_TraceAttack()
Arguments:
- victim - EntID of target. Type: number
- inflictor - EntID of damage inflictor. Type: number
- attacker - EntID of attacker. Type: number
- amount - Amount of damage. Type: number
Returns:
Nothing
_TraceAttack()
Arguments:
- victim - EntID of target. Type: number
- inflictor - EntID of damage inflictor. Type: number
- attacker - EntID of attacker. Type: number
- amount - Amount of damage. Type: number
Returns:
Nothing
Examples
Laser sight
-- Thanks to Nafrayu for helping me understand this
function laser_sight()
for id = 1, _MaxPlayers() do
PlayerLookTrace(id, 2048)
if _TraceHit() == true and _TraceHitNonWorld() == true then
_TraceAttack(_TraceGetEnt(), id, id, 10)
end
end
end
AddTimer(0, 0, laser_sight)
Bunny Hopping