Skip to content

points-rewards.yml

points-rewards.yml 管的是“成就分达到多少后,可以额外领取什么奖励”。

它不是单个成就自己的 rewards:,而是整套成就系统的第二层奖励线。

最适合做:

  • 成就总分档位奖励
  • 某分类专属成长奖励
  • 累计收集奖励
  • 成就商店前置门槛

两大分组

分组作用
total-rewards总成就分奖励
category-rewards分类成就分奖励

总分奖励

yaml
total-rewards:
  beginner:
    name: "&a初级收集者"
    points: 50
    rewards:
      - "cmd{give {player} diamond 5}"
      - "cmd{eco give {player} 1000}"
    message: "&a恭喜! 你获得了 &e初级收集者 &a奖励!"

这里的 beginner 是奖励 ID,不会直接显示给玩家,但会影响:

  • /ach claim <奖励ID>
  • 奖励领取状态记录
  • PAPI 奖励序列

分类奖励

yaml
category-rewards:
  combat:
    combat_beginner:
      name: "&c战斗新手"
      points: 30
      rewards:
        - "mm{新手剑}"

这层的结构是:

  • 第一层:分类 ID
  • 第二层:奖励 ID

也就是说,这条奖励只在 combat 分类成就分达标时可领。

当前实现支持的奖励语法

按当前文件注释和奖励处理逻辑,最推荐的是统一 rewards: 列表。

写法说明
cmd{命令}控制台执行命令
cmd[player]{命令}玩家执行命令
mm{物品ID}MythicMobs 物品
mm{物品ID:数量}MythicMobs 物品带数量
ni{物品ID}NeigeItems 物品
ni{物品ID:数量}NeigeItems 物品带数量
ly{物品ID}LyItemSave 物品
ly{物品ID:数量}LyItemSave 物品带数量
attr{属性名: 数值}固定值属性奖励
attr{属性名: 数值(%)}百分比属性奖励

其中 {player} 可以直接替换成玩家名。

旧格式还兼容吗

还兼容。

按当前注释说明,旧版的这些字段仍然支持:

  • commands
  • attributes

但如果你是新项目,建议直接统一到 rewards: 列表,后面更好维护。

领取规则

这套奖励有几个规则要先想清楚:

  • 每条奖励只能领取一次
  • 总分奖励看的是全分类总和
  • 分类奖励只看对应分类
  • 属性奖励属于永久奖励,重新登录后仍然会恢复

使用建议

  • 先把奖励 ID 命名规范定好,后面 /ach claim 和 PAPI 调用都要靠它。
  • 奖励尽量只做“结果”,不要把复杂前置逻辑写在这里,前置门槛交给成就或任务本身。
  • 属性奖励、MM 物品、NI 物品、LY 物品都依赖对应前置插件,没装就别先往线上配。
  • 真要做兑换型玩法,建议“成就分奖励”和“成就商店”分开,不要把所有消费逻辑都挤在这里。

常见问题

奖励能看见,但不能领

优先检查:

  • 奖励 ID 是否写对
  • 当前总分 / 分类分是否真的达标
  • 这条奖励是不是已经领过

属性奖励没生效

先确认:

  • 服务器是否安装了 AttributePlus
  • 写的是固定值还是百分比格式
  • 属性名是不是你服里真正使用的那套名字

TQ Minecraft Server Plugin Docs