env_beam

From Valve Developer Community
Jump to: navigation, search
English
env_beam效果.

env_beam是一个点实体,可用于所有Source游戏。在两个实体间产生一道能量光束,外表呈直线或者环形。类似于env_laser

Bug: 绑定父级实体将无效,使用env_laserlogic_measure_movement则可行。

To do: 哈?哪个游戏?反正csgo可行!

Bug: <Team Fortress 2> info_target, info_landmarkpath_corner似乎不能作为此实体的起始点和结束点(start/end points), info_teleport_destination是一种解决方案。
提示:结束点与结束实体或起始点与起始实体是同一个概念。

在源代码中,它由classCEnvBeam代表,定义在EnvBeam.cpp

用法注意

起始点和结束点(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)和环形光束不起作用。

键值

提示:strike与持续时间有本质区别!
Radius (Radius) <整数型 >
如果Start Entity 和/或者Ending Entity 的键值没有被设置,此半径会确定一点随机strike的位置。并且每次strike会随机采用一个位置。


Life (seconds 0 = 无限) (life) <字符串>
光束的持续时间。设置为0,那么光束会一直停留显示。


Width of beam (BoltWidth) <浮点型 >
光束的宽度,单位像素。范围: 1 至 25.5f


Frames per 10 seconds (framerate) <整数型 >
光束材质动画的帧数,如果它支持多帧。


Strike again time (secs) (StrikeTime) <字符串>
光束重新strike的时间。 标签'Random Strike'需要被勾选才生效。


Start Entity (LightningStart) <target_destination/目标实体 >
光束起始点。如果未指定会根据Radius值设置,每次strike都会随机一个新的位置。 详见上面的用法注意。


Ending Entity (LightningEnd) <target_destination/目标实体 >
光束结束点。如果未指定会根据Radius值设置,每次strike都会随机一个新的位置。 详见上面的用法注意。


Decal Name (decalname) <字符串>
strike物体时的灰烬贴图。


Touch Type (tripwire) (TouchType) <选项>
如果你想让光束碰到其他实体时触发输出,选择实体类型:
  • 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) <过滤器>
过滤器,用于过滤可触发的实体。


Endpoint handle (targetpoint) <vecline >
如果Ending Entity未被指定,将此点作为目标点。如果光束实体运动了,此点也会运动。

Beam:

Brightness (1 - 255) (renderamt) <整数型 >
误导名称!这是beam的透明度。0为完全不可见。


Beam Color (R G B) (rendercolor) <颜色255>
Beam 颜色。


Damage/second (damage) <字符串>
光束持续中的每秒伤害。或者一次strike时的伤害。持续伤害应该设置为10以上。
注意:伤害会根据难度而调整!
  • Easy: 50%
  • Normal: 100%
  • Hard: 150%
HDR color scale (HDRColorScale) <浮点型 >
HDR模式下会乘以光束的颜色的值。


Beam clipping (ClipStyle) <选项>
几何切割形状样式。
  • 0: Do not clip (default)
  • 1: Clip to geometry/
  • 2: Clip to everything solid


Dissolve Type (dissolvetype) <选项>
当其造成伤害并杀死物体时,会对周围显示效果:
  • -1: None
  • 0: Energy
  • 1: Heavy Electrical
  • 2: Light Electrical


Amount of noise (0-255) (NoiseAmplitude) <浮点型 >
噪点。0为非常直的光束,255则充满锯齿效果。范围: 0 至 64.
注意:虽然声明可以是255,但是最大值其实是60,超过60会默认成60。


Sprite Name (texture) <图标>
光束的材质。


Texture Scroll Rate (0-100) (TextureScroll) <整数型 >
光束材质沿着光束滚动率。 范围: 0 至 100.0f.


Starting Frame (framestart) <整数型 >
光束生成的指定材质帧数(如果有)。


Base:

Classname (classname) <string>
实体名称。实体名称可以用AddOutput来修改,有可能导致错误,影响引擎的处理方式。
Name (targetname) <string>
自己可定义的实体名字,注意,classname是实体名(如prop_static)而不是其名字!
Global Entity Name (globalname) <string>
实体链接到下一张图采用的名称,当玩家过度到下一张图的时候,会保持上一张图实体的状态。
Parent (parentname) <targetname>
实体的父级实体,该实体可以与父实体保持移动偏移。名称后面可以添加一个附属点,以逗号隔开。 任何实体都可以是父实体,甚至是点实体。 转换至下一张地图的实体关系会依然存在。例如 trigger_transition, 一些不适合做父实体的实体可能难以运行,利用 phys_constraint 可以解决。*注:翻译略有出入,请只在意第一句或查看原文(英文)。
Origin (X Y Z) (origin) <coordinates>
实体处于世界中的位置,旋转实体会以实体坐标原点旋转。
Pitch Yaw Roll (X Y Z) (angles) <angle>
实体在世界中的方位,Pitch围绕X轴旋转,可以称为俯仰角。Yaw围绕Z轴旋转,可以称为偏航角,roll围绕Y轴旋转,可以称为翻滚角。
注意:尽管Hammer不显示新角度,但其仍然适用于固实体。
Flags (spawnflags) <integer>
实体所具有的标志/标签,依实体所具有而定。
Response Contexts (ResponseContext) <string>
实体预定义的响应上下文(链接上下文)。格式:key:value,key:value,...。可以由filtered过滤。
Effects (effects) <integer> !FGD
效果标志,在hammer中不显示,但它确确存在。
Local Time (ltime) <float> !FGD
实体的本地时间,区别于全局时间,主要用于物理效果计算,在hammer中不显示。
Next Think (nextthink) <float> !FGD
实体再次 thinks 时间。在hammer中不显示。
Hammer ID (hammerid) <integer> !FGD
实体的Hammer ID。主要用于插件和debug指令,如ent_keyvalue. 可以用"hammerid" 或者 "id" 键值来手动分配. 在run-time时候生成的实体不会分配ID。在hammer中不显示。
Disable for Xbox 360 (disableX360) <boolean> (New with Left 4 Dead 2) !FGD
如果设置为"Yes",在XBOX360游戏机上不显示此实体。
Entity Scripts (vscripts) <scriptlist> (New with Left 4 Dead 2)
实体生成后可通过输出调用的VScript脚本文件,所有脚本都处于同一脚本域,会覆盖相同名称的变量和功能函数等。
Script think function (thinkfunction) <string> (New with Left 4 Dead 2)
脚本功能函数名,每秒自动会调用此函数10次,比较于logic_timer更方便。 请避免 expensive(昂贵)的效果操作,会损失性能。
Lag Compensation (LagCompensate) <boolean> (New with Left 4 Dead 2) !FGD
设置"Yes"会延迟补偿该实体,请谨慎使用。在hammer中不显示。
Is Automatic-Aim Target (is_autoaim_target) <boolean> (New with Counter-Strike: Global Offensive) !FGD
设置为"1"会减慢该实体在十字准心下方时,控制杆的瞄准运动。

输入

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

Beam:

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

基础:

Kill
从这个世界中删除此实体。
KillHierarchy
功能类似于Kill,尽管此实体与其父实体都被删除了,但比Kill快一点。
SetParent  <字符串>
跟随此实体移动,详见Entity Hierarchy (parenting).
SetParentAttachment  <字符串>
修改此实体到父实体的特定附属点。实体会传送,以至于其骨骼方位与附属匹配。在使用此输入前必须设置好实体的父实体。
SetParentAttachmentMaintainOffset  <字符串>
同上,但不传送。实体接受到此输出后保留与父级的相对位置。
ClearParent
取消绑定父实体,以至于此实体可以自由行动。
AddOutput  <字符串>
评估此实体的输出/键值(类似于增加输出给某实体)。
格式: <key/键> <value/值>
格式: <output name/输出名> <targetname/目标名>:<inputname/输入名>:<parameter/参数>:<delay/延迟>:<最大触发数,-1代表无限。>
FireUser1 to FireUser4
触发OnUser输出; 详见 User Inputs and Outputs
Use  !FGD
类似于玩家按 +use(使用,默认E按钮); 也许不会做什么事! 也可以通过创建未指定的输入来调用输出。
这个输入不存在于Valve的 FGD中。
DispatchEffect  <字符串> !FGD
在实体的原点坐标设置一个特定效果。自从<Left 4 Dead>后由粒子系统取代。
DispatchResponse  <字符串> !FGD
向实体发送一个上下文。 详见 ResponseConcept.
AddContext  <字符串>
添加到实体的response contexts/响应上下文列表。格式<key/键>:<value/值>.
RemoveContext  <字符串>
从实体列表删除一个上下文。名字应与现有上下文进行匹配。
ClearContext  <字符串>
删除实体的所有上下文。
RunScriptFile  <script> (New with Left 4 Dead 2)
从硬盘执行一个VScript脚本文件,不带文件后缀名。会合并接收实体的脚本域。
RunScriptCode  <字符串> (New with Left 4 Dead 2)
(执行脚本代码。)执行一段接收实体域的脚本源代码。通过控制台触发,可能需要英文双引号。
Bug: <Left 4 Dead 2>中,该代码是触发输出的实体的脚本域中执行, 接受输入的实体。
警告:切勿在此输入的元素内使用字符串!它将破坏VMF ,由嵌套引号引起!你必须用文本编辑器手动删除来修复!
CallScriptFunction  <字符串> (New with Left 4 Dead 2) !FGD
在接受实体脚本域上执行一段vscript函数。
SetLocalOrigin  <坐标> (New with Alien Swarm) !FGD
将此实体设置到地图上某点。如果此实体是某实体父级,那么它的子级也会随着偏移。
SetLocalAngles  <角度> (New with Alien Swarm) !FGD
设置实体的角度(朝向)。

输出

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

基础:

OnUser1 to OnUser4
这些输出将分别响应于FireUser1 to FireUser4 输入。 详见 User Inputs and Outputs.
OnKilled  (Only in the Left 4 Dead series)
当实体被Kill输入时响应此输出。