表概述

player_xp_for_level表定义了玩家每级升级所需的总经验值。当玩家经验值达到当前级别设定的Experience值后,就会自动升级。

主键为 Level,每条记录对应一个玩家等级及其升级所需的经验总量。

表结构

字段名数据类型默认值说明
LevelTINYINT UNSIGNEDNOT NULL玩家等级(主键)
ExperienceINT UNSIGNEDNOT NULL从上一级升级到当前等级所需的经验值

重要字段详解

Level (玩家等级)

主键,代表玩家等级。范围通常为 1-80

等级1的Experience值通常为0(初始经验),从等级2开始每个等级都有一个升级所需经验值。

Experience (升级所需经验)

玩家从当前等级升级到下一等级需要的总经验值。经验值随等级呈指数增长:

  • 等级1→2:约 400 经验
  • 等级10→11:约 7,600 经验
  • 等级30→31:约 58,400 经验
  • 等级60→61:约 494,000 经验
  • 等级70→71:约 1,523,800 经验

实际经验获取量 = 基础经验 × Rate.XP.Kill × Rate.XP.Quest × Rate.XP.Explore等倍率。

与经验倍率的关系

worldserver.conf中可通过以下配置调整经验获取速度:

  • Rate.XP.Kill - 击杀经验倍率
  • Rate.XP.Quest - 任务经验倍率
  • Rate.XP.Explore - 探索经验倍率

实战案例

查询所有等级的升级经验:
SELECT Level, Experience
FROM player_xp_for_level
ORDER BY Level;
计算从1级升到60级需要多少总经验:
SELECT SUM(Experience) AS Total_XP_1_to_60
FROM player_xp_for_level
WHERE Level BETWEEN 1 AND 60;
将所有升级经验减半(快速升级服):
UPDATE player_xp_for_level
SET Experience = Experience / 2
WHERE Level > 1;

常见问题

Q: 如何制作快速升级服?

两种方式:减少player_xp_for_level表中的Experience值,或在worldserver.conf中调高Rate.XP各项倍率。

Q: 经验值达到要求后没有自动升级?

检查以下几点:

  1. 玩家是否已达到服务器设置的最高等级限制(MaxPlayerLevel)
  2. player_xp_for_level表中下一等级的Experience值是否正确
  3. 经验倍率配置是否正常