修改外交行动有两种方法:在/Europa Universalis IV/common/diplomatic_actions中控制硬编码交互的条件,以及在/Europa Universalis IV/common/new_diplomatic_actions中添加新的交互。
外交行动
/Europa Universalis IV/common/diplomatic_actions中的 00_diplomatic_actions.txt 文件控制着原版外交行动(如王室联姻)的条件。你可以为这些行动添加效果,但无法移除原版中已有的效果。
具体做法是:在相应的行动作用域中添加一个 condition 作用域;如果该行动作用域不存在,则先创建它。例如,如果你想在当前国家是共和国时禁止使用 study_technology,可以这样做:
study_technology = {
condition = {
tooltip = CANNOT_STUDY_TECHNOLOGY
potential = {
government = republic
}
allow = {
always = no
}
}
}
此处的 potential 用于限制该条件何时生效,而 allow 则用于限制何时阻止该行动。
ROOT 是使用该行动的国家,FROM 是该行动所针对的国家。
你可以使用 tooltip 一行添加提示框,当条件有效并禁止该行动时就会显示。
通用格式为:
<action> = {
condition = {
tooltip = <string>
potential = {
<triggers>
}
allow = {
<triggers>
}
}
}
硬编码限制
某些外交行动似乎是硬编码的,完全无法修改。已知的有:
- charter_company
- fabricate_claim(似乎只对省份视图中的伪造宣称有效,而对外交行动无效)
- slander_merchants
- sabotage_recruitment
- corrupt_officials
新外交行动
/Europa Universalis IV/common/new_diplomatic_actions中的 00diplomatic_actions.txt 文件用于实现新的外交行动。你可以为新的行动创建新文件。
<action> = {
category = <category> # 该行动将出现在哪个外交行动列表中。
alert_index = <int> # 该行动使用的警报。索引请参阅 static_actions。可选。
alert_tooltip = <key> # 在警报提示框中显示的本地化键。可选。
require_acceptance = yes / no # 该行动是否需要目标国家接受,才会执行接受时的效果。
# 决定该行动何时可见
is_visible = {
<triggers>
}
# 决定该行动何时可以执行
is_allowed = {
<trigger>
# 此处可以使用 variable_arithmetic_trigger,借助 export_to_variable 提取并比较诸如 ruler_age 等数值
}
# 接受时执行哪些效果
on_accept = {
<effects>
}
# 拒绝时(如果可以拒绝)执行哪些效果。可选。
on_decline = {
<effects>
}
# 控制 AI 对该行动的接受程度(如果可以接受)。可选。
ai_acceptance = {
# 添加一个 AI 因子条目
add_entry = {
name = <key> # 为该因子显示的本地化键
# 将该条目限制为满足触发条件的国家。可选。
limit = {
<triggers>
}
# ai_value 必须始终先在某个条目内创建。
export_to_variable = {
variable_name = ai_value
value = <exportable value> # 导出哪个可导出的值
who = FROM # 从谁那里导出该值
with = THIS # ai_value 是为谁而设
}
# 之后你可以通过 multiply_variable 等效果来改变 ai_value
}
}
# 控制 AI 对该行动的使用
ai_will_do = {
<triggers>
}
}
is_allowed 使用了变量运算触发条件,更多信息请参见变量。另外也请查看 00diplomatic_actions.txt 文件中的示例以加深理解。
ROOT 是使用该行动的国家,FROM 是该行动所针对的国家。
类别
外交行动的类别类型有:
- alliance
- influence
- relation
- dynasty
- covert
- economy
- access
- emperor
- papacy
- great_powers
此外,你还可以使用 "debug" 以及任何其他 eu4 关键字(例如触发条件、效果、作用域、修正)来创建新的类别。
你选择哪一个决定了它们的顺序(但始终排在原版类别之后)
图形与本地化
新类别的本地化键为 DIPLOMACYACTION_CATEGORY_<keyword>。
可以通过创建一张 24x24 的图片并在图标周围留出几个像素的边距来添加新图标。在 24x24 的图片中,图标大小取 18x18 似乎最为合适。
文件名并不重要,但通常采用 icon_diplomacy_<keyword>.dds 的形式。将文件名中的 keyword 替换为与你所创建的新类别更相关的内容可能更合理,不过这取决于个人喜好。
GFX 条目必须采用 GFX_diplomacy_action_<keyword> 的形式。
举个例子,如果你选择 random_list 作为新类别的名称,那么它的本地化键就是 DIPLOMACYACTION_CATEGORY_random_list。图形条目如下:
spriteType = {
name = "GFX_diplomacy_action_random_list"
texturefile = "gfx//interface//<file_name_here>.dds"
alwaystransparent = yes
}
本地化
新的外交行动需要定义以下本地化键:
<action>: "Action" <action>_title: "Action" <action>_desc: "Description" <action>_tooltip: "Description" <action>_alert_tooltip: "Action"
| 文档 | 效果 • 触发条件 • 修正列表 • 作用域 • 变量 • 本地化 • 可自定义本地化 • 运行文件 • 事件图片列表 |
| 脚本 | 脚本函数 • 顾问 • 时代 • 开局设定 • 建筑 • 宣战理由 • 殖民区域 • 国家创建 • 文化 • 决议 • Defines • 外交行动 • 灾难 • 中华帝国 • 阶层 • 事件 • 派系 • 政府 • 政府互动 • 伟大工程 • 历史 • 神圣罗马帝国 • 理念组 • 思潮 • 佣兵 • 任务树 • 修正 • On Actions • 议会 • 和约 • 君主性格 • 政策 • 叛军类型 • 宗教 • 附属国类型 • 科技 • 贸易公司 • 商品 • 单位 |
| 地图 | 地图 • 地图修改速查 • 随机新世界 • 贸易节点 |
| 图形 | 3D模型 • 界面 • 贴图库 • 字体 • 单位模型 |
| 音频 | 音乐 • 音效 |
| 其他 | 控制台命令 • 校验和 • 模组结构 • 故障排查 • 运行文件 |
| 工具 | 克劳塞维茨开局编辑器 • EU4模组编辑工具 • JoroDox模组制作工具 • The Validator |
| 指南 | 省份 • 地图修改速查 • 存档编辑 • 脚本教程 |