📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| CreatureID | INT UNSIGNED | 无 | 生物模板ID (主键1) |
| School | TINYINT UNSIGNED | 无 | 魔法类型 (主键2) |
| Resistance | SMALLINT | NULL | 抗性值 |
| VerifiedBuild | INT | NULL | 验证版本 |
🔑 核心字段详解
🆔 CreatureID - 生物模板ID
详细说明:对应creature_template.entry,指定抗性配置的生物模板。
取值范围:对应creature_template.entry
- 复合主键的一部分
- 同一生物可有多条抗性记录
- 每个魔法类型一条记录
🔮 School - 魔法类型
详细说明:魔法类型ID,指定抗性对应的魔法类型。
取值范围:0 - 7
| 值 | 类型 | 说明 |
|---|---|---|
| 0 | SPELL_SCHOOL_NORMAL | 物理伤害 |
| 1 | SPELL_SCHOOL_HOLY | 神圣魔法 |
| 2 | SPELL_SCHOOL_FIRE | 火焰魔法 |
| 3 | SPELL_SCHOOL_NATURE | 自然魔法 |
| 4 | SPELL_SCHOOL_FROST | 冰霜魔法 |
| 5 | SPELL_SCHOOL_SHADOW | 暗影魔法 |
| 6 | SPELL_SCHOOL_ARCANE | 奥术魔法 |
| 7 | SPELL_SCHOOL_FROSTFIRE | 冰火魔法 |
🛡️ Resistance - 抗性值
详细说明:生物对该魔法类型的抗性值。
取值范围:-32768 - 32767
- 0 - 无抗性(默认)
- 正数 - 抗性值,减少伤害
- 负数 - 易伤值,增加伤害
- 抗性值越高,减免伤害越多
- 计算公式:伤害减免 = 抗性值 / (抗性值 + 100)
常见抗性值:
| 抗性值 | 伤害减免 | 说明 |
|---|---|---|
| 50 | ~33% | 中等抗性 |
| 100 | ~50% | 高抗性 |
| 200 | ~67% | 极高抗性 |
| 300 | ~75% | 超强抗性 |
✔️ VerifiedBuild - 验证版本
详细说明:用于确定数据来源和验证状态。
- 0 - 未解析或继承自旧数据库
- 正数 - 已用该客户端版本解析
- -1 - 占位符,等待正确数据
- -客户端版本 - 已解析但手动编辑
💡 实际案例
火焰抗性 配置火焰抗性
CreatureID=12345, School=2(火焰), Resistance=100
INSERT INTO creature_template_resistance VALUES(
12345, 2, 100, NULL
);多抗性 配置多种抗性
CreatureID=12346, 配置火焰、冰霜、暗影抗性
-- 火焰抗性
INSERT INTO creature_template_resistance VALUES(12346, 2, 150, NULL);
-- 冰霜抗性
INSERT INTO creature_template_resistance VALUES(12346, 4, 150, NULL);
-- 暗影抗性
INSERT INTO creature_template_resistance VALUES(12346, 5, 200, NULL);易伤 配置易伤(负抗性)
CreatureID=12347, School=2(火焰), Resistance=-50(易伤)
INSERT INTO creature_template_resistance VALUES(
12347, 2, -50, NULL
);高抗性 配置超高抗性
CreatureID=12348, School=1(神圣), Resistance=300
INSERT INTO creature_template_resistance VALUES(
12348, 1, 300, NULL
);查询 查询生物的所有抗性
查询CreatureID=12345的所有抗性配置
SELECT ctr.CreatureID, ctr.School, ctr.Resistance, ct.name
FROM creature_template_resistance ctr
JOIN creature_template ct ON ctr.CreatureID = ct.entry
WHERE ctr.CreatureID = 12345
ORDER BY ctr.School;⚡ 快速参考
魔法类型
| 0 | 物理 |
| 1 | 神圣 |
| 2 | 火焰 |
| 3 | 自然 |
| 4 | 冰霜 |
| 5 | 暗影 |
| 6 | 奥术 |
抗性值
| 0 | 无抗性 |
| 50 | ~33%减免 |
| 100 | ~50%减免 |
| 200 | ~67%减免 |
| 300 | ~75%减免 |
| 负数 | 易伤 |
伤害计算
| 公式 | 抗性/(抗性+100) |
| 减免上限 | 75% |
| 易伤效果 | 增加伤害 |
| 抗性穿透 | 可降低抗性 |
常见配置
| 火焰生物 | 火焰抗性高 |
| 冰霜生物 | 冰霜抗性高 |
| 恶魔 | 暗影抗性高 |
| 元素 | 对应抗性高 |
🔗 相关表格
- creature_template - 生物模板表
- creature_template_spell - 生物模板法术表
- spell_dbc - 法术数据表
❓ 常见问题
Q1: 抗性值如何影响伤害?
伤害减免 = 抗性值 / (抗性值 + 100)。例如抗性100减免约50%伤害,抗性200减免约67%伤害。
Q2: 负抗性值的作用?
负抗性值表示易伤,会增加受到的相应类型伤害。例如-50会增加约33%伤害。
Q3: 抗性上限是多少?
伤害减免上限为75%,即使抗性值很高也不会超过75%减免。
Q4: 如何配置元素生物的抗性?
火焰元素配置火焰抗性高(200+),冰霜元素配置冰霜抗性高,自然元素配置自然抗性高。