【硬核】关于额外增减伤顺序对伤害的影响
结论:
通常情况下额外增减伤顺序对伤害的影响非常小,不需要考虑。
但是当在存在减伤乘区,且单段伤害达到/接近极限伤害(约21亿)时可能会对伤害值产生很大的影响(如封面雾环境下实际伤害无法达到理论伤害)
ps:这个顺序是内部设定好的,与角色获得buff时间等无关
原理
由于额外增减伤乘区在每一步计算时均需要进行小数位舍弃操作,不同的计算顺序算出来的伤害值会有微小差别,如果原始伤害值为22223,在装上协痛灵晶附狙击矿的情况下(假设面板不变且随机伤害的乱数相同),不同顺序会得出不同结果
1. 先协痛后狙击(游戏中实际顺序)
[22223*1.3]=[28889.9]=28889
[28889*1.5]=[43333.5]=43333
2. 先狙击后协痛(这是错误顺序)
[22223*1.5]=[33334.5]=33334
[33334*1.3]=[43334.2]=43334
可以看出最终伤害值差了1点伤害,虽然这伤害误差可能被后续加成放大,但实际上这误差远比伤害本身存在的波动要小的多,对我们大部分玩家来说都是不需要考虑的
那在什么情况下需要考虑呢呢?
答案是存在额外增减伤乘区为负的情况(即额外减伤,如雾环境),且单段伤害值到达或者接近最大伤害值(21亿)的情况下
在这个环境下,如果在减伤乘区计算后没有增伤乘区存在或者后续增伤乘区不足以抵消减伤乘区,即使理论伤害值可以达到21亿,实际也只能打出一个小于21亿的伤害
如下图,由于存在“根据连击数技能威力up”buff,而且伤害并未达到伤害极限(21亿),第二段伤害理论上应比第一段伤害高,但实际情况是打出了两段完全一致的伤害,就是因为在计算过程中达到伤害极限,后续在被雾环境减伤影响
2147483647-[2147483647*0.3]=1503238553,与实际伤害值很接近(误差来源为游戏使用的浮点数精度导致的误差相关,验证看评论区)
原理就是在额外增减伤计算过程中,每一步不仅会进行小数位舍去操作,还会对伤害值进行限制(21亿)
例如,假设在雾环境减伤计算前两段理论伤害分别达到25亿与30亿,由于伤害极限的限制,会被限制成两段21亿再进行雾环境减伤计算,使得最后得出两段相同的伤害
根据上面的事实与理论分析,可以想象如果在减伤乘区后存在一个强力的额外增伤区,就可以在该环境下打出极限伤害,而破碎乘区是符合条件的额外增伤区(即雾环境减伤在破碎前进行计算),使用贝内迪特测试,在存在破碎情况下确实打出了极限伤害,与理论一致
至于雾环境具体在哪个位置进行计算,由赛斯塔示例可知至少在阵增伤后进行计算(阵增伤一个非常靠后的乘区了),具体位置待测
补充:根据进一步测试,雾环境减伤效果在歌唱效果后进行计算,目前已知的在雾环境后的增伤只有破碎(ac茶壶的祈祷增伤不清楚)
延伸:这个计算顺序与伤害极限一起配合,无形中给各增减伤乘区排了个序,越往后的乘区会显得越高贵,在未来,猫游伤害与敌方血量和减伤继续膨胀的情况下,乘区顺序可能会成为配队需要考虑到的条件之一