這個網頁包括了假如你已經掌握基礎的創建一個模組的基本知識,就可以學習接下來的進階內容。
快速製作
這部分內容可能已不適合當前版本,最後更新於1.8。 |
如果你想在模組中創建一個新國家,可以參考以下快速製作教程:
- 定義一個獨一無二的三英文字符國家tag。
- 在<你的模組>/common/countries中新建文件。
- 在<你的模組>/history/countries中新建文件。
- 在<你的模組>/localisations中增加本地化。
- 在<你的模組>/gfx/flags中為每一種意識形態添加一個大,中,小號的旗幟。
- 可選:在<你的模組>/history/units中創建OOB文件。
- 可選:把國家加入到遊戲中。
國家標籤——tag
每個國家都要一個三英文字符的tag,這是你在你的模組中唯一指定國家的內容。所有國家的TAG都得是獨一無二的並且為三個大寫英文字母. 任何國家都不能跟別的國家有一樣的TAG
要建立一個新TAG,就往<你的模組>/common/country_tags (或者把原有的文件改了)添加新信息並且再寫上像這樣的東西:
SCO = "countries/Scotland.txt"
如上所示。在這裏,SCO的地方必須為三大寫英文字母,而在後面的txt則可以是任意長度的大寫小寫,但不能有中文。
你想創建或者改動國家標籤的文件位於<你的模組>/common/countries
國家文件
這部分內容可能已不適合當前版本,最後更新於1.8。 |
在<你的模組>/common/countries 文件夾中創建一個新的文件.建議複製一個原版中的國家的文件來再改成你要的。
單位模型
在這裏設置設置國家單位模型。比如蘇格蘭是:
graphical_culture = commonwealth_gfx graphical_culture_2d = commonwealth_2d
顏色
這裏設置的是國家在地圖上的顏色。 它使用 RGB色階
color = { 2 10 222 }
colors.txt
確保國家顏色被寫入了<你的模組>/common/countries/colors.txt:
SCO = { color = rgb { 2 10 222 } color_ui = rgb { 255 255 155} }
`color_ui` 通常是比該國家普通顏色更深的色彩,因為這是用於塗邊界的 (如果邊界看起來很醜,那就再看看你文件有沒寫錯).顏色也能用 HSV形式寫指定
國家歷史
這部分內容可能已不適合當前版本,最後更新於1.8。 |
在 <你的模組>/history/countries> 文件夾中創建該文件. 或者複製個原版中國家的文件,重命名並更改為你的。文件名應該是<該國tag - 該國名字>, 比如"SCO - Scotland".這個文件包含了該國家的歷史以及默認屬性
首都
在這寫入國家首都. 要用地區ID(state)而非省份(province)ID指定首都.這樣的話,121是洛錫安地區,包含愛丁堡
capital = 121
戰鬥部署
這些文件會被連結到'Order of Battle' (OoB)記錄了部隊數量和位置、經驗及裝備狀況, 還有開局國家擁有的空軍聯隊。開始時的生產狀況及部隊編制也被記錄在那兒。每個國家都需要連結到OoB, 不過如果那個國家將在之後被吞併那麼就別給他寫OoB文件了
oob = "SCO_1936"
為了方便調用,海軍通常被編入單獨的OoB.另外,因為'炮手就位' DLC對海軍改動很大,一個國家通常都有兩個獨立的海軍OoB, 一個就是為了給那個DLC的, 另一個就是給沒買那個DLC的人, 使用舊的海軍系統(OOB通常以a _legacy為後綴區分)
if = { limit= { has_dlc = "Man the Guns" } set_naval_oob = "SCO_1936_naval_mtg" else = { set_naval_oob = "SCO_1936_naval_legacy" } }
科研槽
寫入開局時國家的科研槽數量。一般大國有4個,北美和歐洲的小國有兩個,其他地方的小國也是兩個。如果不寫就默認是兩個
set_research_slots = 3
穩定度
寫入國家開局時的穩定度百分比。在遊戲中會把文件中的數值×100,所以最大是1(遊戲中為100)最小是0(遊戲中為0),如下所示,現在在遊戲中顯示的穩定度為70%
set_stability = 0.7
戰爭支持度
寫入國家開局時的戰爭支持度百分比。在遊戲中會把文件中的數值×100,所以最大是1(遊戲中為100)最小是0(遊戲中為0)。如下所示,現在遊戲中顯示的戰爭支持度為50%
set_war_support = 0.5
民族精神和內閣
設置國家開局時的內閣 (民族精神 顧問 製造商和法案).這些東西的清單在 /Hearts of Iron IV/common/ideas
不過注意,如果你不添加任何內閣. 國家開局時就是沒有顧問,民用經濟和志願制兵役 這是個例子:
add_ideas = { henschel GER_autarky_idea #laws war_economy extensive_conscription }
科技
這裏寫入國家開局時的科技等級。科技列表在 /Hearts of Iron IV/common/technologies.
set_technology = { infantry_weapons = 1 infantry_weapons1 = 1 tech_engineers = 1 tech_mountaineers = 1 motorised_infantry = 1 gw_artillery = 1 interwar_antiair = 1 gwtank = 1 basic_light_tank = 1 basic_heavy_tank = 1 early_fighter = 1 fighter1 = 1 early_bomber = 1 tactical_bomber1 = 1 strategic_bomber1 = 1 CAS1 = 1 naval_bomber1 = 1 }
記住,有炮手就位DLC的玩家需要一份不同的科技文件給海軍~所以你得給海軍科技設置兩次,就像這樣:
if = { limit = { not = { has_dlc = "Man the Guns" } } set_technology = { early_submarine = 1 early_destroyer = 1 } set_naval_oob = "SCO_1936_naval_legacy" } if = { limit = { has_dlc = "Man the Guns" } set_technology = { basic_naval_mines = 1 submarine_mine_laying = 1 early_ship_hull_light = 1 early_ship_hull_submarine = 1 basic_ship_hull_submarine = 1 basic_battery = 1 basic_torpedo = 1 basic_depth_charges = 1 } set_naval_oob = "SCO_1936_naval_mtg" }
其他(可選)
寫入初始政治點數
add_political_power = 500
寫入初始運輸船數量.
注意: 如果這在同一文件出現了數次會被疊加
set_convoys = 100
寫入初始科研加成.
有了這一行代碼,可以讓國家在開局時就默認有一個科研加成。 比如蘇聯的歷史文件中就用了這:
add_tech_bonus = { bonus = 1.0 uses = 2 category = armor }
戰爭化藉口:
有了這行代碼可以讓當前國家在開局就有一個對某國的戰爭藉口。
create_wargoal = { type = take_state_focus target = POL generator = { 72 88 90 87 86 } # Zaolzie Krakow Kielce Lodz Poznan }
國家標誌及其其它:
用於更加進階的模組製作。可以用於在一開始就創建一個標誌
set_global_flag = earhart_disappeared set_country_flag = sudetenland_acquired
讓一個國家毫無條件的觸發新聞。
USA = { country_event = { id = usa.50 days = 2 } #id为事件的id,days是多少天后触发 country_event = { id = usa.51 days = 2 } }
Opinion modifiers:
add_opinion_modifier = { target = POL modifier = refused_anti_comintern_pact_opinion }
Modifiers have their effects defined in /Hearts of Iron IV/common/opinion_modifiers
外交
如果一個國家在開局時就與別的國家有交流,那麼在這裏定義。建議一個定義內容只寫在一個文件中。(比如陣營領導人只寫在陣營領導人的文件里,陣營中的次要國家就不必要寫了)
陣營
在國家文件中寫下這行代碼,將會讓遊戲一開始就有這個陣營,在其中一個國家文件中寫上,則代表當前國家是陣營的領導者。
create_faction = Clanintern 修改:Clanintern即可
在上一行的基礎上再當前國家文檔中寫下面這行即代表一個國家在這個陣營中。
add_to_faction = IRE 修改IRE即可
如果陣營中的某個國家有傀儡國,那也應該加入到陣營中,以防止不必要的bug。
傀儡國
如果玩家有「共同勝利」DLC,那麼傀儡國的定義如下:
set_autonomy = { target = ENG autonomous_state = autonomy_integrated_puppet }
如果沒有,則是如下:
puppet = ENG
為了使有DLC和沒有DLC的玩家都可以正常使用,因此你可以使用if語句:
if = { limit = { has_dlc = "Together for Victory" } set_autonomy = { target = ENG autonomous_state = autonomy_integrated_puppet } else = { puppet = ENG } }
注意:puppet = ENG指的是當前國家的傀儡是ENG而並非是當前國家被ENG傀儡。
其他外交行動
保證獨立:
這行代碼可以讓當前國家保證另一個國家的獨立:
give_guarantee = FRA
在這裏你只需要修改FRA為任意國家TAG即可
互不侵犯條約:
diplomatic_relation = { country = USA relation = non_aggression_pact }
在這裏你只需要修改USA為任意國家TAG即可。
初始貿易:
這行代碼可以讓國家開局就和任意國家進行貿易並添加資源。
create_import = { resource = tungsten factories = 1 exporter = SWE }
改變文件中的SWE可以改變貿易國家,改變factories後面的數字可以該表交易物品的數量(前提是那個國家要有這麼多),改變resource後面的內容可以修改交易的物品。
軍事通行權:
這行代碼可以讓當前國家在開局就給目標國家軍事通行權。
give_military_access = IRE
改變IRE就可以了。
科技共享
If the player has 'Together for Victory' one can add the country to a tech sharing group:
add_to_tech_sharing_group = haggis_investigators
An if-statement as shown above will be required to limit it to 'Together for Victory' owners and to prevent bugs with those that don't own it.
#目前這行代碼並不完整,不推薦使用。
設定黨派支持度
定義當前國家不同意識形態黨派的支持率:
set_popularities = { democratic = 5 communism = 80 fascism = 10 neutrality = 5 }
你可以添加或刪減任何意識形態,但是其所有政黨總支持率必須要等於100.
設定政治
定義當前國家的執政黨和大選。
set_politics = { ruling_party = communism #执政党的意识形态 last_election = "1932.11.8" #上次大选时间 election_frequency = 48 #大选间隔时间,单位:月 elections_allowed = no #是否有下次大选,no为没有,yes为有 }
國家領導人
指定一個國家的領導人。正常來說,你只需要製作一個國家開局時的意識形態領導人就足夠了。因為別的領導人可以隨機產生。不過如果你製作了別的意識形態黨派的領導人,那麼在非執政黨狀態下,他們是黨派領導人。為執政黨時為領導人。
create_country_leader = { name = "Ronald McDonald" #领导人名字 desc = "POLITICS_RONALD_MCDONALD_DESC" #领导人介绍 picture = "gfx/leaders/Europe/Portrait_Europe_Generic_land_3.dds" #领导人图片 expire = "1965.1.1" #领导人退休时间 ideology = fascism_ideology #领导人子意识形态 traits = { #领导人特质 scary_clown } }
你在製作領導人圖片時,導出的格式推薦為dds格式(當然也可以是png), 這可能需要用到Gimp或者 Paint.net來製作。
領導人特質可以在 /Hearts of Iron IV/common/country_leader找到。
將軍
在當前國家文件中寫下這些,就可以讓國家擁有一個陸軍將軍:
create_corps_commander = { name = "Sean McHaggis" #名字 portrait_path = "gfx/leaders/Europe/Portrait_Europe_Generic_land_4.dds" #图片 traits = { panzer_leader fortress_buster } #特质 attack_skill = 4 #攻击能力 defense_skill = 2 #防御能力 planning_skill = 1 #计划速度 logistics_skill = 2 #后勤速度 }
這一些則是海軍將領:
create_navy_leader = { name = "James McSeafarer" portrait_path = "gfx/leaders/Europe/Portrait_Europe_Generic_navy_1.dds" traits = { blockade_runner superior_tactician } attack_skill = 3 defense_skill = 3 maneuvering_skill = 5 coordination_skill = 2 }
變種型號(可選)
從一開始就可以定義該國家或地區可用裝備的變種型號:
create_equipment_variant = { name = "Haggis Class" type = submarine_1 upgrades = { sub_engine_upgrade = 3 sub_stealth_upgrade = 2 sub_torpedo_upgrade = 2 } }
create_equipment_variant = { name = "Scotfire" type = fighter_equipment_1 upgrades = { plane_gun_upgrade = 3 plane_range_upgrade = 0 plane_engine_upgrade = 3 plane_reliability_upgrade = 3 } } create_equipment_variant = { name = "Tanktoon 2" type = light_tank_equipment_2 upgrades = { tank_gun_upgrade = 5 tank_armor_upgrade = 1 tank_engine_upgrade = 2 tank_reliability_upgrade = 0 } obsolete = yes #optional, marks the unit as obsolete and hides the unit from the UI }
本地化
通過在下面的介紹路徑來添加本地化文件(最好去原版複製一個文件過來然後改成別的名字)
<你的模组>/localisation/<任意名字>_l_english.yml
如果你希望翻譯成別的語言,比如說變成修改成法語,你只需要修改english為French就可以了
對於國家來說有許多種不同的意識形態黨派會上台,因此你最好為國家的每一種意識形態都取上名字:
l_english: SCO_communism:0 "苏格兰人民共和国" SCO_communism_DEF:0 "苏格兰人民共和国" #这一行的意思是国家在新闻中是怎么称呼的 SCO_fascism:0 "苏格兰帝国" SCO_fascism_DEF:0 "苏格兰帝国" SCO_ADJ:0 "苏格兰" #国家在宣战条中显示的名称
注意:不要把文中的l認錯了,這是一個小寫的L,很多人會誤認為i(I)或者1,這是一個很常見的錯誤,如果你的本地化一直不顯示,這很有可能是一個原因,當然最好還是從原版中複製一個文件過來修改名稱。
旗幟
每個國家都至少要有一面意識形態國旗,如果你不製作任何國旗,那麼遊戲中將會顯示一個黑面。我們推薦你最好為每一種意識形態都添加上國旗,這樣可以使你的模組更加完整。每種意識形態一個旗幟,並且每種需要三個尺寸:標準、中(Medium)、小(Small)。所有旗幟需要以TGA格式保存,文件名包括國家的tag和旗幟所用於的意識形態。(例如:ABC_neutrality.tga)文件格式應該是32位、無壓縮的。
然而,如果你不想為每個意識形態製作單獨的旗幟,也可以創建一個各種尺寸的單獨旗幟,並且將其單純以國家tag命名而不包括意識形態。例如:ABC.tga將會在該國家沒有此時意識形態特定的旗幟時,作為該國家的旗幟使用。
要求尺寸 | |
---|---|
標準 | 82x52 pixel |
中 | 41x26 pixel |
小 | 10x7 pixel |
所有旗幟位於/Hearts of Iron IV/gfx/flags。用於模組製作目的時,將旗幟放置於<你的模組>/gfx/flag下,並且將各尺寸的旗幟放置於相應的子文件夾下。
軍隊—OOB(可選)
這部分內容可能已不適合當前版本,最後更新於1.8。 |
如果一個國家是開始就存在的,那麼擁有一支軍隊可以說是必要的,在/Hearts of Iron IV/history/units 建立一個新的txt文件,或者從原版複製一個國家的過來。它的命名必須與你在國家文件中所寫的一模一樣,否則將無法正常讀取。比如你在國家文件中寫<oob = "SCO_1936">,那麼在units中,這個文件也要叫SCO_1936。
師模板
首先製作一個國家所擁有的師編制,編制中的營你可以在/Hearts of Iron IV/common/units找到。
division_template = { name = "Blueskirt Division" #师的名字 regiments = { infantry = { x = 0 y = 0 } #步兵师 x是横排的位置,y是竖排的位置。从0开始,最高都是4. infantry = { x = 0 y = 1 } infantry = { x = 0 y = 2 } infantry = { x = 1 y = 0 } infantry = { x = 1 y = 1 } infantry = { x = 1 y = 2 } infantry = { x = 2 y = 0 } infantry = { x = 2 y = 1 } infantry = { x = 2 y = 2 } infantry = { x = 3 y = 0 } infantry = { x = 3 y = 1 } } }
我們可以看到,上面那個師完全由步兵所組成,並且沒有名字。而下面的內容,則加上了來自德國的更高級單位,比如支援營。有了師的名字下面那行內容之後,師的名字也有了以德國名字組為基礎:
division_template = { name = "Infanterie-Division" #师的名字 division_names_group = GER_Inf_01 #师的名字组合 regiments = { #进攻营 infantry = { x = 0 y = 0 } infantry = { x = 0 y = 1 } infantry = { x = 0 y = 2 } infantry = { x = 1 y = 0 } infantry = { x = 1 y = 1 } infantry = { x = 1 y = 2 } infantry = { x = 2 y = 0 } infantry = { x = 2 y = 1 } infantry = { x = 2 y = 2 } } support = { #支援营 engineer = { x = 0 y = 0 } artillery = { x = 0 y = 1 } } }
師名字組合可以在/Hearts of Iron IV/common/units/names_divisicons找到。
師位置
division可以讓我們的部隊直接在地圖上出現,即開局就部署好了的部隊。
units = { division= { name = "1st Blueskirt Division" #师编号 location = 9392 #师的位置(小地块) division_template = "Blueskirt Division" #师的编制(也就是上面写的那个) start_experience_factor = 0.2 #经验等级,不写就是没有 start_equipment_factor = 0.3 #装备后勤,不写就是完整 } }
這裏的name和上面師模板的的name不一樣,這裏的name是部隊在地圖上被選中顯示的名稱,而師模板那裏的name是指編制的名稱。下面所使用的的division_name是原版中使用的命名方法,相對來說比較麻煩,比較推薦上面的手動命名。
division= { division_name = { is_name_ordered = yes name_order = 35 } location = 6488 division_template = "Infanterie-Division" start_experience_factor = 0.1 #optional, otherwise starts with 0 expereince force_equipment_variants = { infantry_equipment_0 = { owner = "GER" } } #optional, replaces equipment with a specific variant (for example to give obsolete equipment to garrison units) }
空軍聯隊
開局就部署在各機場的空軍。
air_wings = { 121 = { # Edinburgh tac_bomber_equipment_0 = { owner = "SCO" amount = 72 } start_experience_factor = 0.2 #optional, otherwise starts with 0 expereince fighter_equipment_1 = { owner = "SCO" version_name = "Scotfire" amount = 150 } #version_name is optional start_experience_factor = 0.5 } }
Version _ name 定義了要使用的設備類型的特定變體。使用之前需要在同一個文件中定義它。
添加其他劇本的歷史(可選)
如果你想編輯一個國家在一個特定的日期,你只需要在文件中寫上那個時間,如下所示:
1939.1.1 = { #特定的时间 oob = "SCO_1939" #这样会使这个国家在1939年1月1日时重新加载oob文件。 set_technology = { #这些已经完成的科技 atomic_research = 1 nuclear_reactor = 1 nukes = 1 } }
國策
國策可以通過兩種方式製作:如果你想完成國策,那麼使用:
complete_national_focus = army_effort
如果您只想跳過國策(通常用於更複雜的國策,如「索取蘇台德」,並手動跳過國策,而不觸發所有相關事件),請使用:
unlock_national_focus = GER_demand_sudetenland
具體案例
取消先前的關係 (比如先前對法國的保障獨立):
diplomatic_relation = { country = FRA relation = guarantee active = no }
移除以前的民族精神:
remove_ideas = { great_depression }
要記住的事情
- 使用的日期必須至少比實際劇本的開始日期早1天,可以使用多個日期。
- 添加了特質,替換了政策,需要重新加載。
- 科技只需應用一次,只需在以後的劇本中添加額外的科技
- 如果國策觸發了一個事件,或者增加了效果,通過歷史文件完成它不適用,它們必須單獨觸發
- 根據相應的意識形態選擇國家領導人,如果存在多個,則選擇文件中較低的一個
在遊戲中增加國家
有三種方法可以將新國家添加進遊戲。
- 通過事件添加
- 通過國策添加
- 編輯省份文件
通過事件或國策增加國家
- 主條目:Event Modding
有多種方式可以通過事件或國策來增加添加一個國家。這裏有兩個:
set_state_owner = 119
在事件或國策中使用此腳本,當範圍為新國家/地區時,將導致該省為新國家所有。然而,如果它被第三國佔領,且新國家與他們開戰,該地區將繼續被佔領。
transfer_state = 119
此腳本將所有權和控制權更改為作用域狀態。如果第三國佔領它,它將成為新的國家,而不管它與佔領國之間的關係如何。
通過地區歷史添加國家
更改歷史文件中的所有者和核心,以便在默認情況下或在自定義的劇本中包含新的國家/地區(例如,僅在1939年存在)
文檔 | 效果 • 條件 • 定義 • 修正 • 修正列表 • 作用域 • 本地化 • 行動 • Data structures (Flags, Event targets, Country tag aliases, Variables, Arrays) |
編寫腳本 | AI • AI focuses • Autonomous states • Balances of power • 劇本 • 建築 • Characters and traits • Cosmetic tags • 國家 • 師 • 決議 • 裝備 • 事件 • 內閣/民族精神 • 意識形態 • 國策 • 資源 • Scripted GUI • 科技 • 單位 |
地圖 | 地圖 • 地區 • 補給區域 • 戰略區域 |
圖形圖像 | 界面 • 圖形資產 • 實體 • 後特效 • 離子效果 • 字體 |
裝飾性 | 肖像 • 命名列表 • 音樂 • 音效 |
其他 | 控制台指令 • 故障排除 • 模組結構 • 成就代碼分析 |