切换语言: Deutsch English Español Français 日本語 한국어 Русский Українська

Damage/zh: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
m (Link to Archive:Steel axe/zh and Archive:Iron axe/zh instead of redirects)
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Languages}}
== 概述 ==
在Factorio,实体有生命,可以死亡/被破坏,有抗性。''伤害''被定义为通过使用攻击来降低实体的生命的概念,例如用枪对它射击,或者食人虫咬它。一个实体的抗性将确切地定义实体将从任意攻击中减免多少伤害。
[[player/zh|玩家]]的的最大生命值是250(没有[[energy shield/zh|能量盾]])。其他实体的生命值被列在它们各自的条目中。
== 成就 ==
伤害的概念直接与下列成就有关:
{{Achievement|run-forrest-run}}
{{Achievement|pyromaniac}}
{{Achievement|steamrolled}}
{{Achievement|golem}}
{{Achievement|watch-your-step}}


{{Languages}}
== 伤害类型 ==
== 伤害类型 ==
{|class="wikitable"
{|class="wikitable"
|-
|-
! Damage type|伤害类型 !! Used by|武器
! Damage type|伤害类型 !! Used by|用于
|-
|-
| Physical|物理伤害 || Bullets|手枪 冲锋枪 ([[Regular magazine|标准弹盒]]/[[Piercing rounds magazine|穿甲弹盒]]), 霰弹枪 ([[Shotgun shells|制式霰弹]]/[[Piercing shotgun shells|穿甲霰弹]]), [[Enemies#Biters|小中大食人虫]], 斧头 ([[Iron axe|铁斧镐]]/[[Steel axe|钢斧镐]]), 碰撞 ( [[Diesel locomotive|火车]]/[[car|汽车]])
| Physical|物理伤害 || Bullets|手枪、冲锋枪子弹([[Firearm magazine|标准弹匣]]/[[Piercing rounds magazine|穿甲弹匣]]/[[Uranium rounds magazine|贫铀弹匣]]),霰弹枪 ([[Shotgun shells|标准霰弹]]/[[Piercing shotgun shells|穿甲霰弹]])[[Enemies#Biters|食人虫]],斧头 ([[Archive:Iron axe/zh|铁斧镐]]/[[Archive:Steel axe/zh|钢斧镐]]),[[Defender_capsule|防御无人机]]
|-
| Impact|碰撞伤害 || 碰撞([[Locomotive|内燃机车]]/[[car|汽车]])
|-
|-
| Fire|火焰伤害 || [[Flamethrower|火焰喷射器]]
| Fire|火焰伤害 || [[Flamethrower|火焰喷射器]]
|-
|-
| Acid|腐蚀伤害 || [[Enemies#Worms|沙虫炮塔]]
| Acid|腐蚀伤害 || [[Enemies#Worms|沙虫]],[[Enemies#Spitters|喷吐虫]]
|-
|-
| Poison|毒性伤害 || [[Poison capsule|剧毒手雷]]
| Poison|毒性伤害 || [[Poison capsule|剧毒胶囊]]
|-
|-
| Explosion|爆炸伤害 || [[Rocket|制式火箭弹]], [[Explosive rocket|爆炸火箭弹]]
| Explosion|爆炸伤害 || [[Rocket|标准火箭弹]][[Explosive rocket|爆炸火箭弹]],[[Grenade|标准手雷]]],[[Cluster grenade|集束手雷]]
|-
|-
| Laser|激光伤害 || [[Laser turrets|激光炮塔]], [[Distractor capsule|掩护机器人]]/[[Destroyer capsule|进攻机器人]], [[personal laser defense|个人激光防御模块]]
| Laser|激光伤害 || [[Laser turret (research)|激光炮塔]], [[Distractor capsule|掩护机器人]]/[[Destroyer capsule|进攻机器人]], [[personal laser defense|个人激光防御模块]]
|}
|}


== 伤害抗性 ==
=== 穿透力 ===
伤害抗性分为两种
穿透力存在于[[Tank|坦克]]弹药和穿甲霰弹。它决定了在不能够继续前进之前,发射物能对敌人HP敌人造成多少伤害。为了穿透敌人,敌人必须被发射物杀死,杀死的伤害必须小于当前的穿透力。[https://forums.factorio.com/viewtopic.php?f=5&t=30917] 所处理的伤害也降低穿透力。例如,用一个有300穿透力的炮弹攻击一个有75生命值的中型食人虫,意味着炮弹将穿透4个中型食人虫,杀死它们,并且仍能摧毁/伤害又一个目标。
=== 百分抗性 ===
 
优先计算,百分比减伤
== 抗性 ==
=== 固定抗性 ===
抗性有两方面:
:1. 减少指定数额的伤害, 但减除的伤害不会小于1
=== 减少,或"flat"抗性 ===
:2. 当减除到1之后抗性还有剩余, 剩下的抗性数值将作为1的除数作为最终伤害
减少抗性减少了指定数值的伤害,只要造成的伤害不会小于1。如果结果伤害会小于1,则使用另一个公式。
=== 举例 ===
设R表示flat抗性,D表示输入伤害,m为计算flat抗性后修正伤害。然后
 
如果 R+1<D
 
<code>M=D-R</code>
 
否则如果 D>1
 
<code>M=1/(R-D+2)</code>


==== 公式举例 ====
否则


:伤害10点 固定抗性8点 最终伤害为 10点 - 8点 = 2点 
<code>M=1/(R+1)</code>.
:伤害10点 固定抗性11点 最终伤害为 ( 10点 - 9点 )/( 11点 - 9点 ) = 0.5 点
:伤害100点 百分抗性90% 固定抗性8点 最终伤害为 100点×90% - 8点 = 2点
:伤害100点 百分抗性90% 固定抗性11点 最终伤害为 ( 100点×90% - 9点 )/( 11点 - 9点 ) = 0.5 点


==== 列表举例 ====
如果flat抗性匹配或超过原始伤害,则修正伤害渐近为0,如下面的示例表所示:


{| class="wikitable"
{| class="wikitable"
! Damage|伤害 !! Resistance|抗性 !! Result damage|伤害结果
|-
! Damage|伤害 !! Flat Resistance|flat抗性 !! Modified damage (with 0% resistance)|修正伤害(有着0%抗性)
|-
|-
| 5 || 0 || 5
| 5 || 0 || 5
Line 60: Line 80:
| ... || ... || ...
| ... || ... || ...
|}
|}
=== 百分位抗性 ===
百分位抗性减少了指定百分比的伤害。当两种抗性都存在时它被应用于flat抗性之后,从而改变上面的“修正伤害”值,将其降低指定的百分比。如果该值为100%,则该实体免疫伤害。作为一个例子,一个拥有25%物理伤害抗性的实体被用100物理伤害的一颗子弹击中,会受到75伤害而不是100。
设M表示从上述适用公式导出的修正伤害,P表示百分数抗性(以小数形式,所以25%=0.25),F表示最终伤害,然后
<code>F=M*(1-P)</code>
在Factorio,抗性以下列方式显示:
减免抗性/百分比抗性
所以,一个显示10/20%的火焰抗性的实体意味着该实体具有10的flat抗性和20%百分位火焰抗性。因此,如果所说的实体要受到30火焰伤害,那么在应用抗性后之后,它们会受到16伤害。
计算如下:
D=30, R=10, 所以 R+1=21<D=30, 然后我们对M使用上面第一个公式:
M=30-10=20
然后因为 P=20%=0.2, 我们获得
F=20*(1-0.2)=20*0.8=16
== 组合公式 ==
用D表示原始输入伤害(适用类型的),R表示flat抗性(对适用类型的伤害),P表示小数形式的百分数抗性(对相同类型的伤害)(例如20%=0.2),并用F表示对目标的最终伤害(适用类型的)。
如果 R+1<D
F = (D - R) * (1 - P)
否则如果 D>1
F = (1 - P) / (R-D+2)
否则
F = (1 - P) / (R+1)

Latest revision as of 11:19, 3 October 2024

概述

在Factorio,实体有生命,可以死亡/被破坏,有抗性。伤害被定义为通过使用攻击来降低实体的生命的概念,例如用枪对它射击,或者食人虫咬它。一个实体的抗性将确切地定义实体将从任意攻击中减免多少伤害。

玩家的的最大生命值是250(没有能量盾)。其他实体的生命值被列在它们各自的条目中。

成就

伤害的概念直接与下列成就有关:

Run-forrest-run-achievement.png 阿甘快跑

撞倒树木数量达100。

Pyromaniac-achievement.png 放火烧山,牢底坐穿!

烧毁树木数量达10k。

Steamrolled-achievement.png 摧枯拉朽

撞毁虫巢数量达10。

Golem-achievement.png 金钟罩铁布衫

单次受到至少500点伤害并存活下来。

Watch-your-step-achievement.png 迷之归西

被行驶中的机车撞死。

伤害类型

伤害类型 用于
物理伤害 手枪、冲锋枪子弹(标准弹匣/穿甲弹匣/贫铀弹匣),霰弹枪 (标准霰弹/穿甲霰弹),食人虫,斧头 (铁斧镐/钢斧镐),防御无人机
碰撞伤害 碰撞(内燃机车/汽车的)
火焰伤害 火焰喷射器
腐蚀伤害 沙虫喷吐虫
毒性伤害 剧毒胶囊
爆炸伤害 标准火箭弹爆炸火箭弹标准手雷],集束手雷
激光伤害 激光炮塔, 掩护机器人/进攻机器人, 个人激光防御模块

穿透力

穿透力存在于坦克弹药和穿甲霰弹。它决定了在不能够继续前进之前,发射物能对敌人HP敌人造成多少伤害。为了穿透敌人,敌人必须被发射物杀死,杀死的伤害必须小于当前的穿透力。[1] 所处理的伤害也降低穿透力。例如,用一个有300穿透力的炮弹攻击一个有75生命值的中型食人虫,意味着炮弹将穿透4个中型食人虫,杀死它们,并且仍能摧毁/伤害又一个目标。

抗性

抗性有两方面:

减少,或"flat"抗性

减少抗性减少了指定数值的伤害,只要造成的伤害不会小于1。如果结果伤害会小于1,则使用另一个公式。 设R表示flat抗性,D表示输入伤害,m为计算flat抗性后修正伤害。然后

如果 R+1<D

M=D-R

否则如果 D>1

M=1/(R-D+2)

否则

M=1/(R+1).

如果flat抗性匹配或超过原始伤害,则修正伤害渐近为0,如下面的示例表所示:

伤害 flat抗性 修正伤害(有着0%抗性)
5 0 5
5 1 4
5 2 3
5 3 2
5 4 1
5 5 1/2
5 6 1/3
5 7 1/4
5 8 1/5
... ... ...

百分位抗性

百分位抗性减少了指定百分比的伤害。当两种抗性都存在时它被应用于flat抗性之后,从而改变上面的“修正伤害”值,将其降低指定的百分比。如果该值为100%,则该实体免疫伤害。作为一个例子,一个拥有25%物理伤害抗性的实体被用100物理伤害的一颗子弹击中,会受到75伤害而不是100。 设M表示从上述适用公式导出的修正伤害,P表示百分数抗性(以小数形式,所以25%=0.25),F表示最终伤害,然后

F=M*(1-P)

在Factorio,抗性以下列方式显示:

减免抗性/百分比抗性

所以,一个显示10/20%的火焰抗性的实体意味着该实体具有10的flat抗性和20%百分位火焰抗性。因此,如果所说的实体要受到30火焰伤害,那么在应用抗性后之后,它们会受到16伤害。

计算如下:

D=30, R=10, 所以 R+1=21<D=30, 然后我们对M使用上面第一个公式:

M=30-10=20

然后因为 P=20%=0.2, 我们获得

F=20*(1-0.2)=20*0.8=16

组合公式

用D表示原始输入伤害(适用类型的),R表示flat抗性(对适用类型的伤害),P表示小数形式的百分数抗性(对相同类型的伤害)(例如20%=0.2),并用F表示对目标的最终伤害(适用类型的)。

如果 R+1<D

F = (D - R) * (1 - P)

否则如果 D>1

F = (1 - P) / (R-D+2)

否则

F = (1 - P) / (R+1)