昨天在贴吧里面求问伤害的计算公式,久无回应,网上搜索资料,却发现
没有官方的计算公式。于是开始了测试和推算过程。想直接看结论的可以直接
阅读最后的部分。
-----------------------------------------------------
测试角色1:骨弓40级
角色属性 :物理攻击力 587 + 46 = 633
穿刺护甲 0 + 6 = 6
物理暴击 235 + 28 = 263
测试关卡 :飞艇坠落
普通伤害 : 412
暴击伤害 : 1331(恒定是这个值)
------------------------------------------------------
测试角色2:风行40级
角色属性 :物理攻击力 566 + 109 = 675
穿刺护甲 0 + 5 = 5
物理暴击 81 + 29 = 110
测试关卡 :飞艇坠落
普通伤害 : 445
暴击伤害 : 890(恒定是这个值)
------------------------------------------------------
测试角色3:小黑37级
角色属性 :物理攻击力 409 + 88 = 497
穿刺护甲 0 + 0 = 0
物理暴击 107 + 48 = 155
测试关卡 :飞艇坠落
普通伤害 : 279
暴击伤害 : 1136(恒定是这个值)
-----------------------------------------------------
下面开始推算过程:
(1)护甲分析过程
骨弓633点物理攻击力,减甲6点,能打出412伤害,对方防御221点
风行675点物理攻击力,减甲5点,能打出445伤害,对方防御230点
小黑497点物理攻击力,减甲0点,能打出279伤害,对方防御218点
结论一:护甲使用了类似魔兽中的百分比系统
-----------------------------------------------------------------------------------
减少6点护甲:221/633 = 34.913%
减少5点护甲:230/675 = 34.074%(出现了矛盾数据)
减少0点护甲:218/497 = 43.863%
出现矛盾数据的原因可能有几点:
[1]显示的减甲数量,和实际内部数据不一致
[2]精度的舍入导致的误差
------------------------------------------------------------------------------
猜测一:假设护甲值为A,系统使用了类似如下的伤害减免公式
[ A * 0.06 / ( 1 + A * 0.06 ) ]
推测使用了上述公式是因为魔兽中正是使用这个经典的公式,但
实际计算的时候却出现了如下数据:
假设对面小怪的护甲是A,
A = 7 时,伤害减免 29.577%
A = 8 时,伤害减免 32.432%
A = 9 时,伤害减免 35.432%
A = 10 时,伤害减免 37.500%
A = 13 时,伤害减免 43.820%
A = 14 时,伤害减免 45.652%
可以看出猜测的公式偏离的实际数据。
------------------------------------------------------------------------------
猜测二:假设护甲值为A,系统使用了类似如下的伤害减免公式
[ A * 0.05 / ( 1 + A * 0.05 ) ]
推测使用了上述公式是因为魔兽中正是使用这个经典的公式,但
实际计算的时候却出现了如下数据:
假设对面小怪的护甲是A,
A = 9 时,伤害减免 31.034%
A = 10 时,伤害减免 33.333%
A = 11 时,伤害减免 35.483%
A = 14 时,伤害减免 41.176%
A = 15 时,伤害减免 43.857%
A = 16 时,伤害减免 44.444%
看来我们更加接近正确答案了
--------------------------------------------------------------------------------
猜测三:假设护甲值为A,系统使用了类似如下的伤害减免公式
[ A * 0.04 / ( 1 + A * 0.04 ) ]
推测使用了上述公式是因为魔兽中正是使用这个经典的公式,但
实际计算的时候却出现了如下数据:
假设对面小怪的护甲是A,
A = 13 时,伤害减免 34.210%
A = 14 时,伤害减免 35.897%
A = 19 时,伤害减免 43.181%
这和我们最初想要的伤害减免比例已经非常吻合了:
减少6点护甲:221/633 = 34.913%
减少5点护甲:230/675 = 34.074%(出现了矛盾数据)
减少0点护甲:218/497 = 43.863%
--------------------------------------------------------------------------------
最终结论:游戏中使用的护甲伤害减免计算公式可能如下
[ A * 0.04 / ( 1 + A * 0.04 ) ]
比例因子0.04可能有一些微调,但是一定在[ 0.04 , 0.05 ] 区间内。
--------------------------------------------------------------------------------
以上分析和判断欢迎拍砖,欢迎不同的测试数据验证。