Kzeroko KTM2

技能树数据

为 Puffish 技能节点添加解锁条件,并通过奖励授予本地可习得能力。

更新于 2026/9/19 7 分钟阅读

技能条件为现有技能树节点增加一项解锁检查。独立的奖励桥接会在 Puffish Skills 更新该定义的解锁数量时授予 Origins 能力;这两种格式本身都不创建技能图。

文件放在哪里

条件从 data/<namespace>/skill_requirement/*.json 加载,包含子目录。文件以类别 ID 为键,每个类别再将节点 ID 映射到条件。文件的命名空间不决定目标类别,类别键才决定。

同一资源 ID 由常规数据包优先级选取。不同文件可共同提供目录,但不要在多个文件定义同一类别与节点组合:注册表不会合并条件,也没有稳定的覆盖结果。

Puffish Skills 管理 data/<namespace>/puffish_skills/categories/<category>/ 下的图形格式。内置主树为 isekaiskills:main。本页介绍本地条件格式及 isekaiexpansion:learnable_power 奖励数据;类别、定义和连接格式属于 Puffish,本次依据版本 0.18.2+1.20 核对相关行为。

最小示例

这是内置主条件文件的首项:

{
  "isekaiskills:main": {
    "aegis_t1_gate": {
      "condition_type": "level",
      "condition_value": 10
    }
  }
}

将它用作 data/isekaiexpansion/skill_requirement/main.json 的覆盖文件,会替换整个被选中的文件,因此其他内置条件也会消失。只修改这一关口时,应保留其余条目。新类别应填写真实类别 ID 与节点 ID;条件键指向节点,不是可复用的定义 ID。

字段

字段类型默认值含义与限制
<category-id>object条目可省略;接受空根对象Puffish 类别的资源标识符;示例为 isekaiskills:main。语法无效会中止当前文件。
<node-id>object条目可省略该类别技能数据中的精确节点键;示例为 aegis_t1_gate。此处不检查节点是否存在。
condition_typestring必填下表中的精确小写名称;未知名称报错。
condition_valueinteger / number / string必填类型由条件决定。数字转换不限制游戏数值范围,也不钳制为非负值。
identifierstringattribute 与 talent 必填;其他条件默认无属性或天赋的资源 ID。其他条件若提供此键,仍需能解析,但不会影响检查。
condition_typecondition_valueidentifier检查
level整数玩家等级不使用当前 IsekaiCore 等级达到门槛。
origin种族标识符字符串不使用当前种族 ID 与值相等。
class职业标识符字符串不使用当前职业 ID 与值相等。
profession技艺标识符字符串不使用当前技艺 ID 与值相等。
xp_amount整数经验数量不使用已储存的原版总经验达到门槛。
xp_level整数经验等级不使用当前原版经验等级达到门槛。
destiny整数命运值不使用当前命运值达到门槛。
adventurer_rank整数阶级值不使用IsekaiCore 的阶级检查接受该门槛。
attribute数值属性门槛必填属性 ID当前属性值达到门槛;实体没有该属性时失败。
talent整数天赋阶级必填天赋 ID当前天赋阶级达到门槛。

条件不会消耗经验、命运或属性。它限制新的解锁,不限制已解锁节点的持续持有。每个条目只包含一项条件;不能通过重复条目表达 AND 或 OR。

可习得能力奖励

将以下奖励条目放入 Puffish 技能定义的奖励列表。内置鉴定定义也使用此奖励:

{
  "type": "isekaiexpansion:learnable_power",
  "data": {
    "power": "isekaiskills:spassive_appraisal"
  }
}
字段类型默认值含义与限制
typestring必填奖励类型 isekaiexpansion:learnable_power。
dataobject必填本地奖励负载;内部未使用的键会被拒绝。
powerstring必填语法有效的 Origins 能力 ID;应用奖励时才解析能力是否存在。

Puffish Skills 统计共用同一定义的已解锁节点,并将数量传给奖励。本地桥接通过 isekaiexpansion:learnables 来源授予能力;可升级能力以该数量作为等级,受其声明的最大等级限制。数量为 0 时移除该来源。桥接会忽略不存在的能力类型,因此奖励解析成功仍可能没有授予任何能力。

主树主动能力使用 meta.max_level、meta.cooldown 与 meta.energy,不是旧的同名顶层字段。技能树运行时介绍当前主动能力的制作路径;其现有效果见命运轮环。

校验

输入条件加载器的行为
缺少必填字段、对象结构错误、未知条件名称、标识符语法错误记录该资源的错误并停止处理当前文件后续内容。此前已注册的条目保留,其他资源继续加载。
条件对象中的未知字段忽略;不会形成额外条件。
未知类别或节点接受为查询键;只有使用完全相同类别与节点组合时才会生效。
语法有效但未注册的身份 ID加载时不拒绝;身份相等检查通常无法匹配。
未知属性或天赋 ID加载时不检查。应使用已注册 ID;之后的解析由属性或天赋系统负责,不属于加载器校验保证。
负数或过大的数字门槛此处不检查范围,比较使用解析后的数值。整数条件应填写整数 JSON 数字。
跨资源重复定义类别与节点独立对象并存,查询从集合中取任意首个匹配项。没有条件合并或确定性覆盖。
空根对象接受,不贡献条件;重载仍会先清空旧注册表。
空文本或 JSON 语法错误不是有效的条件文档;不要用它禁用条目。

重载不具备事务性。错误的替换可能留下部分目录,而不是保留旧目录。奖励数据采用另一种处理方式:缺少 power、标识符无效或负载中有未使用的键时,解析器将错误返回给 Puffish 类别加载流程。

重载

服务器数据重载会重建条件注册表。客户端在加入时接收完整的本地条件目录;当前接线没有对应的重载广播。修改条件后重新连接,才能让客户端提示与资格判断同步到服务器的新数据。

服务器解锁时会重新检查条件,包括依赖提供的强制解锁请求。图形重载与已保存的解锁状态由 Puffish Skills 管理;图形加载成功不代表独立的本地条件目录已经发给在线客户端。

相关页面

命运轮环介绍内置图形。技能树运行时介绍检查、同步与生成器。天赋和身份与进阶介绍条件所检查的天赋与身份数值。