观察DNF的伤害计算公式

DNF的伤害计算

在之前的博客《观察LOL的数值系统》中,我粗略观察了LOL的数值系统,虽然有很多不确定的地方,但是其中关于伤害计算公式我还是比较确信的。但是DNF伤害计算公式的研究难度,相比LOL要困难很多,有以下几个原因:

  • 伤害值不是固定的,而是有一定范围浮动。(尽管看起来浮动值很小)
  • 牵扯到很多方面的数值,而他们的结算优先级也需要考虑
  • 修炼道场中不显示更详细的属性(例如防御力等)

前言

  1. 文档中的很多小数都只保留了1~3位。
  2. 计算出伤害期望与实际打出的伤害差别在50以内都认作是计算正确。

测试环境

“伤害”受多个自身数值的加成,也会因对方防御力等数值而减免,而这些加成/减免数值很多并不会显示,这对测试分析造成了极大的妨碍。
因此,分析伤害的首要目标是发现一个0加成、0减免的测试环境。在此测试环境下,实际输出的伤害等于理论伤害。这里,我发现的环境是:
用几乎是刚创建的15级女鬼剑,使用技能【波动斩】,对修炼道场中的【陨石】进行输出:
在这里插入图片描述
可以看到,我的面板物理攻击424,【波动斩】的物理攻击力加成158%,这样伤害期望是:
424 × 158 % = 669.92 424 \times158\%=669.92 424×158%=669.92

而显示的伤害和此值相差极小。这说明现在就是想要的测试环境,这意味着:

  1. 【陨石】的伤害减免为0。如果我用相同的角色和技能去输出另一个对象发现小于伤害期望,则说明另一个对象的伤害减免高于0,具体的值也可以计算。
  2. 我现在的角色的伤害加成为0。如果我用其他角色的其他技能去输出【陨石】发现高于伤害期望,则说明其他角色在测试时伤害加成高于0,具体的值也可以计算。

当然,这个推论严格意义上不“严谨”。因为,如果加成减免相互抵消(即加成百分比减免百分比互为倒数),最终的伤害依旧等于伤害期望。也就是说,“加成为0”和“减免为0”这两个推论其实是“相互证明”的,即一个如果成立,那就证明了另一个一定成立;反之,一个是错误的,那就证明了另一个一定是错误的。
然而,对于二者的正确性我还是有一定自信的。首先,这种互为倒数的关系是不容易达到的。其次,【陨石】作为建筑,它的防御力是0,这是很多资料上显示的;而我的角色也是刚创建,我有理由相信目前没什么额外的“加成”。因此这里我很有自信说:现在这个测试环境中,加成和减免都为0。

技能伤害加成类型

1.百分比

技能描述为:物理/魔法攻击力:X%。公式比较直接:
技 能 基 础 伤 害 = 人 物 面 板 物 理 / 魔 法 攻 击 × 技 能 百 分 比 倍 率 技能基础伤害=人物面板物理/魔法攻击 \times 技能百分比倍率 =/×

实例就是测试环境中的例子。

2.固伤

技能描述为:物理/魔法攻击力:X。公式为:
技 能 基 础 伤 害 = ( 1.0 + 人 物 面 板 力 量 / 魔 法 × 0.004 ) × 技 能 面 板 攻 击 力 技能基础伤害=(1.0+ 人物面板力量/魔法\times0.004)\times技能面板攻击力 =(1.0+/×0.004)×

例如:
在这里插入图片描述
【火焰吐息】的伤害预期是: ( 1.0 + 667 × 0.004 ) × 1413 = 5182.88 (1.0+667\times0.004)\times1413=5182.88 (1.0+667×0.004)×1413=5182.88。结果符合预期。

由于 1.0 0.004 = 250 \frac{1.0}{0.004}=250 0.0041.0=250,所以相当于每250点力量/智力提升了一倍的技能面板攻击力

3.武器百分比

技能描述为物理/魔法武器攻击力X%。计算方式还没有太明确,但是这种描述的技能现在看来是比较少的。

4.武器固伤

同上。

人物面板物理/魔法攻击力计算公式

人物面板物理/魔法攻击力的计算公式为:
人 物 面 板 物 理 / 魔 法 攻 击 力 = ( 1.0 + 人 物 面 板 力 量 / 魔 法 × 0.004 ) × 基 础 物 理 / 魔 法 攻 击 力 人物面板物理/魔法攻击力=(1.0+ 人物面板力量/魔法\times0.004)\times基础物理/魔法攻击力 /=(1.0+/×0.004)×/

基础物理/魔法攻击力的值主要由武器物理/魔法攻击力贡献,不过也有其他的方面有贡献。即:
基 础 物 理 / 魔 法 攻 击 力 = 武 器 物 理 / 魔 法 攻 击 力 + 其 他 物 理 / 魔 法 攻 击 力 提 升 基础物理/魔法攻击力 = 武器物理/魔法攻击力+其他物理/魔法攻击力提升 /=/+/

例如:
在这里插入图片描述
我的武器魔法攻击力1083(注意,武器面板中有两个“魔法攻击”,这里要用下面的数值做计算)。
在这里插入图片描述
而被动技能【唤醒】提升了65魔法攻击力
在这里插入图片描述
因此,人物面板魔法攻击力的预期为:
( 1.0 + 1140 × 0.004 ) × ( 1083 + 65 ) = 6382.88 (1.0+1140\times0.004)\times(1083+65)=6382.88 (1.0+1140×0.004)×(1083+65)=6382.88
结果符合预期。

独立攻击力的加成

独立攻击力仅对固伤类技能有效。公式为:
技 能 面 板 攻 击 力 = 人 物 面 板 独 立 攻 击 力 × 固 伤 技 能 伤 害 系 数 技能面板攻击力=人物面板独立攻击力\times固伤技能伤害系数 =×

其中我这里指的固伤技能伤害系数每个技能都不一样,虽然没有在面板中显示出来,但是可以简单计算出来。例如:
在这里插入图片描述
【G-14手雷】目前的固伤技能伤害系数就是 1537 ÷ 578 = 2.659 1537\div578=2.659 1537÷578=2.659
则当我的独立攻击力提高后,技能面板攻击力也就对应变成了: 904 × 2.659 = 2405 904\times2.659=2405 904×2.659=2405
在这里插入图片描述
结果符合预期。

属性强化

人物面板的属性强化将会对特定属性的攻击有加成效果,公式为:
属 强 加 成 = ( 人 物 面 板 属 强 + 11 ) × 0.0045 属强加成=(人物面板属强+11)\times0.0045 =(+11)×0.0045

(其中关于数值的求证可见 【附录1】

例如:
在这里插入图片描述
则伤害期望为:
1060 × 244 % × ( 1.0 + ( 43 + 11 ) × 0.0045 ) = 3214.9 1060\times244\%\times(1.0+(43+11)\times0.0045)=3214.9 1060×244%×(1.0+(43+11)×0.0045)=3214.9

结果符合预期。

由于 1.0 0.0045 = 222.2 \frac{1.0}{0.0045}=222.2 0.00451.0=222.2,所以也可以粗略看做是22点法强提升了10%的基础伤害
由于 11 × 0.0045 = 5 % 11\times0.0045=5\% 11×0.0045=5%,所以也可以看做,0属强下属性伤害也会有5%的加成。

暴击伤害加成

暴击伤害加成系数初始为150%,这个值可以简单直接算出来:
在这里插入图片描述
不过有一些装备可以提升这个暴击伤害加成系数,例如:
在这里插入图片描述
公式简单直接:
暴 击 伤 害 加 成 系 数 = 150 % × ( 1.0 + 暴 击 增 伤 百 分 比 ) 暴击伤害加成系数=150\%\times(1.0+暴击增伤百分比) =150%×(1.0+)

例如,上图装备穿戴后暴击伤害加成系数应为 150 % × 112 % = 168 % 150\%\times112\%=168\% 150%×112%=168%
下图测试中可算暴击伤害确实是非暴击伤害的168%
在这里插入图片描述

“额外伤害增加量”与“最终伤害增加”

额外伤害增加量的描述是攻击时,额外增加X%的伤害增加量。例如:
在这里插入图片描述
最终伤害增加的描述是最终伤害+ X%,例如:
在这里插入图片描述
二者的描述十分类似,看起来都是提供一个(1.0+X%)的加成系数。但是当两种加成并存,并且有多个装备同时有加成时,最终加成的结果可能存在 “理解上的歧义”。经过试验(详细可见附录2),我得出最终加成系数的公式为:
( 1.0 + 额 外 伤 害 增 加 量 百 分 比 ) × ( 1.0 + 最 终 伤 害 增 加 百 分 比 ) (1.0+额外伤害增加量百分比)\times(1.0+最终伤害增加百分比) (1.0+)×(1.0+)

这解决的歧义是:

  1. 两件装备均有同一个增伤类型时,最终效果为二者相加。例如,两件都是20%最终伤害增加,则结果是40%最终伤害增加,即相当于未加成时的140%。而不是叠加(即 120 % × 120 % = 144 % 120\%\times120\%=144\% 120%×120%=144%)。
  2. 两种增伤类型是叠加的关系,即20%最终伤害增加20%额外伤害增加量最终效果是144%

附加伤害

描述是攻击时,附加X%的伤害。这个容易计算,直接用小字附加到最后的伤害上(无论是否暴击):
在这里插入图片描述
如果有多个附加伤害的效果,则他们分别独立地作用于附加前的伤害上。
在这里插入图片描述

总结

这一篇博客观察了伤害计算公式,主要的部分应该都提到了,但我想一定还有很多未被提及的伤害加成类型,要了解那些就需要做更多类似的实验了。
然而,实际打出的伤害并不是能运用这一篇博客的公式就能求出的。因为还有减伤,而它又和等级物理/魔法防御属性抗性等数值有关。而这个问题相比伤害计算公式更难以实验,因为修炼道场中并不能看到敌人的这些数值。

附录1:属性强化相关参数的求解证明

关于属性强化加成,网上很多资料都指出:22点属强对应10% ,实际测试很相近,但还是有不可忽略的误差。另外,我在测试时也发现属强为0时,属性攻击仍旧有加成,因此我怀疑人物有隐藏的属性加成值未写在人物面板上。
《DNF伤害提升小课堂:属性强化与属性抗性》这篇文章指出人物有11点的隐藏属强。而在《DNF“属强系数”原来这么计算》这篇文章中也指出属强加成系数其实为0.0045(之所以22点属强对应10%看起来正确是因为 1 0.0045 = 222.2 \frac{1}{0.0045}=222.2 0.00451=222.2)。

这里,我想做实验求证一下数值的正确性。
首先,假定属强加成是线性增强的并且人物有隐藏属强,则属强加成公式应该看起来像:
属 强 加 成 = ( 人 物 面 板 属 强 + 人 物 隐 藏 属 强 ) × 属 强 加 成 系 数 属强加成=(人物面板属强+人物隐藏属强)\times属强加成系数 =(+)×

由于公式中属强加成人物面板属强都是可见的,因此求解剩余两个未知数就是目标。这个式子可以转换为二元一次方程,因此只要有两组数据就可以求解。:

测试的技能选择为【冰晶坠】:
在这里插入图片描述
可以算出,0属强加成情况下,伤害期望为: 1060 × 470 % = 4982 1060\times470\%=4982 1060×470%=4982
下面,在两种人物面板属强情况下对伤害进行测定:
在这里插入图片描述
实际伤害的平均值为:5233,那实际的加成为 ( 5233 4982 − 1.0 ) (\frac{5233}{4982}-1.0) (498252331.0)
在这里插入图片描述
实际伤害的平均值为6200,那实际加成为 ( 6200 4982 − 1.0 ) (\frac{6200}{4982}-1.0) (498262001.0)

下面,假设人物隐藏属强=x属强加成系数=y。则方程组就为:
{ 5233 4982 − 1.0 = x y 6200 4982 − 1.0 = ( x + 43 ) y 解 得 { x = 11.161 y = 0.0045139 \begin{cases} \frac{5233}{4982}-1.0=xy \\ \frac{6200}{4982}-1.0=(x+43)y \end{cases} 解得 \begin{cases} x= 11.161\\ y=0.0045139 \end{cases} {498252331.0=xy498262001.0=(x+43)y{x=11.161y=0.0045139
结果和预期相符:人物隐藏属强11,而属强加成系数0.0045

附录2:“额外伤害增加量”与“最终伤害增加”公式证明

首先,确保目前已经知道了当前人物的所有加成效果:
使用【地裂 波动剑】做测试:
在这里插入图片描述
尝试查看当前状态下的加成。
发现一觉被动技能【心眼】有对这个技能进行加成13.5%
在这里插入图片描述
考虑上这一13.5%加成,和我当前智力1237,和【地裂 波动剑】的固定伤害21544。伤害预期是:
21544 × ( 1.0 + 1237 × 0.004 ) × ( 1.0 + 13.5 % ) = 145443 21544\times(1.0+1237\times0.004)\times(1.0+13.5\%)=145443 21544×(1.0+1237×0.004)×(1.0+13.5%)=145443

伤害符合预期,这可以证明当前我释放【地裂 波动剑】时只有【心眼】的加成。


下面,穿戴一些有“额外伤害增加量”与“最终伤害增加”效果的装备:
在这里插入图片描述
目前有4个防具有最终伤害增加效果,算上3套装效果后数值合计为52%。有2个首饰有额外伤害增加量效果,数值合计为20%
首先,看穿上装备之后面板的状态:
在这里插入图片描述
此时,在不考虑“额外伤害增加量”与“最终伤害增加”效果下,伤害预期应该为:
32716 × ( 1.0 + 1668 × 0.004 ) × ( 1.0 + 13.5 % ) = 284882 32716\times(1.0+1668\times0.004)\times(1.0+13.5\%)=284882 32716×(1.0+1668×0.004)×(1.0+13.5%)=284882

假设“额外伤害增加量”与“最终伤害增加”叠加的加成系数公式为:
( 1.0 + 额 外 伤 害 增 加 量 百 分 比 ) × ( 1.0 + 最 终 伤 害 增 加 百 分 比 ) (1.0+额外伤害增加量百分比)\times(1.0+最终伤害增加百分比) (1.0+)×(1.0+)

则伤害期望应该是:
284882 × ( 1.0 + 32 % ) × ( 1.0 + 20 % ) = 519625 284882\times(1.0+32\%)\times(1.0+20\%)=519625 284882×(1.0+32%)×(1.0+20%)=519625
结果符合预期:
在这里插入图片描述
这证明了公式是对的

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值