Purtmars Plugins
插件️Chemdah开始拓展模块

等级系统

等级系统

等级系统配置文件位于 Chemdah/module/level.yml,支持同时定义多套独立的等级体系,每套用唯一 ID 区分。

基本结构

# 顶层 key 就是等级体系的 ID,可以有多个
combat:                        # 战斗等级体系
  min: 1                       # 最低等级(玩家数据低于此值时强制修正)
  max: 100                     # 最高等级上限
  experience:
    type: kether               # 算法类型:kether 或 javascript
    math: "( * level 100 )"   # 升到下一级所需经验,level 为当前等级
  reward:
    1: |                       # 升到第 1 级时执行
      tell "恭喜升到 1 级!"
    5-10: |                    # 升到 5~10 级时都执行(用 - 或 ~ 分隔范围)
      tell "恭喜升级!"

crafting:                      # 另一套独立的等级体系
  min: 0
  max: 50
  experience:
    type: javascript
    math: "level * 200 + 500"  # JS 表达式,同样可用 level 变量

经验算法

experience.type 支持两种写法:

类型math 写法说明
ketherKether 脚本表达式使用 Kether 语法计算
javascriptJS 表达式使用 JavaScript 引擎计算

两种类型中都可以用 level 变量,代表玩家当前等级,返回值为升级所需的经验量。

math 的返回值是升到下一级所需的经验,不是累计总经验。等级系统会自动根据公式逐级计算升级所需量。

等级奖励

reward 下的 key 支持单个等级或等级范围,value 是 Kether 脚本,升级时自动执行。

combat:
  reward:
    10: |                        # 精确匹配第 10 级
      tell "你达到了 10 级!"
      command "give {player} diamond 1"
    20-30: |                     # 20 到 30 级,每升一级都触发
      tell "继续努力!"
    50~99: |                     # ~ 和 - 效果相同
      tell "接近满级了!"

奖励脚本中可以用 level 变量获取玩家当前升到的等级。

相关命令

/chemdah level <玩家> <等级体系ID> set|give|take <数值>

用于管理员手动设置或调整玩家的等级和经验。

On this page