技能定义
技能文件位于 skills/*.yml。EmakiSkills 负责定义技能的管理层信息,技能效果可通过原生脚本系统或 MythicMobs 执行。
字段说明
| 字段 | 说明 |
|---|---|
id | 技能唯一 ID。 |
enabled | 是否启用。 |
display_name | 显示名。 |
description | 描述。 |
icon_material | GUI 图标材质。 |
mythic_skill | 对应 MythicMobs 技能 ID(mythic/hybrid 模式使用)。 |
trigger_type | active 或 passive。 |
passive_triggers | 被动触发器列表(详见触发器文档)。 |
skill_parameters | 传递给技能的参数(详见参数类型文档)。 |
variables | 运行时变量块,可在脚本动作中通过 {变量名} 引用。 |
script | 原生脚本系统配置块(详见脚本系统文档)。 |
upgrade | 升级规则。 |
cooldown_ticks | 冷却,单位 tick。 |
global_cooldown_ticks | 全局冷却,单位 tick。 |
resource_costs | 资源消耗或检查。 |
lore_aliases | 从 Lore 识别技能时使用的别名。 |
pdc_skill_id | 从 PDC 识别技能时使用的 ID。 |
ui_category | GUI 分类。 |
sort_order | GUI 排序。 |
conditions / condition_type | 技能释放条件。 |
variables 字段
variables 定义运行时变量,支持 expression/string/boolean 等类型,可引用 %level%、%has_target%、%trigger_id% 等上下文变量:
yaml
variables:
fire_damage:
type: expression
value: "10 + %level% * 5"
is_enhanced:
type: boolean
value: "%level% >= 5"
battle_cry:
type: random_text
values:
- "<red>燃烧吧!"
- "<red>烈焰之力!"
variables与skill_parameters的区别:skill_parameters用于升级系统和 MythicMobs 参数传递,variables用于原生脚本系统的运行时计算。
script 字段
原生脚本系统配置块,详见脚本系统文档。简要结构:
yaml
script:
mode: native # native / mythic / hybrid
stop_on_failure: true
cast:
actions:
- 'damage amount=%fire_damage%'
hit:
actions:
- 'ignite ticks=60'资源消耗
resource_costs 条目通常包含:
| 字段 | 说明 |
|---|---|
type | ea-resource、attribute-check、local-resource。 |
target_id | 资源或属性 ID。 |
amount | 数量。 |
operation | consume 消耗,require 只检查。 |
failure_message | 失败提示。 |
升级配置
| 字段 | 说明 |
|---|---|
upgrade.max_level | 最大等级。 |
upgrade.gui_template | 升级 GUI 模板路径(默认 upgrade/default)。 |
upgrade.failure_penalty | 升级失败惩罚:none(无惩罚)或 downgrade(降级)。 |
upgrade.success_rates | 按目标等级配置成功率 Map(如 5: 90.0)。 |
upgrade.economy.enabled | 是否启用经济消耗。 |
upgrade.economy.currencies | 货币列表,每项含 id、base_cost、cost_formula、display_name。 |
upgrade.levels.<n>.materials | 该等级所需物品材料列表。 |
upgrade.levels.<n>.economy | 该等级覆盖经济配置。 |
upgrade.levels.<n>.parameters | 该等级覆盖技能参数值。 |
upgrade.levels.<n>.success_rate | 该等级覆盖成功率。 |
upgrade.levels.<n>.actions.success | 升级成功后执行的动作列表。 |
upgrade.levels.<n>.actions.failure | 升级失败后执行的动作列表。 |
cost_formula 支持变量:%base_cost%、%level%、%target_level%。
最小示例
yaml
id: fireball
enabled: true
display_name: '<red>火球术'
description:
- '<gray>向前方释放一枚火球。'
icon_material: FIRE_CHARGE
mythic_skill: EmakiFireball
trigger_type: active
cooldown_ticks: 100
global_cooldown_ticks: 20
resource_costs:
- type: ea-resource
target_id: mana
amount: 20
operation: consume
failure_message: '<red>法力不足。'