任务树修改

任务由任务系列构成,任务就包含在系列之中。系列控制着其中任务的各个方面,例如它们显示在界面中的哪一列。

覆盖任务

如果你想制作一个修改或新增任务的模组,可以在/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
指南 省份 • 地图修改速查 • 存档编辑 • 脚本教程