战斗公式
游戏机制指南
战斗是逐击模拟的:每一次出手、闪避、格挡和暴击都要随机判定。本指南按游戏的处理顺序追踪一次攻击,并列出游戏客户端使用的公式。
一次攻击的结算步骤
攻击的结算顺序、暴击与等级差
每次普通攻击和技能命中都按以下顺序经过相同的步骤:
- 1 自动落空目标处于无法被攻击的状态,或近战攻击者攻击飞行目标。
- 2
- 3 狂怒层数被击中的英雄获得一层。
- 4
- 5
- 6
- 7 格挡判定物理部分和元素部分分别判定。
- 8 吸收作用于整次攻击。命中的攻击至少造成 1 点伤害。
- 9
- 10 异常状态 英雄的冰缓、虚弱和致盲会施加到被击中的敌人身上(若该敌人仍存活)。
百分比均为游戏中显示的数值(游戏内部以基点存储,100 = 1%)。闪避、格挡和元素格挡是数值而非百分比,生命值、自动回复和吸收为属性界面中换算后的数值。
暴击
暴击率可以超过 100%:每满 100% 就必定多一“层”暴击,剩余部分则是再多一层的几率。
暴击作用于攻击的物理部分和元素部分,但不作用于持续伤害、反伤或治疗。怪物永远不会暴击。
示例:暴击率 150%
暴击率 150%、暴击伤害 +50% 时,M = 2.5。每次攻击至少暴击一次(×2.5),其中一半会暴击两次(1 + 2 × 1.5 = ×4)。平均为 ×3.25。
等级差
英雄等级高于怪物时不会得到任何好处;只有低于怪物时才会吃亏,此时怪物的攻击也会更痛。关卡首领和章节首领对等级差的惩罚要重得多:
| 怪物高出英雄 | 英雄造成 | 英雄承受 | 首领系数 | 英雄闪避几率保留 |
|---|---|---|---|---|
| 1 级 | ×0.87 | ×1.15 | ×1.15 | 90% |
| 2 级 | ×0.756 | ×1.32 | ×1.32 | 80% |
| 3 级 | ×0.658 | ×1.52 | ×1.52 | 70% |
| 4 级 | ×0.572 | ×1.75 | ×4.56 | 60% |
| 5 级 | ×0.497 | ×2.01 | ×13.69 | 50% |
| 6 级 | ×0.311 | ×3.22 | ×41.06 | 40% |
| 7 级 | ×0.194 | ×5.15 | ×123 | 30% |
| 8 级 | ×0.121 | ×8.24 | ×370 | 20% |
| 10 级 | ×0.047 | ×21.09 | ×3,326 | 0% |
只要攻击的任一方是关卡首领或章节首领,就改用首领系数;对首领时,闪避一栏不变。首领面对比它低超过 3 级的英雄时还会狂怒。
持续伤害、战场与首领等级
两种系数同样作用于持续伤害的每一跳和反伤。英雄对英雄(战场)时始终按同级计算。
章节首领的战斗等级比其关卡高 ⅔ 级,因此即使队伍与关卡同级,造成的伤害也只有 ×0.911,承受的伤害则为 ×1.098。关卡首领的战斗等级与其关卡最多相差 ⅓ 级。
比首领低 4 级的英雄承受其 ×4.56 的伤害,造成 ×0.219 的伤害;面对高 4 级的普通怪物,则只承受 ×1.75。
闪避、怪物闪避与致盲
第 2 步:攻击是否命中
英雄靠闪避躲开攻击,按攻击者的等级和等级差计算:
| 数值 | 对 10 级 | 对 30 级 | 对 60 级 | 对 100 级 |
|---|---|---|---|---|
| 250 | 18.5% | 9.8% | 5.7% | 3.7% |
| 500 | 31.3% | 17.9% | 10.9% | 7.1% |
| 1,000 | 47.6% | 30.3% | 19.6% | 13.3% |
| 2,300 | 67.6% | 50% | 35.9% | 26.1% |
| 5,000 | 82% | 68.5% | 54.9% | 43.5% |
同一张表也给出格挡值对应的格挡几率(不计等级系数)。怪物没有英雄的闪避属性,英雄也没有怪物闪避。在战场中,超出英雄基础命中的命中会削弱被攻击英雄的闪避:命中达到基础命中的两倍时,目标的闪避值减半。
怪物则靠自己的闪避(下称怪物闪避)躲开攻击,而且只能躲开普通攻击:技能命中永远不会落空。
| 怪物 | 敏捷 | 对命中系数 1 的落空率 | 对系数 1.5 |
|---|---|---|---|
| 灵敏 | ×1.714 | 39.1% | 30% |
| 普通(以及所有首领) | ×1 | 27.3% | 20% |
| 笨重 | ×0.444 | 14.3% | 10% |
针对命中恰好等于怪物等级对应基础命中的英雄(见基础命中);命中越高,落空率越低。
怪物身上的致盲会帮助被它攻击的英雄,即使英雄没有闪避:
首领免疫致盲。每个拥有致盲属性的英雄都会把它施加到所击中的敌人身上(见异常状态),刺客的烟幕则以减益形式施加致盲。
示例:闪避 500、致盲 25%
闪避 500 对 30 级怪物:500 ÷ (500 + 5 × 460) = 17.9%。如果该怪物比英雄高 3 级,则只剩 70%:12.5%。
致盲 25% 会让怪物对闪避为 0 的英雄的攻击有 20% 落空。
伤害减免
第 6 至 8 步:护甲、抗性、格挡与吸收
护甲和抗性削减攻击的各个部分,闪避直接躲开攻击,格挡将其中一部分减半,吸收再削去剩下的伤害。
护甲与穿透
防御力削减攻击的物理部分。它按攻击者的等级计算,因此同样的防御力面对更强的怪物时挡下的更少:
护甲类型决定防御力能多接近 85% 的上限,但永远无法达到。怪物没有穿透,所以最后一项只在战场中起作用。
重甲英雄的物理减伤;中甲乘以 0.8,轻甲乘以 0.6:
| 怪物等级 | 防御力 200 | 防御力 400 | 防御力 1,000 | 防御力 3,000 |
|---|---|---|---|---|
| 10 级 | 54.8% | 66.7% | 76.6% | 82% |
| 30 级 | 39.5% | 54% | 69.1% | 78.9% |
| 60 级 | 27.9% | 42% | 60.3% | 74.8% |
| 100 级 | 20% | 32.4% | 51.5% | 69.9% |
怪物护甲随关卡战力提升,上限为 75%。英雄的穿透会按其比例去除这部分护甲;怪物身上的穿透减益(破甲)会加到每个攻击它的英雄的穿透上。
示例:防御力 400,以及 20% 穿透
防御力 400 对 30 级怪物:0.85 × 400 ÷ (400 + 50 + 180) = 54%(重甲职业),中甲为 43.2%,轻甲为 32.4%。
能削减 58.8% 物理伤害的怪物,面对拥有 20% 穿透的英雄时只削减 47%。
抗性
每种抗性削减攻击中对应元素的部分,与防御力一样按护甲类型加权,并在更难的地图上降低。低于 0 时,该元素的伤害反而更高:
最大抗性来自被动天赋树。怪物的权重为 1,抗性不会低于 0,上限为 75%:标注为对自身元素有 100% 抗性的怪物按 75% 计算。
示例,以及超过 75% 的抗性
火焰抗性 75% 的法师(轻甲,权重 0.6)在帷幕承受 1 − 0.75 × 0.6 = 55% 的火焰伤害。在深渊,其抗性降到 15%,承受 1 − 0.15 × 0.6 = 91%。闪电抗性 30% 的重甲英雄在深渊降到 −30%,承受 130% 的闪电伤害。
按我们对代码的理解,地图惩罚在检查上限之前扣除,因此在裂口和深渊,超过 75% 的抗性并不会浪费,即使属性界面将其标为“溢出”。章节首领战同样按含惩罚的抗性计算。
格挡
格挡针对攻击的物理部分,元素格挡针对元素部分;只有攻击含有相应部分时才会判定,且不受等级差系数影响:
格挡 500 对 30 级怪物时,有 17.9% 的几率格挡物理部分。怪物永远不会格挡。元素区域的怪物几乎全部伤害都是其元素伤害,因此面对它们时,元素格挡远比格挡重要。
吸收
吸收在格挡之后最后结算,作用于整次攻击。它对小伤害攻击吸收的比例比大伤害攻击更高:
吸收等于该次攻击伤害的五倍时,伤害减半。怪物没有吸收。
示例:吸收 500
吸收 500 能让 100 点伤害的攻击减半(100 × 500 ÷ 1,000 = 50),但对 1,000 点伤害的攻击只削去 9.1%(1,000 × 5,000 ÷ 5,500 = 909)。
加成与减益
增幅、狂怒层数与异常状态
狂怒、感电、诅咒与易伤
这四者共用一个“额外伤害”加成,超过 +300% 后有软上限;其中感电、诅咒和易伤按 75% 计算,狂怒完全计入。在英雄身上,它们提高英雄自己的攻击和持续伤害每一跳,但不影响反伤;作为技能减益施加在怪物身上时,它们提高所有人对该怪物造成的伤害:
| 总加成 | +300% | +400% | +600% | +1,000% | +2,000% |
|---|---|---|---|---|---|
| 有效加成 | +300% | +386% | +508% | +661% | +869% |
仅有感电 100% 和诅咒 60% 时,加成为 +120%。怪物没有这四种属性。
印记:定罪与诅咒
狂怒层数。英雄每受到一次命中的攻击就获得 1 层,最多 10 层;被闪避的攻击和英雄自己的攻击都不提供层数。最后一次受到攻击 4 秒后,层数开始消退,每 2 秒消失一层。
该系数范围为 0 到 2:10 层且生命值几乎耗尽时翻倍。被格挡的攻击仍会提供层数。
示例:野蛮人
野蛮人初始拥有狂怒 +6%。10 层且生命值剩一半时,系数为 1 × 1.5 = 1.5,因此加成为 +9%。
虚弱、冰缓、致盲与控制效果
英雄的虚弱、冰缓和致盲会施加到它击中的每个敌人身上,持续 4 秒,每次命中刷新。持续期间对整支队伍都有效,与技能减益带来的同类效果一样:
| 效果 | 作用 | 首领 |
|---|---|---|
| 虚弱 | 被虚弱者的伤害 ÷ (1 + 虚弱) | 按 50% 计算 |
| 冰缓 | 被冰缓者的攻击间隔和施法时间 × (1 + 冰缓)。是减速,不是冻结。 | 免疫 |
| 致盲 | 其攻击更容易落空(见致盲) | 免疫 |
| 眩晕、冻结、定身、束缚、抓取 | 来自特定技能,将目标的下一次行动推迟相应时长 | 免疫 |
每个英雄施加自己的数值(该属性加上该属性的增益),不同英雄和技能的数值相加。被闪避的攻击不会施加任何效果。
示例:虚弱 25%、冰缓 50%
虚弱 25% 将怪物伤害降到 80%;冰缓 50% 让它每 1.5 秒出手一次,而不是每秒一次。女巫的厄运以减益形式施加虚弱。
持续伤害与治疗
流血、腐朽、灼烧与中毒,反伤、治疗、自动回复与生命偷取
持续伤害
英雄的流血、腐朽、灼烧和中毒属性会合计为一个固定的每秒伤害,每秒对英雄当前目标结算一次。元素类型无关紧要:
护甲、抗性、暴击、闪避和格挡都不生效,生命偷取可从中回复生命。
持续伤害技能的运作方式如下:
- 1 普通攻击技能先打出英雄的一次普通攻击。
- 2 跳伤立即跳一次,之后每秒一跳,因此 5 秒的效果共跳 5 次。每跳同样无视护甲和抗性。
- 3 重复施放再次施放同一技能会刷新效果;不同英雄的同种效果可以叠加。
治疗师的圣焰对受伤目标更强:每跳 × (0.25 + 1.5 × 目标已损失生命值比例)。
反伤
反伤与持续伤害属性一样,每秒对英雄当前目标结算一次。成长反伤让它以超过线性的速度增长:
等级系数和虚弱生效,增幅加成不生效,任何减伤都对它无效。生命偷取可从中回复生命。
示例:成长反伤 100% 与 50%
反伤 1,000、成长反伤 100% 时每秒造成 1,000 × (1 + 1 × 1) = 2,000。反伤 500、成长反伤 50% 时造成 500 × (1 + 0.5 × 0.5) = 625。没有成长反伤时,反伤造成的伤害就等于其自身数值。
治疗与自动回复
治疗量和受治疗量会影响治疗技能和治疗光环提供的自动回复,但不影响其他自动回复或生命偷取:
施法者伤害为其攻击力加上全部元素伤害,因此伤害变为四倍时,回复量只变为两倍。只治疗施法者自己的技能使用 0.0199,而不是 0.0097。
| 来源 | 回复方式 |
|---|---|
| 自动回复 | 每个存活的战斗者每秒回复等同于其自动回复(属性界面数值)的生命值。没有上限,负的自动回复会造成伤害。 |
| 治疗光环 | 复原光环为每名队伍成员增加自动回复。战斗中这部分自动回复会按上述方式换算,属性窗口不计入这一部分。 |
| 生命偷取 | 按造成伤害的一定比例回复:包括攻击、持续伤害每一跳和反伤。 |
| 治疗技能 | 治疗所有受伤的队伍成员(或仅施法者自己),生命值最低者优先,每人回复全额。 |
| 持续治疗 | 每秒一跳,仅在成员受伤时生效。 |
| 护盾 | 持续期间增加吸收。 |
| 生命增益 | 以相同数值提高最大生命值和当前生命值。 |
战场按自己的规则换算治疗。
每次施放的回复量,以及示例
回复量按技能冷却的每秒计算:即时治疗回复该数值乘以冷却秒数,持续治疗则把它分摊到每一跳中。技能数值为技能基础值加上等级加成,再乘以技能强度。
治疗量 20% 的英雄对受治疗量 10% 的英雄施放 1,000 生命值的治疗,回复 1,000 × 1.2 × 1.1 = 1,320。
治疗量 50% 的治疗师施放提供 100 自动回复的光环,战斗中受治疗量 20% 的成员获得 100 × 1.5 × 1.2 = 180 自动回复。
属性、速度与冷却
属性界面的计算方式、攻击与施法、冷却缩减
属性的最终计算方式
英雄的属性按固定顺序计算,因此被动天赋树的百分比加成会乘上在它之前加入的所有数值:
- 1 装备 已装备物品上的所有词缀和附魔(每 +1 强化为其增加 5% 至 12%,稀有度越高越多),以及镶嵌的宝石。
- 2 职业成长 × 等级 大多数职业成长攻击力、防御力和生命值;法师成长元素伤害、女巫成长混沌伤害,以代替攻击力。各职业页面列出了其成长。
- 3职业基础属性
- 4基础命中公式见下文。
- 5 被动天赋树 依次为固定值、伤害转换、% 提高,最后是“额外”乘数。之后每项属性向下取整。
- 6 最终换算生命值 ×10,自动回复 ×1.5,吸收 ×5。战斗使用这些换算后的数值。
治疗师还会在最终换算之前获得等于其攻击力 15% 的自动回复。元素伤害会加到英雄当前最高的那种元素上(并列时依次按火焰、冰霜、闪电、混沌的顺序;没有元素伤害的英雄按火焰计)。强化装备的阶段效果不显示在属性界面上:战斗中它们会不时以短暂增益的形式触发。
元素附魔武器与工程师的闪电
基础命中(第 4 步)取决于等级和职业:
示例:30 级时的基础命中
30 级战士的基础命中为 (100 + 360) × 1.5 = 690;30 级法师为 460。
攻击与施法
每个战斗者都以固定节奏进行普通攻击。攻击速度按线性提高攻击频率,且没有上限:
怪物没有攻击速度,因此每秒出手一次。
装上的技能就绪时,英雄会施放它来取代下一次普通攻击:
- 1 选择 从上次使用的技能之后开始,依次尝试各个技能。治疗技能会等到有人受伤才施放。只剩一个敌人且队伍的普通攻击约两秒内就能将其击败时,其他技能会暂缓施放。
- 2 施放 这次行动的时长取攻击间隔与施法时间中较长者。冷却在施法开始时计时。攻击类技能(伤害、持续伤害、减益或破甲)若在没有敌人时触发,不会被消耗,仍保持就绪。
- 3 命中 每次施放都会同时打出英雄的普通攻击。伤害技能在此基础上叠加自身加成,增益、治疗和减益技能也仍会用这次攻击命中当前目标。技能命中无法被闪避。
示例:攻击速度 25%、施法速度 60%
攻击速度 25% 时每秒攻击 1.25 次,即每 0.8 秒一次。施法速度 60% 将施法时间缩短到 0.5 秒。
冷却缩减
冷却属性收益递减:实际缩减会逐渐逼近 80%,但永远达不到。
| 冷却属性 | 10% | 20% | 30% | 50% | 80% | 100% | 200% | 400% |
|---|---|---|---|---|---|---|---|---|
| 实际缩减 | 9.4% | 17.7% | 25% | 37.2% | 50.6% | 57.1% | 73.4% | 79.5% |
任何技能的冷却都不会短于 1.5 秒;增益、护盾和生命增益的冷却也永远不会短于其持续时间,因此它们无法重叠。
装备的 +10 节点唤醒后,有两种阶段效果在触发时可以绕过这一限制:法步让下一个技能无需冷却即可施放,戒备让每个技能的冷却减少 2 秒。
示例:8 秒冷却的技能
8 秒冷却的技能在冷却 50% 时每 5.03 秒就绪一次,在冷却 200% 时每 2.13 秒一次。3 秒冷却的技能在冷却 200% 时会触及 1.5 秒的下限。
怪物如何战斗
前期怪群、谁会被攻击、首领及其狂怒,以及英雄倒下
怪物每秒出手一次,没有暴击、闪避、格挡、吸收、自动回复、生命偷取或增幅。各关卡的怪物属性见地图和怪物图鉴页面;关卡等级 30 以上,普通怪物还会获得终局强化,生命值和伤害更高。
前期怪群伤害较低
关卡等级 17 以下,每只普通怪物的伤害(不包括生命值)会被调低,使一整群怪物的伤害大约只相当于几只怪物:
| 关卡等级 | 1–3 | 5 | 8 | 10 | 13 | 15 | 17 及以上 |
|---|---|---|---|---|---|---|---|
| 怪物伤害 | ×0.027 | ×0.166 | ×0.375 | ×0.514 | ×0.722 | ×0.861 | ×1 |
各关卡列出的伤害未计入这一调整。
谁会被攻击
守护者(战士、野蛮人和圣骑士)负责守住前排:
| 攻击者 | 攻击目标 |
|---|---|
| 普通怪物,有守护者存活时 | 只攻击守护者。守护者击中怪物后会立即将其吸引过来。其他英雄伤害普通怪物时,该怪物有 10% 的几率转而攻击这名英雄,直到守护者重新吸引它或这名英雄倒下。 |
| 普通怪物,没有守护者时 | 平均分散攻击整支队伍。 |
| 首领(关卡与章节) | 总是攻击队伍顺序中第一个存活的守护者,无视仇恨。 |
近战怪物无法攻击飞行的英雄。
首领
关卡首领和章节首领有自己的战斗规则:
狂怒。首领登场 60 秒后伤害翻倍,之后每 30 秒再翻倍一次,但只针对比它低超过 3 级的英雄:
| 首领登场后经过的时间 | 不足 60 秒 | 60 s | 90 s | 120 s | 150 s | 180 s |
|---|---|---|---|---|---|---|
| 首领伤害 | ×1 | ×2 | ×4 | ×8 | ×16 | ×32 |
只要队伍中有英雄等级低到会受其影响,游戏就会在首领血条旁倒计时显示“…后狂怒”,随后显示“狂怒 ×2”“×4”等。比首领低不超过 3 级的队伍永远不会遇到狂怒。
英雄倒下时
| 英雄倒下 | 它给队伍提供的增益、护盾和光环随之结束。它会一直处于倒下状态,直到关卡首领被击败、队伍团灭或关卡切换。 |
| 移出后再放回 | 战斗中被移出队伍又放回的英雄,会带着原来的生命值回来;如果之前已倒下,则仍处于倒下状态。 |
| 队伍团灭 | 关卡重新开始;如果开启了“阵亡后退回一关”选项,队伍会退回上一关。 |
| 在章节首领处团灭 | 队伍返回第 9 关。 |
| 手动移动队伍 | 在地图上选择其他关卡,或点击跳到最远已开放关卡的 ▶▶ 按钮,会在那里开始新的战斗,但每名英雄保留其生命值比例和技能冷却。已倒下的英雄会以 10% 生命值重新站起。 |
赢下关卡或团灭后,下一场战斗会全新开始:生命值全满,所有技能就绪。
计算示例
完整计算一场战斗中双方的每一步
一名 30 级重甲英雄在帷幕浮空岛的第 10 关与一只普通怪物战斗:
英雄
- 等级
- 30 级,重甲
- 攻击力
- 500
- 暴击率
- 10%
- 暴击伤害
- +50%
- 防御力
- 400
- 抗性
- 30%
- 命中(基础)
- 690
- 闪避
- 800
- 格挡
- 500
- 吸收
- 500
怪物
- 等级
- 30
- 区域
- 闪电
- 敏捷
- 灵敏(×1.714)
- 物理减伤
- 58.8%
- 原始伤害
- 1 物理 + 180 闪电
英雄攻击怪物
| 进度 | 算式 | 结果 |
|---|---|---|
| 暴击与护甲(平均) | 500 × (1 + 0.1 × 1.5) × (1 − 0.588) | 每次命中的普通攻击 236.8 |
| 灵敏怪物的闪避 | 1,478 ÷ (1,478 + 5 × 690) | 30% 的普通攻击落空 |
技能攻击总会命中。
怪物攻击英雄
| 进度 | 算式 | 结果 |
|---|---|---|
| 物理减伤 | 0.85 × 400 ÷ (400 + 50 + 180) | 54% |
| 抗性后的闪电伤害 | 180 × (1 − 0.30) | 126 |
| 格挡(仅物理部分) | 17.9% 几率使物理部分减半 | 平均 126.4 |
| 吸收 500 | 126.4 × 632 ÷ (500 + 632) | 70.6 |
| 闪避 800 | 800 ÷ (800 + 2,300) = 25.8% 的出手落空 | 平均每次出手 52.4 |
尚未确认的内容
以下内容读自代码,尚未在实际游戏中验证:
- 抗性的职业权重。轻甲职业只保留 60% 的抗性,中甲职业保留 80%。铠甲的提示框没有提到这一点。
- 持续伤害和反伤无视所有减伤。这一点应在高护甲首领身上测试。
- 冷却对瞬发伤害技能计算两次。它既缩短冷却,又提高每次施放的伤害。代码确实如此;是否有意为之尚不清楚。
- 约 40 个技能带有脚本化的额外效果(多段攻击、连锁、印记、炮塔),本指南未涵盖。
- 哪种怪物是灵敏型。游戏从每章一份较旧的三怪物列表中选取敏捷,可能与屏幕上的怪物不一致。
- 战场、裂隙巨像和公会巨兽猎杀沿用同一战斗引擎,但有各自的规则,本文未涵盖。
- 显示上限。属性界面会把超过 75%(有最大抗性时为 85%)的抗性和超过 100% 的穿透标为“溢出”。攻击速度、暴击率、闪避和格挡在战斗中没有上限。
来源:游戏客户端 1.0.2。