技能定义
技能文件位于 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。 |
tags | 技能标签列表,用于装备数量限制和分类筛选,配合 config.yml > skill_tags.equip_limits 生效。 |
tab_tags | GUI 页签标签列表。 |
required_skills | 装备此技能前必须已经装备的技能 ID 列表,别名 dependencies。默认空列表。 |
conflicting_skills | 不能与此技能同时装备的技能 ID 列表,别名 conflicts。默认空列表。 |
show_in_slots | 是否允许出现在玩家主动技能槽选择列表中。装备强制触发器技能常设为 false。 |
ui_category | GUI 分类。 |
sort_order | GUI 排序。 |
condition | 技能释放条件块,使用 type、entries 和 required_count。 |
技能来源与标签上限
以下两项在 plugins/EmakiSkills/config.yml 配置,影响技能如何被识别和能装备多少个。
装备技能来源开关
yaml
skill_sources:
read_lore_skills: true
read_pdc_skills: true
require_lore_pdc_match: false| 键 | 默认值 | 说明 |
|---|---|---|
read_lore_skills | true | 是否从装备 Lore 读取技能。 |
read_pdc_skills | true | 是否从装备 PDC 读取技能。 |
require_lore_pdc_match | false | 严格模式。开启后只保留同一物品、同一槽位下 Lore 与 PDC 的交集,两边不一致的技能不生效。 |
标签装备数量限制
技能定义里的 tags 命中这里的标签时,玩家最多只能同时装备对应数量:
yaml
skill_tags:
equip_limits:
ultimate: 1
mobility: 2即 tags 含 ultimate 的技能最多装备 1 个,含 mobility 的最多装备 2 个。未列出的标签不受限制。
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
actions:
cast:
- 'damage amount=%fire_damage%'
hit:
- 'ignite ticks=60'资源消耗
resource_costs 条目通常包含:
| 字段 | 说明 |
|---|---|
type | ea-resource、attribute-check、local-resource、auraskills-mana、mythiclib-mana。 |
target_id | 资源或属性 ID。 |
amount | 数量。 |
operation | consume 消耗,require 只检查。 |
failure_message | 失败提示。 |
auraskills-mana 需要安装 AuraSkills,mythiclib-mana 需要安装 MythicLib 或 MMOCore;对应插件不存在时该条目视为不可用。
升级配置
| 字段 | 说明 |
|---|---|
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>法力不足。'