[轉貼] 關於飛兵近戰攻擊中的士兵攻擊段數丟失問題
NGA原帖來源: https://bbs.nga.cn/read.php?&tid=20867987
首先要說明的是,這與我們所熟知的遠程攻擊中士兵的攻擊段數丟失問題原理可能並不相同,後者的本質是攻擊速度問題,因而是穩定發生的。
問題的起因如下,下面三次攻擊是在完全相同的場況下發生的:
我們知道,如果攻擊界面顯示暴擊的話可能是英雄暴擊,士兵暴擊,或英雄士兵均暴擊,但攻擊界面不顯示暴擊的話就一定是英雄士兵均未暴擊。那麼問題就來了,第一張圖未暴擊的情況下秒掉了敵方步兵,而第二張圖暴擊的情況下反而沒有秒掉,更匪夷所思的是第三張圖,與第一張圖一樣未暴擊,傷害卻高於第一張圖,而結果竟然也沒有秒掉。注意夢戰手游在傷害計算時是沒有隨機數係統的,這一點與原作不同(原作中在傷害計算後會額外加上一個隨機的小數字作為最終傷害,以2代為例,我印像中好像其中的隨機數範圍是{0,±1,±2,±3})。那麼一個比較合理的推斷是問題出在攻擊段數上。
為了給接下來的計算做準備,我們首先列出對戰雙方的一些數據:
雙方的buff情況:
我方士兵屬性及兵營科技:
敵方士兵屬性:
下面是第一張圖的戰鬥畫面:
從圖中可以看到如下一些數字:64, 169, 565, 991, 846。我們來看一下這些數字都是什麼。
64=((786 [敵方士兵攻擊] +314 [敵方士兵攻擊修正] )-373 [聖天馬基礎防禦] *(1+20% [超絕] +30% [祕境buff]+20% [先制打擊] +20% [空海奇襲] )*(1+10% [露娜防禦修正] ))/2*(1-50% [聖天馬特性] -10% [露娜心之羈絆] )
169=(1627 [敵方將領攻擊] -373 [聖天馬基礎防禦] *(1+20% [超絕] +30% [祕境buff] +20% [先制打擊] +20% [空海奇襲] )*(1+10% [露娜防禦修正] ))/2*(1-50% [聖天馬特性] -10% [露娜心之羈絆] )
565=(691 [聖天馬基礎攻擊] *(1+20% [超絕] +30% [祕境buff] +20% [先制打擊] +20% [空海奇襲] )*(1+40% [露娜攻擊修正] )-350 [敵方士兵基礎防禦]*(1+20% [兄貴buff] +18% [敵方士兵特性] )*(1+40% [敵方士兵防禦修正] )*(1+20% [樹林地形] ))/2* (1+10% [再移動buff] )
991=(2615 [露娜攻擊] -350 [敵方士兵基礎防禦] *(1+20% [兄貴buff] +18% [敵方士兵特性] ) *(1+40% [敵方士兵防禦修正] )*(1+20% [樹林地形] ))/2*(1+10% [再移動buff] )
846=(2615 [露娜攻擊] – 898 [敵方將領防禦] *(1+20% [樹林地形] ))/2*(1+10% [再移動buff] )
也就是說:
64:敵兵-我兵
169:敵將-我兵
565:我兵-敵兵
991:我將-敵兵
846:我將-敵將
再來分析一下兩個總傷害數字:4212和23712。由於場面比較混亂,直接數攻擊段數很困難,轉而去計算是一個比較可行的辦法。
也就是說,我們要求滿足下述等式的整數a, b, x, y, z:
64a+169b=4212;
565x+991y+846z=23712.
其中a, b, x, y, z分別代表對應攻擊的段數,1≤a, b, x, y, z≤20,y+z≤20。
解出來a=13, b=20, x=16, y=2, z=15。
從這個解中我們可以大致還原出當時的場景:首先雙方士兵接觸,在這過程中我方士兵因為敵方的攻擊有所損傷,對敵方士兵打出共計16段攻擊後返回,與此同時我方將領參戰,對剩餘的敵方士兵造成2段傷害,由於敵方士兵受損速度很快,只對我方士兵打出13段攻擊後就全滅。敵方將領的20段攻擊悉數打在我方士兵上,而我方將領用剩餘段數攻擊敵方將領,消耗了剩餘18段中的15段結束戰鬥。
這個場景還是比較符合一般的認知,即在將領不會移動的戰鬥中,士兵之間先接觸,士兵全滅後將領才能受到傷害。
下面來看一下第二張圖的戰鬥畫面:
首先是比較熟悉的幾個數字:64, 169, 565, 846,它們的含義已經在上面提到過了。而之前的991消失了,取而代之的是1289。注意到1289=991*(1+30% [暴擊加成] ),也就是說第二次攻擊的暴擊發生且僅發生在我方將領對敵方士兵這一過程中。
用同樣的辦法計算一下攻擊段數。首先註意到4276=4212+64,也就是說我方比第一張圖的情況多受了敵方士兵的一段攻擊,即共計14段敵方士兵的攻擊和20段敵方將領的攻擊。接下來分析敵方受到的總傷害25525,同樣列出等式求整數解:
565x+1289y+846z=25525,其中1≤x, y, z≤20,y+z≤20。
結果是,沒有整數解。
??????
在反復觀看了幾遍對戰動畫後,我終於抓到了罪魁禍首:
這裡出現了一個新的數字419,這個數字只出現了一次,並且在一瞬間就被淹沒在其它數字中了,所以很難抓住。這個數字是什麼呢?其實答案也不難猜:
419=(691 [聖天馬基礎攻擊] *(1+20% [超絕] +30% [祕境buff] +20% [先制打擊] +20% [空海奇襲] )*( 1+40% [露娜攻擊修正] )-898 [敵方將領防禦] *(1+20% [樹林地形] ))/2*(1+10% [再移動buff] )
正是我方士兵對敵方將領的單段傷害。
下面來求解一下修改後的等式:
565x+1289y+846z +419=25525,其中1≤x, y, z≤20,y+z≤20。
求得x=9, y=7, z=13。
這就比較詭異了。注意這里和第一張圖是完全相同的對戰雙方,而第一張圖我方士兵可以對敵方士兵打出16段攻擊。第二張圖的場景大概是這樣的:我方士兵對敵方士兵打出9段攻擊後大部分士兵便不再攻擊了,但是有一個我方士兵越過敵方士兵打了敵方將領一下,之後(或與此同時)我方將領用7段攻擊收掉了敵方士兵,然後把剩餘的13段攻擊打在了敵方將領身上。
事情似乎已經變得明朗起來了。再來看一下第三張圖的戰鬥畫面:
熟悉的數字64, 169, 565, 991, 846,以及
毫不意外地再次出現的419(這次是2個,很難看清,需要仔細辨認一下)
同樣地列出等式:
565x+991y+846z +419*2 =24003,其中1≤x, y, z≤20,y+z≤20。
有兩組解:x=9, y=8, z=12或x=17, y=6, z=9。
至於取哪一組解,有幾種分析方法,不過比較直接且可信的方法就是數一下:
從圖中至少可以看到7個數字991,即y≥7,也就是應當取前一組解。
這個場景大概是這樣的:我方士兵對敵方士兵打出9段攻擊後大部分士兵便不再攻擊了,但是有一個(或兩個)我方士兵越過敵方士兵打了敵方將領兩下,之後(或與此同時)我方將領用8段攻擊收掉了敵方士兵,然後把剩餘的12段攻擊打在了敵方將領身上。
基於上述分析我猜測有如下的
[結論]
在飛兵近戰攻擊的過程中,除了正常的戰鬥流程(如第一張圖所示)外,還有可能發生如下的異常情況:有極個別士兵會越過對方尚存的士兵直接攻擊對方將領,而剩餘的士兵停止攻擊。這可能會造成士兵半數左右的攻擊段數丟失。