技能配置
技能文件放在 skills/ 目录中。每个 yml 文件可以写多个技能,顶层节点就是技能 ID,菜单、指令和变量都会使用这个 ID。
基础结构
yaml
示例主动技能:
name: "&c烈焰斩"
type: active
texture: "技能图标.png"
simple-description:
- "&7造成一次火焰伤害"
max-level: 10
skill-level:
1:
cooldown: 3000
mana: 20| 节点 | 说明 |
|---|---|
name | 技能显示名。 |
type | 技能类型,active 为主动技能,passive 为被动技能。 |
texture | 技能图标路径,供 DragonCore 界面使用。 |
simple-description | 技能列表中的简短描述。 |
max-level | 基础最高等级。 |
extra-level-placeholder | 额外等级来源,可接 PAPI 或属性值。 |
show-condition | 技能显示条件。 |
skill-level | 各等级的详细配置。 |
主动技能触发方式
yaml
active-trigger:
trigger: instant| 触发方式 | 说明 |
|---|---|
instant | 瞬间释放。 |
tap_cast | 点击后读条,读条完成释放。 |
hold_cast | 按住时读条,读条过程中可触发多次。 |
hold_release_cast | 按住蓄力,松开时释放。 |
读条与打断
| 节点 | 说明 |
|---|---|
cast-time-tick | 读条时间,单位为 tick,支持变量和公式。 |
cast-trigger-count | 读条期间触发次数。 |
cooldown-on-cast-start | 是否在开始读条时进入冷却。 |
interrupt-when | 打断条件,可配置 move、attack、damaged。 |
cast-condition | 释放条件,不满足时停止释放并提示失败消息。 |
cast-condition 可使用 {player}、{skill_id}、{skill_name}、{skill_level}、{skill_base_level}、{mana_now}、{mana_max} 等变量,也可以组合 PAPI 表达式。
事件脚本
主动技能和被动技能都可以配置事件脚本。常见事件如下:
| 事件 | 触发时机 |
|---|---|
on-cast-start | 开始释放时。 |
on-cast-success | 成功释放时。 |
on-cast-interrupt | 读条被打断时。 |
on-cast-trigger | 读条过程触发时。 |
on-charge-recover | 充能恢复时。 |
on-mana-consume | 消耗蓝量时。 |
常用脚本动作:
| 动作 | 说明 |
|---|---|
玩家消息(...) | 给释放者发送消息。 |
范围消息(...) | 给范围内玩家发送消息。 |
音效(...) | 播放声音。 |
MM技能('技能ID', '参数=值') | 触发 MythicMobs 技能。 |
减少冷却('技能ID','1') | 减少指定技能冷却。 |
增加冷却('技能ID','1') | 增加指定技能冷却。 |
减少蓝量('10') | 扣除蓝量。 |
增加蓝量('10') | 恢复蓝量。 |
执行指令('console','指令') | 以指定身份执行指令。 |
冷却、蓝量与充能
| 节点 | 说明 |
|---|---|
max-stack | 最大充能层数。 |
cooldown | 冷却时间,单位为毫秒。 |
mana | 蓝量消耗。 |
gcd | 全局冷却,单位为毫秒。 |
冷却、蓝耗和读条最终值会受到玩家冷却缩减、蓝耗缩减和吟唱加速影响。
升级条件
upgrade-list 用来设置升级消耗和前置条件。
| 写法 | 说明 |
|---|---|
papi:{表达式}|显示文本 | PAPI 条件。 |
item:{物品ID#数量}|显示文本 | 扣除指定物品。 |
eco:{数量}|显示文本 | 扣除金币。 |
point:{数量}|显示文本 | 扣除点券。 |
skill-point:{数量}|显示文本 | 扣除技能点。 |
示例:
yaml
upgrade-list:
- "skill-point:{1}|&b技能点 x1"
- "eco:{5000}|&e金币 x5000"描述变量
技能描述中可使用以下变量:
| 变量 | 说明 |
|---|---|
{level_result} | 最终等级。 |
{level_now} | 当前基础等级。 |
{level_extra} | 额外等级。 |
{level_max} | 最大等级。 |
{result_cooldown} | 最终冷却。 |
{origin_cooldown} | 原始冷却。 |
{result_mana} | 最终蓝耗。 |
{origin_mana} | 原始蓝耗。 |
{upgrade_condition} | 当前升级条件显示文本。 |
被动技能
yaml
示例被动技能:
type: passive
require-bind-slot: false
passive-trigger:
events:
- attack
- tick:5| 节点 | 说明 |
|---|---|
require-bind-slot | 是否必须绑定到技能栏才生效。主动技能固定需要绑定。 |
passive-trigger.events | 被动触发事件。 |
condition-list | 被动触发条件。 |
chance | 触发概率,1.0 为 100%。 |
cast-condition | 成功触发前的额外判断。 |
常见被动事件:
| 事件 | 说明 |
|---|---|
attack | 玩家造成攻击时。 |
damaged | 玩家受到伤害时。 |
kill | 玩家击杀目标时。 |
cast_skill:all | 玩家释放任意技能时。 |
cast_skill:技能ID | 玩家释放指定技能时。 |
tick:5 | 每 5 tick 检查一次。 |