點選贊助商廣告,協助本站永續發展

點選贊助商廣告,協助本站永續發展

普通攻擊(傷害)公式

經過系統化的測試及整理後,終於推導出全24兵種共通的普通攻擊(傷害)公式。公式分為固定參數及變動參數。固定參數為基本傷害值105 (+5)與 15,10, 0的傷害倍數。變動參數為敵我雙方將領的綜合加權戰鬥值及交戰兵種目前的戰力。而綜合加權戰鬥值是整個公式的核心,每差2點,攻擊值(傷害)就會整個變動。所以了解普通攻擊(傷害)公式前一定要熟習綜合加權戰鬥值

雖然已經成功用Excel 表跑出模擬傷害值,但用文字說明要深入簡出,言簡意賅比挖掘出公式還要有挑戰性! 本攻略只表達普通攻擊(傷害)公式的70%,持續更新中。



1.傷害值分組
透過有系統地大量對戰後,觀察到不是1個綜合加權戰鬥值對應1個傷害值,是兩個兩個一組,對應1個傷害值。全24兵種都是由以下奇數跟偶數配對成一組 (0,1), (2,3) ..... (50,51)...(100,101) ,所以對戰雙方是 1組 X 1組 = 2個綜合加權戰鬥值  X 2個綜合加權戰鬥值 = 4 個綜合加權戰鬥值共用1個傷害值。擴大到每位將領內建的(名目)戰鬥值,最低0最高100,就有(100/2)+1= 51組戰鬥值。 最簡單地分類是攻擊方有 51組戰鬥值, 而防守方也有51組戰鬥值。 51 X 51 = 2601組傷害值。



2.用圖表理解
其實整個普通攻擊(傷害)公式用Excel 畫成圖表就能瞬間理解,下面的說明都只是在解釋圖表各顏色區塊要怎麼計算而已而已。

防禦方
\
攻擊方
綜合加權戰鬥值
0121121314151617174757677819091100101
0105(+5)

10
1
2

10


20

30

40

50

60

70




74
75
76




77
80





90
91
100331161
101



I. 兩方綜合加權戰鬥值相等 (同兵種)


設定攻擊方及防守方的綜合加權戰鬥值相等,雙方兵種相同,兵種攻擊力也相同,我們觀察雙方傷害值 或者 可說是雙方每次交戰後剩餘人數的變化,發現以下規律:

1. 固定參數: 基本傷害值
首先設定如下綜合加權戰鬥值的參數值,讓雙方將領的(名目)戰鬥值為零時,也讓綜合加權戰鬥值等於零。

(名目)戰鬥值均為零,各兵種熟練度均為零,兵力1000, 士氣值100,相同或不同兵種戰力
綜合加權戰鬥值 =  0 * (1+0) *1*1*1  = 0 

蒙古騎兵、象兵、日本武士、刺客、輕步兵等等全部 24兵種,同樣兵種甚至不同兵種互相普通攻擊,都可發現此設定下攻擊方傷害值105 (也就是防守方剩餘人數895),而防守方傷害值為 110 (也就是攻擊方剩餘人數890),且之後測試各種綜合加權戰鬥值及交戰兵種戰場攻擊力的組合,也沒有比這傷害值更低的數值出現。所以我們確認此時 105 (+5)為基本傷害值,這也是推導各兵種普通攻擊(傷害)公式的起點。


2. 傷害值計算公式
之後將雙方綜合加權戰鬥值同時+2 (同時跳一組),依兵種不同,有的傷害值會不變,有的會增加,且都不會減少。更觀察到雙方剩餘人數840(對方傷害值160) vs 845(對方傷害值155)時,全24 兵種都有這一組160 vs 155 傷害值,而且是唯一一組。此綜合加權戰鬥值確定是傷害值剛好+50的唯一值(160-110=50 及 155-105=50)但此唯一值不是固定值,而是隨兵種攻擊力變化而浮動變化。根據先前推導城市武器文化如何影響兵種戰鬥力的經驗,立刻大膽假設在這個唯一綜合加權戰鬥值之前,+0 到+49的傷害值的變化來自於綜合加權戰鬥值跟戰場兵種攻擊力間某種比例關係!  因此我們要先標定出一個傷害值剛好+50時,那唯一又會浮動變化的綜合加權戰鬥值。為計算方便,特意選擇象兵及刺客,發現此綜合加權戰鬥值跟戰場兵種攻擊力成反比

長槍兵PK版基礎攻擊力25,戰場兵種攻擊力提升到50,且雙方由任意文化圈將領帶兵,此傷害值會落在雙方綜合加權戰鬥值均 40 ,也就是落在 (40,41這組)。

象兵PK版基礎攻擊力70,戰場兵種攻擊力提升到100,且雙方由南方文化圈將領帶兵,此傷害值會落在雙方綜合加權戰鬥值均 20 ,也就是落在 (20,21這組)。

刺客PK版基礎攻擊力10,戰場兵種攻擊力保持10,且雙方由伊斯蘭文化圈將領帶兵,此傷害值會落在雙方綜合加權戰鬥值均 200,也就是落在 (200,201這組)

公式一:
+50時特定綜合加權戰鬥值  = 100/戰場兵種攻擊力 * 20,小數點後無條件捨去。

Excel公式
=ROUNDDOWN((100/戰場兵種攻擊力)*20,0)


驗證1:
用基礎兵種攻擊力為27 的揚塵MOD版的蒙古騎兵來驗證,100/27*20= 74 ,小數點後無條件捨去。雙方剩餘人數840(對方傷害值160) vs 845(對方傷害值155)時,確實落在雙方綜合加權戰鬥值均 74,也就是落在 (74,75這組)。

驗證2: 
兵種攻擊力100的象兵,此傷害值不是落在雙方綜合加權戰鬥值均 21。因為落在21會導致兵種攻擊力10的刺客,雙方綜合加權戰鬥值落在210,而不是200。



公式二:
我們可以利用攻防任一方的綜合加權戰鬥值與+50特定綜合加權戰鬥值間的比例關係,再加上基本傷害值105 (+5) ,就可以推導各組傷害值 。

Hint:
因為傷害值分組的關係,當一組兩個綜合加權戰鬥值傷害值算出兩種不同的傷害值,取較低的那組傷害值當作這組的傷害值。


攻擊方傷害值 =  105 + (攻擊方將領綜合加權戰鬥值 / +50特定綜合加權戰鬥值) * 50

防守方傷害值 =  105 + (攻擊方將領綜合加權戰鬥值 / +50特定綜合加權戰鬥值) * 50 +5
或者
防守方傷害值 = 110 + (防守方將領綜合加權戰鬥值 / +50特定綜合加權戰鬥值) * 50

Excel公式
=ROUNDDOWN((105 + (攻擊方將領綜合加權戰鬥值 / +50時特定綜合加權戰鬥值) * 50),0)


=ROUNDDOWN((105 + (防守方將領綜合加權戰鬥值 / +50時特定綜合加權戰鬥值) * 50+5),0)
或者
=ROUNDDOWN((110 + (防守方將領綜合加權戰鬥值 / +50時特定綜合加權戰鬥值) * 50),0)


公式三:
公式二推導出小於等於+50特定綜合加權戰鬥值前的攻守雙方傷害值的變化,但大於時要怎麼計算傷害值?? 觀察到所有兵種的任意兵種攻擊力在大於+50特定綜合加權戰鬥值後,傷害值立刻變為連續某個特定區間都是相同固定值。除了第一個區間與+50特定綜合加權戰鬥值之間差5傷害值,之後每個區間與相鄰區間只差1的傷害值。當超越顛峰的強者勢均力敵,交戰時雙方損傷都會差不多,最後會兩敗俱傷一起倒下,無法讓對方在兩三招就斃命。

公式一的例子,
蒙古騎兵兵種攻擊力27,+50特定綜合加權戰鬥值落在(74,75) 這組,會有以下規律:
(74.75) VS (74.75): 155 (攻)  vs 160  (防) 傷害值

(76,77) VS (76,77) : 160 (攻)  vs 165  (防) 傷害值
(88.89) VS (88,89) : 160 (攻)  vs 165  (防) 傷害值

(90,91) VS (90,91) : 161  (攻) vs 166  (防) 傷害值
(102,103) VS (102,103) : 161  (攻) vs 166  (防) 傷害值


又觀察到(攻擊方或防守方將領綜合加權戰鬥值 / +50特定綜合加權戰鬥值) * 50,傷害值有以下變化。也可以看做下列特定倍數乘以50,找出傷害值的區間

(76/74)*50 = 51到  (88/74)*50 = 59 ( 1倍 < X < 1.2倍 ),傷害值為160 (攻)  vs 165  (防)
60到69 ( 1.2倍 <= X < 1.4倍 ),傷害值為161 (攻)  vs 166  (防)
70到79 ( 1.4倍 <= X < 1.6倍 ),傷害值為162 (攻)  vs 167  (防)
以此類推


公式加上邏輯判斷
當(攻擊方或防守方累加傷害值 / 50) 大於 1,且(攻擊方或防守方累加傷害值 / 50) / 1.2小於1,則傷害值為160 (攻)  vs 165  (防)

當(攻擊方或防守方累加傷害值 /50) 大於 1,且(攻擊方或防守方累加傷害值 / 50) / 1.2大於等於1,則傷害值為:

攻擊方傷害值 =160+ 【(攻擊方累加傷害值 /50)  - 1.2 】* 10 /2  ,小數點後無條件捨去後,再+1

防守方傷害值 =165+ 【(防守方累加傷害值 / 50)  - 1.2 】* 10 /2 ,小數點後無條件捨去後,再 +1


Excel公式
=IF(AND((攻擊方累加傷害值 / 50)>1,(攻擊方累加傷害值 / 50)<1.2),160,"0")+IF(AND((攻擊方將領累加傷害值 / 50)>1,(攻擊方累加傷害值 / 50)>1.2),160+ROUNDDOWN(((攻擊方累加傷害值 / 50)-1.2)*10/2,0)+1,"0")

=IF(AND((防守方累加傷害值 / 50)>1,(防守方累加傷害值 / 50)<1.2),165,"0")+IF(AND((防守方累加傷害值 / 50)>1,(防守方累加傷害值 / 50)>1.2),165+ROUNDDOWN(((防守方累加傷害值 / 50)-1.2)*10/2,0)+1,"0")







II. 兩方綜合加權戰鬥值不相等 (同兵種)


透過有系統地對戰,發現兩方綜合加權戰鬥值不相等時,雙方傷害值會有極明顯的+15 及-10的傷害倍數變化。所以可以找出以下規律:


1. 基本傷害值 
當兩方綜合加權戰鬥值不相等時,雙方傷害值並不是從零開始累加傷害值到將領的綜合加權戰鬥值,或者說將領的綜合加權戰鬥值乘以某個傷害值倍數。譬如綜合加權戰鬥值  70 vs 50時。 105 + 70 * 某個傷害值倍數。正確的觀念是此時雙方基本傷害值都是從兩方綜合加權戰鬥值相等時的傷害值再加上傷害倍數。可以想像相等時的傷害值是大樹的主幹,依照對戰雙方強弱往兩邊長出枝幹



2. 固定參數: +15,-10, 0的傷害倍數
不分攻擊或防守,只要一方綜合加權戰鬥值大於另一方時,傷害值要加上15的倍數。而綜合加權戰鬥值小於另一方,傷害值則減去10 (或者說加上-10)的倍數。再進一步觀察到兩方綜合加權戰鬥值相等時,傷害倍數為 0 。而倍數是攻擊方及防守方綜合加權戰鬥值間的比例。可以寫成攻擊方綜合加權戰鬥值 /  防守方綜合加權戰鬥值,小數點後位數無條件捨去後再乘以+15、-10或 0。

但攻擊方綜合加權戰鬥值高為較強者,那倍數是1以上的正數,例如70/50 = 1.4,  93/47 =1.979。但攻擊方是較弱者時,倍數卻變成小數了,50/70 = 0.7143,47/93=  0.505。但戰場上實測。我們發現較弱者50先攻擊較強者70跟70先攻擊50,戰場上攻守雙方是相同剩餘人數,所以傷害公式不分較強者或較弱者,都是乘以相同倍數 。因此攻擊方是較弱者時,我們可以寫成 1 /  (攻擊方綜合加權戰鬥值 /  防守方綜合加權戰鬥值) 轉換回 1以上的正數。 如果想驗證,可用計算機輸入 1 / 0.7143  ,也就是 1/ (50/70) ,顯示 1.399972000559989,很接近1.4 (=70/50)。

Hint!
較強者綜合加權戰鬥值要取分組內數值小的,也就是偶數那個值
較弱者綜合加權戰鬥值要取分組內數值大的,也就是奇數那個值


倍數上限值:
倍數為 1 到 10 倍,超過10倍 (11倍以上)就以10倍計算。

較強者傷害倍數:
+15* (較強者綜合加權戰鬥值 /  較弱者綜合加權戰鬥值,小數點後位數無條件捨去 )

較弱者傷害倍數:
-10* 【1 /  (較弱者綜合加權戰鬥值 / 較強者綜合加權戰鬥值),小數點後位數無條件捨去】

攻守雙方勢均力敵:
0* (攻擊方綜合加權戰鬥值 /  防守方綜合加權戰鬥值 )
= 0 *1
=0




3. 倍數微調值
觀察到雙方綜合加權戰鬥值任一方低於1 到20 ,有少部分組合就會有倍數微調值。也就是我們用公式算出來的強(弱)綜合加權戰鬥值 / 弱(強)綜合加權戰鬥值 的倍數竟然不等於戰場上實際觀察到的倍數。

一般是將領的(名目)戰鬥值若只有1 到20,那政治或智謀會相對高,我們會讓他從事建設、商業、外交等工作。但戰場上採用綜合加權戰鬥值,戰鬥值是每次交戰後浮動向往下修正,後半段的戰鬥回合,因為多次交戰後兵力數低,就會發生綜合加權戰鬥值任一方低於1 到20 。有少部分組合就會遇到倍數微調值

例如將領戰鬥值100, 騎兵S, 經過一輪血戰後,軍隊士氣值100降到剩50, 交戰部隊兵力數由1000降到剩200,兵種戰鬥力27,
開局時綜合加權戰鬥值 = (100+100) * 100/100*1000/1000*27/27 = 200
此時綜合加權戰鬥值 = (100+100) * 50/100*200/1000*27/27 = 20

倍數微調值的特性是戰場上實際觀察到的倍數可能比公式算出來的強(弱)綜合加權戰鬥值 / 弱(強)綜合加權戰鬥值 的倍數+1 或者 -1,對戰局的影響就是較強者+15 *1=15,較弱者-10*1 =-10 或者 較強者+15 *(-1) =-15 ,較弱者-10*(-1) =10


目前陷入瓶頸,因為每個兵種戰鬥力都會發生同樣一列倍數微調值有的組合要+1, 有的要-1
這裡舉例揚塵MOD 雙方蒙古騎兵基礎戰鬥力 27時,遇到的問題:
公式算出 14/7=2倍 , 但實際是(129-114)/15 =1 倍
公式算出 14/5=2.8=2倍 , 但實際是(159-114)/15 =3 倍
公式算出 14/3=4.67=4倍 , 但實際是(189-114)/15 =5 倍

較弱
\
較強
2345671415
14189159129
114
15



4. 傷害值計算公式
就是假設雙方相等時的傷害值先加上+15,-10的傷害倍數,再依較倍數上限值及較強者額外傷害規則調整。


公式:
較強者傷害值
=105 + (較強者綜合加權戰鬥值 / +50時特定綜合加權戰鬥值) * 50 ,小數點後位數無條件捨去 + 15* (較強者綜合加權戰鬥值 /  較弱者綜合加權戰鬥值,小數點後位數無條件捨去 )

較弱者傷害值
=105 + (較弱者綜合加權戰鬥值 / +50時特定綜合加權戰鬥值) * 50  +5,小數點後位數無條件捨去 -10* 【1 /  (較弱者綜合加權戰鬥值 / 較強者綜合加權戰鬥值),小數點後位數無條件捨去】


Excel公式:
較強者傷害值
=ROUNDDOWN((105 + (較強者綜合加權戰鬥值 / +50時特定綜合加權戰鬥值) * 50),0)+15*ROUNDDOWN((較強者綜合加權戰鬥值 /  較弱者綜合加權戰鬥值),0)

較弱者傷害值
=ROUNDDOWN((105 + (較弱者綜合加權戰鬥值 / +50時特定綜合加權戰鬥值) * 50),0) +5 -10* ROUNDDOWN(1/(較弱者綜合加權戰鬥值 /  較強者綜合加權戰鬥值),0)】


倍數上限值:
較強者倍數: 較強者綜合加權戰鬥值 /  較弱者綜合加權戰鬥值
較弱者倍數: 1/(較弱者綜合加權戰鬥值 /  較強者綜合加權戰鬥值)

倍數為 1 到 10 倍,超過10倍 (11倍以上)就以10倍計算。


較強者額外傷害規則
當計算出來的傷害值大於等於300 時,
( 較強者綜合加權戰鬥值 / +50特定綜合加權戰鬥值) <1,立刻進位為330
( 較強者綜合加權戰鬥值 / +50特定綜合加權戰鬥值) >1 時,有以下規則

1   倍 <   X < 1.2倍    傷害值 330+1  = 331
1.2倍 <= X < 1.4倍    傷害值 330+2  = 332
1.4倍 <= X < 1.6倍    傷害值 330+3  = 333
以此類推




III. (0,1)傷害值 (同兵種)


當較弱者的綜合加權戰鬥值只有 0或1 時,就要用特殊傷害值計算公式。

1.  雙方加權戰鬥值相等,也就是(0,1) VS (0,1) 時,傷害值為固定參數:105 (+5)

2. 另一方加權戰鬥值大於 0或1 時,採用以下特殊傷害值公式,但一樣要依倍數上限值及較強者額外傷害規則調整。

較強者傷害值:
105 + 15 * (較強者綜合加權戰鬥值(偶數值) / +50特定綜合加權戰鬥值,小數點後位數無條件捨去)

較弱者傷害值:
105- 10* (較強者綜合加權戰鬥值(偶數值) / +50特定綜合加權戰鬥值,小數點後位數無條件捨去)   +5

倍數上限值:
倍數為 1 到 10 倍,超過10倍 (11倍以上)就以10倍計算。


較強者額外傷害規則
當計算出來的傷害值大於等於300 時,
( 較強者綜合加權戰鬥值 / +50特定綜合加權戰鬥值) <1,立刻進位為330
( 較強者綜合加權戰鬥值 / +50特定綜合加權戰鬥值) >1 時,有以下規則

1   倍 <   X < 1.2倍    傷害值 330+1  = 331
1.2倍 <= X < 1.4倍    傷害值 330+2  = 332
1.4倍 <= X < 1.6倍    傷害值 330+3  = 333
以此類推




IV. 特殊傷害值 (同兵種測試)


以下都是講綜合加權戰鬥值,不是傷害值!

1. 側面(左方或右方)攻擊
被攻擊方的綜合加權戰鬥值 x 0.65
攻擊方的綜合加權戰鬥值不變


2. 背面攻擊
被攻擊方的綜合加權戰鬥值 x 0.5
攻擊方的綜合加權戰鬥值不變


3. 攻擊混亂或失控的部隊
被攻擊方(混亂)的綜合加權戰鬥值 x 0.65
被攻擊方(失控)的綜合加權戰鬥值 x 0.65
攻擊方的綜合加權戰鬥值不變


4.側面攻擊混亂或失控的部隊
被攻擊方(混亂)的綜合加權戰鬥值 x 0.5
被攻擊方(失控)的綜合加權戰鬥值 x 0.5
攻擊方的綜合加權戰鬥值不變


5.背面攻擊混亂或失控的部隊
被攻擊方(混亂)的綜合加權戰鬥值 x 0.4
被攻擊方(失控)的綜合加權戰鬥值 x 0.4
攻擊方的綜合加權戰鬥值不變


6. 戰場上的下雨天及下雪天
均不影響普通攻擊




普通攻擊(傷害)公式 普通攻擊(傷害)公式 Reviewed by Oscar Yu on 1/25/2019 Rating: 5

沒有留言:

點選贊助商廣告,協助本站永續發展

技術提供:Blogger.