奖励配置
QueDP 提供两种奖励配置文件:rewards.yml(直接发放奖励)和 chest_rewards.yml(箱子UI选择奖励)。
rewards.yml
Section titled “rewards.yml”rewards: 通关奖励: items: - type: item id: DIAMOND amount: 5 - type: mythic_item # MythicMobs 物品 id: legendary_sword amount: 1 money: 1000 # 金钱,需要 Vault(键名 money 或 金钱) exp: 500 # 经验(键名 exp 或 经验) commands: # 控制台命令,%player% 替换为玩家名 - "give %player% golden_apple 3"rewards: 随机宝箱: type: random options: 普通: weight: 70 items: - type: item id: IRON_INGOT amount: 10 稀有: weight: 25 items: - type: item id: DIAMOND amount: 3 传说: weight: 5 items: - type: mythic_item id: epic_weapon amount: 1 money: 5000| 类型 | 说明 |
|---|---|
item / minecraft | 原版 Minecraft 物品(Material 名称) |
mythic_item / mm_item | MythicMobs 自定义物品 |
随机奖励可以加一段 保底:抽了 N 次没出指定项,第 N 次必出。计数按玩家保存,跨副本、跨重启保留。
rewards: 随机宝箱: type: random 保底: 次数: 30 # 第 30 次必出 必出: 传说 # options 里的某个 key options: 普通: { weight: 70, items: [{ type: item, id: IRON_INGOT, amount: 10 }] } 传说: { weight: 5, items: [{ type: mythic_item, id: epic_weapon, amount: 1 }] }| 键(中/英) | 必填 | 默认 | 说明 |
|---|---|---|---|
次数 / hard | 是 | — | 硬保底次数 |
必出 / target | 是 | — | options 里的 key,不存在会在加载时 warn 并忽略保底 |
软保底起始 / soft_from | 否 | 0 | 从第几次开始提权,0 = 不启用 |
软保底增幅 / soft_step | 否 | 2.0 | 从起始次数起,每次未出目标项权重乘以该值 |
计数域 / scope | 否 | 副本 | 副本 = 按 副本ID:奖励名 计数;全局 = 同名奖励跨副本共用 |
抽中必出项时计数清零。没有 保底 段的随机奖励走纯权重随机,和以前一样。
编辑器里:/dg edit 主界面 → 掉落保底,列出本副本的随机奖励,开关保底、调次数、从选项里点选必出项,直接写回 rewards.yml(注释会丢,其余内容不动)。
相关:
| 位置 | 说明 |
|---|---|
dungeon.getPity(player, '随机宝箱') | 脚本查询当前未出次数 |
%quedp_pity_随机宝箱% | 当前未出次数 |
%quedp_pity_left_随机宝箱% | 距硬保底还差几次 |
/dg admin pity <玩家> | 查看全部计数 |
/dg admin pity <玩家> reset [计数键] | 重置,不带键清全部 |
多个副本共用一套奖励:把奖励写进 plugins/QueDP/loot/ 下的任意 yml(目录不存在就没有这个功能,不会自动创建):
# plugins/QueDP/loot/通用材料.ymlid: 通用材料 # 可省略,默认用文件名
奖励: 材料包: type: random 保底: { 次数: 40, 必出: 稀有材料 } options: 普通材料: { weight: 80, items: [{ type: item, id: IRON_INGOT, amount: 8 }] } 稀有材料: { weight: 20, items: [{ type: item, id: DIAMOND, amount: 2 }] }副本 rewards.yml 顶层加一行引用,库里的奖励名就能直接被 action.grant_reward 和箱子 UI 使用:
引用: [通用材料]
奖励: 通关奖励: money: 1000- 副本自己定义的同名奖励优先于库,加载时打一条 info
action.grant_reward('@all', '通用材料:材料包')可以显式指定库- 引用了不存在的库会在加载时 warn 并指出副本名;库不能再引用库
- 库里随机奖励的保底默认按「引用它的副本」分别计数,想跨副本共用写
计数域: 全局 /dg admin loot list查看已加载的库,/dg admin loot reload只重载库
chest_rewards.yml
Section titled “chest_rewards.yml”箱子奖励以 GUI 界面的形式让玩家选择奖励。
chests: 普通宝箱: title: "&6&l✦ 普通宝箱 ✦" rows: 3 # GUI 行数(1-6,默认 3) mode: single # single = 只能选一个(默认 single) max_select: 1 # multiple 模式下可选数量上限(默认 1,single/all 忽略) background: BLACK_STAINED_GLASS_PANE # 背景填充材质(可选) options: - slot: 11 icon: DIAMOND name: "&b钻石奖励" lore: - "&7获得 5 颗钻石" reward: 钻石奖励 # 关联 rewards.yml 中的奖励名 - slot: 13 icon: GOLD_INGOT name: "&6金币奖励" lore: - "&7获得 1000 金币" reward: 金币奖励 - slot: 15 icon: EXPERIENCE_BOTTLE name: "&a经验奖励" lore: - "&7获得 500 经验" reward: 经验奖励| 模式 | 说明 |
|---|---|
single | 只能选择一个选项(默认) |
multiple | 可以选择多个,数量受 max_select 限制 |
all | 获得所有选项 |
| 字段 | 中文键 | 默认值 | 说明 |
|---|---|---|---|
slot | 槽位 | 0 | 物品所在槽位(0-53) |
icon | 图标 | CHEST | 显示的物品图标(Material 名称,无效时回退为 CHEST) |
name | 名称 | &7奖励 | 显示名称(支持颜色代码 &) |
lore | 描述 | 空 | 描述文本列表 |
reward | 奖励 | 空 | 关联 rewards.yml 中的奖励名 |