暗黑破坏神2(Diablo II),是一个超级经典的游戏,20多年前玩过。
前不久在 B站 刷到过类似“圣骑士速通全难度世界纪录”这样的视频,才知道原来这个游戏还有这种玩法。不过好久没玩,有些细节记不太清了。为了看懂游戏视频,我特意下载了“暗黑II 重制版”游戏,上手玩了一会儿。为了获得真实的游戏体验,我没有使用任何 MOD。
速通视频中前期使用的主战技能是 Blessed Hammer,不过该技能还有 Blessed Aim 与 Vigor 两个技能可以直接加成,以及 Concentration 技能进行的二次加成,因此我不由得就想要知道,在刷怪升级过程中,如何加点才最合适?
网上可以找到一些技能模拟网页,模拟加点效果。但是我没有找到能够将光环效果也考虑进去的技能模拟页面。
为了实际了解 Blessed Hammer 不同加点方式对于最终杀伤效果的影响,我写了一小段代码,如下:
function blessed_hammer_damage(blessed_hammer, blessed_aim=0, vigor=0, concentration=0){
if(blessed_hammer < -1 || blessed_aim < -1 || vigor < -1 || concentration < -1){
throw new Error('level must more than 0!')
}
const blessed_hammer_basic_damage = [
0,
12, 20, 28, 36, 44, 52, 60, 68, // 1~8
78, 88, 98, 108, 118, 128, 138, 148,// 9~16
160, 172, 184, 196, 208, 220, // 17~22
233, 246, 259, 272, 285, 298 // 23~28
]
const length = blessed_hammer_basic_damage.length - 1
if(blessed_hammer > length){ // 动态生成大于 28 级的技能基础伤害
const addition = blessed_hammer - length
for(let i=1; i<=addition; i++){
let new_damage = blessed_hammer_basic_damage[length] + i * 14
blessed_hammer_basic_damage.push(new_damage)
}
}
let amplification = 1 + blessed_aim*0.14 + vigor*0.14
if(concentration != 0){ // 专注光环的二次加成
amplification = (1 + blessed_aim*0.14 + vigor*0.14) * (1 + 0.5*(concentration*0.15 + 0.45))
}
const final_damage = blessed_hammer_basic_damage[blessed_hammer] * amplification
const final_damage2 = (blessed_hammer_basic_damage[blessed_hammer]+4) * amplification
return [parseInt(final_damage), parseInt(final_damage2)]
}
然后将代码复制到 node
实时环境中,直接调用函数运行即可。比如说现在想要比较一下升级之后,一个技能点加在不同技能上,最终效果如何,可以如下:
> blessed_hammer_damage(9,7,3,1) // 当前状态
[ 243, 255 ]
> blessed_hammer_damage(9,7,3,2) // 加点到 Concentration
[ 257, 270 ]
> blessed_hammer_damage(9,7,4,1) // 加点到 Vigor
[ 257, 270 ]
> blessed_hammer_damage(10,7,3,1) // 加点到 Blessed Hammer
[ 274, 287 ]
>
可以看到,如果加 Blessed Hammer 本身,则可以获得最大的伤害增幅,而其余三处辅助技能,伤害的增幅效果几乎是一样的。因此,可以得到如下结论:在条件允许的情况下,优先给 Blessed Hammer 技能加点,有富裕的点数可以随意加在 Concentration、Vigor 或者 Blessed Aim 上,根据用途优先考虑。