《欧陆风云4》使用历史文件来构建特定日期下世界的大部分内容。
国家
国家文件位于/Europa Universalis IV/history/countries/*.txt。这些文件控制构成一个国家的游戏参数。存档文件中可见的许多条目(例如 monarch_consort)同样兼容国家历史文件。
每个国家都有各自的文件,命名规则为:<tag> - <name>。
以下是国家文件的一般格式:
technology_group = <group> # 国家的科技组,同时也会将兵种类型设为该科技组
unit_type = <group> # 如果希望使用与所定义科技组不同的兵种组,可使用此项
government = <government> # 国家的政体
government_rank = <rank> # 当前政府等级:1、2 或 3
primary_culture = <culture> # 国家的主体文化
religion = <religion> # 国家的宗教
add_accepted_culture = <culture> # 添加一个接受文化
remove_accepted_culture = <culture> # 移除一个接受文化
historical_friend = <tag> # 添加一个历史友好国
historical_rival = <tag> # 添加一个历史宿敌
mercantilism = <int> # 初始重商主义值
religious_school = <school> # 对于信仰使用宗教学派的宗教的国家,指定其初始学派
add_army_professionalism = <value> # 初始的军队职业度
capital = <id> # 默认作为首都的省份
fixed_capital = <id> # 强制 AI 永远不会将首都迁离指定的 id,若被迁走,它们也会设法迁回该处
# 为国家定义一位统治者。通常在历史条目内使用
monarch = {
name = <string> # 统治者的名字
dynasty = <string> # 统治者的王朝
adm = <int> # 统治者的行政能力
dip = <int> # 统治者的外交能力
mil = <int> # 统治者的军事能力
birth_date = <date> # 用于设定统治者的年龄。以该 monarch 作用域所在历史条目的日期为基准推算。
female = yes # 统治者是否为女性
regent = yes # 统治者是否被视为摄政
religion = <religion> # 统治者的宗教
culture = <culture> # 统治者的文化
# 使所定义的统治者同时成为一名领袖
leader = {
name = <string> # 领袖的名字
type = <type> # 领袖类型:general、admiral、explorer、conquistidor
death_date = <date> # 领袖被移除的时间
fire = <int> # 领袖的射击值
shock = <int> # 领袖的冲击值
manuever = <int> # 领袖的机动值
siege = <int> # 领袖的围城值
personality = <string> # 要分配的领袖特质
}
}
# 为国家定义一位继承人。通常在历史条目内使用
heir = {
name = <string> # 继承人的名字
monarch_name = <string> # 继承人即位后所用的名字
dynasty = <string> # 继承人的王朝
birth_date = <date> # 用于设定继承人的年龄。以该 monarch 作用域所在历史条目的日期为基准推算。
death_date = <date> # 继承人应被移除的时间。
claim = <int> # 继承人的继承权强度
adm = <int> # 继承人的行政能力
dip = <int> # 继承人的外交能力
mil = <int> # 继承人的军事能力
female = yes # 继承人是否为女性
religion = <religion> # 继承人的宗教
culture = <culture> # 继承人的文化
leader = { <args> } # 使继承人成为领袖。接受与 monarch 中相同的参数
}
# 为国家定义一位配偶。通常在历史条目内使用
queen = {
name = <string> # 配偶的名字
dynasty = <string> # 配偶的王朝
birth_date = <date> # 用于设定配偶的年龄。以该 monarch 作用域所在历史条目的日期为基准推算。
death_date = <date> # 配偶应被移除的时间。
adm = <int> # 配偶的行政能力
dip = <int> # 配偶的外交能力
mil = <int> # 配偶的军事能力
female = yes # 配偶是否为女性
country_of_origin = <tag> # 配偶来自哪个国家
religion = <religion> # 配偶的宗教
culture = <culture> # 配偶的文化
leader = { <args> } # 使配偶成为领袖。接受与 monarch 中相同的参数。这是为配偶领袖赋予领袖特质的唯一方法。
}
add_ruler_personality = <string> # 添加一个统治者性格
add_heir_personality = <string> # 添加一个继承人性格
add_consort personality = <string> # 添加一个配偶性格
#许多常规效果都可以在国家历史文件中使用,但可能会受到加载顺序问题的影响。
#也可以使用脚本化效果。
# 历史条目,可以包含上述任意值以及常规的国家效果
<year>.<month>.<day> = {
<country effects>
}
兼容性——局部编辑
虽然基础游戏的格式为 <tag> - <name>,但只要文件名的前三个字母是 <tag>,就会被视为该标签有效的历史文件。这意味着可以在不修改原版文件的情况下,对历史文件进行局部编辑或覆盖。
例如,在“FRA - FranceMODNAMEAdditions.txt”中:
historical_friend = SCO
而在“SCO - ScotlandMODNAMEAdditions.txt”中:
primary_culture = scottish remove_accepted_culture = highland_scottish add_accepted_culture = scottish historical_friend = FRA
这组编辑在不触碰基础游戏文件的前提下,为法国与苏格兰之间增加了关系加成,并将苏格兰的主体文化改为高地苏格兰文化。
省份
省份文件位于/Europa Universalis IV/history/provinces/*.txt。这些文件控制构成一个省份的游戏参数。
每个省份都有各自的文件,命名规则为:<id> - <name>。
以下是省份文件的一般格式:
owner = <tag> # 省份当前的所有者
controller = <tag> # 省份当前的控制者
add_core = <tag> # 为指定标签添加一个核心
add_to_trade_company = <tag> # 将省份划入指定标签的贸易公司
is_city = yes / no # 此省份是否为正式的城市,即不是殖民地。
culture = <culture> # 省份的文化
religion = <culture> # 省份的宗教
base_tax = <int> # 省份的基础税收
base_production = <int> # 省份的基础生产
base_manpower = <int> # 省份的基础人力
native_size = <int> # 发动攻击的原住民军队规模(请确保“is_city = no”,否则省份中不会出现任何原住民)
native_ferocity = <int> # 原住民攻击的强悍程度
native_hostileness = <int> # 原住民发动攻击的可能性
tribal_owner = <tag> # 设定省份的部落所有者
trade_goods = <goods> # 分配给此省份的商品,取自 00_tradegoods.txt
estate = <estate> # 将该阶层添加到省份(已废弃)
hre = yes / no # 此省份是否属于神圣罗马帝国
capital = "<string>" # 用于该省份的首都名称,否则以省份名称作为首都名称。
seat_in_parliament = yes / no # 授予或移除该省份在议会中的席位
discovered_by = <technology group> # 使指定科技组获得此省份的视野
reformation_center = <religion> # 将此省份设为指定宗教的改革中心
unrest = <int> # 增加基础动乱
<building> = yes / no # 添加或移除指定建筑
center_of_trade = <int>
# 添加一场叛乱
revolt = {
type = <rebel type>
size = <float>
name = <string>
leader = <string>
}
# 历史条目,可以包含上述任意值以及常规的省份效果
<year>.<month>.<day> = {
<province effects>
}
兼容性——局部覆盖
省份历史可以通过同名文件完全覆盖。不过,若只想局部编辑,也可以创建一个以相同省份 ID # 开头的文件。
例如,要在不替换原文件的前提下,为“4387 - Angouleme”添加 14 世纪初的历史,我们可以新建一个名为“4387 - YourTextHere”的 .txt 文件,并按如下内容添加:
culture = occitain # 直到 14 世纪初都是奥克语文化。
remove_core = FRA # 取消基础游戏中为法国添加的核心,因为 1300 年时它是附庸。
owner = AGM # 本示例中虚构的昂古穆瓦标签。
controller = AGM # 本示例中虚构的昂古穆瓦标签。
add_core = AGM # 本示例中虚构的昂古穆瓦标签。
1308.11.1 = {
culture = cosmopolitan_french # 居伊·德·吕西尼昂去世——确切日期不详。CK2 以这一年作为该省份转为讲法语的时间。
add_core = FRA # 归入王室领地,百年战争期间曾被争夺,并于 1394 年转归奥尔良。
owner = FRA # 归入王室领地,百年战争期间曾被争夺,并于 1394 年转归奥尔良。
controller = FRA # 归入王室领地,百年战争期间曾被争夺,并于 1394 年转归奥尔良。
}
1360.10.24 = {# 布雷蒂尼条约。
owner = ENG
controller = ENG
}
1372.1.1 = { # 法国收复阿基坦。
owner = FRA
controller = FRA
}
1394.1.1 = { # 该省份成为奥尔良地区。
add_core = ORL
owner = ORL
controller = ORL
}
这样,昂古莱姆从 1300 年到 1444 年的演变过程——讲奥克语的附庸、随后成为争夺对象的王室领地、再到由奥尔良持有——便都得以呈现,而且完全没有改动原版文件。
外交
外交文件位于/Europa Universalis IV/history/diplomacy/*.txt。这些文件用于定义外交关系,例如附属国。
神圣罗马帝国皇帝
设定当前的神圣罗马帝国皇帝
<year>.<month>.<day> = {
emperor = <tag>
}
天朝皇帝
设定当前的天朝皇帝
<year>.<month>.<day> = {
celestial_emperor = <tag>
}
关系
所有关系都遵循以下格式:
<type> = {
first = <tag> # 若该关系为宗主-附属国关系,则为宗主国
second = <tag> # 若该关系为宗主-附属国关系,则为附属国
start_date = <date> # 关系开始生效的时间
end_date = <date> # 关系停止生效的时间
}
有效的关系如下:
- alliance
- royal_marriage
- guarantee
- warning
- vassal
- march
- union
从属关系
对于自定义的附属国类型,可以使用 dependency 效果,它允许指定 subject_type:
dependency = {
subject_type = "<subject type>"
first = <tag> # 若该关系为宗主-附属国关系,则为宗主国
second = <tag> # 若该关系为宗主-附属国关系,则为附属国
start_date = <date> # 关系开始生效的时间
end_date = <date> # 关系停止生效的时间
}
通常用于朝贡国。
战争
战争文件位于/Europa Universalis IV/history/wars/*.txt。这些文件用于定义正在进行的战争,或刚刚结束的战争(用于生成停战)。
每场战争必须有各自独立的文件。
战争遵循以下格式:
name = "<string>" # 战争界面中显示的战争名称
war_goal = {
type = <wargoal> # 使用 00_wargoals.txt 中的战争目标
casus_belli = <cb> # 使用 00_cb_types.txt 中的宣战理由
}
# 用于在指定日期开始战争
<year>.<month>.<day> = {
add_attacker = <tag> # 将一个国家加入进攻方
add_defender = <tag> # 将一个国家加入防守方
}
# 用于添加正在进行的战役
<year>.<month>.<day> = {
battle = {
name = "<string>" # 省份名称
location = <id> # 战役所在的省份
attacker = {
commander = "<string>" # 进攻方军队的指挥官
infantry = <int> # 步兵数量。1 相当于 1 名士兵
cavalry = <int> # 骑兵数量
artillery = <int> # 炮兵数量
losses = <float> # 已经阵亡的兵力数量
country = <tag> # 进攻的国家
}
defender = {
commander = "<string>" # 防守方军队的指挥官
infantry = <int> # 步兵数量。1 相当于 1 名士兵
cavalry = <int> # 骑兵数量
artillery = <int> # 炮兵数量
losses = <float> # 已经阵亡的兵力数量
country = <tag> # 防守的国家
}
result = yes # 显示结果
}
}
# 用于在指定日期结束战争
<year>.<month>.<day> = {
rem_attacker = <tag> # 将一个国家从进攻方移除
rem_defender = <tag> # 将一个国家从防守方移除
}
顾问
历史顾问文件位于/Europa Universalis IV/history/advisors/*.txt。历史顾问是预先定义好的顾问,会在特定日期范围内与特定省份相关联。
历史顾问遵循以下格式:
advisor = {
advisor_id = <id> # 顾问的唯一 id
name = <string> # 顾问的全名
location = <province id> # 顾问所关联的省份。
skill = <int> # 顾问的能力等级
type = <advisortype> # 顾问的类型
discount = yes # 是否将 SCRIPTED_ADVISOR_DISCOUNT 所定义的数值应用于该顾问的每月费用
date = <year>.<month>.<day> # 该顾问开始出现的时间
death_date = <year>.<month>.<day> # 该顾问不再出现的时间
culture = <culture> # 顾问的文化
religion = <religion> # 顾问的宗教
}
历史顾问会被加入顾问池,与常规生成的顾问并存。
故障排查
历史文件中的问题往往会导致难以诊断的崩溃。例如,国家历史文件中 capital = 一行里的省份 id 有误,就会导致崩溃。
因此,在编辑历史文件时,请确保你用到的所有引用(如省份 id)都是有效的。
| 文档 | 效果 • 触发条件 • 修正列表 • 作用域 • 变量 • 本地化 • 可自定义本地化 • 运行文件 • 事件图片列表 |
| 脚本 | 脚本函数 • 顾问 • 时代 • 开局设定 • 建筑 • 宣战理由 • 殖民区域 • 国家创建 • 文化 • 决议 • Defines • 外交行动 • 灾难 • 中华帝国 • 阶层 • 事件 • 派系 • 政府 • 政府互动 • 伟大工程 • 历史 • 神圣罗马帝国 • 理念组 • 思潮 • 佣兵 • 任务树 • 修正 • On Actions • 议会 • 和约 • 君主性格 • 政策 • 叛军类型 • 宗教 • 附属国类型 • 科技 • 贸易公司 • 商品 • 单位 |
| 地图 | 地图 • 地图修改速查 • 随机新世界 • 贸易节点 |
| 图形 | 模型 • 界面 • 贴图库 • 字体 • 单位模型 |
| 音频 | 音乐 • 音效 |
| 其他 | 控制台命令 • 校验和 • 模组结构 • 故障排查 • 运行文件 |
| 工具 | 克劳塞维茨开局编辑器 • EU4模组编辑工具 • JoroDox模组制作工具 • The Validator |
| 指南 | 省份 • 地图修改速查 • 存档编辑 • 脚本教程 |