有关Minecraft中盔甲机制的原理拆解

0. 伤害

MC拥有许多不同的伤害类型,穿戴防具所提供的护甲值并不总是能为玩家抵抗受到的伤害。盔甲所附的保护魔咒能为玩家抵抗更多类型的伤害,但仍然不适用于全部的伤害类型。抗性提升作为一则状态效果,能够抵抗最多类型的伤害,但仍不包含虚空与饥饿等特殊类型的伤害。

下文中将使用“抵抗”一词表述“受到对应伤害防御削减”,“阻挡”一词表述“对应伤害防御削减了100%的伤害”。

0.1 能被护甲值所抵抗

护甲值能保护生物抵抗除以下类型外所有的伤害:

  • 掉落(摔落伤害)
  • 环境(包括着火、溺水、闪电、冰冻)
  • 饥饿
  • 魔法
  • 动能
  • 窒息
  • 虚空
  • 监守者的音爆攻击

0.2 能被保护魔咒所抵抗

MC共存在5种不同的保护魔咒。拥有保护魔咒的盔甲除了计算护甲值提供的抵抗外,也计算不同保护魔咒带来的抵抗效果。保护魔咒通过提供不同魔咒保护系数(Enchantment Protection Factor),针对不同类型的伤害提供了差异性的抵抗效果:

  • 保护:保护魔咒能够抵抗除饥饿、虚空、监守者的音爆攻击外所有类型的伤害;
  • 爆炸保护:爆炸保护魔咒能够针对性的抵抗爆炸伤害;
  • 火焰保护:火焰保护能够针对性的抵抗火焰伤害,包括小火球(并非恶魂的火球);
  • 弹射物保护:弹射物保护能够针对性的抵抗弹射物伤害;
  • 摔落缓冲(旧译名为“摔落保护”):摔落缓冲能够针对性的抵抗摔落伤害,包括末影珍珠。

0.3 能被抗性提升所抵抗

抗性提升作为MC中唯一有关伤害抵抗(而非如抗火一样提供阻挡)的状态效果,能够抵抗除了虚空和饥饿外所有类型的伤害。

0.4 关于/kill

1.3.1版本的12w16a快照前,/kill指令赋予玩家1000点伤害,该伤害等同于一般近战攻击造成的伤害,因此会被盔甲机制和伤害机制响应。在此后/kill被重设为虚空伤害,这将忽略玩家的盔甲。

自1.6.1版本的13w24b快照后,/kill的虚空伤害被从1000点提升至3.4×10^38点。

1.8版本的14w02c快照后,为修复/kill指令无法删除射出的箭矢这一不受伤害的实体,/kill的效果从对目标实体造成3.4×10^38点虚空伤害改为对生物实体造成3.4×10^38点虚空伤害,直接清除非生物实体。

本拆解中将其归类为虚空伤害的一种,而不是像Minecraft Wiki将其视为一种独立伤害类型。

1. 护甲值机制

生物的护甲值防护包含护甲值(Armor)与盔甲韧性(Armor toughness)两个属性(Attributes)。一般来说,仅有防具拥有护甲值与盔甲韧性,但由于其被定义为“属性”,它们也能够被应用于实体,这也包括玩家。典型的例子是,无任何防具的僵尸仍然具有2点护甲值,这使得僵尸在面对正好20点伤害的攻击时不会被一击必杀,而同样拥有20点生命值的骷髅就会被一击必杀。理论上也可以通过命令为玩家赋予护甲值与盔甲韧性。

1.1 护甲值(Armor)

护甲值是一种直接负责降低伤害的属性,由玩家穿戴防具所提供的的护甲值与玩家本体属性的护甲值加算而得,最多有30点护甲值同时生效。

常规来说,可以在游戏里穿戴防具以获取护甲值:

材料 头盔 胸甲 护腿 靴子 总计
皮革 1 3 2 1 7
锁链 2 5 4 1 12
2 6 5 2 15
黄金 2 5 3 1 11
钻石 3 8 6 3 20
下界合金 3 8 6 3 20
海龟壳 2 \ \ \ 2

对于马来说,穿戴以下物品时可以获取护甲值:

材料 马铠
皮革 3
5
黄金 7
钻石 11

MC中,每点护甲值能够抵抗的伤害并不恒定不变。一般来说,护甲值越高,受到伤害时实际抵抗的生命值就会越少。但随着受到伤害的提高,防具能够提供的伤害抵抗百分比会逐渐衰减,最终达到一个由护甲值所决定的抵抗下限。总的来说,更大的伤害会降低每点护甲值能抵抗的伤害。

1.2 盔甲韧性(Armor toughness)

盔甲韧性不直接负责降低受到的伤害,但通过改变防具能够提供的保护效果衰减速度的方式来提升防具的防御能力。盔甲韧性由玩家穿戴防具所提供的的盔甲韧性与玩家本体属性的盔甲韧性加算而得,最多有20点盔甲韧性同时生效。

盔甲韧性对维持防御能力十分重要,尤其是在面对单次较高伤害时的防御能力。面对高额伤害时,护甲值拥有一个最低抵抗下限,也就是衰减的临界最小值,盔甲韧性所能做的就是减缓到达临界最小值的速度。

材料 头盔 胸甲 护腿 靴子 总计
钻石 2 2 2 2 8
下界合金 3 3 3 3 12

1.3 伤害减免

若护甲值能够防御受到的伤害类型,玩家穿戴中的防具便会损失耐久度。每8点原始伤害削减1点耐久度,不足8点时亦正常扣除1耐久度。被抵抗的伤害基于玩家的护甲值,盔甲韧性与抗性提升等级综合决定。我们假定护甲值为A,盔甲韧性为T,抗性提升等级为R,则公式如下:

下面给出一张在玩家身着全套防具时遇到不同原始伤害攻击时的实际受伤图表:

可以看出,自某一时间点后,伤害曲线的增长速度就趋近直线了。参照防护有效率图表:

可以看出每款防具都有一个固定的最低伤害抵抗下限,或称其为衰减的临界最小值。分析本节给出的伤害函数公式,不难得出这一临界值为A/125。即最低的伤害抵抗比例不低于护甲值总和的一百二十五分之一。钻石与下界合金护甲因为较高的护甲白值和拥有一定盔甲韧性,在有效率上高出其他盔甲一大截,不过最多也仍然只能达到79.00%和79.20%的有效率。

如果消去钻石和下界合金的盔甲韧性(如图中红线所示),可以看出与同样没有盔甲韧性的铁防具将会有着相同的衰减速度。而盔甲韧性则将这一曲线调平,减缓了衰减速度,提升了防具在面对高额伤害时的防护能力。8点盔甲韧性使钻石防具在面对单次20点伤害时比无盔甲韧性的同护甲值防具提升了50%的有效率,而12点盔甲韧性的下界合金则提升了60%的有效率。

盔甲韧性提供的补正并非无上限,即使拥有MC中整型上限的盔甲韧性(即32767),也不能超过护甲值提供的最大理论减免比例。

1.4 保护魔咒机制

MC共存在5种不同的保护魔咒,包括保护、弹射物保护、火焰保护、爆炸保护和摔落缓冲。保护魔咒在护甲值结算伤害减免后生效,为护甲值后对抗伤害的第二层防护。保护魔咒的计算顺序晚于护甲值保护,并抵抗被护甲值降低过后的剩余伤害。也就是说,保护魔咒并不对原始伤害生效,而是对实际伤害施加比例乘算,因此保护魔咒并不能通过阻挡伤害的方式来防止防具的耐久度损耗,但不会因其生效时抵抗的伤害二次扣除防具的耐久值。

常规情况下,玩家能获取到的最高保护魔咒等级为4。除摔落缓冲外,其他四项保护魔咒在装备上是互斥的,但若通过作弊或命令的方式强制附加,则会同时生效。获得等级高于等级上限的保护魔咒仍然会正常生效,一件保护魔咒等级奇高的防具可能会达到EPF上限,使得超出的部分不生效。

每种保护魔咒都会保护一类特定的伤害,而减少的伤害取决于该魔咒提供的魔咒保护系数(Enchantment Protection Factor,简称EPF),多个装备的保护魔咒提供的EPF是叠加的。

每点EPF提供4%的伤害减免,或也可以将EPF加起来除以25,即EPF/25。但无论如何,同时生效的EPF不能超过20点。也就是通过保护魔咒减免的伤害比例不能超过80%。

负等级的保护魔咒常规情况下不可能出现,但仍然可以通过作弊或指令的方式调出。它们会扣减等同于正等级应增加数值的EPF,但不会提高本应受到的伤害,即EPF/25的值不会降到0以下。

魔咒类型 等级对应EPF I级 II级 III级 IV级
保护 1 1 2 3 4
弹射物保护 2 2 4 6 8
火焰保护 2 2 4 6 8
爆炸保护 2 2 4 6 8
摔落缓冲 3 3 6 9 12
  • 保护:保护魔咒能够抵抗除饥饿、虚空、监守者的音爆攻击外所有类型的伤害;
  • 爆炸保护:爆炸保护魔咒能够针对性的抵抗爆炸伤害;
  • 火焰保护:火焰保护能够针对性的抵抗火焰伤害,包括小火球(并非恶魂的火球);
  • 弹射物保护:弹射物保护能够针对性的抵抗弹射物伤害;
  • 摔落缓冲(旧译名为“摔落保护”):摔落缓冲能够针对性的抵抗摔落伤害,包括末影珍珠。

对某项同时满足多个保护魔咒生效条件的伤害,如摔落伤害同时满足保护和摔落缓冲的生效条件,则将所有被满足生效条件的EPF相加。当拥有IV级摔落缓冲和三件IV级保护时,可以得到12+16=28点EPF,但此时仅有20点EPF生效,意味着保护魔咒能抵抗80%的摔落伤害。

1.5 抗性提升(Resistance)

抗性提升是一种可以降低实体受到伤害的状态效果,能够比例减免除了饥饿和虚空伤害外的所有伤害。

每级抗性提升降低20%原始伤害,5级以上时将会阻挡大多数伤害。4级以上时阻挡中毒造成的伤害,但中毒的效果不会丢失。

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2023-2024 TWFish
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信