📋 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| 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
影响属性:生命值、法力值、伤害、护甲等基础数值
取值范围:1 - 255
影响属性:生命值、法力值、伤害、护甲等基础数值
class - 生物职业类型
字段说明:决定生物的属性成长模式和特性
取值范围:对应职业掩码值
取值范围:对应职业掩码值
| 值 | 职业 | 特点 |
|---|---|---|
| 1 | 战士 | 高生命值,高护甲 |
| 2 | 圣骑士 | 平衡型,有法力 |
| 4 | 盗贼 | 中等生命值,高敏捷 |
| 8 | 法师 | 低生命值,高法力 |
| 16 | 术士 | 中等生命值,高法力 |
| 64 | 德鲁伊 | 平衡型 |
| 128 | 萨满 | 中等属性,有法力 |
basehp0/1/2 - 基础生命值
字段说明:不同扩展版本的基础生命值
计算公式:最终生命值 = basehp × creature_template.HealthModifier
计算公式:最终生命值 = basehp × creature_template.HealthModifier
| 字段 | 适用版本 | 等级范围 |
|---|---|---|
| basehp0 | 经典版 | 1-60级 |
| basehp1 | 燃烧的远征 | 60-70级 |
| basehp2 | 巫妖王之怒 | 70-80级 |
版本选择:根据creature_template.exp字段自动选择对应的basehp字段
basemana - 基础法力值
字段说明:生物的基础法力值
计算公式:最终法力值 = basemana × creature_template.ManaModifier
适用职业:只有施法职业才需要设置此值
计算公式:最终法力值 = basemana × creature_template.ManaModifier
适用职业:只有施法职业才需要设置此值
| 职业类型 | 法力值特点 |
|---|---|
| 法师、术士 | 最高法力值 |
| 圣骑士、德鲁伊、萨满 | 中等法力值 |
| 战士、盗贼、猎人 | 通常为0 |
basearmor - 基础护甲值
字段说明:生物的基础护甲值,影响物理伤害减免
计算公式:最终护甲值 = basearmor × creature_template.ArmorModifier
计算公式:最终护甲值 = basearmor × creature_template.ArmorModifier
| 护甲等级 | 职业类型 |
|---|---|
| 重甲 | 战士、圣骑士 |
| 中甲 | 猎人、萨满 |
| 轻甲 | 盗贼、德鲁伊 |
| 布甲 | 法师、术士、牧师 |
attackpower - 攻击强度
字段说明:生物的基础攻击强度,影响近战和远程物理伤害
伤害计算:每点攻击强度增加0.07点DPS
伤害计算:每点攻击强度增加0.07点DPS
damage_base/exp1/exp2 - 基础伤害
字段说明:不同扩展版本的基础伤害值
计算公式:最终伤害 = damage × creature_template.DamageModifier
计算公式:最终伤害 = 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值 | 使用字段 | 版本 |
|---|---|---|
| 0 | basehp0, damage_base | 经典版 |
| 1 | basehp1, damage_exp1 | 燃烧的远征 |
| 2 | basehp2, 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=1 | TBC |
| exp=2 | WotLK |
计算公式
| HP | basehp × Modifier |
| Mana | basemana × Modifier |
| Armor | basearmor × Modifier |
🔗 相关表格
- creature_template - 生物模板,引用此表计算属性
- creature - 生物实例