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 (
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
 and  ).
).
 Note:The CBaseEntity
Note:The CBaseEntity 
		
	
| m (→Inputs:  Substituted IO templates) | MyGamepedia (talk | contribs)   (Should work in other games.) | ||
| (2 intermediate revisions by 2 users not shown) | |||
| Line 2: | Line 2: | ||
| {{Ent not in fgd|nolink=1|because=it is only configurable via code or [[vscript]]}} | {{Ent not in fgd|nolink=1|because=it is only configurable via code or [[vscript]]}} | ||
| {{CD|CEnvQuadraticBeam|file1=1}} | {{CD|CEnvQuadraticBeam|file1=1}} | ||
| {{CD|C_QuadraticBeam| | {{CD|C_QuadraticBeam|client=1|base=C_BaseEntity|file1=1}} | ||
| {{this is a|[[entity]]|name=env_quadraticbeam}} It is a duplicate of the {{ent|beam}} entity, but with ability to arc by using a quadratic equation.  It can be used to produce a similar effect to the {{gmod}} physics gun.  The formula used to form the curve can be found [https://github.com/ValveSoftware/source-sdk-2013/blob/0d8dceea4310fde5706b3ce1c70609d72a38efdf/mp/src/game/client/beamdraw.cpp#L1489 here]. | {{this is a|[[entity]]|name=env_quadraticbeam}} It is a duplicate of the {{ent|beam}} entity, but with ability to arc by using a quadratic equation.  It can be used to produce a similar effect to the {{gmod}} physics gun.  The formula used to form the curve can be found [https://github.com/ValveSoftware/source-sdk-2013/blob/0d8dceea4310fde5706b3ce1c70609d72a38efdf/mp/src/game/client/beamdraw.cpp#L1489 here]. | ||
| {{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 ({{tf2}} and {{l4d2}}).}} | {{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 ({{tf2}} and {{l4d2}}).}} | ||
| {{bug|Disappears if the end and control positions are outside the player's view field.|tested={{bms}}}} | |||
| == Fields == | == Fields == | ||
Latest revision as of 06:10, 18 June 2025

 

|  Class hierarchy | 
|---|
| CEnvQuadraticBeam | 
|  effects.cpp | 
|  Class hierarchy (client) | 
|---|
| C_QuadraticBeam | 
|  c_effects.cpp | 
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
 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.
 physics gun.  The formula used to form the curve can be found here.
 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 (
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
 and  ).
).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
 Note:The CBaseEntity
Note:The CBaseEntity 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)



























