您的位置:>魔兽世界>职业分析>战士>

国服3.1.3:破甲测试及分析 破甲的归来

  写在前面:10多天前,国服回归,迎来3.13,也迎来了全新的破甲规则。很快有人根据maxdps的数据写了一篇装备评分:[ http://bbs.ngacn.cc/read.php?tid=2604503&fpage=&forder_by=&&page=1 ]

  看过以后,闻说破甲得到大大BUFF。但我辈经历种种,挨过不少忽悠,对于这类没有明确依据的结论总是疑心。尤其是对maxdps那东西,很多时候只能用作参考作用,不可尽信,连它的评分标准和原理都不知道,叫我怎么去相信它。于是根据毛老爷爷的教导“自己动手丰衣足食”,自己进行测试计算分析,看看3.1的破甲究竟是怎么回事。搞了几天,总算有点收效,遂有此文,和大家分享讨论,欢迎各路高手斧正。

  方便懒人,总结放到最前面:

  五.总结

  面对最后的计算分析,我也感到很吃惊,但同时也验证了3.1以来关于破甲的种种说法。

  有关PVP里的破甲收益,比较复杂,因为对手的可能性太多了,破甲面对不同的护甲值就有不同的收益,用数学精确对其进行定量分析很有难度,我暂时做不到。

  但本文总算完成了2件事:

  一 是总结出外界破甲DEBUFF和自身破甲BUFF的叠加原理。

  二,是从理论上证明了:破甲,已经归来。

  补:为了方便广大人民阅读 10.上述7 8 9三点,都是基于70级狂暴重伤战PVE模型

  把结论放在一起吧:

  1.不同的内破甲之间的叠加,是加法进行的。

  例如战斗姿态+锤专+20%装备破甲

  那么总内破X=10%+15%+20%=45%

  2.不同的外破甲之间,是通过乘法来进行结合的。

  例如月火的5%和5破的20%

  总外破Y=1-(1-5%)*(1-20%)=24%

  3.内外破甲共同作用时,计费加法亦非乘法。而是根据下列公式:

  设ac为原护甲 C为护甲常数 Y为总外破甲 X为总内破甲

  当ac>C/2, 则破甲作用下的有效护甲ac'=(ac+C-ac*Y)*(1-X/3)-C

  当ac<C/2, 则破甲作用下的有效护甲ac'=ac-ac(X+Y)+ac*ac*XY/(ac+C)

  4.外破甲的绝对值会随内破甲变化而变化,从而维持外破甲的收益始终固定。

  5.内外破甲的收益可以各自独立,两者相乘可得最终收益

  例如单考虑内破时,收益为K1;单考虑外破时,收益为K2;则总收益为K=K1*K2

  当ac>C/2, K=[(ac+C-ac*Y)/(ac+C-ac*Y')]*[(1-X/3)/(1-X'/3)]

  当ac<C/2, K=[(ac+C-ac*Y)/(ac+C-ac*Y')]*[(ac+C-ac*X)/(ac+C-ac*X')]

  6.设X为内破甲基础

  战斗姿态收益K=0.1/(2.9-X)

  锤专收益K=0.15/(2.85-X)

  斩杀收益K=0.2026/(2.7974-X)

  上述三项收益均已减去100%

  7.设现有攻强为AP,要提高整体DPS的0.1%所需要的力量值为S

  S=[0.1%AP(AP+1526)(AP+3111)]/[2.64(AP*AP+2850.3AP+569686]

  8.设现有破甲等级为ArP 在此基础上增加0.1%DPS,所需破甲等级为N

  N=(1776.9-ArP)/810.81

  9.在4000AP,100ArP时,价值比:1破甲=1.0292力量

  在4500AP,100ArP,价值比:1破甲=1.1234力量

  10.上述7 8 9三点,都是基于70级狂暴重伤战PVE模型


--------------------------------------------------------------------------------

  一. 基本说明

  整个东西之前,先解释一些自造的概念。再把一些基本的思考方法在前面说明一下。

  1.1名词解释

  首先假设一些定义和设几个字母代号:

  内破甲:自身装备/天赋/技能/触发特效带来的破甲,无论在面板上看不看得到,全部统称为内破甲。下文以X表示。

  外破甲:以debuff形式挂在目标身上的破甲,全部统称为外破甲,最常见的就是破甲和精灵之火。下文以Y表示

  字母命名惯例:变化前数据不作标饰,变化后的数据加 ’以示区别。例如破甲前护甲为ac,则破甲后护甲命名为ac’。

  实际有效护甲:在所有破甲共同作用下,代表目标真正免伤能力的护甲。下简称有效护甲。

  设护甲=ac 护甲常数=C 护甲免伤=ac/(ac+C)

  1.2测试方法

  整个测试采用的目标都是主城里面的70木桩假人,所以必须先搞明白假人的ac。

  测试的方法是采用攻击原始值比较稳定的嗜血来进行攻击测试。

  原始伤害=AP/2 护甲免伤=ac/(ac+C)

  实际伤害D=(AP/2)*(1-ac/(ac+C))

  整理上式 可得:ac=(AP/2D-1)*C

  在完全没破甲的情况下,50次嗜血攻击假人。

  取得伤害的平均值,记下当前AP,代入上式,算出假人原始ac。

  我测得的假人原始ac=6718.1

  (注:为什么嗜血这么稳定的攻击还要反复测试50次?因为ac是一个经常会达到4-5位数字级别的东西。而实际攻击,往往只有3位,个别能达到4位,但就算是2K,和4K这样的甲相比,数值上还是差了一半。

  所以护甲产生的免伤也是个4为有效数字的东西,这点我们也可见的,攻击产生的伤害值必然会产生小数点,也就是浮点,但单次伤害显示时是没有浮点的,浮点往往是储存起来,累计到下次攻击,在某次攻击浮点数超过个位的时候,再进位成整数,在当次的攻击中显示出来。

  举个简单例子,当伤害值是6.5,不断攻击时,伤害值将会是6,7,6,7,6,7,6,7,……这样显示出来。所以为了取值精确,必须进行多次采样,在整个测试中,每一个伤害数据基本都是经过10+次测试得来的。)

  然后再进行带破甲的测试

  穿上破甲装 反复测试0破下的伤害值 每次测试取样10-15次不等 取平均值

  再测试1破.2破……依次测试到5破

  然后调整装备,改变内破甲,重新测试0破-5破下的伤害。

  代入式子,根据当时AP,反推出破甲作用下的有效护甲。

  根据相应的内破甲和外破甲共同作用下的有效护甲,进行列表。

  得出下表,作为基础数据:

  (注2:表格中的中间部分就是破甲作用下的有效护甲)

  1.3分析方法

  整个分析当中,重点分析的就是属性带来的伤害收益。

  你增加了XXX点的某个属性,你的DPS就会上升一定比例。

  本文采用的分析主要是定比分析,这个比就是变化后的DPS和原DPS的比例

  从数学来描述 就是:

  收益K=DPS(变)/DPS(原)

  当然,怎么用数学去描述属性变化带来的DPS变动,下文再具体阐述。

  而根据一般习惯,我们总是喜欢看到“某东西提升你伤害N%”。所以下文中在表示收益时,一般会把收益K减去100%,得到一个百分比数,尽量使结果简洁起来。


  二. N种破甲效果如何共同作用

  当几种不同的破甲共同作用时,这几种东西主要可以分为内/外破甲两大类,它们通过一系列的混合作用,共同决定了目标的实际有效护甲。

  2.1不同的内破甲间如何共同作用

  不同的内破甲之间的叠加,是加法进行的。这个东西已经有帖子说过,但我还是进行了测试,确认了这是正确的。

  比如你有战斗姿态的10%破甲,15%的锤专破甲,20%的装备破甲。

  那么你的内破甲就是X=10%+15%+20%=45%

  而这里面,还有“护甲穿透上限”的问题。

  在此我再简单地解释下这个东西,算是扫盲。

  首先我们可以看到,面板里说的“最多忽略目标护甲N%”,万恶的最多,这是重点。

  当目标护甲少于C/2(70级时这个值就是5279)时,内破甲能够稳定地提供X*ac的破甲值。

  但当目标护甲大于C/2时,内破甲的基数就不再是原来的ac,而是变成了(ac+C)/3。例如总量为X的内破甲,在攻击ac>C/2的目标时,它就只能提供X*(ac+C)/3的破甲值,你会发现这是比X*ac少的。而且护甲穿透上限不仅存在于装备带来的破甲,而且存在于一切的内破甲当中,包括斩杀FM特效,锤专,战斗姿态,都要服从这个规律。

  2.2不同的外破甲间如何共同作用

  不同的外破甲之间,是通过乘法来进行结合的。这个东西也有人说过,同样我也再次做测试证实了那是没错的。

  例如,当目标同时挂着20%的破甲和5%的精灵火

  目标上的外破甲就是Y=(1-20%)*(1-5%)=0.76

  2.3内外破甲如何共同作用

  这个东西,本来不是我想研究的东西,但要搞明白破甲的价值,必须知道它是如何运作的。于是翻遍网上一切东西,就是没发现有谁解释很好地过这个问题。

  dante888同学翻译了MMO上一个老外写的东西,里面也提及到这个问题,也尝试了解释内外破甲是怎么叠的。

  但这位老外似乎解释得很含糊也很晦涩,总之我看得半懂非懂,尝试着按照那些式子去算,算出来的护甲和实测的数据就是有差距。于是只好自己动手研究这个原理,这也是本文的成因之一。

  废话不多,先把结论搬出来,推导过程放在后面,懒人不想看跳过就算了,我担保这东西不会错就是了。

  设ac为原护甲 C为护甲常数10557.5 Y为外破甲总百分比 X为内破甲总百分比

  当ac>C/2, 则破甲作用下的最终有效护甲ac'=(ac+C-ac*Y)*(1-X/3)-C

  当ac

  具体推导过程:

  再次把原始数据表搬出来看看

  原始护甲=6718.1 表中数据是破甲后的最终有效护甲

  不知道为什么,我总是固执地认为,内外破甲必然是先后分开作用的,总觉得BLZ不会把它们混在一起共同生效。而事实上这个猜测对后来的找规律也起到很大的帮助。

  实际上,经过观察,表中各个横行的相邻2个数据的差,几乎都是相等的。例如第一行,这个差值就大约在264间浮动,例如第六行,差值大约就是212左右。(为什么会浮动?因为可恶的浮点存在,根据3位数的原始数据,根本无法得到一个稳定的4位结果。)所以基本上就已经可以认为每个横行都是一个等差数列。

  那么这个数列的公差会不会就是每层破甲对应着的4%ac呢?根据这一点,当时我有2个假设,其中一个就是内破甲作用在前,外破甲作用在后。假设将各自横行的数去除以它们行首的数,若得到的是一组按照外破甲那样96%-92%-88%-84%-80%的排列,那就能证明破甲作用的最后一步是由外破甲完成的。但我得到是一些从1-0.84间的排列,规律杂乱无章,说明假设不成立。

  所以我又猜想是外破甲作用在前,内破甲作用于后。首先,这种猜想也和每行数字都是等差数列这个事实并不矛盾;其次,在上一个版本中,在那个外破甲还是定值作用的时代,先计算外破甲再计算内破甲,已经是当时的普遍认识,这种方法延续下来也不无道理。于是我开始沿着这个思路摸索下去。

  确立了这个先外后内的顺序,就要研究内外破甲在这里面分别是怎么作用的了。根据“内破甲不变,均匀变动外破甲,造成的有效护甲是等差数列”和“先外破甲作用,再到内破甲作用”,很自然就会想到:这个数列是由另外一个等差数列整齐地减去同一个数值得来的。

  这个“同一个数值”,自然会猜想它就是内破甲的破甲值。而把内破甲值整齐地加回到各个有效护甲上时,这组“另外一个等差数列”也就出来了,它就是一组在外破甲作用下形成的有效护甲。

  然后我再把这里面外破甲造成的破甲值抽取出来仔细研究,看究竟这是什么规律。例如表格第6列,5破作用下这列,为什么同是5破,在不同的内破甲前提下,外破甲的破甲值会受到影响呢?为什么内破甲堆得越高,外破甲独立产生的破甲值会随之降低呢?

  哦,我承认这是整个分析里最漫长的过程,其中我套入过不下8-10种算式,就是无法准确表达这个规律。断续思考了几天,在某个热得浑浑噩噩的下午,突然我脑中那真TM就叫灵光一闪,突然想到了这个规律其实是一个很有目的的设置:BLZ就是要使一定的外破甲带来的总收益总是固定的,不受你身上内破甲的干扰!

  因为我们知道,破甲是一种会收益递增的属性,在越高的破甲基础上去增加破甲,收益就越明显。据此,如果外破甲的破甲值总是固定,那么它就会随着内破甲的增长而产生越来越高的收益。但现在这个外破甲作用的方法似乎是要克服这个规则。

  (注3:在这里,我先把破甲带来的收益表述一下:收益K=DPS*[1-ac'/(ac'+C)]/DPS*[1-ac/(ac+C)],这里的DPS就是目标0甲时的理论DPS,然后方程一般化简为K=(ac+C)/(ac'+C) )

  我立马动手列出方程:设目标身上0破,即Y=0,且自身内破甲为X时,目标有效护甲为ac';当给目标挂上总量为Y的外破甲,且自身破甲为X时,目标有效护甲为ac''。则“外破甲收益独立固定,不受内破甲基础影响”的数学描述就是:

  (ac'+C)/(ac''+C)=(ac+C)/((1-Y)ac+C)

  因为ac'是X内破甲单独作用下产生的破甲值,那么再把ac'用X描述出来:

  当ac>C/2, ac'=ac-X*(ac+C)/3 ;

  当ac< C/2, ac'=ac-ac*X

  两式联立,解出:

  当ac>C/2, ac''=(ac+C-ac*Y)*(1-X/3)-C ;

  当ac< C/2, ac''=ac-ac(X+Y)+ac*ac*XY/(ac+C)

  回代表中各项数据,误差均在可接受的范围内,因此认为上述2式成立。(注4:为什么公式有误差还是可以成立?因为该死的浮点,出现误差的不是公式,而是原始护甲数据本身。算出的ac和表中数据绝对误差大约在10以内。)

  2.4这种共同作用方式的本质

  首先如前所说,这个规则会令外破甲的作用值随着内破甲变化而不断调整,使得外破甲最终产生的收益始终固定,从而使破甲类技能摆脱了“破甲收益递增”这个曾经的铁律。例如5破的削减20%ac,它在任何情况下,都是稳定地提供ac+C/0.8ac+C的收益。例当这是73的硬皮型BOSS,ac=7700,C=11960,那么5破带来的DPS提升就是1.08499倍,提升8.499%,无论你堆了多少破甲,都不会改变这个数值。

  然后,再看看内破甲造成的影响。按照上述规则,我尝试把破甲拆分开来进行,先进行外破甲,剩下的护甲就是之前所说的“另外一个等差数列”,会发现,它们都是比最终有效护甲整齐的多出一个数值,数值恰好就是ac'--内破甲的作用值。这个ac'不包含Y,这说明内破甲的作用值是不受外破甲影响的。

  这时,可以发现外破甲收益不受内破甲影响,内破甲的作用值也不受外破甲影响,因此内破甲的收益也不受外破甲的影响了。既然我们之前定义的收益是一个比例,那么理论上2个各自独立的收益应该就可以用乘法联合起来:收益(外)*收益(内)=总收益。先在看看ac>C/2这情况下这是否成立:

  设X Y为破甲情况变化前的值, X' Y'为变化后的值,根据K=(ac+C)/(ac'+C)和ac''=(ac+C-ac*Y)*(1-X/3)-C

  从一种破甲情况变化到另一种破甲情况的收益K=[(ac+C-ac*Y)*(1-X/3)-C+C]/[(ac+C-ac*Y')*(1-X'/3)-C+C]

  化简为K=[(ac+C-ac*Y)*(1-X/3)]/[(ac+C-ac*Y')*(1-X'/3)]

  即K=[(ac+C-ac*Y)/(ac+C-ac*Y')]*[(1-X/3)/(1-X'/3)]

  可以看到,最终收益果然是可以表示为外破甲收益*内破甲收益,这就可以在下面分析中把它们拆分开来看了。

  同理可得ac< C/2下的破甲收益K=[((1-Y)ac+C)/((1-Y')ac+C)]*[((1-X)ac+C)/((1-X')ac+C)]

  同样是可以把2个收益独立看的。

魔兽相关资讯
上一篇:八十级3V3战惩德2500+经验之谈之战士篇 下一篇:国服3.1.3:战士撕裂与重伤伤害计算测试