📋 表结构

字段名 数据类型 默认值 说明
level TINYINT UNSIGNED 1 生物等级
class TINYINT UNSIGNED 0 生物职业类型
basehp0 MEDIUMINT UNSIGNED 1 经典版基础生命值
basehp1 MEDIUMINT UNSIGNED 1 燃烧远征基础生命值
basehp2 MEDIUMINT UNSIGNED 1 巫妖王之怒基础生命值
basemana MEDIUMINT UNSIGNED 0 基础法力值
basearmor MEDIUMINT UNSIGNED 0 基础护甲值
attackpower MEDIUMINT UNSIGNED 0 攻击强度
rangedattackpower MEDIUMINT UNSIGNED 0 远程攻击强度
damage_base FLOAT 0 经典版基础伤害
damage_exp1 FLOAT 0 燃烧远征基础伤害
damage_exp2 FLOAT 0 巫妖王之怒基础伤害

🔍 核心字段详解

level - 生物等级

字段说明:生物的等级,这是复合主键的一部分
取值范围:1 - 255
影响属性:生命值、法力值、伤害、护甲等基础数值

class - 生物职业类型

字段说明:决定生物的属性成长模式和特性
取值范围:对应职业掩码值
职业特点
1战士高生命值,高护甲
2圣骑士平衡型,有法力
4盗贼中等生命值,高敏捷
8法师低生命值,高法力
16术士中等生命值,高法力
64德鲁伊平衡型
128萨满中等属性,有法力

basehp0/1/2 - 基础生命值

字段说明:不同扩展版本的基础生命值
计算公式:最终生命值 = basehp × creature_template.HealthModifier
字段适用版本等级范围
basehp0经典版1-60级
basehp1燃烧的远征60-70级
basehp2巫妖王之怒70-80级

版本选择:根据creature_template.exp字段自动选择对应的basehp字段

basemana - 基础法力值

字段说明:生物的基础法力值
计算公式:最终法力值 = basemana × creature_template.ManaModifier
适用职业:只有施法职业才需要设置此值
职业类型法力值特点
法师、术士最高法力值
圣骑士、德鲁伊、萨满中等法力值
战士、盗贼、猎人通常为0

basearmor - 基础护甲值

字段说明:生物的基础护甲值,影响物理伤害减免
计算公式:最终护甲值 = basearmor × creature_template.ArmorModifier
护甲等级职业类型
重甲战士、圣骑士
中甲猎人、萨满
轻甲盗贼、德鲁伊
布甲法师、术士、牧师

attackpower - 攻击强度

字段说明:生物的基础攻击强度,影响近战和远程物理伤害
伤害计算:每点攻击强度增加0.07点DPS

damage_base/exp1/exp2 - 基础伤害

字段说明:不同扩展版本的基础伤害值
计算公式:最终伤害 = damage × creature_template.DamageModifier
字段适用版本
damage_base经典版(exp=0)
damage_exp1燃烧的远征(exp=1)
damage_exp2巫妖王之怒(exp=2)

💡 实际案例

查询 查看特定等级职业属性

查看60级战士的基础属性

SELECT * FROM creature_classlevelstats WHERE level = 60 AND class = 1;

对比 比较不同版本生命值

查看战士60-70级在不同版本的生命值变化

SELECT level, class, basehp0, basehp1, basehp2 FROM creature_classlevelstats WHERE level BETWEEN 60 AND 70 AND class = 1;

添加 添加自定义等级属性

为85级战士添加属性数据

INSERT INTO creature_classlevelstats VALUES( 85, 1, 15000, 18000, 22000, 0, 8500, 1200, 800, 450.0, 520.0, 600.0);

计算 计算生物最终属性

生物模板entry=12345,等级60,职业战士,exp=0,HealthModifier=2.0

-- 最终生命值 = basehp0 × HealthModifier -- 假设basehp0=4000,HealthModifier=2.0 -- 最终生命值 = 4000 × 2.0 = 8000 SELECT ct.entry, ct.name, cls.basehp0, ct.HealthModifier, cls.basehp0 * ct.HealthModifier AS final_hp FROM creature_template ct JOIN creature_classlevelstats cls ON ct.unit_class = cls.class AND ct.minlevel = cls.level WHERE ct.entry = 12345;

⚙️ 属性计算机制

版本选择规则

系统根据creature_template.exp字段选择对应的基础属性:

exp值使用字段版本
0basehp0, damage_base经典版
1basehp1, damage_exp1燃烧的远征
2basehp2, damage_exp2巫妖王之怒

最终属性计算公式

-- 生命值 最终生命值 = basehp[exp] × HealthModifier -- 法力值 最终法力值 = basemana × ManaModifier -- 护甲值 最终护甲值 = basearmor × ArmorModifier -- 伤害值 最终伤害 = damage[exp] × DamageModifier

职业对属性的影响

❓ 常见问题

如何为新等级添加属性数据?

需要为每个职业类型都添加对应等级的记录,确保数据完整性。例如添加85级数据,需要为所有职业类型(1,2,4,8,16,64,128等)都添加记录。

不同扩展版本的数值如何选择?

根据creature_template表中的exp字段,系统会自动选择对应的basehp和damage字段。exp=0使用经典版数据,exp=1使用TBC数据,exp=2使用WotLK数据。

如何平衡生物属性?

参考同等级玩家的属性,确保战斗时长和难度合理。通常精英怪物属性是普通怪物的2-3倍,BOSS怪物属性更高。

⚡ 快速参考

职业类型

1战士
2圣骑士
8法师
128萨满

版本选择

exp=0经典版
exp=1TBC
exp=2WotLK

计算公式

HPbasehp × Modifier
Manabasemana × Modifier
Armorbasearmor × Modifier

🔗 相关表格