- 鐵幣
- 5515 元
- 文章
- 1530 篇
- 聲望
- 3504 枚
- 上次登入
- 24-12-4
- 精華
- 4
- 註冊時間
- 04-8-29
- UID
- 45466
|
本文章最後由 kevin.chang 於 13-2-19 03:37 編輯
轉載:http://hawkaoc.net/bbs/thread-108470-1-1.html
帝國傷害計算內部機制解讀(終極版)
作者:yty
一、研究背景
帝國中兵種相剋永遠是帝國最吸引人的地方之一,而兵種相剋的參數一直是帝國中未解之謎,吸引了眾多人展開討論。前人的研究中,其研究框架基本上是「附加攻擊型」,即大多採用「某兵種對某兵種具有多少點的附加攻擊」,而對兵種的界定標準混雜,有時會產生混亂或錯誤。本篇研究的創新之處在於,採用全體的框架體系描述帝國中傷害的實現機制,把以前所謂近身攻擊、遠程攻擊、近身防禦、遠程防禦、附加傷害、附加防禦,甚至有些文章使用到「反附加攻擊」等一類術語統一起來。帝國的內部實現機製表明,所有的「附加傷害」實現機制與基礎傷害並無二致,統一起來並找出公式是完全可行的。
二、假設與約定
本文資料來源於AoFE(失落的帝國)的數據文件。因為AoFE對AoC1.0C版做了若干修正,所以本文部分數據不適用於AoC1.0C版。使用GeniEd v0.2和Advanced Genie Editor v1.6程序獲取數據。
本文不考慮以下問題對兵種攻擊/防禦的影響:
1.科技(某些科技會使兵種改變,如所有精銳升級科技,當作兩種不同兵種看待);
2.時代(例如討論精銳近衛軍,雖然它帝王時代才會出現,但討論時我們不認為它獲得了封建時代和城堡時代的兵工廠科技加成,仍只討論兵種本身的裸參數);
3.民族特色與加成;
4.地形地勢影響;
5.某些特殊情形不在本文範疇內討論,如諸葛弩連發(本文只討論第一發)、弩砲穿刺攻擊(本文只討論受全傷害的第一個目標)、踐踏傷害、投石車遞減範圍傷害。
概括來說,本文討論的是在同一地勢下,未受任何科技、時代或民族加成的單位攻擊時傷害的判定機制。至於其他特殊攻擊情形,我會進一步研究,結論成熟後再行發佈。目前可以暫時粗略指出,兵工廠的科技升級指的是升級【3.基礎遠程攻擊】【4.基礎近身攻擊】類型的攻擊/防禦屬性,至於其他科技,各有不同作用,不能一概而論,不屬於本文內容。
三、模型構建
帝國所有單位的攻擊/防禦屬性可以分為24種類型,它們分別是:
1.步兵類;
2.龜船類;
3.基礎遠程攻擊;
4.基礎近身攻擊;
5.戰象類;
6.騎兵類;
7.建築類;
8.防禦建築類;
9.有害生物類;
10.弓箭兵類;
11.船和駱駝類;
12.沖車類;
13.樹類;
14.特色單位類;
15.攻城武器類;
16.標準建築類;
17.城牆類;
18.火藥類;
19.野豬類;
20.僧侶類;
21.城堡類;
22.槍兵類;
23.騎射手類;
24.雄鷹戰士類。
需要注意的是,該分類是對兵種的攻擊/防禦所作的分類,與兵種本身並無任何關係。從下文的討論可以得知,兵種本身的分類可以看作與其防禦屬性分類相同。
每個兵種具有0個至多個攻擊屬性,具有0個至多個防禦屬性。每項屬性由類別和值構成。設某項攻擊屬性值為A,某項防禦屬性值為D,則A和D可以看作兵種及屬性類別的函數,即A=A(兵種,i),D=D(兵種,i),其中i=1,2,…,24。以下的討論中,我們舉戟兵單挑甲冑騎兵為例,這場戰鬥能很好地說明問題。從附表的【兵營單位】及【城堡單位】欄,可以找到戟兵和甲冑騎兵的攻防參數如下:
戟兵 HP:60
====攻擊數據====
雄鷹戰士類 1
標準建築類 1
戰象類 28
基礎近身攻擊 6
騎兵類 30
船和駱駝類 21
====防禦數據====
槍兵類 0
步兵類 0
基礎近身防禦 0
基礎遠程防禦 0
甲冑騎兵 HP:110
====攻擊數據====
步兵類 9
基礎近身攻擊 9
====防禦數據====
基礎近身防禦 2
騎兵類 12
基礎遠程防禦 1
特色單位類 0
根據模型,我們可以寫出:
A(戟兵,4)=6
A(戟兵,5)=28
A(戟兵,6)=30
A(戟兵,11)=21
A(戟兵,16)=1
A(戟兵,24)=1
D(戟兵,1)=0
D(戟兵,3)=0
D(戟兵,4)=0
D(戟兵,22)=0
A(甲冑騎兵,1)=9
A(甲冑騎兵,4)=9
D(甲冑騎兵,3)=1
D(甲冑騎兵,4)=2
D(甲冑騎兵,6)=12
D(甲冑騎兵,14)=0
需要注意的是,某項數值為0和某項數值沒有定義有著本質區別。比如,甲冑騎兵的步兵類防禦數值未定義,而不是0。即D(甲冑騎兵,1)無意義,而非D(甲冑騎兵,1)=0。
下面,我們便可以得出某個單位(進攻者)對另外一個單位(防禦者)單次攻擊造成的傷害的公式:
進攻者對防禦者的單次傷害=Σ(i=1->24)[A(進攻者,i)-D(防禦者,i)]
注1:其中每一個求和項最小值為0,不能為負數。
注2:如果最終所得總和為0,那麼傷害為1。
注3:有些單位的防禦數據前帶有(本單位會受到所有類型的攻擊傷害)標誌,表明該單位會受到攻擊者所有攻擊類型值加和的傷害。例如用重型沖車打灰狼柯魯,傷害為200+4+65-0=269。【感謝 Sd.無心插柳 提醒我這一點】
利用以上公式,我們可以計算出,戟兵對甲冑騎兵單次傷害為
[A(戟兵,4)-D(甲冑騎兵,4)=4]+[A(戟兵,6)-D(甲冑騎兵,6)=18]=22
同樣可以計算出,甲冑騎兵對戟兵單次傷害為
[A(甲冑騎兵,1)-D(戟兵,1)=9]+[A(甲冑騎兵,4)-D(戟兵,4)=9]=18
舉一個極端的例子特別說明一下,【清真寺】和【ID:566】這兩個單位無任何防禦參數,這樣所有類型的攻擊均與其防禦類型無法對應,公式求出的和為0,所以,任何單位對於這兩個單位的單次傷害都是1。
以下簡要點出幾處帝國中比較有趣的設定,有興趣的同學可以自行嘗試一下。
1.帝國把船和駱駝的防禦當作一種類型處理,即第11類船和駱駝類,所以帝王駱駝遠防到了5還是那麼怕箭塔,叉叉打船永遠給力,預熱射擊科技對駱駝也有可觀效果。
2.英雄破壞者也具有船和駱駝類的防禦屬性,所以他們很怕箭塔。
3.砲艦對步兵類、騎兵類、弓箭兵類、攻城武器類、建築類均有攻擊參數,所以顯示的攻擊力數值低估了其能力。
4.龜甲船並沒有特色單位類防禦屬性,所以日本武士不會對其造成加成傷害。
5.村民對建築類、防禦建築類均有攻擊參數,所以是前期拆塔不錯的選擇。
6.沖車的近身防禦是-3,但只能顯示為0。
7.展開的投石機具有沖車類的防禦屬性。
8.奴隸騎兵具有的防禦屬性種類實在太多了,所以怕擲矛,怕箭塔,怕叉叉貼身,不過一般被人忽略的是,奴隸騎兵的騎兵類防禦數值其實很高,叉叉對奴隸騎兵的傷害主要是通過駱駝類屬性體現出來的。
9.蘇丹親兵沒有對步兵類攻擊屬性。
10.火炮塔攻擊屬性是遠程攻擊,所以有了很多人驚奇或抱怨的沖車投石機推炮塔事件。
11.城堡不具有防禦建築類防禦屬性,具有獨有的城堡類防禦屬性。
12.神之弓和壞鄰居展開後不具有攻城武器類防禦屬性。
13.兩個步行的英雄:斯基台人、聖女貞德都有騎兵類防禦屬性。
14.兩個騎馬的匈奴王都具有步兵類防禦屬性,阿提拉具有對野豬類的攻擊屬性。
15.李舜臣將軍不具有龜船類、特色單位類防禦屬性。
16.野豬具有對步兵類和騎兵類的攻擊屬性。
17.測試單位攻城塔具有很多項負值防禦屬性。 |
|