Skip to content

EmakiSkills ​

EmakiSkills (技能模块) 覆盖这些内容: 技能怎么解锁, 怎么装进技能槽, 什么时候才放得出来, 要花哪些资源, 怎么升级, 你的数据存在哪里

技能放出来之后由谁执行效果, 取决于 script.mode 这个开关: native 用插件自带的脚本系统 (script_engine.default_mode 默认就是 native, 不需要任何外部插件), mythic 交给 MythicMobs 执行, hybrid 两者都执行

基本信息 ​

项目值
模块版本2.8.8
Jar 名EmakiSkills-2.8.8.jar
Maven 坐标emaki.jiuwu.craft:emaki-skills:2.8.8
API 坐标emaki.jiuwu.craft:emaki-skills-api:2.8.7
平台Paper 26.1 (api-version: "26.1", folia-supported: true)
主命令/emakiskills
别名/eskills
硬依赖EmakiCoreLib
软依赖MythicMobs, EmakiAttribute, PlaceholderAPI, AuraSkills, MythicLib, MMOCore
主要权限emakiskills.use, emakiskills.reload, emakiskills.admin, emakiskills.debug

模块分工 ​

模块 / 插件职责
EmakiSkills管技能本身, 技能定义, 技能槽, 触发器, 冷却, 资源, 升级和玩家数据都由它负责
MythicMobs做出真正的技能效果, 例如伤害, 粒子, 召唤, 位移
EmakiAttribute提供属性检查, 资源检查和资源消耗
EmakiItem让物品可以带技能解锁, 触发器或套装技能
PlaceholderAPI把技能状态, 冷却, 等级等信息展示出来

默认配置目录 ​

text
plugins/EmakiSkills/
├── config.yml
├── skills/
├── resources/
├── gui/
│   ├── skills_gui.yml
│   ├── trigger_select_gui.yml
│   └── upgrade_gui.yml
├── data/
└── lang/

config.yml 顶层键 ​

你打开 config.yml 会发现顶层很短: 只有版本, 语言与默认数据释放三个开关, 外加一个 slots 块, 其余的键分散在下面几个功能页里

yaml
# version 由资源同步维护, 不是功能开关
version: "2.8.8"
# 语言文件名, 对应 lang/<language>.yml
language: "zh_CN"
# 是否在启动时释放插件内置的默认技能数据
release_default_data: true

slots:
  # 默认技能槽数量; 小于 1 的值会按 1 处理
  default_count: 3
字段类型必填默认值取值范围说明
versionstring否"2.8.8"—资源版本号, 由资源同步流程维护, 不参与功能开关
languagestring否"zh_CN"lang/ 下的文件名 (不含 .yml)加载 lang/<language>.yml 作为玩家可见文案的来源
release_default_databoolean否truetrue / false启动时是否释放插件内置的默认技能数据 (示例技能等)
slots.default_countinteger否3≥ 1, 小于 1 按 1玩家默认有几个技能槽, 同时决定 ActionBar 的 %slot_1%~%slot_n% 数量和占位符 %emakiskills_slot_count% 的基准值

键的归属:

键记录页面
skill_sources.*, skill_tags.equip_limits技能定义
triggers, passive_triggers, trigger_settings, passive_trigger_settings, cast_mode触发器
actionbar, cast_timing技能状态栏
script_engine原生脚本系统

配置预检

加载时会检查 config.yml, skills/, resources/, gui/ 是否存在并可解析, 并对脚本动作行做编译期校验. skill_sources 两侧都关闭, 或 require_lore_pdc_match 开启却只开启了一侧时, 会给出警告

功能页面 ​

页面内容
命令与权限打开界面, 切换施法模式, 授予或收回技能, 管理等级, 清空槽位和调试用的命令
技能定义主动技能与被动技能怎么写, 资源消耗, 升级规则和各项配置字段
触发器主动触发器, 被动触发器, 冲突处理和连击配置
变量类型变量有哪些类型, 字段怎么写, 运行时怎么解析
原生脚本系统脚本模式, 阶段, 动作, 限制和目标解析
技能状态栏Action Bar 模板, 刷新间隔和施法模式提示
占位符PlaceholderAPI 能输出的占位符
CoreLib 动作技能释放, 等级, 槽位, 冷却和手动解锁这几类动作
API技能 API, 外部技能来源和外部技能定义注册
事件 API技能流程里触发的 Bukkit 事件和拦截点

技能类型 ​

主动技能 ​

主动技能要玩家亲手放出来, 可以用技能槽, 命令, GUI 或施法模式几种方式. 你通常要配置这些:

  • MythicMobs 技能 ID
  • 冷却时间
  • 全局冷却
  • 资源消耗
  • 条件检查
  • 技能等级和参数

被动技能 ​

被动技能不用玩家动手, 游戏里的事件会自动触发它, 例如攻击, 受击, 击杀, 移动, 格挡等. 你只需要配好触发器和冲突处理方式

施法模式 ​

施法模式是一个开关: 玩家只有在特定状态下才放得出技能. 服务端看不到客户端 G 键这类纯本地按键, 所以技能触发用的都是服务端看得到的行为, 例如命令, GUI, F 键交换手, 交互事件等

资源系统 ​

技能用到的资源有好几种, 既可以真的扣掉, 也可以只检查够不够:

  • ea-resource: 通过 EmakiAttribute Bridge 消耗 Attribute 资源
  • attribute-check: 检查某个属性是否达到要求. 别名 ea-attribute-check
  • local-resource: 使用 EmakiSkills 本地资源定义
  • auraskills-mana: 使用 AuraSkills 的法力值. 别名 aura-skills-mana, aura-mana
  • mythiclib-mana: 使用 MythicLib / MMOCore 的法力值. 别名 mmocore-mana, mythic-mana

典型释放流程 ​

  1. 玩家触发主动或被动技能
  2. Skills 检查玩家是否拥有该技能
  3. 检查技能等级, 槽位, 触发器和条件
  4. 检查冷却和全局冷却
  5. 检查并消耗资源
  6. 按 script.mode 执行内置脚本动作, MythicMobs 技能, 或两者
  7. 写入冷却, 统计或升级进度
  8. 向玩家发送反馈

放技能失败时, 玩家看到的提示取自 lang/<language>.yml 里的 cast.* 等文案键; 插件不会把内部的 reasonKey 原样丢给玩家