奖励.yml
奖励.yml 负责副本通关结算。
这一页管四件事:
- 每个人固定拿到什么
- 副本自己的掉落池抽什么
- 多人队伍的掉落分配
- 通关后还要补什么脚本奖励
结算顺序
源码当前的结算顺序是固定的:
- 先发
固定奖励 - 再按
分配模式处理掉落池 - 最后执行
奖励脚本
奖励脚本 会对当前副本里在线玩家逐个执行,不是整队只跑一次。
一份能直接改的示例
yaml
固定奖励:
金币: 1000
经验: 300
物品:
- 物品ID: 'mc:DIAMOND'
数量: 3
- 物品ID: 'ni:副本宝箱'
数量: 1
命令:
- 'lp user {player} permission set dungeon.clear.example true'
掉落池:
普通池:
抽取次数: 2
不重复: false
物品列表:
- 物品ID: 'mc:GOLD_INGOT'
数量: 8
权重: 50
- 物品ID: 'mc:DIAMOND'
数量: 1
权重: 10
稀有池:
条件: '@dungeon.elapsed <= 600'
抽取次数: 1
物品列表:
- 物品ID: 'ni:竞速奖励箱'
数量: 1
权重: 1
保底:
计数上限: 20
保底物品: 'ni:竞速奖励箱'
分配模式: 每人独立
奖励脚本: |
消息.发送("&6通关奖励已发放")顶层字段
| 字段 | 说明 |
|---|---|
固定奖励 | 每个在线结算玩家都能拿到的保底奖励 |
掉落池 | 这个副本专属的掉落池 |
分配模式 | 多人掉落分配方式 |
奖励脚本 | 结构化奖励发完后,对每名在线玩家再执行一次脚本 |
固定奖励
固定奖励 当前支持这几种内容:
| 字段 | 说明 |
|---|---|
金币 | 发经济插件货币 |
经验 | 发原版经验 |
物品 | 物品列表 |
命令 | 控制台命令列表,支持 {player} |
物品 列表字段
| 字段 | 说明 |
|---|---|
物品ID | 物品引用,支持原版和接入物品源 |
数量 | 发放数量 |
固定奖励和分配模式无关。
只要玩家在结算时在线,固定奖励就会照常发到每个人头上。
掉落池
奖励.yml 里的 掉落池,和全局掉落方案用的是同一套池结构。
也就是说,这里的池同样支持:
抽取次数不重复条件物品列表保底
池里单个物品条目的字段,也和全局掉落方案保持一致。
详细字段说明可以直接看 全局掉落方案。
分配模式
当前实际可用的分配模式有三种:
每人独立
每名在线玩家各自抽自己的一份掉落池。
适合:
- 日常本
- 刷材料本
- 不想抢奖励的多人本
这是最稳的一种模式,也是默认模式。
轮流分配
掉落池结果按玩家顺序轮流发下去。
固定奖励仍然是每个人都有,只有掉落池部分走轮流。
适合:
- 小队合作本
- 想减少重复掉落、又不想手动分配的副本
队伍共享
源码当前会把队伍共享掉落先抽出来,暂存在待分配列表里。
仓库里已经有分配 GUI 类,但当前通关结算流程没有自动把这个 GUI 打开出来。也就是说,普通配置下它不会像 每人独立 和 轮流分配 那样直接完整走完。
正式服现阶段更建议用:
每人独立轮流分配
奖励脚本
奖励脚本 的执行时机在结构化奖励之后。
它的特点有两个:
- 是对在线玩家逐个执行
- 有玩家上下文,适合发消息、补变量、记成就、加外部仓库物品
这类内容适合放在奖励脚本里:
- 个人提示
- 个人成就变量
- 通关次数统计
- 需要玩家对象的外部发奖逻辑
这类内容更适合放在结构化奖励里:
- 稳定保底物品
- 通关金币
- 基础经验
- 常规掉落池随机
在线结算规则
源码当前发奖时只处理“结算那一刻还在线的玩家”。
这会影响三部分:
- 固定奖励
- 掉落池奖励
- 奖励脚本
如果有人在通关结算前已经离线,这一轮不会自动把这些奖励补发给他。
多人本做奖励设计时,最好先把这个前提考虑进去。
和全局掉落方案的关系
奖励.yml 适合放这个副本自己独有的掉落。
如果你服里有很多副本共用一套掉落池,更适合写进 掉落方案/。
源码当前允许两者同时存在:
- 全局掉落方案照常生效
奖励.yml里的副本专属掉落池也会一起生效
配置建议
- 稳定奖励放
固定奖励,随机惊喜放掉落池。 - 多人日常本优先用
每人独立。 - 想控制总掉落量,又不想手动发,就用
轮流分配。 - 复杂逻辑奖励放
奖励脚本,别把所有发奖都塞进命令列表。 - 共享分配模式在当前版本先别直接当正式配置主力。