按照基础知识2中的公式,我们进行以下计算:
假设这把矛的武器基础DPH最小值为(209+214)/2=211.5,最大值为(310+320)/2=315。
武器最终DPH最小值=(211.5+286)x(1+50%)=746.25,符合截图中的实际值。
武器最终DPH最大值=(315+355)x(1+50%)=1005,然而截图中的实际值为1280。
问题出在哪里?
还记得基础知识3中所阐述的防溢出机制吗,就是这个机制在捣鬼。
由于武器基础DPH最小值为211.5,所以在加上“最小伤害加成”的286后,武器基础DPH最小值变成了497.5。由于指令执行顺序的问题,此时的DPH最大值尚未与“最大伤害加成”的355相加,其值仍为315,小于武器基础DPH最小值497.5,因此防溢出机制介入,将武器基础DPH最大值强行变为497.5。再执行完了这一步后,再与“最大伤害加成”的355相加,完成剩余计算。也就是说实际情况是这样的:
武器最终DPH最大值=(497.5+355)x(1+50%)=1278.75,与实际值1280相符。
在我看来, 防溢出机制的介入,发生在武器伤害最小值和最大值加成之间,而非全部完成之后,这样的设计可以使武器最终DPH最大值明显升高,从而弥补词缀本身偏小的数值。由于该机制仅对非元素伤害武器有效,所以当同时具有较高武器伤害加成%属性时,物理伤害加成武器的DPH会明显高于元素伤害加成的武器。
四、其他例子
以下为实例2则,用来证明本人观点:
实例1
这把矛有286的最小伤害加成,同样会触发防溢出机制。所以我们进行如下计算:
武器最终DPH最小值=(211.5+268)x(1+48%)=709.66,与实际值712相符。
武器最终DPH最大值=(211.5+268+337)x(1+48%)=1208.42,与实际值1212相符。
实例2:
这把矛仅有52的最小伤害加成,不会触发防溢出机制。可以进行正常计算:
武器最终DPH最小值=(211.5+52)x(1+23%)=324.105,与实际值323相符。
武器最终DPH最大值=(315+56)x(1+23%)=456.33,与实际值458相符。