Skip to content

快速上手

上一页:安装 · 下一页:核心概念

5 分钟,把自带的 fire_wave 从"占位聊天提示"变成真有火焰特效、还能用物品右键放出来的技能。全程复制粘贴即可。

整条路是这样的:

text
①/qs reload  →  ②看懂 fire_wave  →  ③解锁  →  ④/qs cast 试放(看占位)  →  ⑤MM 写真技能  →  ⑥绑到物品

① 重载,让 QS 把示例释放出来

text
/qs reload

/qs reload 会:重载所有技能定义 / graph / 路由,并同步 MM 桥。首次启动其实已经释放了示例文件;这一步确保它们都被加载。


② 看一眼自带的 fire_wave(先读它)

打开 plugins/QinhSkills/skills/combat/fire_wave.yml。它是一切技能的模板,看懂这一个,其余示例都只是它的变体。去掉注释后核心就这么点:

yaml
id: fire_wave                   # 技能唯一 id,全小写;别处都用这个 id 引用它
display: "&c火焰波"             # 显示名

# ↓ 上半:生态信息(分类归档 + reload 时一致性校验)
meta:
  category: combat              # 固定五类之一:combat/movement/utility/combo/boss
  type: active                  # active 主动 / passive 被动
  rank: basic
trigger:
  primary: RIGHT_CLICK          # 主触发键,须出现在 graph 入口节点 triggers 里
state:
  required: IDLE                # 施放所需状态机状态
graph:
  entry: fire_wave              # 用哪张 graph(按 graph_id 找)
execution:
  mythic_skill: fire_wave       # 真正执行的 MythicMobs 技能名

# ↓ 下半:运行期实际读取的字段
type: active                    # 真正决定主动/被动的是这一行(loader 读它)
max_level: 5

cooldown:
  base: 3000                    # 冷却毫秒(3000 = 3 秒)

resource:
  mana: 15                      # 施放消耗(⚠ mana 将来归 QinhClass,这里是临时占位)

cast_mode: instant              # instant 瞬发 / channel 吟唱 / toggle 开关

variables:
  element: fire                 # 透传给 MM 的变量,MM 里用 <skill.var.element> 读

tags: [fire, aoe, combat]

💡 为什么有"两套"字段? 上半 meta/trigger/state/graph/execution生态信息(分类、reload 校验、连招用);下半 type/cooldown/resource/...运行期真正读取的字段。两边指向同一个技能,保持一致即可(详见 核心概念)。

它还配了一张 graph(graphs/combat/fire_wave.graph.yml),最简技能就一个入口节点:

yaml
graph_id: fire_wave             # 要和技能文件 graph.entry 同名
entry: fire_wave                # 入口节点名
nodes:
  fire_wave:                    # 入口节点(名字 = entry)
    skill_id: fire_wave
    mythic_skill: fire_wave     # = 技能文件的 execution.mythic_skill
    require_state: IDLE         # = 技能文件的 state.required
    triggers:                   # 命中这些键就走本节点
      - RIGHT_CLICK

③ 解锁它

QS 默认不是全解锁config.ymlunlock.default_all: false)。fire_wave 已经在 starter_skills 里,新玩家进服会自动有;手动给某人解锁:

text
/qs unlock fire_wave
/qs unlock fire_wave Steve     # 给指定玩家

config.ymlunlock.starter_skills 默认含 fire_wave / demo_slash / demo_slash_charged,新玩家自动解锁这几个。


④ 命令试放,先看占位

text
/qs cast fire_wave

如果你还没装 MM 或还没写同名技能,聊天栏会冒出:

text
[QinhSkills] fire_wave

这正是我们要的中间态。 它证明 QS 整条管线(输入→状态→图→计划→门控→执行→后处理)全通了,只差 MM 把它演出来。下一步就补这块。


⑤ 在 MythicMobs 里写同名真技能

新建 plugins/MythicMobs/skills/fire_wave.yml(文件名随意,技能 key 必须叫 fire_wave,与 QS 的 execution.mythic_skill 对上):

yaml
fire_wave:
  Skills:
  - particles{p=flame;amount=40;hSpread=1;vSpread=1} @Origin
  - sound{s=entity.blaze.shoot;v=1;p=1} @Self
  - damage{amount=6} @EntitiesInRadius{r=4}   # 伤害数值最终由属性插件结算口径

然后让 MM 加载它:

text
/mm reload

🔑 QS 不会覆盖你这个文件。 你一旦写了同名 fire_wave,QS 立刻改用你的真技能,占位消息消失。再 /qs cast fire_wave,这次就是真火焰了。

🖼️ [图片占位] /qs cast fire_wave 放出真实火焰粒子的截图 · 建议 assets/quickstart-fire-wave.png


⑥ 绑到 QI 物品上,右键放出来

最后让一把剑右键就能放 fire_wave。在 QI 物品的动作里加一个 qinhskills:cast handler(这是 QI 的处理器,把按键交给 QS):

yaml
# plugins/QinhItems/items/weapon.yml 里某把剑的动作段(节选)
  actions:
    triggers:
      right_click:                    # 右键触发
        trigger:
          atom: right_click
        refs:
          - handler: qinhskills:cast   # 交给 QS
            payload: "fire_wave"       # 放哪个技能

重载物品:

text
/qi reload
/qi give <你的剑ID>

右键挥剑 —— QS 判定能不能放(解锁 / 冷却 / 消耗…),通过则交 MM 放出火焰。

物品对接的完整写法(payload 用 JSON、按键组合、shift 触发等)见 对接 QinhItems


🔁 记住这个改动循环

三个文件、三条重载命令,各管各的,别记混:

你改了…用这条重载
QS 技能 / graph / 路由/qs reload改冷却、改目标、加连招
MM 技能表现/mm reload改粒子、改伤害、改位移
QI 物品 / 物品动作/qi reload改绑定、改触发键

⚠️ 改了哪侧就重载哪侧。例如你改了 MM 的火焰特效却只 /qs reload,当然不生效——那不是 QS 的活。


📋 你刚用到的命令(共 11 条可用命令)

命令权限说明
/qs reloadqinhskills.admin重载定义 / graph / 路由 + 同步 MM 桥
/qs list [玩家]qinhskills.use列出技能与解锁 / 等级 / 冷却状态
/qs info <技能>qinhskills.use技能定义详情
/qs unlock <技能> [玩家]qinhskills.admin解锁
/qs lock <技能> [玩家]qinhskills.admin锁定
/qs level <技能> <等级> [玩家]qinhskills.admin设等级
/qs slot <槽位> <技能|clear> [玩家]qinhskills.admin设 / 清技能槽
/qs cast <技能>qinhskills.cast命令施放(测试用)
/qs silence <秒> [玩家]qinhskills.admin封锁 N 秒内放不出任何技能(0=解除)
/qs protocolqinhskills.use运行时诊断
/qs bridgeqinhskills.useMM 桥诊断

别名:/qskills/qskill。权限:qinhskills.admin(管理类)、qinhskills.use(基础 / list / info / protocol / bridge)、qinhskills.cast(cast)、qinhskills.gui

📌 /qs test/qs gen当前未对外开放,请勿使用。


继续阅读