这篇条目有关 Source引擎。如需详情,点击这里。

Zh/Env fire: Difference between revisions

From Valve Developer Community
< Zh
Jump to navigation Jump to search
No edit summary
 
(14 intermediate revisions by 9 users not shown)
Line 1: Line 1:
{{otherlang2
{{LanguageBar|title=env_fire}}
|ru=Env fire:ru
|en=Env_fire
}}
{{translate}}
[[File:env_fire.jpg|thumb|250px|right|env_fire实例。]]


{{point_ent:zh|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|如果将其放置在地面正好处,火焰可能会掉落至世界之外。请将其稍微放置在地面以上,或启用“不掉落”生成标志。}}
[[File:env_fire.png|left|link=]]
{{bug*|尽管仍然可用,但在 {{portal|2}} 或 {{tf2|2}} 中没有粒子效果。详情请参考 [[Portal:Env Fire fix]] 和 [[TF2/Creating fire]] 获取修复方法或解决方案。}}
简单的在实体[[origin|坐标]]上产生火焰的实体。火焰导热 '伤害' 给其他 周围'''env_fire'''实体。  并且会点燃附近不燃烧的env_fire实体。引发大火蔓延。
{{CD|CFire|file1=fire.cpp}}
{{clr-left}}
==键值(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>。}}
{{bug|[[Portal]]中无效。参加[[Portal:Env_Fire_fix]]来获取信息。}}
{{fl|2|无烟雾}}
{{bug|虽然它可用,但是不会再[[Team Fortress 2]]中产生粒子效果。参加 [[TF2/Creating_fire|This method]]来获取信息。}}
{{fl|4|启动时开启}}
{{bug|除非你build(/rebuild)项目,否则不会用于source2007的mod。}}
{{fl|8|启动时全尺寸}} {{confirm|是否使经典火焰效果一开始就显示为最大尺寸,而不是逐渐增大?}}
{{bug|等离子火(Plasma fire)不可见。}}
{{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)==
{{KV:zh-cn|Duration|整数型|火焰燃烧的持续时间。}}
{{O|OnIgnited|火焰首次点燃时触发。}}
{{KV:zh-cn|Size|整数型|火焰高度 (以世界单位) 。}}
{{O|OnExtinguished|火焰完全熄灭时触发。}}
{{KV:zh-cn|Attack|整数型|多长时间这团火焰会燃烧到最高高度。}}
{{KV:zh-cn|Type|choices|火焰效果,等离子或者自然火}}
:* 0 : Natural/自然火
:* 1 : Plasma/等离子火(不可见)
{{KV:zh-cn|Ignition Point|浮点型|需要对其导热多少'伤害'才能点燃。}}
{{KV:zh-cn|Damage Scale|浮点型|燃烧伤害X此倍数。}}
{{KV Targetname:zh}}
{{KV Parentname:zh}}
{{KV EnableDisable:zh}}


==标签/Flags==
==ConVars/命令(Commands)==
* 1 : Infinite Duration - 永远燃烧
{{varcom|start}}
* 2 : Smokeless - 无烟的
{{varcom|fire_maxabsorb|50|任意数值 ({{L|float|浮点数}})|火焰可以吸收的最大热伤害,超出此值时火焰会开始增长。热量通常由其他 <code>env_fire</code> 实体传递过来。}}
* 4 : Start On - 自启动
{{varcom|fire_absorbrate|3|倍率 ({{L|float|浮点数}})|火焰吸收热量的速度。}}
* 8 : Start Full - 直接烧至最大高度
{{varcom|fire_extscale|12|倍率 ({{L|float|浮点数}})|实际上只是{{ent|env_extinguisherjet}}的“一个标准计量”。}}
* 16 : Don't drop - 不会掉落
{{varcom|fire_extabsorb|5|倍率 ({{L|float|浮点数}})|}}
* 32 : No glow - 无光圈
{{varcom|fire_heatscale|1.0|倍率 ({{L|float|浮点数}})|控制火焰造成的伤害量(包括对火焰和其他物体如玩家的伤害)。}}
* 128 : Delete when out - 当它烧尽就删除。
{{varcom|fire_incomingheatscale|0.1|倍率 ({{L|float|浮点数}})|控制火焰在已经点燃时能从其他火焰那里吸收的热量。}}
* 256 : Visible from above - 从上方可见。
{{varcom|fire_dmgscale|0.1|倍率 ({{L|float|浮点数}})|}}
{{注意| 在 Alien Swarm, env_fire  除非设置"Infinite Duration"否则无法被熄灭。}}
{{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]]
{{IO:zh|StartFire|开始燃烧。}}
{{IO:zh|Extinguish|指定秒数内永久扑灭火焰。|param=浮点型}}
{{IO:zh|ExtinguishTemporary|指定秒数内暂时扑灭火焰。|param=浮点型}}
{{I Targetname:zh}}
{{I Parentname:zh}}
{{I EnableDisable:zh}}
 
==输出==
{{IO:zh|OnIgnited|当火焰被点燃时触发输出。}}
{{IO:zh|OnExtinguished|当火焰完全扑灭时触发输出。}}
{{O Targetname:zh}}
 
[[Category:Special effects:zh-cn]]

Latest revision as of 08:17, 3 October 2025

English (en)中文 (zh)Translate (Translate)
Env fire.png

env_fire是一个点实体(en),可在所有的 起源 起源 游戏中使用。 它处理一个单一的火焰(_firesmoke),位于其 origin 位置。火焰会对周围的其他 env_fire 实体造成“热伤害”,并最终点燃它们,使火势蔓延。env_firesource 会为附近的 env_fire 实体增加热伤害,并点燃它们或维持点燃状态。

现代粒子效果的 env_fire 火焰效果。
经典的基于精灵的 env_fire 火焰效果。

在橙盒发布之前,火焰效果是由代码动态生成的精灵,而非粒子系统。现代火焰效果定义在一个 PCF 文件中,这意味着它们可以在不修改代码的情况下进行自定义,但它们的动态性远不如经典火焰效果,只提供了四种预设的大小,并且无法通过 Hammer 设置攻击/增长时间。Valve 所有的游戏都已更新或在后期发布时仅包含基于粒子的火焰效果,但经典火焰效果最终在 半衰期2 半衰期2 20周年更新中重新实现。许多该实体上的设置是以经典火焰为基础设计的,因此在此文档中做了说明。

Note.png注意:如果将其放置在地面正好处,火焰可能会掉落至世界之外。请将其稍微放置在地面以上,或启用“不掉落”生成标志。
Icon-Bug.png错误*:尽管仍然可用,但在 传送门 传送门军团要塞2 军团要塞2 中没有粒子效果。详情请参考 Portal:Env Fire fixTF2/Creating fire 获取修复方法或解决方案。
C++ 类层级
CFire
CBaseEntity
C++ fire.cpp

键值(Keyvalues)

Name(en) (targetname) <target_source>[ Edit ]
这个名称是其他实体通过 输入/输出(en) 或其他 关键值(en)(如 parentnametarget) 来引用该实体时使用的标识符。
该名称也会显示在 Hammer 编辑器的 2D 视图和 实体报告(en) 中。
参见: 所有实体均可使用的 通用键值、输入与输出(en)
Duration (health) <整数(en)>
火焰燃烧的持续时间。
Size (firesize) <整数(en)>
火焰的高度(以世界单位为单位)。
Note.png注意:虽然现代粒子效果的火焰依然影响碰撞体积,但仅支持四种预设大小,并对应特定范围:
  • 35 或以下:微小
  • 36-71:小
  • 72-107:中等
  • 108 或更大:大
Attack (fireattack) <整数(en)>
火焰达到全强度所需的时间。
Note.png注意:对于现代粒子火焰没有视觉效果(碰撞体积依然会受影响)。
Type (firetype) <choices>
火焰类型:自然或等离子。自然是一般的火焰,例如木柴火。
  • 0: 自然
  • 1: 等离子
    Icon-Bug.png错误*:无效。虽然在SDK中存在等离子效果的代码,但无法使用。
Ignition Point (ignitionpoint) <浮点型(en)>
此火焰应被点燃所需的热‘伤害’量。
Damage Scale (damagescale) <浮点型(en)>
火焰所造成的烧伤伤害的倍率。
Light Color (LightColor) <color255(en)> (存在于自 异形丛生 以来)
此火焰的动态光源颜色。
Light Radius Scale (LightRadiusScale) <浮点型(en)> (存在于自 异形丛生 以来)
火光半径的倍率。
Light Brightness (LightBrightness) <整数(en)> (存在于自 异形丛生 以来)
火光亮度的指数。
Loop sound (LoopSound) <sound(en)> (存在于自 异形丛生 以来)
火焰燃烧时播放的循环音效。
Ignite sound (IgniteSound) <sound(en)> (存在于自 异形丛生 以来)
火焰开始时播放的单次音效。
Start Disabled (StartDisabled) <布尔值(en)> Obsolete
已弃用。
保持待机状态,直到被激活。已废弃,使用“启动时开启”标志代替。

标志(Flags)

无限持续时间 : [1]
Note.png注意:在 Alien Swarm 中,除非设置了“无限持续时间”标志,否则无法用灭火器扑灭 env_fire
无烟雾 : [2]
启动时开启 : [4]
启动时全尺寸 : [8]
证实:是否使经典火焰效果一开始就显示为最大尺寸,而不是逐渐增大?
不掉落 : [16]
无光辉 : [32]
用完后删除 : [128]
从上方可见 : [256]
Note.png注意:对于现代粒子火焰,这个标志没有效果,粒子火焰始终是从上方可见的。
无音效 : [256] (存在于自 异形丛生 以来)
无点燃音效 : [512] (存在于自 异形丛生 以来)
点燃后不再加热 : [1024] (存在于自 异形丛生 以来)
快速燃烧思考 : [2048] (存在于自 异形丛生 以来)

输入(Inputs)

StartFire
启动火焰。
Extinguish <浮点型(en)>
在指定的秒数内将火焰永久熄灭。
ExtinguishTemporary <浮点型(en)>
在指定的秒数内暂时熄灭火焰。
EnableDisable
启用/禁用此实体执行其任务。它也可能从窗口中消失。

输出(Outputs)

OnIgnited
火焰首次点燃时触发。
OnExtinguished
火焰完全熄灭时触发。

ConVars/命令(Commands)

控制台变量/命令 参数或默认值 描述符 效果
fire_maxabsorb 50 任意数值 (浮点数(en)) 火焰可以吸收的最大热伤害,超出此值时火焰会开始增长。热量通常由其他 env_fire 实体传递过来。
fire_absorbrate 3 倍率 (浮点数(en)) 火焰吸收热量的速度。
fire_extscale 12 倍率 (浮点数(en)) 实际上只是env_extinguisherjet的“一个标准计量”。
fire_extabsorb 5 倍率 (浮点数(en))
fire_heatscale 1.0 倍率 (浮点数(en)) 控制火焰造成的伤害量(包括对火焰和其他物体如玩家的伤害)。
fire_incomingheatscale 0.1 倍率 (浮点数(en)) 控制火焰在已经点燃时能从其他火焰那里吸收的热量。
fire_dmgscale 0.1 倍率 (浮点数(en))
fire_dmgbase 1 生命值量 火焰对物体(例如玩家)造成的基础伤害。此值会根据玩家的难度设置进行调整:
  • Easy: x1
  • Normal: x2
  • Hard: x3
fire_growthrate 1.0 倍率 (浮点数(en)) 控制火焰每次增长的热量。思考间隔为0.1秒。
fire_dmginterval 1.0 火焰造成伤害后,需要等待此时间间隔才能再次造成伤害。
r_classic_fire 0 integer 使用经典火焰效果(禁用/经典/发布)。
Note.png注意:经典和发布效果似乎相似,均启用经典火焰效果。