首先,在第一個大風(在20幀產(chǎn)生的)提供的風刀增益在20幀+372幀=392幀后失去之前,額外傷害都是0,因 為在此之前不存在符合額外傷害定義的大風傷害。第一次額外傷害會從392幀開始產(chǎn)生,一直到12幀后的404幀結(jié)束。從404幀到392幀的一個大風周期 40幀后,多余的傷害都為0。接著然后重復12幀大風傷害,0的周期模式。因此額外傷害可以用跟幀數(shù)相關(guān)的函數(shù)來表示。額外傷害=stack(增益倍 數(shù))*大風一幀的傷害*判斷函數(shù)。判斷函數(shù)是一個判斷某一幀應不應該有額外傷害的函數(shù),具體形式在進的分析會有討論。 [4]現(xiàn)在,我們已經(jīng)可以計算戰(zhàn)斗過程中所有幀數(shù)的傷害了,用函數(shù)表示為:整體傷害=同步傷害+額外傷害。整體傷害在戰(zhàn)斗開始后0幀到600幀的模式如下 圖所示(X軸為時間/幀數(shù),Y軸為武器傷害)
[5]因為戰(zhàn)斗時間越長,戰(zhàn)斗中后面周期性的傷害占比最高,所以計算20幀間隔的平均武器傷害,只要算出392幀后任意一個40幀周期的傷害均值即可。
2.組隊輸出模型的進階分析
在獲得具體20幀攻速間隔,戰(zhàn)斗中所有幀數(shù)傷害以及風刀層數(shù)的判斷公式之后,通過推導,我們可以歸納出對于所有攻速間隔都適用的通用公式,下面就是具體的推導過程以及附上我真實計算所用的公式組。
A.適用于所有攻速間隔,戰(zhàn)斗開始后某一幀的風刀層數(shù)通用公式歸納 [1]首先我們觀察由20幀攻速間隔得到的具體風刀層數(shù)公式: stack(風刀層數(shù))=Floor[1+(幀數(shù)/20)];{幀數(shù)<392幀} stack(風刀層數(shù))=Floor[1+(幀數(shù)/20)]-2*Floor[1+(幀數(shù)/40)];{幀數(shù)≥392幀} [2]可以發(fā)現(xiàn)分段情況是以第一次大風提供的增益層數(shù)消失為分界點,因為攻速間隔是20幀,所以第一次消失是發(fā)生在372幀(層數(shù)持續(xù)時間)+20幀(第 一次大風出現(xiàn)的幀數(shù))。在這372幀+20幀之前,風刀的層數(shù)都是每隔一次攻速間隔增加一次的。由此歸納可得,假設(shè)人物的攻速間隔為X,在372幀+X幀 之前,風刀的層數(shù)是每X幀增加一層的,處于兩次X幀之間的層數(shù)狀態(tài)與前一次X幀的時候相同。用函數(shù)表示為:stackx(風刀層數(shù))=Floor[1+ (幀數(shù)/X)] ;{幀數(shù)<372幀+X幀},其中Floor[1+(幀數(shù)/X)]這個也是風刀層數(shù)的獲得函數(shù)。 [3]接著我們觀察20幀攻速間隔下,392幀后風刀層數(shù)的變化模式。由上面我們可以知道,風刀層數(shù)增加的模式還是每隔20幀增加一層,但是現(xiàn)在風刀層數(shù) 已經(jīng)不直接與風刀獲得層數(shù)直接鉤掛了,因為從392幀開始,我們就會周期性失去一個大風提供的風刀增益層數(shù),每一幀的風刀層數(shù)應該是由獲得層數(shù)和失去層數(shù) 共同計算所得。因為風刀層數(shù)失去的模式是跟產(chǎn)生一個大風的周期相同,所以在人物攻速間隔為X的情況下,失去風刀層數(shù)是間隔2X的周期函數(shù)。從20幀得到的 公式歸納,stackX(失去風刀層數(shù))=2*Floor[1+((幀數(shù)-(372+X))/(2*X))]。所以,對應幀數(shù)≥X+372幀的幀數(shù),風刀 的層數(shù)等于這一幀風刀獲得層數(shù)減去風刀失去層數(shù)。函數(shù)形式為:stackx(風刀層數(shù))=Floor[1+(幀數(shù)/X)]-2*Floor[1+((幀數(shù) -(372+X))/(2*X))] 當{幀數(shù)≥372幀+X幀}[總結(jié),適用于所有攻速間隔,戰(zhàn)斗開始后某一幀的風刀層數(shù)通 用公式如下: stackx(風刀層數(shù))=Floor[1+(幀數(shù)/X)];{幀數(shù)<372幀+X幀} stackx(風刀層數(shù))=Floor[1+(幀數(shù)/X)]-2*Floor[1+((幀數(shù)-(372+X))/(2*X))];{幀數(shù)≥372幀+X 幀} B.適用于所有攻速間隔,戰(zhàn)斗開始后的某一幀的實際傷害通用公式歸納 [1]知道層數(shù)的通用公式之后,我們就可以去歸納實際傷害的通用公式了。首先先建立風刀增益倍數(shù)的函數(shù):stackx(增益倍 數(shù))=1.5+stackx*(風刀層數(shù))*風刀特效%。 [2]因為同步傷害部分是直接與風刀層數(shù)掛鉤的,既然我們知道了風刀層數(shù)的通用公式,那么這么部分不需要任何調(diào)整,即可以計算所有攻速間隔下某一幀的同步 傷害了。函數(shù)形式為:同步傷害x=stackx(增益倍數(shù))*(Floor[stackx(風刀層數(shù))/2]*大風一幀的傷害+(stackx(風刀層 數(shù))-2*Floor[stackx(風刀層數(shù))/2])*小風一幀的傷害)。 [3]額外傷害部分唯一與攻擊間隔掛鉤的變量,是增益倍數(shù)和判斷函數(shù)。在已經(jīng)明確增益倍數(shù)之后,只要解決判斷函數(shù)的部分,就能得到適用于全部攻速間隔情況 下的額外傷害。已知在戰(zhàn)斗開始后第一個大風消失之前,額外傷害部分都是0。假如人物的間隔幀數(shù)為X,那就就是說在372幀+X幀之前,額外傷害都為0。所 以這就是判斷函數(shù)的第一部分,當幀數(shù)小于372幀+X幀之前,判斷函數(shù)直接等于0。然后,第一組12幀的額外傷害會在372幀+X幀之后開始產(chǎn)生。12幀 之后到下一個周期,也就是372+3X幀之前額外傷害都等于0。為了達到這樣的判斷效果,聯(lián)合在372幀+X幀之前傷害等于0,我寫了一組判斷函數(shù),如 下: 判斷= -1*幀數(shù) ; {幀數(shù)372 + X} 判斷= ((幀數(shù)-(Floor[(幀數(shù)-(372+X))/(2*X)]*(2*X)+(372+X))) 判斷0=If[0≤判斷[幀數(shù), X] <= 1, 1, 0] 綠色部分的作用是自動判斷離你輸入的幀數(shù),最近的一個372+X的周期。然后用你輸入的幀數(shù)減去這個幀數(shù),如果/12,也就是在額外傷害的12幀周期內(nèi), 得到的數(shù)值就是0到1之間數(shù)字,否則就是大于1的數(shù)字,然后小于372幀+X幀情況,得到的數(shù)字全為負數(shù)。在此基礎(chǔ)下,我們可以建立真正的判斷函數(shù),如果 判斷0在你輸入那一幀的數(shù)值不在0和1之間,判斷函數(shù)的輸出就是0,反之亦然。在這個判斷函數(shù)的基礎(chǔ)上,我們可以建立適用于所有攻速間隔,額外傷害部分的通用公式:額外傷害X=判斷0*大風一幀的傷害*stackx(增益倍數(shù))。[4]至此,我們已經(jīng)得到了適用于所有攻速間隔,計算開始戰(zhàn)斗后某一幀的傷害的公式:傷害X=額外傷害X+同步傷害X。我們也可以分析所有攻速間隔的傷害,收益和其他的數(shù)據(jù)。
小編推薦閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]
湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2024 haote.com 好特網(wǎng)