📊 表结构

字段名 数据类型 默认值 说明
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
定时施法定时器

🔗 相关表格

❓ 常见问题

Q1: 这个表的作用是什么?
仅用于客户端提示显示,告诉玩家该生物可能使用哪些法术,不影响实际施法行为。
Q2: 如何控制实际施法?
实际施法由AI或脚本控制,需要配置creature_ai、smart_scripts或使用C++脚本。
Q3: Index的作用是什么?
决定法术在提示框中的显示顺序,Index=0显示在最前面,依次排列。
Q4: 可以配置多少个法术?
理论上可以配置很多(Index范围0-255),但客户端提示框显示有限,建议不超过8个。