《鋼鐵雄心IV》中的AI能夠操縱國家許多方面的事物。其包括變更國家的國策或科技走向,決定國家應該生產多少單位或建築,以及國家應該生產什麼樣的模板,應該集中力量在哪裡,決定使用哪些模板或變體等等。 以下是AI的mod文件路徑:
- /Hearts of Iron IV/common/ai_areas
- /Hearts of Iron IV/common/ai_focuses
- /Hearts of Iron IV/common/ai_peace
- /Hearts of Iron IV/common/ai_strategy
- /Hearts of Iron IV/common/ai_strategy_plans
- /Hearts of Iron IV/common/ai_templates
- /Hearts of Iron IV/common/ai_attitudes.txt
- /Hearts of Iron IV/common/ai_personalities.txt
許多其他給玩家提供選擇的地方應附有 AI 傾向來表達 AI 對各選項的權衡,這些地方使用ai_will_do。
MTTH 代碼塊
MTTH 塊,在遊戲內命名為 /Hearts of Iron IV/common/mtth/,是一種為某些塊分配動態值的方法,無論是 country = { ... } in a focus tree to assign which countries can get it,動態變化的變量值(如在 /Hearts of Iron IV/common/mtth/ 中),還是事件的mean-time-to-happen value for an event值等。由於 MTTH 塊分布在整個遊戲中,了解其工作原理極為重要。然而,它最常見的應用是為數據庫條目(例如國策或科研)分配基本的 AI 權重。
大多數情況下,它會被標記為 ai_will_do,遊戲採用的方法是生成一個介於 0 和 ai_will_do 塊的值之間的十進制數字,然後選擇具有最高值的條目。在 ai_will_do 值之後還可以應用其他修正,例如在 AI strategy plans 中針對國策和科研應用的修正值。或the ones that get defined within Defines。它會與已經獲值進行相乘。這可以包括不同的 `ai_will_do` 值,例如與國家領袖特質以及使用這些特質的idea或角色相關的內容。
事件選項則使用 `ai_chance`。即probability-proportional-to-size sampling。它採用與大小成比例的概率抽樣,用一個虛擬的 d00 擲骰結果作為最終決定因素。因此,最終事件選項的概率不能不是 1/100 的倍數,儘管每個選項權重的總和可以與 100 有很大區別。換句話說,如果一個選項的值為 1,而另一個選項的值為 999,則第一個選項被選擇的概率將是 1%,而不是 0.1%。
MTTH 塊的初始值為 1。從該值出發進行進一步操作。這裡可以對三個值進行參數更改,分別是: add
, base
和 factor
,例:可以這樣factor = 0.3
, base = 10
, or add = 5
。 add
將指定參數加到該值上,factor
乘以該值,而 base
通常在任何更改之前進行,建議將其設置為完全不同的參數,如乘以 0 並加上這個數。
為了使操作條件適用,使用 modifier = { ... }
block。其起到的作用於 trigger block相似,默認作用域下(因此也是 ROOT)是評估 MTTH 塊的國家。根據 MTTH 塊, there may be additional scopes marked with FROM or FROM.FROM other than the default.可能還有其他標記為 FROM 的範圍或 FROM.FROM 以外的默認範圍。值修改參數作為常規參數使用(值修改參數和普通參數一樣,擁有相同的使用方式和特性。這種設計可以使得函數在處理輸入時具有更大的靈活性。),可以幾乎沒有區別的放置在 modifier = { ... }
block中的任何位置,無論是在結束時、開始時,還是在trigger觸發塊之間。
Variables 也可以在值修改參數中使用。如果使用在 modifier = { ... }
觸發塊中定義的臨時變量,為了變量能夠按定義應用,那麼修正值的值修改參數必須放在變量定義之後。變量也可以在 modifier = { ... }
塊之外使用,也可直接放在 MTTH 塊內部。
示例
ai_will_do = { base = 10.5 # If the country is Germany, set the value to 0, # causing an early end of the evaluation. modifier = { tag = GER factor = 0 } modifier = { is_major = yes add = 1 } modifier = { factor = 3 add = 2.5 tag = FRA } factor = 2 modifier = { set_temp_variable = { t = num_of_civilian_factories } add_to_temp_variable = { t = num_of_military_factories } divide_temp_variable = { t = 10 } round_temp_variable = t add = t } }
假設GER和FRA是主要國家,結果是
- 德國為0 即[math]\displaystyle{ 10.5 \cdot 0 = 0 }[/math]
- 法國是74 即[math]\displaystyle{ ((10.5 + 1) \cdot 3 + 2.5) \cdot 2 = 74 }[/math]
- 其他主要國家為23 即[math]\displaystyle{ (10.5 + 1) \cdot 2 = 23 }[/math]
- 其他非主要國家為21 即[math]\displaystyle{ 10.5 \cdot 2 = 21 }[/math]
計算出該值後,該國民用和軍用工廠的總數除以10並四捨五入,將計入得分。例如,如果法國在開局遊戲中總共有43家民用和軍用工廠,那麼這將導致在之前的數值74基礎上增加4,總共78。
AI 策略
File:Ambox outdated info.png | 這部分內容可能已不適合當前版本,最後更新於1.11。 |
AI strategies,AI策略,是為了讓AI更願意或更討厭去採取某些行動。比如開戰、保獨、志願軍等外交行動,海陸軍軍事力量的戰略部署權重,建造和生產的隊列分配,以及抵抗運動 DLC中情報系統的運用。
AI strategies中的 value (值)可正可負,正值會增加AI採取行動的傾向,反之則會減少。
一般的AI策略存儲在/Hearts of Iron IV/common/ai_strategy/*.txt 文件中,但是AI策略也可以在該文件夾之外定義。比如add_ai_strategy effect 語句可以在任何效果域中添加永久ai策略, AI strategy plans中也包含着自己內部定義的AI策略。總之,/Hearts of Iron IV/common/ai_strategy/*.txt 文件中定義/描述的AI策略可以通過滿足或不滿足條件來自動啟用或關閉
/Hearts of Iron IV/common/ai_strategy/*.txt 文件中的每個條目都是一個具有 AI 策略名稱的域,就像Effect作用域或Trigger條件域一樣。條目名稱可以任意定義(但為了防止重複,建議在詞條後加一個ai_strategy之類的後綴),甚至允許重複定義:這只會出現在 AI dumps的後台中,玩家是看不到的。如果某個 AI 策略修改了 AI 選擇與玩家進行外交行為的權重幾率,那麼當玩家將鼠標懸停在選項上時,會顯示該外交行為的影響因素如下: COUNTRY has strategic reasons to be ...
。以下是一個名為 BHR_invade_qatar 的 AI 策略示例:
BHR_invade_qatar = { allowed = { original_tag = BHR } enable = { country_exists = QAT } abort = { has_war_with = QAT } abort_when_not_enabled = yes ai_strategy = { type = invade id = QAT value = 200 } }
參數說明
以下是針對 /Hearts of Iron IV/common/ai_strategy/*.txt 條目(而非其中的 AI 策略條目)的參數說明。
allowed = { ... }
是啟用域, 該allowed域僅在遊戲開始前進行檢查,用於永久性地允許或禁止某個 AI 策略。通常這只用於國家檢查(例如 tag = OMA
)或 DLC 檢查,這些檢查一旦滿足就永遠不會失效。
enable = { ... }
是可用域,必須滿足該條件才能啟用 AI 策略。默認情況下,即使不滿足該條件,也 不會 取消 AI 策略。可以通過使用 abort_when_not_enabled = yes
作為單獨的參數來改變其是否可用。與 allowed 不同的是,這個條件會被實時判斷。
abort = { ... }
是一個條件域,滿足該條件就能禁用當前 AI 策略。即使不滿足該條件,也會阻止該AI策略在遊戲開始時被添加。
ai_strategy = { ... }
內部是要生效的 AI 策略。AI 策略的形式是 type = <AI strategy type>
。[[#Types|The rest depends on the AI strategy]。
此外,還有 AI 策略的反轉參數。用於有 id = TAG
條件的 AI 策略,以針對特定TAG:該 AI 策略將為滿足 enable = { ... }
判斷條件的國家啟用。並依靠 reversed = yes
來生效。 enable_reverse = { ... }
意為需要滿足域內條件才能反轉。反轉參數無默認條件域,所以需要條件域具體到某個TAG。
反轉 AI 策略的例子如下:
BHR_support_neutrals = { allowed = { NOT = { original_tag = BHR } } enable = { has_government = neutrality } enable_reverse = { BHR = { has_government = neutrality } } reversed = yes abort_when_not_enabled = yes ai_strategy = { type = support id = BHR value = 100 } }
如果沒有 reversed = yes
,該例這將使每個 中立主義 國家支持 BHR。由於該參數的存在,策略被反轉:BHR 將支持每個 中立主義 國家。
Types
File:Ambox outdated info.png | 這部分內容可能已不適合當前版本,最後更新於1.11。 |
此列表可能已過時。有關每種人工智能策略的列表可以在原版遊戲的 /Hearts of Iron IV/common/ai_strategy/documentation.info 文件中找到。
名稱 | 參數 | 示例 | 描述 | 備註 |
---|---|---|---|---|
結盟 | value = <int> 策略的權重。
|
ai_strategy = { type = alliance id = USA value = -100 } |
AI會嘗試與一個國家結盟,如有可能,將加入同一陣營。 | |
對抗 | value = <int> 策略的權重。
|
ai_strategy = { type = antagonize id = USA value = -100 } |
AI將會與一個國家對抗,拒絕與其進行大多數的外交行動。 | |
請求外國駐軍 | value = <int> 策略的權重。
|
ai_strategy = { type = asking_foreign_garrison id = USA value = 100 } |
AI將會按照權重請求外國人力支援以滿足駐軍需求,如果指明了特定國家。 | 如果未指定id ,則將適用於其他所有國家。
|
交好 | value = <int> 此策略的權重。
|
ai_strategy = { type = befriend id = USA value = 100 } |
AI將會與某國家建立友好關係,接受大多數與該國的外交行動。 | |
征服 | value = <int> 此策略的權重。
|
ai_strategy = { type = conquer id = USA value = 100 } |
AI將會試圖征服某國家,更有可能為之正當化戰爭目標並宣戰。 | 這並不改變AI在與其進行戰爭時對前線的控制方式。 |
視為弱國 | value = <int> 此策略的權重。
|
ai_strategy = { type = consider_weak id = USA value = 100 } |
AI會將某國視為弱國,減少對其宣戰前的躊躇不前,或使與該國結盟的可能性降低。 | |
遏制 | value = <int> 此策略的權重。
|
ai_strategy = { type = contain id = USA value = 100 } |
AI將會遏制某個國家,保護他免受任何可能與其敵對國家的侵略。 | |
宣戰 | value = <int> 此策略的權重。
|
ai_strategy = { type = declare_war id = USA value = 100 } |
AI將會在已有正當化後的宣戰藉口的情況下對戰爭目標宣戰。 | |
外交行動接受 | value = <int> 此策略的權重。
|
ai_strategy = { type = diplo_action_acceptance id = USA value = 100 target = join_allies } |
若其他國家請求,AI將接受某項外交行動。 | AI被提議不會影響其原有的態度。外交行動的名稱通常可以通過用於標題的本地化鍵找到,大部分情況下位於/Hearts of Iron IV/localisation/english/diplomacy_l_english.yml 文件中:DIPLOMACY_SEND_VOLUNTEERS_TITLE:0 "派遣志愿军" 表示派遣志願軍的外交行動名稱為send_volunteers 。
|
外交行動願望 | value = <int> 此策略的權重。
|
ai_strategy = { type = diplo_action_desire id = USA value = 100 target = call_allies } |
AI將會向指定國家請求某項外交行動。 | AI不會因為被提議而更改原有態度。外交行動的名稱通常可以通過用於標題的本地化鍵找到,大部分情況下位於/Hearts of Iron IV/localisation/english/diplomacy_l_english.yml文件中:DIPLOMACY_SEND_VOLUNTEERS_TITLE:0 "派遣志愿军" 表示派遣志願軍的外交行動名稱為send_volunteers 。
|
不與...一起參戰 | value = <int> 此策略的權重。
|
ai_strategy = { type = dont_join_wars_with id = USA value = 100 target_country = BHR } |
AI將更不可能與指定國家聯合對某一特定國家參戰。 | 並不減少AI因「其他」國家召喚導致對目標國家宣戰的可能性,即使這會導致與被指定國家一起與目標國家作戰。 |
無視 | value = <int> 此策略的權重。
|
ai_strategy = { type = ignore id = USA value = 100 } |
AI將更不可能接受或主動與目標國進行任何形式的外交行動。 | |
無視宣稱 | value = <int> 策略的權重。
|
ai_strategy = { type = ignore_claim id = USA value = 1 } |
AI將忽視指定國家發起的外交活動。 | 值為布爾型,僅設定為1。 |
保護 | value = <int> 策略的權重。
|
ai_strategy = { type = protect id = USA value = 100 } |
AI將保護某一國家,對其進行保障獨立或將其拉入同一陣營。 | 若值為負(綜合考慮所有AI策略值)將導致AI不會保障該國家。 |
支持 | value = <int> 策略的權重。
|
ai_strategy = { type = support id = USA value = 100 } |
AI將在戰爭中通過起草租借法案、派遣志願軍或遠征軍支持指定國家。 | |
起草租借法案 | value = <int> 策略的權重。
|
ai_strategy = { type = send_lend_lease_desire id = USA value = 100 } |
AI將向指定國家起草租借法案。 | |
發送志願軍的意願 | value = <int> 策略的權重。
|
ai_strategy = { type = send_volunteers_desire id = USA value = 100 } |
AI將向指定國家派遣志願軍。 |
名稱 | 參數 | 示例 | 描述 | 備註 | |
---|---|---|---|---|---|
登陸侵略 | value = <int> 策略的權重。
|
ai_strategy = { type = invade id = USA value = -100 } |
AI將對指定國家進行海軍入侵。 | ||
海軍入侵重點 | value = <int> 策略的權重。 |
ai_strategy = { type = naval_invasion_focus value = 100 } |
AI將會發起海軍入侵。 | ||
準備戰爭 | value = <int> 策略的權重。
|
ai_strategy = { type = prepare_for_war id = USA value = 100 } |
AI將準備對指定國家的戰爭,並將部隊移動到其邊界。 | ||
區域優先級 | value = <int> 策略的權重。
|
ai_strategy = { type = area_priority id = europe value = 100 } |
推動AI在指定區域內放置更多單位。 | ||
不防守盟友邊界 | value = <int> 策略的權重。
|
ai_strategy = { type = dont_defend_ally_borders id = POL value = 10 } |
使AI永遠不在指定國家與與其交戰的國家之間的邊界上部署部隊。 | 數值必須是二進制的。如果總值(考慮到每個AI策略)為正,AI將永遠不會在邊界上放置任何部隊。 | |
強制防守盟友邊界 | value = <int> 策略的權重。
|
ai_strategy = { type = force_defend_ally_borders id = FRA value = 100 } |
AI將在指定國家與其他國家之間的邊界上部署部隊。 | 還接受id 中的[[#AI areas|AI areas]。 |
| |
前線裝甲分配權重 | value = <int> 策略的權重。
|
ai_strategy = { type = front_armor_score id = POL value = 100 } |
AI將為進攻指定國家部署更多裝甲單位。 | ||
前線控制 | state = <state> 目標州。
|
ai_strategy = { type = front_control state_trigger = { industrial_complex > 1 is_owned_by = ENG } ratio = 0.1 ordertype = front execution_type = rush manual_attack = no } ai_strategy = { type = front_control area = suez priority = 1 ratio = 0.2 ordertype = invasion execute_order = yes } |
修改AI在指定前線給師團的命令。 | 可以同時使用多個目標類型,在這種情況下,必須滿足每一個。這隻改變分配給已經存在的前線的命令,不會改變分配給任何特定前線的單位數量,也不會強制創建任何單位。 | |
前線單位請求 | state = <state> 目標省份。
|
ai_strategy = { type = front_unit_request tag = POL value = 100 } ai_strategy = { type = front_unit_request country_trigger = { original_tag = SPR has_government = fascism } value = 100 } |
讓AI在指定的陸地前線上部署更多單位。 | 可以同時使用多個目標類型,在這種情況下,必須滿足每一個。 | |
入侵單位請求 | state = <state> 目標州。
|
ai_strategy = { type = invasion_unit_request state = 123 value = 100 } ai_strategy = { type = invasion_unit_request strategic_region = 42 value = 100 } |
讓AI在進行對指定目標的海軍入侵中部署更多單位。 | 可以同時使用多個目標類型,在這種情況下,必須滿足每一個。 | |
駐軍 | value = <int> 策略的權重。 |
ai_strategy = { type = garrison value = 10 } |
控制用於防守勝利點和港口的單位數量,而不是讓這些單位在前線活動。 | ||
駐軍增援優先級 | value = <int> 策略的權重。 |
ai_strategy = { type = garrison_reinforcement_priority value = 100 } | 让AI优先增强驻军单位,以保护胜利点和海军基地。 | |-id="ignore_army_incompetence" |忽略军队无能 |<code>value = <int></code><br/>策略的权重。 |<pre>ai_strategy = { type = ignore_army_incompetence value = 100 } |
讓AI在計算中忽略因師級缺乏經驗而給予的修正值,從而讓AI認為優勢在我。 | ||
布置單位緩衝區 | ratio = <decimal> 用於緩衝單位的數量。
|
ai_strategy = { type = put_unit_buffers ratio = 0.2 states = { 123 124 125 126 } subtract_fronts_from_need = yes } |
讓AI在指定區域保持一定比例的師級以進行駐軍任務。 | ||
備用單位因子 | value = <int> 策略的權重。 |
ai_strategy = { type = spare_unit_factor | AI将使用更多单位来协防盟友。 |-id="theatre_distribution_demand_increase" |战区分配需求增加 |<code>value = <int></code><br/>策略的权重。<br/> <code>id = <state></code><br/>策略的目标州。<br/> |<pre>ai_strategy = { type = theatre_distribution_demand_increase value = 10 id = 123 } |
讓AI在指定省份的戰區中投入更多單位。 | 值為1表示1個單位。 |
名稱 | 參數 | 示例 | 描述 | 備註 |
---|---|---|---|---|
naval_avoid_region | value = <int> 策略的權重。
|
ai_strategy = { type = naval_avoid_region id = 23 value = 100 } |
AI 將在特定戰略區域禁止航行。 | |
naval_convoy_raid_region | value = <int> 策略的權重。
|
ai_strategy = { type = naval_convoy_raid_region id = 23 value = 100 } |
AI將在指定戰略區域內襲擊運輸船與護航艦隊。 | |
naval_mission_threshold | value = <int> 策略的權重。
|
ai_strategy = { type = naval_mission_threshold id = MISSION_CONVOY_RAIDING value = -100 } |
使 AI 對執行海軍任務的欲望有更高的閾值。 | 較高的數值意味着 AI 不太可能執行該任務。任務的名稱可以在 /Hearts of Iron IV/localisation/english/core_l_english.yml 中找到,其中 NAVAL_MISSION_NAME_CONVOY_RAIDING 的本地化鍵表示該任務稱為 MISSION_CONVOY_RAIDING 。
|
strike_force_home_base | value = <int> 策略的權重。
|
ai_strategy = { type = strike_force_home_base id = 18 value = 70 } |
促使 AI 在指定的戰略區域內執行打擊艦隊任務。 |
名稱 | 參數 | 示例 | 描述 | 備註 |
---|---|---|---|---|
agency_ai_base_num_factories_factor | value = <int> 策略的權重。 |
ai_strategy = { type = agency_ai_base_num_factories_factor value = 70 } |
更改AI用於情報系統升級的基準權重。 | 值為 1 等於相對於 Defines 中規定的基準增加 1%。 |
agency_ai_per_upgrade_factories_factor | value = <int> 策略的權重。 |
ai_strategy = { type = agency_ai_per_upgrade_factories_factor value = 70 } |
調整用於計算AI情報機構升級所需的工廠數量。 | 值為 1 等於相對於 Defines 的基線增加 1%。 |
intelligence_agency_branch_desire_factor | value = <int> 策略的權重。
|
ai_strategy = { type = intelligence_agency_branch_desire_factor id = branch_crypto value = 70 } |
修改用於計算 AI 進行情報機構升級所需的工廠數量。 | 分支定義在 /Hearts of Iron IV/common/intelligence_agency_upgrades/*.txt 文件中。 |
intelligence_agency_usable_factories | value = <int> 策略的權重。 |
ai_strategy = { type = intelligence_agency_usable_factories value = 8 } |
修改 AI 為情報機構使用的工廠數量。 | |
operation_equipment_priority | value = <int> 策略的權重。 |
ai_strategy = { type = operation_equipment_priority value = 80 } |
讓 AI 優先為當下特勤行動提供足夠的軍事裝備。 | |
operative_mission | value = <int> 策略的權重。
|
ai_strategy = { type = operative_mission value = 80 mission = quiet_intel_network state = 123 state = 321 mission_target = ENG } |
使 AI 對目標執行指定的任務。 | 可以定義多個狀態,導致其中一個狀態被優先考慮。任務名稱可以在 /Hearts of Iron IV/localisation/english/operatives_l_english.yml 中查看。例如,OPERATIVE_MISSION_BOOST_IDEOLOGY_TITLE:0 "Boost Ideology" 表示增強意識形態的任務為 boost_ideology。
|
operative_operation | value = <int> 策略的權重。
|
ai_strategy = { type = operative_operation value = 80 operation = heavy_water_raid operation_target = ENG } |
促使 AI 在目標上執行指定的操作。 | 可以定義多個狀態,並使其中一個狀態被優先考慮。操作在 /Hearts of Iron IV/common/operations/*.txt 文件中定義。 |
名稱 | 參數 | 示例 | 描述 | 備註 | |
---|---|---|---|---|---|
added_military_to_civilian_factory_ratio | value = <int> 策略的權重。 |
ai_strategy = { type = added_military_to_civilian_factory_ratio value = 50 } |
對 AI 希望保持的軍事與民用工廠比例進行修改。 | 正值意味着更多的軍事工廠。 | |
air_factory_balance | value = <int> 策略的權重。 |
ai_strategy = { type = air_factory_balance value = 50 } |
對 AI 希望保持的空軍生產與現有工廠的比例進行修改。 | 正值意味着更多的空軍。 | |
dockyard_to_military_factory_ratio | value = <int> 策略的權重。 |
ai_strategy = { type = dockyard_to_military_factory_ratio value = 50 } |
對 AI 希望保持的船塢與軍事工廠的比例進行修改。 | 正值意味着更多的船塢。 | |
railway_gun_divisions_ratio | value = <int> 策略的權重。 |
ai_strategy = { type = railway_gun_divisions_ratio value = 5 } |
對AI 希望保持的列車炮與師的比例進行修改。 | 基本比例為 Defines 中的 RAILWAY_GUN_PRODUCTION_BASE_DIVISIONS_RATIO_PERCENT,默認值為 0。這將在 0-100 的比例上進行累加。 | |
build_building | value = <int> 策略的權重。
|
ai_strategy = { type = build_building id = industrial_complex target = 803 value = 1 } |
AI將會在指定省份內建造特定建築。 | 值決定了 AI 希望在該省份內同時建造多少座建築。 | |
building_target | value = <int> 策略的權重。
|
ai_strategy = { type = building_target id = industrial_complex value = 30 } |
使 AI 保持對指定建築更高的期望目標。 | ||
factory_build_score_factor | value = <int> 策略的權重。
|
ai_strategy = { type = factory_build_score_factor target = 365 value = 1 } |
讓AI 在指定省份內建造建築。 | ||
equipment_production_factor | value = <int> 策略的權重。
|
ai_strategy = { type = equipment_production_factor id = armor value = 30 } |
AI 將生產指定類型的裝備。 | 每種裝備原型的類型在 /Hearts of Iron IV/common/units/equipment/*.txt 文件中的 types = { ... } 中定義。
| |
equipment_production_min_factories | value = <int> 策略的權重。
|
ai_strategy = { type = equipment_production_min_factories id = artillery value = 3 } |
促使 AI 在指定類型的裝備生產線上保持更多的工廠。 | 值為 1 對應於 1 個軍事工廠。每種裝備原型的類型在 /Hearts of Iron IV/common/units/equipment/*.txt 文件中的 types = { ... } 中定義。
| |
equipment_variant_production_factor | value = <int> 策略的權重。
|
ai_strategy = { type = equipment_variant_production_factor id = light_tank_chassis value = -100 } |
AI 將生產更多指定的軍事裝備。 | 軍事裝備在 /Hearts of Iron IV/common/units/equipment/*.txt 文件中定義。 | |
equipment_stockpile_surplus_ratio | value = <int> 策略的權重。 |
ai_strategy = { type = equipment_stockpile_surplus_ratio value = 30 } |
改變 AI 在庫存中保存的裝備比例,這將不會使AI立即使用這些裝備。 | ||
build_army | value = <int> 策略的權重。
|
ai_strategy = { type = build_army id = suppression value = -1000 } |
修改 AI 所需的軍隊編制數量。 | 使用的目標是AI templates.中的角色。 | |
force_build_armies | value = <int> 策略的權重。 |
ai_strategy = { type = force_build_armies value = 30 } |
這將強制使 AI 建立超過所需數量的師級單位。 | ||
production_upgrade_desire_offset | value = <int> 策略的權重。
|
ai_strategy = { type = production_upgrade_desire_offset id = artillery_equipment_2 value = -50 } |
將使AI升級生產線至指定的裝備類型。 | 設備類型在 /Hearts of Iron IV/common/units/equipment/*.txt 文件中定義。 | |
value = <int> 策略的權重。 |
role_ratio | value = <int> 策略的權重。
|
ai_strategy = { type = role_ratio id = paratroopers value = 30 } |
修改AI為指定職能製作的編制數量。 | 職能在[[#AI templates|AI templates] 中定義,用於單位編制,而 [[#AI equipment|AI equipment] 中定義船隻和坦克變體。 |
unit_ratio | value = <int> 策略的權重。
|
ai_strategy = { type = unit_ratio id = cas value = 30 } |
修改AI使用特種單位編成的編制的數量上限。 | 單位在 /Hearts of Iron IV/common/units/*.txt 文件中定義,包括空軍和海軍以及陸軍。 | |
min_wanted_supply_trains | value = <int> 策略的權重。 |
ai_strategy = { type = min_wanted_supply_trains value = 300 } |
對AI所需的最低補給火車數量進行更改。 | ||
min_wanted_supply_trucks | value = <int> The weight of the strategy. |
ai_strategy = { type = min_wanted_supply_trucks value = 30 } |
AI 總體上所需卡車的最低數量。 |
名稱 | 參數 | 例子 | 描述 | 備註 |
---|---|---|---|---|
scorched_earth_prio | value = <int> 策略的權重。
|
ai_strategy = { type = scorched_earth_prio value = 100 id = ENG states = { 123 124 125 126 } } |
AI 將會在指定省份使用焦土政策。 | |
land_xp_spend_priority | value = <int> 策略的權重。
|
ai_strategy = { type = land_xp_spend_priority id = division_template value = 30 } |
修改 AI 花費陸軍經驗的優先順序。 | 原版遊戲使用包括 division_template 和 upgrade_xp_cutoff 。
|
pp_spend_amount | value = <int> 策略的權重。
|
ai_strategy = { type = pp_spend_amount id = idea value = 100 } |
AI 將保留的政治點數。 | 原版遊戲使用包括 idea 和 decision 。
|
pp_spend_priority | value = <int> 策略的權重。
|
ai_strategy = { type = pp_spend_priority id = relation value = 100 } |
對AI 花費政治點數的方向進行更改。 | 原版遊戲使用包括以下內容:
|
research_weight_factor | value = <int> 策略的權重。
|
ai_strategy = { type = research_weight_factor id = radio_detection value = 2000 } |
修改 AI 對科研項目研發的權重(分數)。 | value = 50 意味着增加 50%的增速,-30 意味着 30%的減速,等等。 |
AI 區域
File:Ambox outdated info.png | 這部分內容可能已不適合當前版本,最後更新於1.11。 |
AI區域在 /Hearts of Iron IV/common/ai_areas/*.txt 文件中定義。這些區域僅用於多種之前列出的AI策略,例如 area_priority。一個省可能屬於多個AI區域,也可能不屬於任何區域。啟用debug調試模式後,鼠標懸停在一個省上將提供該省所屬的AI區域的信息(如果有的話)。
每個AI區域在文件中都是一個單獨的塊,塊的名稱即為區域的名稱。在這些塊中,可以添加兩項內容:
continents = { ... }
是構成該AI區域的地理區劃列表。這在 /Hearts of Iron IV/map/continent.txt 中定義,並在 [[Map modding#Provinces|their definitions]中分配給省份,位置在 /Hearts of Iron IV/map/definition.csv。在AI區域的定義中應使用大陸的全名,而不是省份定義中使用的 ID。
strategic_regions = { ... }
是根據其 ID 號碼構成該AI區域的戰略區域列表。
如果定義了多個ai區域,省份必須屬於其中任何(any)一個。
一個AI區域的代碼示例如下:
my_ai_area = { continents = { europe africa } strategic_regions = { 53 # Caribbean 189 # Burma } }
AI 焦點
- 主條目:AI focuses
AI焦點,定義在/Hearts of Iron IV/common/ai_focuses/*.txt文件,用於讓遊戲AI根據當前設置目標的焦點選擇點哪些科技和國策。
AI 和平談判
File:Ambox outdated info.png | 這部分內容可能已不適合當前版本,最後更新於1.11。 |
Pre-1.12 AI和平談判 |
---|
AI的和平談判行為在 /Hearts of Iron IV/common/peace_conference/ai_peace/*.txt 文件中定義。 在定義國家使用的和談AI時,遊戲會選擇第一個滿足前提條件的定義。在這種情況下,文件是根據其文件名按順序加載的,使用 ASCII character IDs。 在評估和平會議時,使用 ROOT(默認作用域)表示當前評估的贏家,使用 FROM 表示當前評估的輸家。此外,存在以下 temporary variables:
遊戲中使用的和平選項如下:
在評估和談時,若給定省份的控制者與會議開始原本擁有該地塊的國家相同,則所有者則是原所有者。 每個和平會議選項都是文件定義中的一個 MTTH block。 代碼示例:my_peace_conference = { enable = { has_government = my_ideology_group } annex = { base = 500 modifier = { factor = 0 any_allied_country = { any_state = { is_owned_by = FROM is_core_of = PREV NOT = { is_core_of = ROOT is_claimed_by = ROOT } } } } } puppet = { base = 100 modifier = { factor = 0 FROM = { tag = QAT } } } puppet_all = { base = 0 } puppet_state = { base = 100 modifier = { factor = 0 FROM.FROM = { tag = QAT } } modifier = { factor = 0 any_allied_country = { ROOT = { is_core_of = PREV NOT = { is_core_of = FROM.FROM is_claimed_by = FROM.FROM } } } } } take_states = { base = 100 modifier = { factor = 0 any_allied_country = { FROM = { is_core_of = PREV NOT = { is_core_of = ROOT is_claimed_by = ROOT } } } } } } |
AI 策略計劃
File:Ambox outdated info.png | 這部分內容可能已不適合當前版本,最後更新於1.11。 |
AI策略計劃用於根據情況指導AI優先考慮的事項:選擇哪些顧問、研究哪些技術、應用哪些AI策略、選擇哪個國策等。這些計劃比一般的AI策略更為詳細,主要用於在遊戲的大部分時間內告知一個國家的整體計劃。一個國家可以同時定義和執行多個AI策略計劃。
AI策略計劃在/Hearts of Iron IV/common/ai_strategy_plans/*.txt文件中定義。在這些文件中,新策略計劃作為一個新代碼塊進行定義,其名稱必須與計劃的內部ID相同。
在該計劃中,name = "AI计划名称"
和desc = "AI计划描述"
確定了策略計劃的名稱和描述。這並不打算向玩家展示,因此不需要將其本地化為不同的語言。相反的,這用於aiview
控制台命令中,向開發者提供有關AI希望優先考慮的事項的信息。
allowed = { ... }
類似於決議或ideas,是一個觸發塊,僅在遊戲開始時檢查。這主要是用來決定要在什麼國家和擴展包中使用這個策略計劃。
enable = { ... }
遊戲時間內每天檢查一次,看看是否滿足allowed條件。如果滿足enable = { ... }
,則該AI策略計劃將分配給AI,無論之後enable = { ... }
是否變為false。通常情況下, Triggers#has_game_rule用於與自定義遊戲規則搭配,以決定AI將選擇的路徑。is_historical_focus_on 常與默認AI設置一起使用,國家的flags可以通過設置on_startup來實現隨機化,使用random_list來設定隨機值。
abort = { ... }
遊戲時間內每天檢查一次,以使AI在enable = { ... }
條件滿足時 停止 使用該AI策略計劃。因此,必須是false的情況下,才能使AI策略計劃有可能被選擇。
ai_national_focuses = { TAG_focus_name_1 TAG_focus_name_2 }
是一個國家國策的列表,以空格分隔,按照 AI 應該採取的順序排列。在這個例子中,AI 將首先嘗試進行 TAG_focus_name_1國策。若 TAG_focus_name_1 已經完成,或無法進行,那麼 AI 將嘗試進行 TAG_focus_name_2國策。如果這兩個國策由於已完成或者未滿足前提條件而都無法進行,AI 將轉向其他國策,同時考慮 ai_will_do = { ... }
的內容。在按設定好的國策優先進行順序下,AI 會忽略 ai_will_do = { ... }
的值。
focus_factors = { ... }
為指定國策的 ai_will_do 值分配一個乘數。這個塊中的一個條目看起來像 TAG_focus_name = 3
。在這種情況下,這將使該國策的 ai_will_do 值乘以 3,假設 AI 策略計劃的權重為 1。如果國策項在應用修正因子後具有 4 的 ai_will_do 值,那麼在跟隨此策略計劃時,它將變為 12,並視為這樣的處理。當然,因子為 0 將使該國策項在沒有在 ai_national_focuses 中指定的情況下永遠不會被選擇。這可以作為一種更快書寫或更隨機的方式,使 AI 通過使它不應選擇的國策具有 0 值來實現讓其遵循某種政治路徑。
research = { ... }
為指定科研槽的 ai_will_do 值分配一個乘數。這個塊中的一個條目看起來像 artillery = 3
。在這種情況下,這將使該類別內每一項科研項的 ai_will_do 值乘以 3,假設 AI 策略計劃的權重為 1。其他內置修正因子仍然適用,但這將增加它們的可能性。
其他也分配增益的塊還有 ideas = { ... }
和 traits = { ... }
,格式類似。ideas 塊用於單個idea(如法律條例或設計商)或顧問(使用 idea_token 在條目中),而 traits 則用於給ideas/顧問的分配國家領導者特質。
ai_strategy = { ... }
允許在策略計劃開啟時應用 AI strategy 。
weight = { ... }
是一個 MTTH block ,為計劃分配一個整體權重。這使得 AI 策略計劃中的每個因子在應用之前都乘以權重。例如,權重為 1.25 將使國策因子 4 變為 5 之後再應用。這可以在某些情況下使 AI 更嚴格地遵循策略計劃,而在其他情況下則執行的相對寬鬆。
代碼示例
BHR_historical = { name = "Historical plan for BHR" desc = "4 focuses in a specific order" allowed = { tag = BHR } enable = { OR = { AND = { is_historical_focus_on = yes has_game_rule = { rule = BHR_ai_behavior option = DEFAULT } } has_country_flag = BHR_AI_RANDOM_HISTORICAL # Randomly set in on_actions if BHR_ai_behavior is set to RANDOM. Make sure to set that up! has_game_rule = { rule = BHR_ai_behavior option = HISTORICAL } } } abort = { OMA = { OR = { has_government = fascism has_government = communism } } } ai_national_focuses = { BHR_focus_name_1 BHR_focus_name_2 BHR_focus_name_3 BHR_focus_name_4 } ideas = { BHR_advisor = 3 } traits = { fascist_demagouge = 0 } ai_strategy = { type = invade id = OMA value = 200 } } BHR_alternate = { name = "Alternative plan for BHR" desc = "AI is just set to never do BHR_focus_name_2 and be more likely to do BHR_focus_name_5, especially if after 1937" enable = { OR = { has_country_flag = BHR_AI_RANDOM_ALTERNATE # Randomly set in on_actions if BHR_ai_behavior is set to RANDOM. Make sure to set that up! has_game_rule = { rule = BHR_ai_behavior option = ALTERNATE } } } focus_factors = { BHR_focus_name_2 = 0 BHR_focus_name_5 = 2 } weight = { modifier = { factor = 2 date > 1937.1.1 } } research = { artillery = 2 } }
AI 部隊編制
File:Ambox outdated info.png | 這部分內容可能已不適合當前版本,最後更新於1.11。 |
/Hearts of Iron IV/common/ai_templates/*.txt 文件用於定義AI在編制編成窗口中所追求的模板。
部隊編制被定義為文件夾中任何文件內的一個塊,塊的名稱與部隊編制的名稱相同。
這些參數用於部隊編制本身:
roles = { ... }
是編制所包含的部隊類型列表。這些可以是任何東西,用於 role_ratio AI strategy。AI將會為所擁有的每個師創建一個編制。available_for = { ... }
在此列表外的國家將不允許使用如下編制。如果未指定,則每個國家都將使用它們。blocked_for = { ... }
在此列表內的國家將不允許使用如下編制。這個參數只有在沒有available_for = { ... }
塊時才會被使用。match_to_count = 0.3
是一個在 0-1 的範圍內的十進制數,用於判斷一個現行部隊編制是否符合對應職能編制。默認值設置為 0.5。upgrade_prio = { ... }
是一個 MTTH block ,決定職能編制相對於其他在花費經驗進行提升時的「重要性」。如果有多個職能編制具有相同的職能,則優先級最高的編制會被使用。在別的情況下,此條優先級定義會影響其與不同編制相比的概率。
此外,在職能編制中,每個單獨的編制被定義為一個其名稱是編制的塊。它可以是任何名稱,只要在文件中沒有重名即可。
這些參數在編制定義中使用:
upgrade_prio = { ... }
是一個 MTTH block ,決定了該編制相對於職能編制中其他編制在花費經驗進行升級時的權重。production_prio = { ... }
是一個 MTTH block ,決定了該編制相對於職能編制中其他編制在實際生產時的權重。replace_with = my_other_template
指定了一個不同的編制,作為該編制的新版本。當創建該新編製成為可能時,AI將嘗試轉向使用此新的編制。can_upgrade_in_field = { ... }
是一個觸發塊,決定AI何時嘗試升級已分配此編制的部隊到將要替換的編制。custom_icon = 10
指定AI為該編制分配的圖標。這個代碼例將使用GFX_div_templ_10_large
和GFX_div_templ_10_small
Sprite為編制分配圖標。此項為可選,默認為編制中絕大多數旅的圖標。reinforce_prio = 2
指定AI在該編制上設置的裝備增援優先級。默認優先級為 1,在遊戲中顯示為「常規」。0 為「後備」,2 為「精英」。如果未設置,默認為 1。target_width = 20
指定AI針對該編制的目標作戰寬度。width_weight = 2.5
指定AI在多大程度上應該專注於目標寬度。權重越高,AI越會避免偏離目標寬度。column_swap_factor = 0.3
指定了AI將整個列交換到不同子單位組以滿足編制的可能性。stat_weights = { ... }
是一個十進制值列表。每個值適用於不同的統計數據,並決定AI應該優先考慮什麼,以及應該避免什麼。與 NDefines.NAI.DIVISION_DESIGN_WEIGHTS in Defines一樣,這些統計數據首先是 17 個陸軍值,然後是對空攻擊,接下來是共同值和特殊值。換句話說,與空軍和海軍有關的值除對空攻擊外都被跳過,對空攻擊來自於防空裝備。這個值將添加到定義中的默認值:0.00 意味着與默認優先級相同。
allowed_types = { ... }
是一個AI可以添加到編制中的營級單位列表。如果某個類型被標註省略,AI將永遠不會添加它。這可以用來確保AI不會在編制中放入不同種類的單位,例如在一個移動輕坦克師中放置步兵,從而減緩其速度。target_template = { ... }
指定AI應力求達到的編制。特別地,這些參數放在其中:weight = 0.8
是AI應該多大程度上去靠近這個編制。match_value = 5000
是一個值,決定了如果與目標編制匹配,該編制對AI的價值。support = { ... }
是目標編制內支援連的列表設定。單個定義的格式為artillery = 1
。先確定單位類型,再決定數量。由於只允許一個相同支援連的存在,因此數量不能是其他值,只能是 1。regiments = { ... }
是目標編制內常規營的列表。單個定義的格式為artillery_brigade = 4
。首先確定單位類型,再確定值數量。
相同職能的編制將被匯總為同一個職能組,然後每個可用編制將會進行適應性評分計算,以確定哪個編制在特定的時刻與軍事目標應當被使用。
代碼示例
armor_BHR = { available_for = { BHR } roles = { armor } upgrade_prio = { factor = 2.17 modifier = { factor = 7 OR = { has_tech = basic_medium_tank has_tech = basic_medium_tank_chassis } } modifier = { factor = 2 OR = { has_tech = main_battle_tank has_tech = main_battle_tank_chassis } } } match_to_count = 0.5 medium_armor_BHR = { upgrade_prio = { factor = 2 } target_width = 19.9 width_weight = 3.0 column_swap_factor = 0.1 stat_weights = { 0.00 #-- default_morale 1.10 #-- defense 1.10 #-- breakthrough 1.60 #-- hardness 1.00 #-- soft_attack 2.00 #-- hard_attack 0.10 #-- recon 0.01 #-- entrenchment 0.10 #-- initiative 0.01 #-- casualty_trickleback -0.05 #-- supply_consumption_factor -0.01 #-- supply_consumption 0.00 #-- suppression 0.00 #-- suppression_factor 0.01 #-- experience_loss_factor 0.00 #-- equipment_capture_factor 0.00 #-- fuel_capacity #-- Air Values 0.02 #-- air_attack #-- Common Values 50.00 #-- max_organisation 0.80 #-- max_strength 1.0 #-- maximum_speed 10.0 #-- armor_value 0.05 #-- ap_attack 0.10 #-- reliability 0.10 #-- reliability_factor 0.00 #-- weight 0.00 #-- fuel_consumption 0.00 #-- fuel_consumption_factor 0.00 #-- strat_attack 0.00 #-- carrier_size 0.00 #-- acc_hot_gain 0.00 #-- acc_cold_gain 0.00 #-- build_cost_ic } target_template = { weight = 0.9 match_value = 7000.0 support = { engineer = 1 maintenance_company = 1 logistics_company = 1 } regiments = { medium_armor = 6 motorized = 5 } } allowed_types = { modern_armor medium_armor motorized mechanized infantry motorized_rocket_brigade engineer mot_recon armored_car_recon light_tank_recon signal_company maintenance_company logistics_company anti_tank military_police artillery anti_air rocket_artillery } replace_at_match = 0.8 replace_with = modern_armor_BHR target_min_match = 0.5 } modern_armor_BHR = { upgrade_prio = { factor = 2 modifier = { factor = 1 } } target_width = 19.9 width_weight = 3.0 column_swap_factor = 0.1 stat_weights = { 0.00 #-- default_morale 1.10 #-- defense 1.10 #-- breakthrough 0.60 #-- hardness 2.00 #-- soft_attack 0.00 #-- hard_attack 0.10 #-- recon 0.01 #-- entrenchment 0.10 #-- initiative 0.01 #-- casualty_trickleback -0.05 #-- supply_consumption_factor -0.01 #-- supply_consumption 0.00 #-- suppression 0.00 #-- suppression_factor 0.01 #-- experience_loss_factor 0.00 #-- equipment_capture_factor 0.00 #-- fuel_capacity #-- Air Values 0.02 #-- air_attack #-- Common Values 50.00 #-- max_organisation 0.80 #-- max_strength 10.0 #-- maximum_speed 0.20 #-- armor_value 0.05 #-- ap_attack 0.10 #-- reliability 0.10 #-- reliability_factor 0.00 #-- weight 0.00 #-- fuel_consumption 0.00 #-- fuel_consumption_factor 0.00 #-- strat_attack 0.00 #-- carrier_size 0.00 #-- acc_hot_gain 0.00 #-- acc_cold_gain 0.00 #-- build_cost_ic } target_template = { weight = 0.9 match_value = 9000.0 support = { engineer = 1 recon = 1 maintenance_company = 1 logistics_company = 1 } regiments = { modern_armor = 4 mechanized = 3 medium_sp_artillery_brigade = 2 } } allowed_types = { modern_armor mechanized motorized_rocket_brigade medium_sp_artillery_brigade engineer recon signal_company maintenance_company logistics_company anti_tank military_police artillery anti_air rocket_artillery } } }
AI 軍事裝備
File:Ambox outdated info.png | 這部分內容可能已不適合當前版本,最後更新於1.11。 |
/Hearts of Iron IV/common/ai_equipment/*.txt 文件用於定義AI在為坦克或艦船變體分配模塊時應該追求的裝備變體。
軍事裝備設計模板定義為文件夾內任何文件中的一個塊,其名稱與模板的名稱相同。
這些參數用於裝備模板設計本身:
category = <land|naval|air>
決定模板是用於坦克、艦船還是飛機。roles = { ... }
是模板所具有的職能的列表。這些可以是任何內容,用於 role_ratio AI strategy。AI會嘗試為他設計的每個職能裝備擁有一個變體。available_for = { ... }
處於列表外的國家將不能使用該裝備模板。如果未指定,則所有國家均可使用。
blocked_for = { ... }
處於列表內的國家將不能使用該裝備模板。只有在沒有available_for = { ... }
塊時需要此項。priority = { ... }
是一個 MTTH block ,決定該裝備模板相對於其他模板在花費軍事經驗進行升級時的「重要性」。如果有多個裝備模板具有相同的職能設計,則使用優先級最高的。除此之外這會決定與不同模板相比後選擇的概率。
此外,在裝備模板內,其中的獨立設計被定義為一個塊,名稱為設計名稱。在沒有重複的前提下可以是任何內容。
這些參數用於設計定義中:
name = angry_speedboat
對於使該裝備能夠作為預設使用是必不可少的。若未定義,例如德國的light_tank_artillery_2
將使用GER_light_tank_artillery_equipment_2_short
的本地化(如果本地化已定義)。role_icon_index = 2
用於為「艦船」分配特定的職能圖標。此部分代碼在陸地裝備中無效。圖標作為naval_equipment_role = { ... }
的一部分在 /Hearts of Iron IV/gfx/army_icons/army_icons.txt 中定義。priority = { ... }
是一個 MTTH block ,決定該設計相對於裝備模板內其他槽位在花費軍事經驗進行升級時的「重要性」。enable = { ... }
是一個觸發塊,決定AI何時會專注於達到該設計。allowed_types = { ... }
是一個子單位的列表,AI可以將其添加到設計中。可以通過自定義去除其中的項來讓AI不將其編入編制,例如可以使AI不在在機動輕型坦克師中加入步兵,防止師速度因此減慢。target_variant = { ... }
指定AI應該追求的變體。具體來說,有如下參數:match_value = 5000
用於決定如果現有編制匹配該模板,其對於AI的價值權重多少。type = light_tank_chassis_0
是部隊編制設計中必須使用的特定裝備類型。modules = { ... }
是裝備應具備的模塊列表,包括:main_armament_slot = tank_flamethrower
決定指定模塊槽的要求。該要求可以是模塊類別、特定模塊或是empty
字符使其為空。如果指定為模塊,可以使用greater-than(>)或less-than(<)以要求更好或更次的模塊:以上根據模塊中定義的年份決定。如果指定了更次,AI會傾向於最舊的模塊;如果指定了更好,AI會傾向於最新的模塊。如果指定為empty即空槽的情況下,使用greater-than(>)可以確保該槽位「不是」空的。main_armament_slot = { ... }
允許為模塊槽指定更多細節:module = tank_flamethrower
決定該槽的模塊要求。這與之前的main_armament_slot = tank_flamethrower
完全相同:允許使用模塊類別、模塊或empty,並且可以以相同的方式使用等號。any_of = { ... }
是一個模塊或模塊類別的列表。模塊槽至少必須有列表中的一項。upgrade = current
確保在將變體升級以匹配該設計時,必須使用與現有裝備相同的模塊。如果使用大於符號 (>),則還可要求AI對該槽進行部件升級。
upgrades = { ... }
是設計應具備的一系列升級,具體包括:tank_nsb_engine_upgrade = 3
決定指定升級應具有的AI優先級,設定為一個固定數字。tank_nsb_engine_upgrade = { ... }
是一個MTTH block,通過動態綁定分配AI對指定部件升級的優先級。
requirements = { ... }
是AI「必須」擁有的模塊列表。它遵循與目標變體的模塊塊中指定的模塊槽相同的格式:module = tank_flamethrower
、any_of = { ... }
等。然而其並不與特定的槽相綁定。allowed_modules = { ... }
是在滿足目標變體中的要求後,AI可以使用的模塊列表。AI將永遠不會選擇列表外的模塊。首先指定的模塊優先級高於後指定的。
代碼示例
BHR_light_tanks = { category = land available_for = {BHR} roles = { land_light_tank } priority = { factor = 1000 } great_war_tank_default = { priority = { factor = 1 modifier = { has_tech = basic_light_tank_chassis factor = 0 #let's not waste XP here } } target_variant = { match_value = 1000 type = light_tank_chassis_0 modules = { main_armament_slot = tank_heavy_machine_gun turret_type_slot = tank_light_one_man_tank_turret suspension_type_slot = tank_bogie_suspension armor_type_slot = tank_riveted_armor engine_type_slot = tank_gasoline_engine special_type_slot_1 = empty special_type_slot_2 = empty special_type_slot_3 = empty special_type_slot_4 = empty } upgrades = { tank_nsb_engine_upgrade = 3 tank_nsb_armor_upgrade = { base = 1 modifier = { add = 1 has_war = yes } } } } allowed_modules = { tank_heavy_machine_gun tank_light_one_man_tank_turret tank_bogie_suspension tank_riveted_armor tank_gasoline_engine } } }
文件 | 效果 • 條件 • 定義 • 修正 • 修正列表 • 作用域 • 本地化 • on action • 數據結構 (標記, 臨時標記, 國家別名, 變量, 數組) |
腳本 | 成就修改 • AI修改 • AI focuses • 自治領修改 • 權力平衡修改 • 劇本/標籤 (遊戲規則)• 建築修改 • 人物修改 • 修飾性TAG修改 • 國家創建 • 軍隊修改 • 決議製作 • 裝備修改 • 事件修改 • Idea修改 • 意識形態修改 • 軍工商修改 • 國策製作 • 資源修改 • Scripted GUI • 科技製作 • 單位修改 |
地圖 | 地圖 • 省份 • 補給區域 • 戰略區域 |
圖形圖像 | 界面 • 圖形資產 • 實體模型 • 後期特效 • 離子效果 • 字體 |
裝飾性 | 肖像 • 命名列表 • 音樂 • 音效 |
其他 | 控制台指令 • 故障排除 • 模組結構 • 成就代碼分析 • Mod相關 • Nudger修改 |