任务由任务系列构成,任务就包含在系列之中。系列控制着其中任务的各个方面,例如它们显示在界面中的哪一列。
覆盖任务
如果你想制作一个修改或新增任务的模组,可以在/Europa Universalis IV/missions/下找到任务文件。与其他模组制作一样,最好创建你自己的模组文件夹,而不是直接编辑这些文件。具体做法可以查看模组结构指南。
任务
<series> = {
slot = <int> # 任务显示在哪一列。1 到 5。
generic = <boolean> # 该系列内的任务是否视为通用任务。
ai = <boolean> # AI 是否会领取该系列中的任务。
has_country_shield = <boolean> # 是否在图标上显示国家盾徽。
# 决定该系列是否会被加载。用于将系列限定于某个 DLC。
potential_on_load = {
<trigger>
}
# 决定该系列何时对某个国家显示。国家作用域。
potential = {
<trigger>
}
# 任务的名称,用于本地化
<mission> = {
icon = <gfx> # 任务所使用的图标,不含文件扩展名。
position = <int> # 任务显示在哪一行。1 为最上方。如果省略此行,则会占用第一个可用的行。
completed_by = <date> # 在该日期自动完成任务。也可以给任务设置一个游戏内不会出现的日期(如 "1999.11.11"),使其永不自动完成。
# 必须先完成哪些任务,本任务才会激活。
required_missions = {
<mission>
}
# 决定高亮哪些省份。其行为类似 all_province 作用域。可选。
provinces_to_highlight = {
<trigger>
}
# 决定任务何时完成。国家作用域。
trigger = {
<trigger>
}
# 领取任务奖励时执行的效果。国家作用域。
effect = {
<effect>
}
}
}
列(Slot)
Slot 即每个任务所处的列。默认共有五列,1 为最左侧的列,5 为最右侧的列。你可以通过编辑界面文件来增加列数,详见下面的界面一节。
通用还是专属?
任务分为通用和专属两种类型。通用任务带有 generic = yes 标签。如果某个专属任务想要占用任务树中的某个位置(例如第一列的最上方),它会覆盖该位置上存在的任何通用任务。如果你查看任务文件夹/Europa Universalis IV/missions/,会注意到最上方有两个名为 00_Generic_missions 的文件。如果一个国家没有专为其制作的专属任务,就会改用这些通用任务。这样做的原因是,有些国家只在某些列(如第 1、2、3 列)拥有专属任务,而第四列则使用通用任务。
你也可以为特定类型的国家创建通用任务。欧洲国家的专用通用任务位于 01_Generic_European_missions 中,此外还有针对非洲、印度等其他大陆的通用任务。你可以使用 potential = { } 标签来限制你的通用任务,这些任务仍然可能被专属任务取代。
位置
每个任务会按照脚本中编写的顺序显示,即第一个任务位于最上方,第二个位于其下方,依此类推。这一点可以用 position 属性覆盖。如果你需要在同一列的任务之间留出空隙,或者要在同一列上开始另一个任务系列,就可能需要这样做。
可以使用 swap_non_generic_missions = yes 重新检查任务系列的 potential 触发条件,它会重新评估这些触发条件,并切换任务系列以匹配该国当前的状态。
高亮省份
请务必记住,必须使用以下格式来高亮区域(附示例):
- 省份:
province_id = 1856 - 地区:
area = sussex_area - 大区:
region = italy_region - 殖民地区:
colonial_region = colonial_florida
若要同时高亮多个地区或省份,必须使用 OR 运算符:
provinces_to_highlight = {
OR = {
area = corsica_sardinia_area
area = sicily_area
area = western_sicily_area
}
}
你可能还想高亮属于某个特定国家的省份,可以使用下面的选项。注意,只要使用 OR 运算符,就可以将它与上面提到的其他条件混合使用。
provinces_to_highlight = {
OR = {
owned_by = NOV
province_id = 310
}
}
通常最好添加一个限制条件,以防止显示这些范围之外的省份。例如,在征服类任务中,你希望高亮某个大区内的所有领土,但排除你已经拥有的那些。你可以加入下面这段代码来阻止这些地区被显示:NOT = { country_or_non_sovereign_subject_holds = ROOT }。在下面的例子中,它会高亮意大利大区内所有不由该国拥有的省份(ROOT 指的就是任务的所有者)。
provinces_to_highlight = {
region = italy_region
NOT = { country_or_non_sovereign_subject_holds = ROOT }
}
界面
列数在 countrymissionsview.gui 中的 countrymissionsview_missions_gridbox 下,由 max_slots_horizontal 属性定义。
行数没有设定上限,行数增多时列表框会开始滚动。
任务图标定义在 countrymissionsview.gfx 中。
要添加你自己的图标,必须遵循以下格式:
spriteType = {
name = "<name>"
texturefile = "gfx//interface//missions//<name>.dds"
}
同时还必须在 gfx/interface/missions 文件夹中放入一个名为 <name>.dds 的图标
本地化
任务应使用 <mission_name>_title 作为任务标题的本地化,使用 <mission_name>_desc 作为任务描述的本地化。
任务索引
下面列出了一些示例任务,你可以很方便地用它们来搭建自定义任务树。在实际使用之前,请仔细阅读上面的内容。
| 文档 | 效果 • 触发条件 • 修正列表 • 作用域 • 变量 • 本地化 • 可自定义本地化 • 运行文件 • 事件图片列表 |
| 脚本 | 脚本函数 • 顾问 • 时代 • 开局设定 • 建筑 • 宣战理由 • 殖民区域 • 国家创建 • 文化 • 决议 • Defines • 外交行动 • 灾难 • 中华帝国 • 阶层 • 事件 • 派系 • 政府 • 政府互动 • 伟大工程 • 历史 • 神圣罗马帝国 • 理念组 • 思潮 • 佣兵 • 任务 • 修正 • On Actions • 议会 • 和约 • 君主性格 • 政策 • 叛军类型 • 宗教 • 附属国类型 • 科技 • 贸易公司 • 商品 • 单位 |
| 地图 | 地图 • 地图修改速查 • 随机新世界 • 贸易节点 |
| 图形 | 3D模型 • 界面 • 贴图库 • 字体 • 单位模型 |
| 音频 | 音乐 • 音效 |
| 其他 | 控制台命令 • 校验和 • 模组结构 • 故障排查 • 运行文件 |
| 工具 | 克劳塞维茨开局编辑器 • EU4模组编辑工具 • JoroDox模组制作工具 • The Validator |
| 指南 | 省份 • 地图修改速查 • 存档编辑 • 脚本教程 |