Achievement模组制作
原页面:Achievement modding
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"
触发器
成就相关触发器。
| 名称 | 参数 | 示例 | 描述 | 备注 | 加入版本 |
|---|---|---|---|---|---|
| has_completed_custom_achievement | mod = <mod 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 • 科技与学说 • 单位 |
| 地图 | 地图 • 州 • 补给区域 • 战略区域 |
| 图形 | 界面 • 图形资源 • 实体 • 后期特效 • 粒子 • 字体 |
| 外观 | 肖像 • 名称列表 • 音乐 • 音效 |
| 其他 | 控制台指令 • 疑难排查 • 模组结构 • 模组 • 地图编辑器 |