player_class_stats表是AzerothCore中定义玩家职业基础属性的核心表格。它存储了不同职业在不同等级下的基础属性数据,包括生命值、法力值、基础属性等重要数值,是玩家角色属性计算的基础。
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
class | TINYINT UNSIGNED | 0 | 职业ID |
详细说明:玩家职业的唯一标识符,这是复合主键的一部分。
职业对应:
|
|||
level | TINYINT UNSIGNED | 1 | 等级 |
详细说明:玩家角色的等级,这是复合主键的一部分。
取值范围:1 - 80 (根据扩展版本而定) 等级影响:
|
|||
basehp | SMALLINT UNSIGNED | 0 | 基础生命值 |
详细说明:该职业在指定等级下的基础生命值。这是计算玩家最终生命值的基础数值。
计算公式:最终生命值 = basehp + (耐力 × 每点耐力生命值加成) 职业特点:
|
|||
basemana | SMALLINT UNSIGNED | 0 | 基础法力值 |
详细说明:该职业在指定等级下的基础法力值。只有使用法力的职业才有此数值。
计算公式:最终法力值 = basemana + (智力 × 每点智力法力值加成) 法力职业:
注意:战士和盗贼不使用法力,此值为0 |
-- 查看法师1-10级的属性成长
SELECT level, basehp, basemana
FROM player_class_stats
WHERE class = 8 AND level BETWEEN 1 AND 10
ORDER BY level;
-- 比较60级时各职业的基础生命值
SELECT
class,
CASE class
WHEN 1 THEN '战士'
WHEN 2 THEN '圣骑士'
WHEN 3 THEN '猎人'
WHEN 4 THEN '盗贼'
WHEN 5 THEN '牧师'
WHEN 7 THEN '萨满'
WHEN 8 THEN '法师'
WHEN 9 THEN '术士'
WHEN 11 THEN '德鲁伊'
END as class_name,
basehp,
basemana
FROM player_class_stats
WHERE level = 60
ORDER BY basehp DESC;
-- 为所有职业添加81级属性数据(示例)
INSERT INTO player_class_stats (class, level, basehp, basemana) VALUES
(1, 81, 2800, 0), -- 战士
(2, 81, 2600, 1200), -- 圣骑士
(3, 81, 2400, 1400), -- 猎人
(4, 81, 2200, 0), -- 盗贼
(5, 81, 2000, 1800), -- 牧师
(7, 81, 2300, 1600), -- 萨满
(8, 81, 1800, 2000), -- 法师
(9, 81, 1900, 1900), -- 术士
(11, 81, 2100, 1700); -- 德鲁伊
需要考虑职业定位:坦克职业(战士、圣骑士)生命值高,法系职业(法师、术士)法力值高,敏捷职业(盗贼、猎人)属性平衡。
确保属性成长曲线平滑,避免某个等级出现属性跳跃或下降。通常采用线性或指数增长模式。
参考官方数据,考虑游戏平衡性,确保各职业在PvE和PvP中都有合理的表现。