简体中文
命令与权限
EmakiSkills 的命令和权限节点如下, 包括玩家用的功能命令, 管理员用的管理命令, 以及每条命令要配什么权限
EmakiSkills 的主命令是 /emakiskills, 别名 /eskills. 玩家用它打开技能界面, 切换施法模式和升级技能; 管理员用它管理等级, 授予或收回技能, 清空槽位, 检查档案, 重新扫描技能来源和重载配置
命令注册
| 项目 | 值 |
|---|---|
| 主命令 | /emakiskills |
| 别名 | /eskills |
| 命令注册权限 | emakiskills.use |
| 命令提示 | /eskills 或 /eskills help |
记住一点: 整条命令都挂在 emakiskills.use 权限下. 缺了这个权限, 连 help 在内的所有子命令都执行不了, 子命令里那个 emakiskills.admin 的备用权限判断也轮不到. 这个权限默认是 true, 所以实际能拦住人的, 主要是服主在权限插件里显式取消 (取反) 的情况
命令列表
| 命令 | 权限 | 说明 |
|---|---|---|
/eskills help | 命令注册权限 | 输出命令帮助列表. 不带参数直接执行 /eskills 也会显示同样的内容. help 分支自己不再额外检查权限 |
/eskills gui | emakiskills.use 或 emakiskills.admin | 打开技能 GUI. 控制台这类非玩家来执行会提示仅限玩家 |
/eskills castmode <on|off|toggle> | emakiskills.use 或 emakiskills.admin | 开启, 关闭或切换施法模式 |
/eskills upgrade <skill> | emakiskills.use 或 emakiskills.admin | 尝试升级指定技能, 反馈文案来自 upgrade.* |
/eskills level get <player> <skill> | emakiskills.admin | 查看某个玩家某个技能的等级 |
/eskills level set <player> <skill> <value> | emakiskills.admin | 设置某个玩家某个技能的等级 |
/eskills level add <player> <skill> <value> | emakiskills.admin | 增加某个玩家某个技能的等级 |
/eskills grant <player> <skill> | emakiskills.admin | 把技能写进玩家的手动已学集合, 并存到 data/<uuid>.yml 的 manual_skill_ids. 目标技能 id 没有定义 (YAML 或外部注册) 时回复 skill.not_found |
/eskills revoke <player> <skill> | emakiskills.admin | 从玩家的手动已学集合移除技能并保存. 目标技能 id 没有定义时同样回复 skill.not_found |
/eskills list [player] | emakiskills.use 或 emakiskills.admin | 只读列出玩家已学的技能和槽位绑定, 省略玩家时看自己 |
/eskills reset <player> | emakiskills.admin | 清空玩家的手动已学技能, 槽位绑定不受影响 |
/eskills clearslot <player> <slot> | emakiskills.admin | 清空玩家指定技能槽的绑定 |
/eskills inspect [player] | emakiskills.use 或 emakiskills.admin | 查看玩家的技能档案和已绑定的触发器槽位 |
/eskills resync [player] | emakiskills.admin | 校验并重新同步玩家的技能槽绑定, 省略玩家时可以作用在自己身上 |
/eskills debug [status|on|off|player|module] [...] | emakiskills.debug 或 emakiskills.admin | 输出或切换调试状态. 技能模块有 cast, unlock, upgrade, slot 四个 |
/eskills reload | emakiskills.reload 或 emakiskills.admin | 异步重载技能, 资源, GUI, 语言和主配置, 并输出耗时 |
你输错子命令时, 会收到 general.unknown_command 的回复. level 和 clearslot 还会检查参数个数以及整数 value/slot 是否合法, 不合法就回复 general.invalid_args
参数补全
| 位置 | 补全内容 |
|---|---|
| 第 1 参数 | 补出十四个子命令本身 |
castmode 第 2 参数 | 补出 on, off, toggle |
upgrade 第 2 参数 | 补出玩家已解锁, 已开启升级且还没满级的技能 id; 控制台执行时补出全部技能 id |
level 第 2 参数 | 补出 get, set, add |
clearslot / grant / revoke / list / reset / inspect / resync 第 2 参数, level 第 3 参数 | 补出在线玩家名 |
grant / revoke 第 3 参数 | 补出全部技能 id |
clearslot 第 3 参数 | 补出槽位 0~8 |
level 第 4 参数 | 补出全部技能 id |
level set/add 第 5 参数 | 补出 1, 2, 5, 10 |
权限节点
| 权限 | 默认 | 说明 |
|---|---|---|
emakiskills.use | true | 允许使用基础技能功能, 打开 GUI, 切换施法模式和释放技能; 同时也是命令的注册权限 |
emakiskills.reload | op | 允许重载配置 |
emakiskills.admin | op | 允许管理技能等级, 清空槽位, 重新同步, 也作为基础功能的管理员备用权限 |
emakiskills.debug | op | 允许输出调试信息 |
先用哪个命令
| 场景 | 先执行 | 目的 |
|---|---|---|
| 玩家要查看或绑定技能 | /eskills gui | 打开技能界面 |
| 主动技能无法释放 | /eskills inspect [player] | 看看玩家档案有没有加载, 以及已绑定的触发器槽位现在是什么状态 |
| 玩家换装备后技能没刷新 | /eskills resync <player> | 重新扫描一遍技能来源 |
| 技能等级异常 | /eskills level get <player> <skill> | 确认玩家档案里真实的等级是多少 |
| 槽位绑定到已删除技能 | /eskills clearslot <player> <slot> | 清理指定的技能槽 |
| 要直接给玩家授予或收回技能 | /eskills grant / /eskills revoke | 写入或移除玩家的手动已学技能 |
| 改了技能, 资源或 GUI | /eskills reload | 重载运行配置 |
常见操作
打开技能界面
text
/eskills gui打开技能界面后, 你能看到已解锁的技能, 技能等级, 槽位绑定, 升级入口和触发器选择入口
切换施法模式
text
/eskills castmode toggle
/eskills castmode on
/eskills castmode off施法模式决定主动技能能不能触发. 默认配置里你按 F 键就能进入或退出施法模式; 玩家重登后要不要恢复上次的状态, 由 cast_mode.restore_last_state_on_join 控制
管理技能等级
text
/eskills level get Steve fireball
/eskills level set Steve fireball 3
/eskills level add Steve fireball 1等级会直接影响技能参数, 资源消耗, 脚本变量和升级判断. 等级会被限制在 [1, max_level] 之间; 没开升级的技能最大等级就是 1. 改完后用 inspect 看一眼, 确认玩家档案里的等级已经更新
授予与移除技能
text
/eskills grant Steve fireball
/eskills revoke Steve fireballgrant 把技能写进玩家的手动已学集合, revoke 再把它从集合里拿掉. 两条命令都要求目标技能 id 已经定义 (skills/ 里的 YAML 技能或外部注册的技能), 否则回复 skill.not_found. 结果会保存到 data/<uuid>.yml 的 manual_skill_ids
查看玩家已学技能
text
/eskills list
/eskills list Steve这条命令只列出玩家已学 (手动解锁) 的技能和槽位绑定, 只读不改; 省略玩家时看自己
重置手动已学技能
text
/eskills reset Steve这条命令只清空玩家的手动已学技能, 只影响 manual_skill_ids, 槽位绑定不受影响; 要清理槽位请改用 clearslot
清空技能槽
text
/eskills clearslot Steve 1碰到下面这些情况, 你可以用这条命令清理指定的槽位: 玩家的槽位绑到了已删除的技能, 触发器冲突, 或 GUI 里怎么都解绑不了. 槽位不合法时状态服务会拒绝并返回失败
重新扫描技能来源
text
/eskills resync Steve下面几种情况适合用它:
- 玩家换了装备, 但技能来源没有马上刷新
- EmakiItem 套装或物品效果发生了变化
- 外部模块发放或移除了技能来源
- 重载配置后要刷新在线玩家状态
输出调试信息
text
/eskills debug
/eskills debug status
/eskills debug on
/eskills debug off
/eskills debug player Steve
/eskills debug module cast| 子命令 | 说明 |
|---|---|
status | 输出当前调试状态和正在跟踪的玩家; debug 不带参数时也会输出状态, 认不出的子命令也回落到状态输出 |
on / off | 打开或关闭全部调试输出 |
player <玩家> | 跟踪指定玩家的调试输出 |
module <模块> | 切换单个调试模块. 技能模块有 cast, unlock, upgrade, slot; 共享模块有 action, item_operation, variables, placeholder, gui, chat_input |
注意: 命令帮助里写的是 debug <status|player|module|all> [...], 实际能用的子命令以上面这节为准
排查建议
- 技能不显示: 检查技能定义是否加载, 你有没有技能来源, 技能等级是否大于 0
- 技能无法释放: 检查施法模式, 触发器绑定, 冷却, 全局延迟, 资源消耗和条件
- 被动技能不触发: 检查
trigger_type: passive,passive_triggers和全局被动触发器是否启用 - GUI 绑定失败: 检查触发器是否禁用, 是否与已有触发器冲突, 槽位编号是否有效
- MythicMobs 技能无效果: 检查 MythicMobs 是否安装, 技能 ID 是否正确, 脚本模式是否为
mythic或hybrid - 玩家看不到失败原因: 文案取自
lang/<language>.yml; 确认该语言文件里有对应键, 不要直接去改源码里的 reasonKey