等级系统

概述

IAGather 内置独立的采集等级系统:

  • 玩家通过采集获得经验,累积升级
  • 等级影响可采集的目标、成功率公式
  • 升级时可触发 Kether 脚本执行奖励
  • 数据存储在 SQLite 或 MySQL

level.yml 配置

leveling:
  # 升级经验表
  # key = 目标等级,value = 从上一级升到该等级所需经验
  exp-table:
    1: 1000    # 0级 -> 1级 需要 1000 经验
    2: 2000    # 1级 -> 2级 需要 2000 经验
    3: 5000    # 2级 -> 3级 需要 5000 经验

  # 最大等级(0 = 不封顶)
  max-level: 3

  # 到达指定等级时执行的 Kether 脚本
  on-reach:
    1: |-
      tell "恭喜你升到了 1 级!"
      command "give %player_name% diamond 1" as op

    2: |-
      tell "恭喜你升到了 2 级!"
      command "give %player_name% diamond 3" as op

    3: |-
      tell "恭喜你升到了 3 级!解锁了新技能!"
      command "give %player_name% diamond 5" as op

配置项说明

exp-table 经验表

定义每级升级所需的经验值:

  • key 为目标等级
  • value 为升级所需经验
  • 未配置的等级将使用最后一档经验值继续升级

示例:只配置了 1-3 级,max-level 设为 0(无上限),则 4 级及以后每级都需要 5000 经验

max-level 最大等级

0 不封顶,可无限升级
正整数 到达该等级后停止升级

on-reach 升级奖励

使用 TabooLib 的 Kether 脚本语言,在玩家达到指定等级时执行。

常用动作:

tell "消息" 向玩家发送消息
command "命令" as op 以 OP 权限执行命令
sound "声音" 播放声音
title "标题" "副标题" 显示标题

经验获取

经验来源于 targets.yml 中的配置:

targets:
  example:ore_1:
    exp-on-success: 10  # 采集成功获得 10 经验
    exp-on-fail: 0      # 采集失败不获得经验

查看等级信息

玩家使用以下命令查看自己的等级和经验:

/iagather info

输出示例:采集等级:2 经验:1500/5000

管理员命令

/iagather addexp <玩家> <数量> 给玩家增加经验
/iagather setlevel <玩家> <等级> 直接设置玩家等级

需要 iagather.admin 权限