This article's documentation is for anything that uses the Source engine. Click here for more information.

env_beam

From Valve Developer Community
Jump to: navigation, search
English (en)中文 (zh)
... Icon-Important.png
env_beam效果.

env_beam is a point entity available in all Source Source games.在两个实体间产生一道能量光束,外表呈直线或者环形。类似于env_laser

Icon-Bug.pngBug:绑定父级实体将无效,使用env_laserlogic_measure_movement则可行。
Blank image.pngTodo: 哈?哪个游戏?反正csgo可行!
Icon-Bug.pngBug:Team Fortress 2 info_target, info_landmarkpath_corner似乎不能作为此实体的起始点和结束点(start/end points), info_teleport_destination是一种解决方案。
Tip.pngTip:结束点与结束实体或起始点与起始实体是同一个概念。
In code, it is represented by theCEnvBeamclass, defined in theEnvBeam.cppfile.

用法注意

起始点和结束点(start/end points)可以是任意实体。除了内部实体或者其他会自动移除自己的实体。比如info_null. 如果起始点和结束点实体都被删除了,那么能量光束将会失效! 开发者们可以设置多个起始点和结束点,通过给多个实体设置同一名字。env_beam每次strike(震动)都会从其中随机选一个作为起始/结束点。如果省略了任意点的名字,那么每次strike会随机选取半径内的固体面作为其中的点。(在Radius属性指定)。如果两个点都被省略,那么起始和初始点将会是 env_beam 实体本身的中心点。 这样的随机光束不会产生伤害。

光束会一直从起始点到结束点可见,即使穿过了固体面。光束的伤害会被第一个接触固体所吸收,如果Life大于0,那么光束只会处理伤害一次同时也是停留时间,当这个元素 (Life 为 0) 会逐渐造成伤害并永久停留可见。

标签/Flags

Beam:

  • 1: Start On - 地图生成的时候就自动启动。
  • 2: Toggle - 废弃的。在起源引擎中被Toggle 输入替代。用于beam的开关。
  • 4: Random Strike - 当光束“死亡”后,会自动根据Strike again time (secs)键值来strike。
  • 8: Ring - 以起始点到结束点的距离作为半径,绘制一个环形光束。
  • 16: StartSparks - 每次光束启动或者strike,光束会在 Start Entity起始实体上产生一个小火花。
  • 32: EndSparks - 同上,但是是Ending Entity结束实体。
  • 64: Decal End - 在光束strike到第一个物体上(固体或实体)产生一个火焰灰烬烧焦贴图效果。根据 Decal Name 设置你想要的贴图。
  • 128: Shade Start - 光束向Start Entity起始实体方向淡出。会覆盖Shade End,Strike时和环形光束不起作用。
  • 256: Shade End - 同上,是结束实体。strike时(life >0)和环形光束不起作用。
  • 512: Taper Out -使光束向Ending Entity发生位移?。 strike时(life >0)和环形光束不起作用。

键值

Tip.pngTip:strike与持续时间有本质区别!
Radius (Radius) <integer> | 整数
如果Start Entity 和/或者Ending Entity 的键值没有被设置,此半径会确定一点随机strike的位置。并且每次strike会随机采用一个位置。
Life (seconds 0 = 无限) (life) <string简体中文> | 字符串
光束的持续时间。设置为0,那么光束会一直停留显示。
Width of beam (BoltWidth) <float> | 浮点型
光束的宽度,单位像素。范围: 1 至 25.5f
Frames per 10 seconds (framerate) <integer> | 整数
光束材质动画的帧数,如果它支持多帧。
Strike again time (secs) (StrikeTime) <string简体中文> | 字符串
光束重新strike的时间。 标签'Random Strike'需要被勾选才生效。
Start Entity (LightningStart) <target_destination/目标实体>
光束起始点。如果未指定会根据Radius值设置,每次strike都会随机一个新的位置。 详见上面的用法注意。
Ending Entity (LightningEnd) <target_destination/目标实体>
光束结束点。如果未指定会根据Radius值设置,每次strike都会随机一个新的位置。 详见上面的用法注意。
Decal Name (decalname) <string简体中文> | 字符串
strike物体时的灰烬贴图。
Touch Type (tripwire) (TouchType) <choices>
如果你想让光束碰到其他实体时触发输出,选择实体类型:
  • 0: Not a tripwire
  • 1: Player Only/仅限玩家
  • 2: NPC Only/仅限NPC
  • 3: Player or NPC/玩家或NPC
  • 4: Player or NPC or Physprop/玩家或NPC或物理道具
Filter Name (filtername) <filter> | 过滤器
过滤器,用于过滤可触发的实体。
Endpoint handle (targetpoint) <vector> | 向量
如果Ending Entity未被指定,将此点作为目标点。如果光束实体运动了,此点也会运动。

Beam:

Brightness (1 - 255) (renderamt) <integer> | 整数
误导名称!这是beam的透明度。0为完全不可见。
Beam Color (R G B) (rendercolor) <color255简体中文>
Beam 颜色。
Damage/second (damage) <string简体中文> | 字符串
光束持续中的每秒伤害。或者一次strike时的伤害。持续伤害应该设置为10以上。
Note.pngNote:伤害会根据难度而调整!
  • Easy: 50%
  • Normal: 100%
  • Hard: 150%
HDR color scale (HDRColorScale) <float> | 浮点型
HDR模式下会乘以光束的颜色的值。
Beam clipping (ClipStyle) <choices>
几何切割形状样式。
  • 0: Do not clip (default)
  • 1: Clip to geometry/
  • 2: Clip to everything solid
Dissolve Type (dissolvetype) <choices>
当其造成伤害并杀死物体时,会对周围显示效果:
  • -1: None
  • 0: Energy
  • 1: Heavy Electrical
  • 2: Light Electrical
Amount of noise (0-255) (NoiseAmplitude) <float> | 浮点型
噪点。0为非常直的光束,255则充满锯齿效果。范围: 0 至 64.
Note.pngNote:虽然声明可以是255,但是最大值其实是60,超过60会默认成60。
Sprite Name (texture) <sprite>
光束的材质。
Texture Scroll Rate (0-100) (TextureScroll) <integer> | 整数
光束材质沿着光束滚动率。 范围: 0 至 100.0f.
Starting Frame (framestart) <integer> | 整数
光束生成的指定材质帧数(如果有)。

Base/基础:
Name (targetname) <string简体中文> | 字符串
其他实体用来指代该实体的名称。
Parent简体中文 (parentname) <targetname> | 目标名
实体的父级实体,该实体可以与父实体保持移动偏移。名称后面可以添加一个附属点,以逗号隔开。 (parentname [targetname],[attachment]
Tip.pngTip:转换至下一张地图的实体关系会依然存在。
Tip.pngTip:一些不适合做父实体的实体可能难以运行,利用phys_constraint可以解决。
Origin (X Y Z) (origin) <coordinates>
实体处于世界中的位置,旋转实体会以实体坐标原点旋转。
Note.pngNote:Hammer 不会仅在编辑器中相应地移动实体。
Pitch Yaw Roll (X Y Z) (angles) <angle>
实体在世界中的方位,Pitch围绕X轴旋转,可以称为俯仰角。Yaw围绕Z轴旋转,可以称为偏航角,roll围绕Y轴旋转。
Note.pngNote:尽管 Hammer 不显示新角度,但其仍然适用于固实体。
Classname (classname) <string简体中文> | 字符串 不存在于FGD!
确定实体之前它生成的特征。
Tip.pngTip:使用AddOutput输入更改 Classname 仍然会影响游戏的代码,例如使类名与 S_PreserveEnts 列表中的一个元素匹配将使实体在新一轮中持续存在!
Flags (spawnflags) <integer> | 整数 不存在于FGD!
实体所具有的标志/标签,依实体所具有而定。
Effects (effects) <integer> | 整数 不存在于FGD!
要使用的效果标志的组合。
Entity Scripts简体中文 (vscripts) <scriptlist> | 脚本列表 (存在于自 Left 4 Dead 2 以来)
在所有实体生成后执行的 VScript简体中文 文件(无文件扩展名)的空格分隔列表。这些脚本都在同一个脚本范围内执行,以后的脚本会覆盖任何相同的变量和函数。
Thinker Function简体中文 (thinkfunction) <string简体中文> | 字符串 (存在于自 Left 4 Dead 2 以来)
此实体脚本中的函数名称,该函数将在脚本持续时间内每 100 毫秒(每秒 10 次)自动调用一次。它可用于创建计时器或模拟自主行为。返回值(如果存在)将设置下一次调用之前的时间。尽量避免在此函数中进行昂贵的操作,因为它可能会导致性能问题。
Lag Compensation (LagCompensate) <boolean> | 布尔值 (存在于自 Left 4 Dead 2 以来) 不存在于FGD!
设置为以延迟补偿此实体。应该非常谨慎地使用!
Is Automatic-Aim Target (is_autoaim_target) <boolean> | 布尔值 (in all games since Counter-Strike: Global Offensive) 不存在于FGD!
如果设置为 1,当实体位于十字准线下方时,该实体将减慢控制台和操纵杆控制器的瞄准移动速度。


输入

StrikeOnce
形成一次strike(震动)。根据Life键值形成持续时间,然后关闭。(Life为0则不会关闭。)
Amplitude<float> | 浮点型 Obsolete
已弃用。 请用Noise 实例。

Beam:

TurnOn
开启光束。
TurnOff
关闭光束。
Toggle
一个开关,切换光束开关状态。
Width<float> | 浮点型
设置光束宽度,单位像素。
Noise<float> | 浮点型 不存在于FGD!
设置允许偏离光束中心点的距离。
Alpha<integer> | 整数
设置光束透明度(0 - 255)。
Color<color255简体中文>
设置颜色(R G B)。
ColorRedValue<float> | 浮点型
设置红色通道值(0 - 255)。
ColorGreenValue<float> | 浮点型
同上,这是绿色(0 - 255).
ColorBlueValue<float> | 浮点型
同上,蓝色。(0 - 255).
ScrollSpeed<float> | 浮点型
设置每秒滚动速度(0 - 100).

Base:
AddContext<string简体中文> | 字符串
添加到实体的 Response Contexts/响应上下文列表。格式是<key>:<value>
AddOutput<string简体中文> | 字符串
在此实体上分配新的键值/输出。对于键值,有些依赖于额外的必要代码来运行,如果它只是通过这个输入改变就行不通。必须遵循严格的格式:
语法:

ClearContext
从此实体的列表中删除所有上下文。
ClearParent
从移动层次结构中删除该实体,使其可以自由移动。
FireUser1FireUser4
触发相应的OnUser输出;详见 User Inputs and OutputsEnglish
Kill
从这个世界中删除此实体。
KillHierarchy
功能类似Kill,尽管此实体与其父实体都被删除了,但比Kill快一点。
RemoveContext
从实体列表删除一个上下文。名字应与现有上下文进行匹配。
SetParent<string简体中文> | 字符串
跟随此实体移动,详见 实体层级(依赖关系)
SetParentAttachment<string简体中文> | 字符串
更改此实体到其父级上的特定附属English点。实体将传送,以至于其骨骼方位English与附属匹配。在使用此输入前必须设置好实体的父实体。
SetParentAttachmentMaintainOffset<string简体中文> | 字符串
同上,但没有传送。在接收到输入时,实体保持其相对于附件的位置。
Use 不存在于FGD!
与调用 +use English 的玩家相同[玩家按 +use(使用,默认E按钮)];大多数情况下没有影响。
DispatchResponse<string简体中文> | 字符串 不存在于FGD!
向实体发送一个上下文。 详见 ResponseEnglishConceptEnglish.
DispatchEffect<string简体中文> | 字符串 (自从 Left 4 Dead移除) 不存在于FGD!
在实体的原点坐标设置一个特定效果;参见 List of Client EffectsEnglish。自从Left 4 Dead Left 4 Dead后由粒子系统取代。
RunScriptFile<script> | 脚本 (存在于自 Left 4 Dead 2 以来)
从硬盘执行一个 VScript 脚本文件,不带文件后缀名。会合并接收实体的脚本域。
RunScriptCode<string简体中文> | 字符串 (存在于自 Left 4 Dead 2 以来)
在接收输入的实体范围内执行一串 VScript 源代码。通过控制台触发时可能需要字符串引用。
Icon-Bug.pngBug:在 Hammer 中,使用带有字符串的参数会破坏 VMFEnglish 文件的结构,使下一个 Hammer 会话无法查看该文件。
Fix: 使用文本编辑器手动删除带有字符串的参数。
CallScriptFunction<string简体中文> | 字符串 (存在于自 Left 4 Dead 2 以来) 不存在于FGD!
在接受实体脚本域上执行一段 VScript 函数。
SetLocalOrigin<coordinates> (存在于自 Alien Swarm 以来) 不存在于FGD!
将此实体设置到地图中的某个位置。如果此实体是某实体父级,那么它的子级也会随着移动。
SetLocalAngles<angles> (存在于自 Alien Swarm 以来) 不存在于FGD!
设置该实体的角度。

输出

OnTouchedByEntity
根据 'Touch Type' 的选项,当符合选项的实体触碰光束时进行输出。

Base/基础:

OnUser1OnUser4
这些输出将分别响应于 FireUser1FireUser4 输入。 详见 User Inputs and Outputs
OnKilled (only in Left 4 Dead series)
当实体被Kill输入时响应此输出。