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

Zh/Env fire: Difference between revisions

From Valve Developer Community
< Zh
Jump to navigation Jump to search
m (obsolete language category)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
<!-- When this page is updated to {{langsp}} or {{langsp}} instead of {{lang}}, please move {{this is a}} to the base page, as it is automatically translated. -->{{lang|Env fire}}{{updatetranslation}}
{{LanguageBar|title=env_fire}}


[[File:env_fire.jpg|thumb|250px|right|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周年更新中重新实现。许多该实体上的设置是以经典火焰为基础设计的,因此在此文档中做了说明。


{{this is a|point entity|suf=:zh-cn|name=env_fire|sprite=1}}
{{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)==
简单的在实体{{L|origin|坐标}}上产生火焰的实体。火焰导热 '伤害' 给其他 周围{{ent:zh-cn|env_fire}}实体。  并且会点燃附近不燃烧的<code>env_fire</code>实体。引发大火蔓延。
{{fl|1|无限持续时间}}{{note|在 Alien Swarm 中,除非设置了“无限持续时间”标志,否则无法用灭火器扑灭 <code>env_fire</code>。}}
{{clr-left}}
{{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}}


{{note|不会提供照明效果。}}
==输入(Inputs)==
{{note|实体可能会“掉出”世界,你需要提高一点就像玩家出生点那样。}}
{{I|StartFire|启动火焰。}}
{{bug|{{Portal|2|suf=:zh-cn}}中无效。参加[[Portal:Env_Fire_fix]] {{en}}来获取信息。}}
{{I|Extinguish|param=float|在指定的秒数内将火焰永久熄灭。}}
{{bug虽然它可用,但是不会再{{tf2|2|suf=:zh-cn}}中产生粒子效果。参加 [[TF2/Creating_fire|这个 method]] {{en}}来获取信息。}}
{{I|ExtinguishTemporary|param=float|在指定的秒数内暂时熄灭火焰。}}
{{bug|除非你build(/rebuild)项目,否则不会用于source2007的mod。}}
{{I|EnableDisable|启用/禁用此实体执行其任务。它也可能从窗口中消失。}}
{{bug|等离子火(Plasma fire)不可见。}}


==键值==
==输出(Outputs)==
{{KV:zh-cn|Duration|intn=health|整数型|火焰燃烧的持续时间。}}
{{O|OnIgnited|火焰首次点燃时触发。}}
{{KV:zh-cn|Size|intn=firesize|整数型|火焰高度 (以世界单位)。}}
{{O|OnExtinguished|火焰完全熄灭时触发。}}
{{KV:zh-cn|Attack|intn=fireattack|整数型|多长时间这团火焰会燃烧到最高高度。}}
{{KV:zh-cn|Type|intn=firetype|choices|火焰效果,等离子或者自然火}}
:* 0 : Natural/自然火
:* 1 : Plasma/等离子火(不可见)
{{KV:zh-cn|intn=ignitionpoint|Ignition Point|浮点型|需要对其导热多少'伤害'才能点燃。}}
{{KV:zh-cn|intn=damagescale|Damage Scale|浮点型|燃烧伤害X此倍数。}}
{{todo|加键值从{{as|2|suf=:zh-cn}}
{{KV BaseEntity:zh-cn}}
{{KV EnableDisable:zh-cn}}


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

Latest revision as of 09: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 (目标名称) <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注意:经典和发布效果似乎相似,均启用经典火焰效果。