冰风谷吧 关注:3,696贴子:49,127

[技术贴]猛力攻击和疾风连击的计算

只看楼主收藏回复

一楼祭百度


IP属地:湖南1楼2010-08-13 03:48回复
    很久没发过技术贴了。最近在玩无冬之夜,然后就在琢磨疾风连击/武器双持的适用性,最后决定重新计算一次武器的期望伤害。结果是:其实猛力跟疾风的判定,比我预计的要简单,甚至简单很多……
    于是技术贴开始。
    首先是基本变量,从只考虑一次攻击的基本情况开始。
    攻击加值为ab的攻击方试图命中防御等级ac的防御方,于是d20骰子只要投出 hitroll >= ac - ab,即可命中。本次攻击的命中概率 x = (21-hitroll)/20。注意一下按照规矩,x最少为1/20,最大为19/20,如果ac跟ab的差距过大导致x超过了此范围,无需讨论。(如果超过范围了,有猛力开猛力有疾风开疾风,因为一头是降低命中照样砍上,一头是就算降低命中,反正也只能指望投出20的必中)
    然后,假定一次成功的普通攻击,能造成的平均伤害是D (damage)(武器伤害、力量加成、buff、武器附加等等等等),同时这个D是可以被重击翻倍上去的。另外,假定每次成功命中,还可以附加不受重击影响的exD点伤害(例如无冬里面牧师的暗火)——放心,这个exD其实没啥影响。如果攻击方的伤害超过防御方的伤害减免较多,伤害减免就可以按负数计算包括在这个exD以内(伤害减免造成0伤害的误差就不考虑了)。
    最后是讨厌的重击部分。假定命中骰子超过critical roll数值就出现倍数为ca的重击威胁,此时需再投一次命中以判定是否成功重击。
    


    IP属地:湖南2楼2010-08-13 03:48
    回复
      现在,本次攻击,攻击方能造成的期望伤害是多少?
      无视重击的话,期望伤害是 x*D + x*exD。
      考虑重击,重击威胁的概率cr=(21-critical roll)/20。通常,critical roll都是不低于hit roll的,于是重击威胁必然命中,先算D的伤害,之后出现重击的概率为x。所以,期望伤害是 x*D + cr*x*(ca-1)*D + x*exD。 《==这个会作为主要的讨论公式
      如果critical roll低于hit roll,那么期望伤害多算了投出重击威胁,但是仍然miss的部分。期望伤害是 x*D + (cr - (hitroll-criticalroll)/20)*x*(ca-1)*D +x*exD 。把x和cr的计算方式带进去消掉两个骰子,得到的结果就是 x*D + x*x*(ca-1)*D + exD 。这个公式仅当hitroll超过criticalroll时才成立。而且因为x有二次项,讨论基本就进行不下去了。
      我们使用第二种情况的结果。即,每次攻击,攻击方能造成的期望伤害,是 x*D*(1+cr*(ca-1)+exD/D),这样只是x的线性函数。


      IP属地:湖南3楼2010-08-13 04:05
      回复
        假定攻击方一轮有N次攻击,命中链可能是-5或者-3(武僧)。此时,参考期望伤害的公式,我们发现,每次的期望伤害就是(x-i*5/20)*D*(1+cr*(ca-1)+exD/D)。5可以改成3,然后i= 0,1,2... N-1。所以,就是一个x的等差数列。
        那么结论就是,我们只需把攻击方的命中链取一个平均值并以此计算命中概率(例如,ab为+16/+11/+6/+1,则平均的ab为8.5,然后以这个ab对比ac计算命中概率。),一轮中,攻击方的期望伤害值,很简单的就是N*x*D*(1+cr*(ca-1)+exD/D)。于是现在我们就可以开始讨论了。


        IP属地:湖南4楼2010-08-13 04:11
        回复
          1. 武僧,疾风连击的情况。
          这个是最简单的。因为输出伤害不受疾风的影响。
          疾风的效果是,命中骰-2,增加一次攻击(注意一下其实疾风附加的攻击是最高命中的攻击,不过暂时忽略吧)
          D*(1+cr*(ca-1)+exD/D)这个部分完全不受影响,所以,只要
          (N+1)(x-2/20)>Nx,或者说,x*20>2(N+1)的时候,就值得开疾风。例如,如果命中概率正好一半,那么当原本你的攻击次数不超过4次的时候,就应该挂上疾风连击。实际上,因为疾风附加的攻击是最高命中,这个数值还要上浮。
          如果知道命中骰,其实计算会更简单一些。例如,敌人的ac有22,武僧的第一拳ab有17,-3命中链递减,一共有四次攻击。那么,第一拳需要投出5即可命中,也就是说,命中概率是(21-5)/20=16/20,依次下来,命中概率分别是16/13/10/7(除以20);开疾风的话,命中概率变成14/14/11/8/5。不开疾风,加起来是46/20*平均伤害,开疾风则是52/20*平均伤害。所以应该开疾风。
          


          IP属地:湖南5楼2010-08-13 04:25
          回复
            2. 武器双持。
            这个比疾风要麻烦,最关键的原因是副手武器伤害不会和主手一样。所以具体就不说了。如果假定双手的伤害都相同的话,一次副手攻击就等同于疾风的计算。
            更常见的基本情况:
            单镰和尚:假定主手6次攻击,命中是ab+0/-3/-6/-9/-12/-15。以-7.5计算命中概率x。
            疾风:副手附加一次命中0,再全部-2。6x<6(x-2/20)+(x+5.5/20),得到x>6.5/20,即,平均命中链,投14或更低、或者第一刀投7或者更低时候能命中,就可以开疾风。
            双持:副手附加了0/-5/-10,再全部-2。6x<6(x-2/20)+(x+5.5/20)+(x+0.5/20)+(x-4.5/20),得到x>3.5/20。即平均命中投17或者更低,或者第一刀投10或者更低能命中敌人时,就可以双持。
            普通战士:假定主手是四次攻击,于是主手本来是ab+0/-5/-10/-15的命中,以-7.5计算命中率x;副手附加了0/-5/-10,再全部-2。4x<4(x-2/20)+(x+5.5/20)+(x+0.5/20)+(x-4.5/20),得到x>2.17/20,级平均命中投19,或第一刀投13能命中时,可以双持。
            4


            IP属地:湖南6楼2010-08-13 04:48
            回复
              补一句。如果还有加速,则上面不等式两边同时加上一次最高命中投骰。两个x约去了。不等式右边留下一个负的2/20。这样会使得开双持的要求提高(疾风提高两个骰子,双持提高2/3=0.7个骰子)。不过,考虑到从0到-15的命中链很难一直保证命中稳定在1-19之间,这个会降低开双持的要求。基本上,就当折中了吧。


              IP属地:湖南7楼2010-08-13 04:52
              回复
                3.猛力攻击
                这个最麻烦。因为同时变化的是命中率x以及伤害D。可以约去的数值变成了每轮的攻击次数N。同样,以命中链平均值计算命中概率x,并假定我们开了p点猛力,猛力可以获得优势的不等式是:
                (x-p/20)*(D+p)*(1+cr*(ca-1)+exD/(D+p)) > x*D*(1+cr*(ca-1)+exD/D)
                最后的结果是:p<20x-D-exD/(1+cr*(ca-1))
                换句话说,平均伤害低于平均命中乘以20的时候,就可以开pa。另外如果有必中或者必不中,那么直接算骰子-20好了。不考虑重击的话,最高攻击每超过20一点,命中就多出1/20,然后对于20点的平均伤害,就可以多开1点pa。exD为正数(例如暗火)的时候就不用着急开pa,为负数的时候(敌人有伤害减免)就可以开pa。计算方法是考虑重击倍乘之后一点换一点。


                IP属地:湖南8楼2010-08-13 05:13
                回复
                  高中三年数学没及过格的我面对这种数理向技术贴从来是除了膜拜其他什么都不做。。。。
                  无冬只觉得弯刃大刀比较褥子


                  11楼2010-08-13 16:21
                  回复
                    不如给个excel表
                    对满屏a啊,N啊表示不了解的猴子拉着树藤飘过


                    IP属地:福建12楼2010-08-13 20:53
                    回复
                      excel表什么的……我就是看过无冬的期望伤害技术贴,然后很果断地头痛遁走了。满屏的数字……
                      而且我也看过无冬里面的武器比较,那个同样忽略了双持的伤害差距。而且还忽略了双持的命中惩罚,这个就很那啥了。
                      如果要结论的话,其实我也说了,只是没全部摆一块。以第一刀计算。
                      主手6次的和尚要开疾风:ac-ab<7;
                      主手6次的和尚要双持:ac-ab<10;
                      普通战士双持:ac-ab<11.3
                      多一次加速,右边的骰子往下减。疾风骰子减2,双持骰子减2/3。
                      双持的和尚无需疾风。
                      pa的话,一刀伤害超过20就完全不用开了。
                      例外情况:命中超限(必中或者必不中)。
                      


                      IP属地:湖南13楼2010-08-13 21:32
                      回复
                        表示结论很不错
                        但是完全不了解
                        理论上应该是在加班的猴子再次飘过……


                        IP属地:福建14楼2010-08-13 22:27
                        回复
                          目前时间4点45,应该是在干活但其实是在摸鱼的便当飘过……


                          IP属地:湖南15楼2010-08-13 22:48
                          回复