Env quadraticbeam: Difference between revisions
Jump to navigation
Jump to search

Important:This entity has no additional KIO other than those that CBaseEntity already offers! Values listed under 'Fields' can only be accessed with an external plugin, or the NetProp manager found in certain VScript-supported titles (
and
).
Note:The CBaseEntity
(Fix vscript example) |
(fix VScript example, "model" keyvalue confirmed doesn't work) |
||
Line 13: | Line 13: | ||
== Notable KIO == | == Notable KIO == | ||
{{Note|The CBaseEntity <code>model</code> keyvalue does not work for setting the sprite, it must be set after spawning.}} | |||
=== Keyvalues === | === Keyvalues === | ||
{{KV|Origin|intn=origin|vector|Start point of the beam}} | {{KV|Origin|intn=origin|vector|Start point of the beam}} | ||
Line 22: | Line 23: | ||
== Spawning via vscript example == | == Spawning via vscript example == | ||
<syntaxhighlight lang=js style="background:initial;"> | <syntaxhighlight lang=js style="background:initial;"> | ||
function SpawnQuadBeam(start, end, control, color="255 0 0", model="sprites/laserbeam.spr") { | function SpawnQuadBeam(start, end, control, color="255 0 0", model="sprites/laserbeam.spr") { | ||
// precache the beam sprite | // precache the beam sprite | ||
PrecacheModel(model) | if (!IsModelPrecached(model)) | ||
PrecacheModel(model) | |||
// spawn the beam and set the start point | // spawn the beam and set the start point | ||
local ent = SpawnEntityFromTable("env_quadraticbeam", { origin = start }) | local ent = SpawnEntityFromTable("env_quadraticbeam", { | ||
origin = start | |||
// model = model //model doesn't work here, need to SetModel after spawning | |||
}) | |||
// set the beam sprite | |||
ent.SetModel(model) | |||
// set the end point for the beam | // set the end point for the beam | ||
Line 43: | Line 50: | ||
// set the beam color | // set the beam color | ||
DoEntFire("!self", "color", color, 0, null, ent) | DoEntFire("!self", "color", color, 0, null, ent) | ||
} | } | ||
//Draw a beam from the players origin point to the nearest prop_dynamic in a 2048hu radius | //Draw a beam from the players origin point to the nearest prop_dynamic in a 2048hu radius | ||
local start_pos = GetListenServerHost().GetOrigin() | local start_pos = GetListenServerHost().GetOrigin() | ||
local end_pos = Entities.FindByClassnameNearest("prop_dynamic", | local end_pos = Entities.FindByClassnameNearest("prop_dynamic", start_pos, 2048).GetOrigin() | ||
//set control point to map origin (0 0 0) | //set control point to map origin (0 0 0) |
Revision as of 14:13, 2 September 2024



![]() |
---|
CEnvQuadraticBeam |
![]() |
![]() |
---|
client side |
C_QuadraticBeam |
![]() |
env_quadraticbeam
is an entity available in all Source games. It is a duplicate of the beam entity, but with ability to arc by using a quadratic equation. It can be used to produce a similar effect to the
physics gun. The formula used to form the curve can be found here.



Fields
m_targetPosition <FIELD_POSITION_VECTOR>
- END point
m_controlPosition <FIELD_POSITION_VECTOR>
- CONTROL point (see picture)
m_scrollRate <FIELD_FLOAT>
- Must be value between -4, 4
m_flWidth <FIELD_FLOAT>
Notable KIO

model
keyvalue does not work for setting the sprite, it must be set after spawning.Keyvalues
- Origin (origin) <vector>
- Start point of the beam
Inputs
- Color <color255 >
- Changes color
Spawning via vscript example
function SpawnQuadBeam(start, end, control, color="255 0 0", model="sprites/laserbeam.spr") {
// precache the beam sprite
if (!IsModelPrecached(model))
PrecacheModel(model)
// spawn the beam and set the start point
local ent = SpawnEntityFromTable("env_quadraticbeam", {
origin = start
// model = model //model doesn't work here, need to SetModel after spawning
})
// set the beam sprite
ent.SetModel(model)
// set the end point for the beam
NetProps.SetPropVector(ent, "m_targetPosition", end)
// set the control point for the curve
NetProps.SetPropVector(ent, "m_controlPosition", control)
NetProps.SetPropFloat(ent, "m_scrollRate", 2)
NetProps.SetPropFloat(ent, "m_flWidth", 5)
// set the beam color
DoEntFire("!self", "color", color, 0, null, ent)
}
//Draw a beam from the players origin point to the nearest prop_dynamic in a 2048hu radius
local start_pos = GetListenServerHost().GetOrigin()
local end_pos = Entities.FindByClassnameNearest("prop_dynamic", start_pos, 2048).GetOrigin()
//set control point to map origin (0 0 0)
local control_pos = Vector()
SpawnQuadBeam(start_pos, end_pos, control_pos)