钢铁雄心 IV 中文离线资料库

Achievement模组制作

原页面:Achievement modding

本页中文翻译进度 92%,未译部分暂保留英文原文。

Paradox 允许创建自定义成就,并显示在玩家的生涯档案中。创建这些成就的能力随雪崩(1.12.1)版本一同到来。

成就可以在生涯档案中找到(游戏内该按钮称为「通关概览」),图像可在 Paradox 论坛获取。

文件结构

custom_achievements/
    common/achievements/
        custom_achievements_achievements.txt
    gfx/achievements/
        custom_achievement_test.dds
        custom_achievement_test_grey.dds
        custom_achievement_test_not_eligible.dds
    localization/english/
        custom_achievements_l_english.yml

编码语法

  • unique_id - 此项为必填,且对你的模组而言是自定义的。它引用的是将存储这些成就的云存档文件名。
  • custom_achievement/custom_ribbon - 这是你该特定成就的唯一标识符。
  • 可用 —— 它会在游戏开局时检查本次游玩是否有可能获得某个绶带或成就。如果在游戏开始时为假,那么获得该成就将永远不可能。
    • 这类似于决议或理念中的allowed,不过它是在游戏开始时而非之前进行评估的。
    • 代码示例中未使用的一些常见触发器是 tag 检查(用tag或original_tag)或铁人检查(is_ironman = yes)。
  • happened - 一旦满足这些条件,成就即被获得。(通常是即时到约 2 个游戏小时)
  • ribbon -(可选)仅丝带需要此项。它允许你使用 RGB 颜色代码更改丝带的颜色。
unique_id = custom_achievements_123456

custom_achievement = {
    possible = {
        # classic triggers used in all vanilla achievements
        difficulty > 1
        has_start_date < 1936.01.02
        has_any_custom_difficulty_setting = no
        game_rules_allow_achievements = yes
    }
 
    happened = {
        date > 1936.01.02
    } 
}


custom_ribbon = {
    possible = {
        difficulty > 1
        has_start_date < 1936.01.02
        has_any_custom_difficulty_setting = no
        game_rules_allow_achievements = yes
        tag = ITA
    }
 
    happened = {
        date > 1936.01.02
    }

    ribbon = {
        frames = { 1 1 1 1 }
        colors = {
            { 45.0 64.0 102.0 1.0 }
            { 154.0 73.0 107.0 1.0 }
            { 238.0 189.0 96.0 1.0 }
            { 211.0 181.0 128.0 1.0 }
        }
    }
}

图标

成就要用到的图像需要三种不同的图片,它们提供在gfx/achievements中。这些不需要在 interface 中设置 spriteType。

  • custom_achievement_test.dds
    • 指你完成成就后可用的彩色图标。
  • custom_achievement_test_not_eligible.dds
    • 指在该通关流程中无法获得时所用的图标。
  • custom_achievement_test_grey.dds
    • 指在该通关流程中可以获得时所用的图标

Localization

成就的本地化由两个 loc 键完成。后缀 NAME 指成就标题,DESC 指描述,描述可以是某个有趣的玩笑,也可以是你如何描述才能达成该成就。

 custom_achievement_test_NAME: "Custom Achievement Title"
 custom_achievement_test_DESC: "Custom Achievement Description"

触发器

成就相关触发器。

General any-scoped triggers:
名称 参数 示例 描述 备注 加入版本
has_completed_custom_achievement mod = <mod ID> 该成就所属的模组。

achievement = <achievement ID> 成就的名称。

has_completed_custom_achievement = {
    mod = my_mod_unique_id
    achievement = my_achievement_token
}
检查控制当前作用域的玩家是否已完成指定的自定义成就。 该成就(包括其来源模组的 ID)定义在/Hearts of Iron IV/common/achievements/*.txt文件中。成就可以在之前的某次游戏会话中完成,不必是当前这次。

如果定义该成就的模组未加载,该触发器判定为假。

1.12.5

参考资料

  • [1] 模组成就
  • [2] 在模组成就中设计丝带的教程
  • [3] 在你的模组中编写成就文件的教程
模组制作
文档 效果 • 触发器 • 定义文件 • 修正项 • 修正项列表 • 作用域 • 本地化文件 • 事件钩子 • 数据结构(标记、事件目标、国家标签别名、变量、数组)
脚本 成就 • AI • AI 焦点 • 自治领 • 力量均势 • 书签/剧本 (游戏规则) • 建筑 • 角色与特质 • 外观标签 • 国家 • 师 • 决议 • 学说 • 装备 • 事件 • 阵营 • 理念 • 意识形态 • 军事工业组织 • 国策 • 资源 • 脚本化 GUI • 科技与学说 • 单位
地图 地图 • 州 • 补给区域 • 战略区域
图形 界面 • 图形资源 • 实体 • 后期特效 • 粒子 • 字体
外观 肖像 • 名称列表 • 音乐 • 音效
其他 控制台指令 • 疑难排查 • 模组结构 • 模组 • 地图编辑器