Zh/Env fire: Difference between revisions
< Zh
Jump to navigation
Jump to search
m (obsolete language category) |
|||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
{{LanguageBar|title=env_fire}} | |||
[[File:env_fire. | {{this is a|point entity|name=env_fire|sprite=1}} 它处理一个单一的火焰({{ent|_firesmoke}}),位于其 [[origin]] 位置。火焰会对周围的其他 <code>env_fire</code> 实体造成“热伤害”,并最终点燃它们,使火势蔓延。{{ent|env_firesource}} 会为附近的 <code>env_fire</code> 实体增加热伤害,并点燃它们或维持点燃状态。 | ||
[[File:env_fire_modern.png|thumb|200px|right|现代粒子效果的 <code>env_fire</code> 火焰效果。]] | |||
[[File:env_fire_classic.png|thumb|200px|right|经典的基于精灵的 <code>env_fire</code> 火焰效果。]] | |||
在橙盒发布之前,火焰效果是由代码动态生成的精灵,而非粒子系统。现代火焰效果定义在一个 [[PCF]] 文件中,这意味着它们可以在不修改代码的情况下进行自定义,但它们的动态性远不如经典火焰效果,只提供了四种预设的大小,并且无法通过 Hammer 设置攻击/增长时间。Valve 所有的游戏都已更新或在后期发布时仅包含基于粒子的火焰效果,但经典火焰效果最终在 {{hl2|2}} 20周年更新中重新实现。许多该实体上的设置是以经典火焰为基础设计的,因此在此文档中做了说明。 | |||
{{ | {{note|如果将其放置在地面正好处,火焰可能会掉落至世界之外。请将其稍微放置在地面以上,或启用“不掉落”生成标志。}} | ||
{{bug*|尽管仍然可用,但在 {{portal|2}} 或 {{tf2|2}} 中没有粒子效果。详情请参考 [[Portal:Env Fire fix]] 和 [[TF2/Creating fire]] 获取修复方法或解决方案。}} | |||
{{CD|CFire|file1=fire.cpp}} | |||
==键值(Keyvalues)== | |||
{{KV Targetname}} | |||
{{KV|Duration|intn=health|integer|火焰燃烧的持续时间。}} | |||
{{KV|Size|intn=firesize|integer|火焰的高度(以世界单位为单位)。}} | |||
{{note|虽然现代粒子效果的火焰依然影响碰撞体积,但仅支持四种预设大小,并对应特定范围: | |||
* <code>35</code> 或以下:微小 | |||
* <code>36-71</code>:小 | |||
* <code>72-107</code>:中等 | |||
* <code>108</code> 或更大:大}} | |||
{{KV|Attack|intn=fireattack|integer|火焰达到全强度所需的时间。}} | |||
{{note|对于现代粒子火焰没有视觉效果(碰撞体积依然会受影响)。}} | |||
{{KV|Type|intn=firetype|choices|火焰类型:自然或等离子。自然是一般的火焰,例如木柴火。 | |||
:*0: 自然 | |||
:*1: 等离子 {{bug*|无效。虽然在SDK中存在等离子效果的代码,但无法使用。}}}} | |||
{{KV|Ignition Point|intn=ignitionpoint|float|此火焰应被点燃所需的热‘伤害’量。}} | |||
{{KV|Damage Scale|intn=damagescale|float|火焰所造成的烧伤伤害的倍率。}} | |||
{{KV|Light Color|intn=LightColor|since=AS|color255|此火焰的动态光源颜色。}} | |||
{{KV|Light Radius Scale|intn=LightRadiusScale|since=AS|float|火光半径的倍率。}} | |||
{{KV|Light Brightness|intn=LightBrightness|since=AS|integer|火光亮度的指数。}} | |||
{{KV|Loop sound|intn=LoopSound|since=AS|sound|火焰燃烧时播放的循环音效。}} | |||
{{KV|Ignite sound|intn=IgniteSound|since=AS|sound|火焰开始时播放的单次音效。}} | |||
{{KV|Start Disabled|intn=StartDisabled|deprecated=1|boolean|保持待机状态,直到被激活。已废弃,使用“启动时开启”标志代替。}} | |||
== | ==标志(Flags)== | ||
{{fl|1|无限持续时间}}{{note|在 Alien Swarm 中,除非设置了“无限持续时间”标志,否则无法用灭火器扑灭 <code>env_fire</code>。}} | |||
{{ | {{fl|2|无烟雾}} | ||
{{fl|4|启动时开启}} | |||
{{fl|8|启动时全尺寸}} {{confirm|是否使经典火焰效果一开始就显示为最大尺寸,而不是逐渐增大?}} | |||
{{fl|16|不掉落}} | |||
{{fl|32|无光辉}} | |||
{{fl|128|用完后删除}} | |||
{{fl|256|从上方可见|已移除={{AS}}}} {{note|对于现代粒子火焰,这个标志没有效果,粒子火焰始终是从上方可见的。}} | |||
{{fl|256|无音效|since=AS}} | |||
{{fl|512|无点燃音效|since=AS}} | |||
{{fl|1024|点燃后不再加热|since=AS}} | |||
{{fl|2048|快速燃烧思考|since=AS}} | |||
{{ | ==输入(Inputs)== | ||
{{I|StartFire|启动火焰。}} | |||
{{ | {{I|Extinguish|param=float|在指定的秒数内将火焰永久熄灭。}} | ||
{{ | {{I|ExtinguishTemporary|param=float|在指定的秒数内暂时熄灭火焰。}} | ||
{{ | {{I|EnableDisable|启用/禁用此实体执行其任务。它也可能从窗口中消失。}} | ||
== | ==输出(Outputs)== | ||
{{ | {{O|OnIgnited|火焰首次点燃时触发。}} | ||
{{O|OnExtinguished|火焰完全熄灭时触发。}} | |||
{{ | |||
== | ==ConVars/命令(Commands)== | ||
{{ | {{varcom|start}} | ||
{{ | {{varcom|fire_maxabsorb|50|任意数值 ({{L|float|浮点数}})|火焰可以吸收的最大热伤害,超出此值时火焰会开始增长。热量通常由其他 <code>env_fire</code> 实体传递过来。}} | ||
{{ | {{varcom|fire_absorbrate|3|倍率 ({{L|float|浮点数}})|火焰吸收热量的速度。}} | ||
{{ | {{varcom|fire_extscale|12|倍率 ({{L|float|浮点数}})|实际上只是{{ent|env_extinguisherjet}}的“一个标准计量”。}} | ||
{{ | {{varcom|fire_extabsorb|5|倍率 ({{L|float|浮点数}})|}} | ||
{{ | {{varcom|fire_heatscale|1.0|倍率 ({{L|float|浮点数}})|控制火焰造成的伤害量(包括对火焰和其他物体如玩家的伤害)。}} | ||
{{ | {{varcom|fire_incomingheatscale|0.1|倍率 ({{L|float|浮点数}})|控制火焰在已经点燃时能从其他火焰那里吸收的热量。}} | ||
{{ | {{varcom|fire_dmgscale|0.1|倍率 ({{L|float|浮点数}})|}} | ||
{{ | {{varcom|fire_dmgbase|1|生命值量|火焰对物体(例如玩家)造成的基础伤害。此值会根据玩家的难度设置进行调整:{{skill|x1|x2|x3}}}} | ||
{{varcom|fire_growthrate|1.0|倍率 ({{L|float|浮点数}})|控制火焰每次增长的热量。思考间隔为0.1秒。}} | |||
{{varcom|fire_dmginterval|1.0|秒|火焰造成伤害后,需要等待此时间间隔才能再次造成伤害。}} | |||
{{varcom|r_classic_fire|0|[[integer]]|使用经典火焰效果(禁用/经典/发布)。{{Note|经典和发布效果似乎相似,均启用经典火焰效果。}}}} | |||
{{varcom|end}} | |||
[[Category:Special effects]] | |||
Latest revision as of 09:17, 3 October 2025

env_fire
是一个点实体 ,可在所有的 起源 游戏中使用。 它处理一个单一的火焰(_firesmoke),位于其 origin 位置。火焰会对周围的其他
env_fire
实体造成“热伤害”,并最终点燃它们,使火势蔓延。env_firesource 会为附近的 env_fire
实体增加热伤害,并点燃它们或维持点燃状态。
在橙盒发布之前,火焰效果是由代码动态生成的精灵,而非粒子系统。现代火焰效果定义在一个 PCF 文件中,这意味着它们可以在不修改代码的情况下进行自定义,但它们的动态性远不如经典火焰效果,只提供了四种预设的大小,并且无法通过 Hammer 设置攻击/增长时间。Valve 所有的游戏都已更新或在后期发布时仅包含基于粒子的火焰效果,但经典火焰效果最终在 半衰期2 20周年更新中重新实现。许多该实体上的设置是以经典火焰为基础设计的,因此在此文档中做了说明。

![]() |
---|
CFire |
![]() |
键值(Keyvalues)
- Name (目标名称) <target_source>[ Edit ]
- 这个名称是其他实体通过 输入/输出 或其他 关键值 (如
parentname
或target
) 来引用该实体时使用的标识符。
该名称也会显示在 Hammer 编辑器的 2D 视图和 实体报告 中。参见: 所有实体均可使用的 通用键值、输入与输出
- Duration (health) <整数 >
- 火焰燃烧的持续时间。
- Size (firesize) <整数 >
- 火焰的高度(以世界单位为单位)。

35
或以下:微小36-71
:小72-107
:中等108
或更大:大
- Attack (fireattack) <整数 >
- 火焰达到全强度所需的时间。

- Type (firetype) <choices>
- 火焰类型:自然或等离子。自然是一般的火焰,例如木柴火。
- 0: 自然
- 1: 等离子
错误*:无效。虽然在SDK中存在等离子效果的代码,但无法使用。
- Ignition Point (ignitionpoint) <浮点型 >
- 此火焰应被点燃所需的热‘伤害’量。
- Damage Scale (damagescale) <浮点型 >
- 火焰所造成的烧伤伤害的倍率。
- Light Color (LightColor) <color255 > (存在于自
以来)
- 此火焰的动态光源颜色。
- Light Radius Scale (LightRadiusScale) <浮点型 > (存在于自
以来)
- 火光半径的倍率。
- Light Brightness (LightBrightness) <整数 > (存在于自
以来)
- 火光亮度的指数。
- Loop sound (LoopSound) <sound > (存在于自
以来)
- 火焰燃烧时播放的循环音效。
- Ignite sound (IgniteSound) <sound > (存在于自
以来)
- 火焰开始时播放的单次音效。
Start Disabled (StartDisabled) <布尔值 >- 已弃用。
保持待机状态,直到被激活。已废弃,使用“启动时开启”标志代替。
标志(Flags)
- 无限持续时间 : [1]
注意:在 Alien Swarm 中,除非设置了“无限持续时间”标志,否则无法用灭火器扑灭
env_fire
。
- 无烟雾 : [2]
- 启动时开启 : [4]
- 启动时全尺寸 : [8]
证实:是否使经典火焰效果一开始就显示为最大尺寸,而不是逐渐增大?
- 不掉落 : [16]
- 无光辉 : [32]
- 用完后删除 : [128]
- 从上方可见 : [256]
注意:对于现代粒子火焰,这个标志没有效果,粒子火焰始终是从上方可见的。
输入(Inputs)
- StartFire
- 启动火焰。
- Extinguish <浮点型 >
- 在指定的秒数内将火焰永久熄灭。
- ExtinguishTemporary <浮点型 >
- 在指定的秒数内暂时熄灭火焰。
- EnableDisable
- 启用/禁用此实体执行其任务。它也可能从窗口中消失。
输出(Outputs)
- OnIgnited
- 火焰首次点燃时触发。
- OnExtinguished
- 火焰完全熄灭时触发。
ConVars/命令(Commands)
控制台变量/命令 | 参数或默认值 | 描述符 | 效果 |
---|---|---|---|
fire_maxabsorb | 50 | 任意数值 (浮点数 ) | 火焰可以吸收的最大热伤害,超出此值时火焰会开始增长。热量通常由其他 env_fire 实体传递过来。 |
fire_absorbrate | 3 | 倍率 (浮点数 ) | 火焰吸收热量的速度。 |
fire_extscale | 12 | 倍率 (浮点数 ) | 实际上只是env_extinguisherjet的“一个标准计量”。 |
fire_extabsorb | 5 | 倍率 (浮点数 ) | |
fire_heatscale | 1.0 | 倍率 (浮点数 ) | 控制火焰造成的伤害量(包括对火焰和其他物体如玩家的伤害)。 |
fire_incomingheatscale | 0.1 | 倍率 (浮点数 ) | 控制火焰在已经点燃时能从其他火焰那里吸收的热量。 |
fire_dmgscale | 0.1 | 倍率 (浮点数 ) | |
fire_dmgbase | 1 | 生命值量 | 火焰对物体(例如玩家)造成的基础伤害。此值会根据玩家的难度设置进行调整:
|
fire_growthrate | 1.0 | 倍率 (浮点数 ) | 控制火焰每次增长的热量。思考间隔为0.1秒。 |
fire_dmginterval | 1.0 | 秒 | 火焰造成伤害后,需要等待此时间间隔才能再次造成伤害。 |
r_classic_fire | 0 | integer | 使用经典火焰效果(禁用/经典/发布)。![]() |