📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| CreatureID | INT UNSIGNED | 无 | 生物模板ID (主键1) |
| Index | TINYINT UNSIGNED | 0 | 法术索引 (主键2) |
| Spell | INT UNSIGNED | NULL | 法术ID |
| VerifiedBuild | INT | NULL | 验证版本 |
🔑 核心字段详解
🆔 CreatureID - 生物模板ID
详细说明:对应creature_template.entry,指定法术配置的生物模板。
取值范围:对应creature_template.entry
- 复合主键的一部分
- 同一生物可有多条法术记录
- 仅用于客户端显示
- 不影响实际AI施法行为
📊 Index - 法术索引
详细说明:同一生物的不同法术编号索引。
取值范围:0 - 255
- 决定法术显示顺序
- Index=0显示在第一个位置
- Index=1显示在第二个位置
- 依次排列
✨ Spell - 法术ID
详细说明:生物拥有的法术ID,对应spell_dbc.ID。
取值范围:对应spell_dbc.ID
- 显示在生物提示中的法术
- 告诉玩家该生物可能使用这些法术
- 仅用于提示,不影响实际施法
- 实际施法由AI或脚本控制
✔️ VerifiedBuild - 验证版本
详细说明:用于确定数据来源和验证状态。
- 0 - 未解析或继承自旧数据库
- 正数 - 已用该客户端版本解析
- -1 - 占位符,等待正确数据
- -客户端版本 - 已解析但手动编辑
💡 实际案例
单一法术 配置单一法术
CreatureID=12345, Index=0, Spell=1234
INSERT INTO creature_template_spell VALUES(
12345, 0, 1234, NULL
);多法术 配置多个法术
CreatureID=12346, Index=0/1/2, 配置3个法术
-- 第一个法术
INSERT INTO creature_template_spell VALUES(12346, 0, 1235, NULL);
-- 第二个法术
INSERT INTO creature_template_spell VALUES(12346, 1, 1236, NULL);
-- 第三个法术
INSERT INTO creature_template_spell VALUES(12346, 2, 1237, NULL);查询 查询生物的所有法术
查询CreatureID=12345的所有法术配置
SELECT cts.CreatureID, cts.Index, cts.Spell, ct.name, s.SpellName
FROM creature_template_spell cts
JOIN creature_template ct ON cts.CreatureID = ct.entry
JOIN spell_dbc s ON cts.Spell = s.ID
WHERE cts.CreatureID = 12345
ORDER BY cts.Index;⚡ 快速参考
用途说明
| 客户端显示 | 提示框 |
| 法术列表 | 可能使用的法术 |
| 仅提示 | 不影响AI |
| 实际施法 | 由AI或脚本控制 |
索引顺序
| Index=0 | 第一个法术 |
| Index=1 | 第二个法术 |
| Index=2 | 第三个法术 |
| 依次排列 | 按Index排序 |
关联表
| creature_template | 生物模板表 |
| spell_dbc | 法术数据表 |
| smart_scripts | 智能脚本表 |
| creature_ai_scripts | 生物AI脚本 |
实际施法
| AI控制 | creature_ai |
| 脚本控制 | smart_scripts |
| 法术触发 | spell_proc |
| 定时施法 | 定时器 |
🔗 相关表格
- creature_template - 生物模板表
- spell_dbc - 法术数据表
- smart_scripts - 智能脚本表
❓ 常见问题
Q1: 这个表的作用是什么?
仅用于客户端提示显示,告诉玩家该生物可能使用哪些法术,不影响实际施法行为。
Q2: 如何控制实际施法?
实际施法由AI或脚本控制,需要配置creature_ai、smart_scripts或使用C++脚本。
Q3: Index的作用是什么?
决定法术在提示框中的显示顺序,Index=0显示在最前面,依次排列。
Q4: 可以配置多少个法术?
理论上可以配置很多(Index范围0-255),但客户端提示框显示有限,建议不超过8个。