五.关于防御公式的补充
测试与公式:点击进入
这里直接引用结论,原帖应该是搞错了减伤系数和伤害系数的区别,字面理解减伤系数应该是“减免伤害的百分比”,所以这里经过了修正
面板伤害的减伤系数 = sqrt(防御)*(sqrt(防御))/2000
实际伤害的减伤系数 = sqrt(防御)/100+min{3*防御/10000, 0.3}
受到的伤害 = 原始伤害*(1-减伤系数)
如果有筋骨坚实天赋,则最终伤害再乘以0.75
从公式中可以直观的看出来,1000的断点是由min{3*防御/10000, 0.3}这个函数得到的
我们将公式写成分段函数的形式:
实际伤害的减伤系数 = sqrt(防御)/100+3*防御/10000 ,当防御<1000;
= sqrt(防御)/100+0.3,当防御>1000
则其减伤曲线如下图:
我们再计算相应的防御对EHP系数的公式
EHP系数 = 1/(1-减伤百分比)
= 1/(1-sqrt(防御)/100-3*防御/10000),当防御<1000;
= 1/(1-sqrt(防御)/100-0.3,当防御>1000),当防御大于等于1000小于等于4900
对其求导,得到一阶导数,即单位防御的收益系数:
单位防御的收益系数 = (1/(200*sqrt(防御))+0.0003)/(1-sqrt(防御)/100-3*防御/10000)^2,当防御<1000;
= 1/(200*sqrt(防御)*(0.7-sqrt(防御)/100),当防御大于等于1000小于4900
画出其函数图象:
这个图象的含义可以理解为,当防御增加一点,相应的增加的HP系数。例如当生命值为1000,防御等于500时,增加一点防御相当于增加1000*0.001334=1.334生命。
从图像中可以看到单位防御的收益在(0,1000)上先降低后增加,在1000点处突然下降,在(1000,4900)上单调递增。单位防御收益的最低点在防御=168的时候,收益系数为0.00102。防御等于1000的时候,单位防御的收益系数为0.00107。
从二的讨论中我们可以看出,又是分段函数,又是开根号,吃力不讨好,单位防御的实际波动比较大,还是用防御收益线性函数比较好。
补充一张图,当防御数值在0-3000时单位防御的收益图
去掉了3000防御以上的部分使得数据更加清晰
更多相关资讯请关注:侠客风云传专题