法术致命、命中和抗性的理论和测试
(修正了原文中关于“直接伤害魔法”的提法,改用“非二元魔法”。直接伤害魔法是和DOT相对的,而我把它当作和二元魔法相对应的来使用,是一个常识性错误。另外修正了一些数据错误,例如1和1%的混淆,并且把1和100%在同一讨论中做了统一。感谢风飞羽在跟贴中对原文中多处错误的指正。以后原文中的错误,将不再直接编辑,发现错误和修正错误,这个过程也是颇有意义的。)
一、实验设计 二、法术致命和命中 三、抗性 四、法术命中与抗性 五、致命一击率与抗性 六、单一Roll规则 七、法师的元素专注天赋的作用方式 八、高等级怪物身上无法消除的抗性 九、装备选择 一、实验设计 法术致命一击、命中和抗性这三者都以概率的方式发生作用,这使得从实验归纳理论成为不可能——上万次的测试,只能使误差缩小到1%,而10万次以上的测试,没有相关部门支付研究经费,估计没有人会去做。 我这里所做的,就是从官网主页和论坛蓝贴中找到相关的理论,根据这些理论,对官方未明确说明的问题,做出可能的推论,然后通过装备和天赋的差异,使得不同推论应得的实验数据之间的差异最大化。这样,如果只是判定不同推论哪一种更贴近事实的话,就能允许较大的误差,从而减少需要的测试样本数量。 二、法术暴击和命中 设某玩家的命中为H(H≤99%),致命一击为C(C≤H),那么N次攻击中,致命一击次数n有2个计算公式: 公式1:
n=N*H *C 公式2: n=N*C 也就是说,假设某人的命中为90%,致命一击为10%,那么100次攻击中,有9次致命一击(公式1)还是10次致命一击(公式2)的问题。 我们能找到的官方说明中,只有关于物理攻击致命一击和命中的计算方式(欧服官方论坛Aeus的蓝帖,原来的地址已经失效),这里翻译相关部分:WoW计算致命一击率的方式,是基于所有攻击的。致命一击率并非仅仅基于命中的攻击,换句话说,如果你有5%的致命一击率,那么5%这个概率的基数,是包含未命中的攻击的。
如果法术的致命一击计算方式与物理攻击的计算方式相同,那么公式2是正确的。
当H的数值足够小的时候,根据公式1计算和根据公式2计算得出的数值相差会比较大,所以我这里的测试,施法者是41级法师,目标是60级圣骑士,使用的技能为1级寒冰箭。
测试数据如下:
测试1:
41级法师智力199,致命一击率大约为4%。
样本数量:400
命中数量:222
抵抗数量:178
致命一击:15
按照公式1计算,致命一击的数量应该是8.88个,按照公式2计算,致命一击数量应该是16个,允许的误差在2%,400次测试基本能达到这个要求,从测试数据来看,公式2更加符合事实。现在比较流行的2个伤害统计插件,DM和SW_stats,计算致命一击率的时候,都是按照致命一击数量/命中数量来的,所以对于Raid Boss的大量统计数据中,致命一击率一般会高于理论计算的数据。(这个测试数据中还能发现另外一些问题——比理论数值高很多的命中概率。)
至此,我们可以得出初步的结论:
设某玩家的命中为H(H≤99%),致命一击为C(C≤H),那么N次攻击中:
致命一击的数量 c=N*C
一般命中的数量 h=N*(H-C)
被抵抗的数量 r=N*(1-H)
c+h+r=N
例子:假设某人的命中为90%,致命一击为10%,那么100次攻击中,有10次致命一击,80次一般命中,10次抵抗。如果在装备上增加了1点致命一击率,那么相应的数据就变成11次致命一击,79次一般命中,10次抵抗。
以前讨论得很多的那个“暴击是否必然命中”的问题,其实是一个伪问题,暴击和命中的计算,没有先后,而是同时进行。
关于盗贼的冷血剔骨和法师1.10版本时的燃烧火球被抵抗问题,其实是另一个问题,就是实际的致命一击率必然小于等于命中率,而命中率必然小于等于99%。
三、抗性
1、抗性与伤害减免
先翻译官网“魔法&技能”页面的一段话:相对于施法者的等级,你的抗性点数越高,你的平均抵抗百分比就越高,一直到75%的上限为止。
从这句话我们可以看出,抗性和伤害减免的关系,受到2个因素的影响:1、施法者的等级,2、受攻击目标的抗性点数。
在这里我们看到2种不同的计算方式,敏捷提升闪躲,相关的是敏捷的数值和受攻击者的等级,而护甲和抗性与伤害减免的关系,相关因素却是攻击者的等级。
官网主页上只给出了对于50级施法者的攻击法术,抗性和伤害减免之间的关系表格,这里根据其他的数据,推算出对于60级法术和63级法术(Boss的攻击法术),抗性和伤害减免的关系表格:
这里我们可以给出抗性与平均伤害减免的函数:
平均伤害减免=(目标抗性数值/(施法者等级*5))* 0.75
2、抗性与收益
作为对比,可以参考Nga上关于护甲收益的一个帖子:
“每点护甲值收益相同的真正含义(大多数收益递减论者完全就是只看表面数据而不考虑实际)”
护甲和伤害减免的关系,先考虑的是每1点护甲对于受到伤害/伤害减免这个数值的影响,也就是每1点护甲,对于无治疗情况下存活时间的影响。
存活时间=(血量/(伤害*(400+85*攻击者等级)))*护甲
也就是说,当无治疗的情况下,存活时间和护甲之间,是一次函数关系,对于存活时间,每一点护甲的收益相同。
先有上面这个公式,然后可以推算出考虑护甲收益的另一个参数,就是护甲提高和伤害减少的关系:
伤害减免=(护甲/(护甲+400+85*攻击者等级))*100
从伤害减免的角度来说,护甲的边际收益是递减的。
对于Raid来说,考虑护甲的收益,必须考虑治疗难度的问题。有些Boss因为瞬间攻击的伤害过高而导致治疗难度很大,这个时候考虑的就是护甲和伤害减免的关系;有些Boss的治疗难度在于治疗OOM或者治疗有限,例如Loatheb,那么考虑的往往是存活时间和护甲的关系。
综合两个方面来看的话,护甲的边际收益,总体是递减的。
对于抗性,同样可以从以上二个方面来看。
公式3:平均伤害减免=(0.75/(施法者等级*5))*目标抗性数值
这个公式表明,抗性和伤害减免是一次函数关系,每一点抗性的收益相同。
公式4:存活时间=(血量*施法者等级*5))/(伤害*(施法者等级*5-目标抗性数值* 0.75))
[ http://www.ngclub.net/bbs/attachments/Magicdamagesoak_qlRT5064eTIA.gif ]
这个公式表明,从存活时间考虑,抗性的边际收益递增。
同样,对于Raid来说,有些Boss只需要考虑公式3,而有些Boss需要考虑公式4。例如Sapphiron,需要考虑公式4,因而,如果在物品等级相同的装备中选择,就尽量选择高冰抗的物品。
当然,Boss的攻击往往并非只有物理攻击或者魔法攻击,这使得装备的选择上需要考虑更多的因素。
四、法术命中与抗性
1、官方的说明
关于法术命中,下面这段话已经被多次引用,这里就再引用一次,先不增删一字地翻译一下,因为后来很多人把自己的推论和官方原文混合到一起了,而这段话一方面澄清了一些以前的问题,同时产生了更多的问题:
+1%法术命中增加你法术命中的基础命中率1%
如果目标和你同级,基础命中率为96%
如果目标高你
1级:95%
2级:94%
3级:如果目标为怪物,83%;目标为玩家,87%
4级:如果目标为怪物,72%;目标为玩家,80%
5级:如果目标为怪物,61%;目标为玩家,73%
等等
如果穿上了+1%法术命中几率的物品,那么以上百分比将增加1,+2%则增加2。
等等
单从二元法术来说,这里还有另一个修正,就是基于目标对于你的某系法术的抗性——火抗、冰抗、暗抗、自然抗、奥抗——的修正。这个修正系数和你的命中概率的乘积,就是你的实际命中概率。这只适用于二元法术,因为它们从来没有部分抵抗。
例子:
60级法师Eyonix60级法师Eyonix用冰箭打63级怪物Yeti of Doom,Eyonix的装备总共有6%法术命中属性,Yeti of Doom有比较高的冰抗,对于60级攻击者的冰系伤害有50%的伤害减免。那么,下面就是命中的计算方式:
0.83(83% 比施法者高3级的怪物)+ 0.06 (+6% 装备上的法术命中)= 0.89
0.89*0.5(50% 冰霜法术的伤害减免)= 0.445
游戏将会Roll (0-1),如果Roll点小于0.445,那么冰箭将会命中,并且造成全部伤害。否则就会出现抵抗的信息。
第2个例子
冰箭被抵抗之后,Eyonix决定用火球攻击Yeti of Doom,Eyonix依然有6%的法术命中。火球不是二元法术,下面就是计算方式:
0.83+0.06= 0.89
游戏将会Roll (0-1),如果Roll点小于0.89,火球将会命中,否则就出现抵抗的信息。如果火球命中,游戏将会根据法术抵抗来决定部分抵抗,如果,假设Yeti同时还有对于火系法术的50%伤害减免,那么(平均)50%的伤害将会被抵抗掉。
以上这段话,最初来自美服官方论坛的Eyonix的蓝贴,原地址已经失效,现在可见的只有一个复制版本: +Spell Hit Chance
同时也可见于上述的“法术&技能”官方主页。
2、+%法术命中装备是否能作用于抗性抵抗的问题
Eyonix对于命中和抗性,给出了详细的例子,却没有给出计算公式,这是导致很多误解的原因。例如“5级:如果目标为怪物,61%;目标为玩家,73%”之后,只有“等等(以此类推)”2字,却没有给出计算公式,使得很多人以为对于怪物,后面就是每高1级,增加11%的抵抗概率,对于玩家则增加7%的抵抗概率。但是我们从测试1看到,到后面等级惩罚并没有这么严重。(等级差距5级以上对命中的等级惩罚问题这里不准备讨论,因为需要的测试非常麻烦——不同等级差的2个人物,每个等级差的大量测试,而收益不大——我并不准备去攻击比我高5级以上的怪物。)
另一个讨论得很多的问题,就是命中装备对于抗性抵抗是否有效的问题。也就是对于Eyonix举的第一个例子而言,如果Eyonix法师有30%的命中,应该怎么计算?是(0.83+30%)*50%=56.5%还是Min[(0.83+30%),99%]*50%=49.5%?
以前的观点,认为基于等级的未命中和基于抗性的抵抗是互不作用的,例如Edwin在较早的“Faxmonkey录象推荐,抵抗,防御和命中分析及近期感想”一文中认为,基于等级的抵抗,目标头上会出现“Miss”,而基于抗性的抵抗,目标头上会出现“Resist”,但是事实上,对于法术攻击,只有Resist而没有Miss。
另一些人则认为2者的区分是白字Resist和黄字Resist,但是事实上,冰箭的所有抵抗,都是黄字抵抗,而白字抵抗出现于AOE魔法,例如冰霜新星。到了1.11版本,暴雪索性取消了法术攻击的白字抵抗,所有技能的抵抗信息,都以黄字出现。
这里有2个不同的计算公式(对于二元法术):
公式5:
命中=Min[((基本命中+装备上获得的命中)*抗性修正系数),99%]
公式6
命中=Min[(基本命中+装备上获得的命中),99%]*抗性修正系数
对比以上2个公式可以发现,穿高命中装备,而目标有合适的抗性,可以使得两个公式计算得出的命中数值差异最大化。
测试2
我这里用的攻击者是60级法师,装备带15%命中,目标为60牧师,有40点冰抗,使用的技能为1级冰箭。从本文抗性部分可知,40点冰抗,对于60级的法术,能够减少10%的伤害,抗性修正系数为90%。
那么根据公式5来计算:
命中率=Min[((96%+15%)*90%),99%]=99%
根据公式6来计算:
命中率=Min[(96%+15%),99%]*90%=99%*90%=89.1%
测试结果:
样本数量:405
命中次数:400
抵抗次数:5
命中概率:98.8%
可以认为,公式5比公式6更加符合实际。初步结论就是+%法术命中装备,对于抗性抵抗也有效。
3、+%法术命中装备,对于非二元法术法术的作用
如果说,Eyonix的帖子,对于命中是否作用于因为抗性而引起的二元法术抵抗的问题没有解说清楚的话,那么对于抗性引起的非二元法术法术(例如火球)的抵抗是否有效的问题是十分清楚的,就是命中装备对于非二元法术法术的抵抗无效。
但是我从测试2和“一次性Roll”理论,推测出可能存在的另一种计算方式,也就是命中装备,同样作用于因为抗性导致的非二元法术法术的100%抵抗部分。
按照Eyonix的理论,对于非二元法术法术,完全抵抗的概率为:
公式7:非二元法术的完全抵抗概率=Max[(100%-基本命中%-装备命中%),1%]+(Min[(基本命中%+装备命中%),99%])* 抗性导致的完全抵抗%
其中红色部分为等级/命中的固有抵抗。绿色部分为抗性抵抗。
而我认为,命中装备对于抗性导致的完全抵抗也有效:
公式8:非二元法术的完全抵抗概率=100%-Min[99%,(基本命中%+装备命中%)*(100%-抗性导致的完全抵抗%)]
测试3
同测试2的法师,装备有15%的命中,目标为60牧师,火抗216。我找不到240火抗的目标(有较高抗性的盗贼和战士都没有治疗能力,容易被我打死),而216火抗,我们无法确切地知道有多大的概率造成完全抵抗。从本文第二部分的表格,我推测216火抗导致完全抵抗的概率在6%,那么根据公式7:
完全抵抗概率=1%+99%*6%=6.94%
根据公式8:
完全抵抗概率=100%-Min(99%, 114% * 94%)=1%
(写到这儿我发现允许的误差比较小)
测试结果:
样本数量:401
完全抵抗次数:2
完全抵抗概率:0.5%
相对来说,公式8更加准确。也就是说,命中装能够减少非二元法术法术因为抗性导致的完全抵抗。
另外一个佐证:
如果根据公式9来计算,216火抗,受到的伤害为:99%*(1-216/400)=0.4554%
而SW_stats统计的有效伤害率为46.5%,略高于0.4554%,不过总体太接近,需要进一步的测试。
从Combatlog来看,401次灼烧中,造成完全伤害的次数为0。
五、致命一击率与抗性
根据公式2和公式5,让我们需要考虑抗性抵抗对致命一击率的影响。可能的计算公式有2个:
公式9:实际致命一击率=C*抗性修正系数
公式10:实际致命一击率=C
测试4
13%命中,12.87%致命一击率(C)的法师,攻击293冰抗的圣骑士,293冰抗和13%命中,意味着法师有29.16%的命中率。样本数量为1300,致命一击的数量有2种计算方式:
根据公式9, 结果应该是48.78次致命一击
根据公式10,结果应该是167.31次致命一击
测试结果:
样本数量:1300
命中次数:378
抵抗次数:922
致命一击次数:50
测试结果表明,公式9更加准确。
六、单一Roll规则
Aeus在欧服论坛发了关于致命一击率和命中率关系的帖子之后,对于物理攻击和远程攻击,有人提出了“单一Roll规则”,也就是说,对于物理攻击和远程攻击来说,服务器端只进行1次Roll就决定了某次攻击是致命一击、普通命中还是躲闪、格档等。具体可见WOWWIKI的相关论述
Eyonix的帖子,让很多人认为单一Roll规则对于法术不适用,但是根据我上面的测试可以看出,用单一Roll规则来解释法术行为,也是一种比较简洁的方式。
对于二元法术,Eyonix的例子也暗示了服务器端的一种单一Roll规则,也就是1次Roll,决定了某个冰箭是暴击、普通命中还是抵抗,而抵抗也就不再区分是因为等级差异导致还是因为抗性导致。
对于非二元法术法术,Eyonix的例子显示的是服务器端进行了2次Roll,但是我认为单一Roll规则解说起来更加简洁。
七、法师的元素专注天赋(奥术集中天赋、牧师的暗影集中天赋、术士的镇压天赋)的作用方式
标题中所列的天赋描述,都是“使你的目标抵X系法术的几率降低Y%”,这与装备上的属性描述“使你的法术击中敌人的几率提高Y%”不同。其作用的原理也不同。
在1.10版本,美服论坛有人对奥术集中天赋做过测试,测试结果表明,5点奥术集中天赋“使你的敌人抵抗你的奥术魔法的几率降低 10%”作用方式是,在基本命中和抗性修正系数的调整后的命中数值基础上,再增加10%的命中,而且可以达到100%的命中。
在1.11版本,100%命中的Bug已经修正,而我推测的作用方式还是类似1.10版本,也就是在3点元素专注天赋(使你的目标抵抗火焰和冰霜系法术的几率降低 6%)之后的命中:
公式11:命中率=Min[(((基本命中+装备上获得的命中)*抗性修正系数)+6%),99%]
有一种说法认为元素专注只对抗性抵抗有效,但是这种说法,通过Boss战的大量统计数据能够比较轻易地反驳。
另一种可能存在的计算方式,就是元素专注天赋的效果,完全等同于6%命中,这样计算方式为:
公式12:命中率=Min[((基本命中+装备上获得的命中+6%)*抗性修正系数)),99%]
当目标有较高的抗性时,公式11和12的理论数值会有比较大的差异。
测试5
13%装备命中的法师,加了3点元素专注天赋,攻击293冰抗的圣骑士。
根据公式11,命中率=35.2%
根据公式12,命中率=30.8%
测试结果:
样本数量:400
命中次数:142
抵抗次数:258
命中率:35.5%
公式11更加准确。
从中也可以看出,元素专注天赋,当目标抗性不高的时候,作用类似6%命中,当目标有较高抗性的时候,其作用远远大于6%命中,所以,作为第一层天赋而对2系魔法有效,确实过强了,以致在TBC中次天赋中被Nerf。
八、高等级怪物身上无法消除的抗性
1、非二元法术法术攻击高等级怪物时产生的部分抵抗
用非二元法术法术攻击61级以上怪物时,总是会产生部分抵抗,而且这种部分抵抗无法通过元素诅咒/暗影诅咒、天赋或者装备上的减抗属性来消除。例如PW,装备有60减抗的术士,给Boss上了暗影诅咒之后,用暗影箭攻击,依然有部分抵抗,而认为PW有135以上的暗影抗性是不现实的。
用火球攻击PW也有同样的问题,而PW的火抗,明显不可能超过75(元素诅咒能够消除的抗性),事实上,MC的Boss,除了焚化者古雷,其他不是火免疫的Boss的火抗都在100以下。
我们来看PW战斗中的一些统计数据
测试6
装备有减抗60的术士,用暗影箭攻击PW
样本数量:92
命中次数:85
完全抵抗次数:7
完全抵抗概率:7.6%
有效率:87.6%
从本文第三部分的抗性表格来看,7次完全抵抗不大可能是因为抗性造成的,因而,因为部分抵抗减少的伤害为(1-87.6%-7.6%)=4.8%
测试7
装备和天赋总共为20减抗的法师,用灼烧攻击PW
样本数量:122
命中次数:119
完全抵抗次数:3
完全抵抗概率:2.5%
有效率:93.4%
从中可以计算出,因为部分抵抗而减少的伤害为(1-93.4%-2.5%)=4.1%
这种毫无理由的部分抵抗,是随着1.9补丁而出现的,在1.9的补丁说明中,有这么一条:“暗影诅咒和元素诅咒 - 暗影诅咒和元素诅咒不会再把目标的抗性降为负值。现在这两种诅咒可以使相应类别的法术对目标造成的伤害值提高。”这个可能是造成这种部分抵抗的原因。
这里借用几个他在1.10时测试的数据,当时加了奥术集中天赋后,奥术飞弹的命中可以达到100%。
测试8
哈霍兰公主
有暗影诅咒,装备有7%命中(意味着奥术飞弹的命中为100%)
3269样本
有效率:0.94103
根据抗性和伤害减免的公式,可以推出哈霍兰公主有23.588的奥抗。
测试9
哈霍兰公主
没有暗影诅咒,装备有7%命中
679样本
有效率:0.95361
根据抗性和伤害减免的公式,可以推出哈霍兰公主有18.556的奥抗。
从测试9我们可以推测出,哈霍兰公主,不会有超过30的实际奥抗,但是这个不到30的奥抗,无法通过暗影诅咒的-75奥术抗性来消除。
Kavan同时测试了阿努比萨斯防御者的冰抗,作为对比,先看用奥蛋攻击阿努比萨斯防御者的测试:
测试10
阿努比萨斯防御者, 62级
装备有5%命中,奥蛋攻击
样本数量:776
有效率:0.96327 = 14.692奥抗
测试11
阿努比萨斯防御者,62级
装备有5%命中,冰箭攻击
样本数量:768
命中率:99.218%
如果阿努比萨斯防御者有和奥抗相同的冰抗的话,冰箭的命中应该是95.36%。
也就是说,二元法术不受这个无法消除的抗性干扰。
关于这个专门针对非二元法术法术的无法消除的抗性,迄今还没有一种令人信服的理论可以解说,这里只是提出来,并且提醒下法系职业,不要因为Boss战中经常出现的部分抵抗而去搜集减抗装备,因为这个抗性,减抗装备同样无法消除。
从Kavan的大量测试数据来看,这个无法消除的抗性造成的伤害减免的数值在5%左右,而5%左右的伤害减免,意味着100次的攻击,可能有20次攻击被抵抗掉25%的伤害,从而在感觉上似乎Boss有很高的抗性。
相关的测试:
测试12
攻击者为41法师,目标为60牧师,牧师0火抗,使用技能为1级灼烧。
测试结果:
样本数量:400
命中数量:219
完全抵抗:181
部分抵抗:0
2、Romeneva关于抗性的等级惩罚理论
Romeneva of Norgannon在美服论坛法师区的一个精华帖中曾经提到了抗性的等级惩罚理论。帖子找不到了,这里翻译相关部分:
怪物有时候带有内在的抗性,而玩家则从装备、天赋、Buff、种族获得抗性。怪物的这个内在抗性,攻击者和目标之间的等级,每相差一级就调整5点抗性。所以,对于一个原始抗性为50的目标,有效抗性将是:
怪物等级 有效抗性
你的等级-3 35
你的等级-2 40
你的等级-1 45
你的等级 50
你的等级+1 55
你的等级+2 60
你的等级+3 65
这或许能解释高等级怪物身上无法消除的抗性的来因,但是这个理论认为,抗性和伤害减免的相关项为:1、目标的抗性数值,2、攻击者和目标之间的等级差异,而这和官网主页上关于抗性的说明是矛盾的。
对于玩家面对Rag时需要多少火抗以达到伤害减免的75%上限问题,这个理论和本文第三部分的理论,通过不同的计算方式得出了相同的结论:315火抗。
九、装备选择
我们从第二部分的结论可以看出,冰法在Raid装备的选择上,致命一击和命中完全等价(命中没有超过上限)。
从第四部分的讨论中可以看出,命中装备对于抗性抵抗依然有效,但是希望通过提升命中来减少抗性抵抗是不合算的。占用相同属性值的减抗属性,对于减少抗性抵抗更加有效。
问题总是这样,越研究越让人困惑,而涉及到概率的东西,测试数据总是存在支持错误理论的可能性。
最后感谢阿呆、彩虹和偷光扮演木桩帮助测试以上数据。