以前曾发一个帖子,粗浅的推算出了法术攻防与伤害之间的一个关系,大概来说满足这样一个式子:最终伤害≥法术攻击力-法术防御力。并且可以粗略的知道,法术防御越高,效果越不明显,但是由于当时尚不明晰级别对伤害的加成作用,同时试验做的粗糙,并且试验没有把握住能够引起关键发现的关键数据,因此最终并没有的到什么精确的结论。现在不同了,我们已经有了关键性的前提,即一定的级别差距对伤害是有影响的,这样我们在做实验的时候,会避免采用级别相差5以上的两个样本,从而得到的一组数据绘精确的反映原始的伤害情况,从而有机会推出基本函数。
我是这样设计试验的:
选择全部为70级的三个ID:分别为FS,LS,JS。三个职业目的在于证明最终伤害是与职业无关的。
FS的攻击力选择在1000左右,其目的在于灵活选择法术防御,以便得到关键数据。
用2-68的各种首饰来调节法术防御,法术攻击不变,注意,因为我们假设函数是确定并且存在的,因此攻击力的恒定并代表最后结果是偶然的,而最终的公式是普遍意义的,广泛的。
我们先看LS和FS的数据:
攻击 防御 伤害 实际防御 防御效果(实际防御/防御)
970 0 970 0
970 8 962 8 1
970 23 947 23 1
970 46 926 44 0.956521739
970 76 899 71 0.934210526
970 84 892 78 0.928571429
970 91 886 84 0.923076923
970 106 874 96 0.905660377
970 121 862 108 0.892561983
970 136 850 120 0.882352941
970 144 844 126 0.875
970 166 828 142 0.855421687
970 198 805 165 0.833333333
970 220 790 180 0.818181818
970 250 771 199 0.796
970 280 752 218 0.778571429
970 310 735 235 0.758064516
970 340 718 252 0.741176471
970 379 697 273 0.720316623
970 418 677 293 0.700956938
970 456 659 311 0.682017544
970 470 653 317 0.674468085
970 500 640 330 0.66
970 570 610 360 0.631578947
970 683 569 401 0.587115666
970 720 556 414 0.575
970 797 532 438 0.549560853
970 835 521 449 0.537724551
970 949 490 480 0.505795574
970 960 487 483 0.503125
970 967 485 485 0.501551189
970 970 485 485 0.5
970 973 484 486 0.499486125
970 986 481 489 0.495943205
有点乱,但我们得到了和以前基本一致的结论,法防和法攻越接近,法防再增加,效果越小。这一点非常之关键,也就是说单纯的法防高、法攻高,都不足以说明什么,能说明问题的是他们的相差程度,也就是说,最终伤害和其二者的差值有一定的关系。
然后我们注意到了
970 970 485 485 0.5 这组数字,
这组数字的法防是我拼凑好久才凑出来的,目的在于使法防=法攻,这样我们得到一个关键数据,即法攻=法防时候,伤害=法攻/2,有点意思,再结合刚才的“最终伤害和其二者的差值有一定的关系”这句话,很容易联想起命中的计算公式:
命中率=命中/(命中+对方闪避)
因此,我又回到了原来的一个构想上:我们要找的关系一定是类似于命中公式的。
在上面,还有一组关键数据:
攻击970 防御0 伤害970 实际防御0
也就是说,在没有防御情况下,法攻=法防,这是辛辛苦苦才得到的结论,以前没有注意,是因为当时不知道级别对伤害的影响,选择的样本级别差大于5。
好,现在我的目的是找到第三组关键数据:使法防=2X法攻,很快,我得到了(JS上场)
攻击 防御 伤害 实际防御 防御效果(实际防御/防御)
970 1940 323 647 0.333505155
这组数据是如此关键,以至于打开了最终公式发现的大门,因为我们通过它找到了:当 “防御=2X法攻” 的时候,伤害是攻击力数值的1/3。
回顾以上的三组关键数据,当防御为0时,攻击力=伤害;当法术攻击与对方法术防御相等的时候,伤害值为攻击的一半;当对方法术防御比自身法术攻击高一倍时的时候,伤害值为攻击的三分之一……
于是影像逐渐清晰,发现计算方法竟是如此简单,和预期一样,果然既没有高次方根,也没有对数运算和指数运算,法术攻防与伤害的基本运算是:
法术伤害=法术攻击力X法术攻击力/(法术攻击+对方法术防御)
把这个公式代入到上面的计算里,看看得到的数据和实验数据吻合与否?
攻击 防御 伤害 实际防御 防御效果(百分比) 公式计算结果
970 0 970 0 970
970 8 962 8 1 962.0654397
970 23 947 23 1 947.5327291
970 46 926 44 0.956521739 926.0826772
970 76 899 71 0.934210526 899.5219885
970 84 892 78 0.928571429 892.6944972
970 91 886 84 0.923076923 886.804901
970 106 874 96 0.905660377 874.4423792
970 121 862 108 0.892561983 862.4197984
970 136 850 120 0.882352941 850.7233273
970 144 844 126 0.875 844.6140036
970 166 828 142 0.855421687 828.2570423
970 198 805 165 0.833333333 805.5650685
970 220 790 180 0.818181818 790.6722689
970 250 771 199 0.796 771.2295082
970 280 752 218 0.778571429 752.72
970 310 735 235 0.758064516 735.078125
970 340 718 252 0.741176471 718.2442748
970 379 697 273 0.720316623 697.4796145
970 418 677 293 0.700956938 677.8818444
970 456 659 311 0.682017544 659.8176718
970 470 653 317 0.674468085 653.4027778
970 500 640 330 0.66 640.0680272
970 570 610 360 0.631578947 610.974026
970 683 569 401 0.587115666 569.2075015
970 720 556 414 0.575 556.7455621
970 797 532 438 0.549560853 532.4844369
970 835 521 449 0.537724551 521.2742382
970 949 490 480 0.505795574 490.3074518
970 960 487 483 0.503125 487.5129534
970 967 485 485 0.501551189 485.7511616
970 970 485 485 0.5 485
970 973 484 486 0.499486125 484.251158
970 986 481 489 0.495943205 481.0327198
970 1528 376 594 0.388743455 376.6613291
970 1940 323 647 0.333505155 323.3333333
可以看出,公式推算的结果,小数去尾,和实测数字完全一致。因此这个公式是正确的。
实际战斗中,双方应考虑级别修正与增强修正的影响,级别修正在一定级别差范围内,每五级相差10%伤害或伤害减免(模运算,即只有达到5的倍数才行,余数不计,比如相差13级,则按照10级计算,效果为增强或减免20%伤害,直到相差15级才变为30%),视攻防双方的级别高低而定,;增强伤害则直接修正最后的伤害结果。这两者都是在上式的计算结果基础上运算,比如:
80级FS玩家对67玩家(相差13级,13除5得2,余数3省略,因此对67级玩家增强20%伤害),80玩家正常攻击力20000,70玩家法术防御5000,且70玩家增强针对FS伤害减免修炼5级(减免10%),则:
最终伤害为=[法术攻击力X法术攻击力/(法术攻击+法术防御)]*(1+20%-10%)=17600。
至此,我相信关于攻击、防御与伤害的最后一点秘密,已经被揭开了。
*注,关于“级别修正与增强修正的影响”,我在前面某文已经验证,故不再多作说明。