spell_template表是AzerothCore中法术系统的核心表格,用于存储自定义法术的模板数据。它允许服务器管理员创建新的法术或修改现有法术的属性,而无需修改DBC文件。这个表格与Spell.dbc文件配合工作,提供了灵活的法术定制功能。
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
ID | INT UNSIGNED | 0 | 法术ID |
Attributes | INT UNSIGNED | 0 | 法术属性 |
AttributesEx | INT UNSIGNED | 0 | 扩展属性1 |
AttributesEx2 | INT UNSIGNED | 0 | 扩展属性2 |
AttributesEx3 | INT UNSIGNED | 0 | 扩展属性3 |
AttributesEx4 | INT UNSIGNED | 0 | 扩展属性4 |
AttributesEx5 | INT UNSIGNED | 0 | 扩展属性5 |
AttributesEx6 | INT UNSIGNED | 0 | 扩展属性6 |
AttributesEx7 | INT UNSIGNED | 0 | 扩展属性7 |
CastingTimeIndex | TINYINT UNSIGNED | 1 | 施法时间索引 |
DurationIndex | TINYINT UNSIGNED | 0 | 持续时间索引 |
PowerType | TINYINT UNSIGNED | 0 | 能量类型 |
RangeIndex | TINYINT UNSIGNED | 1 | 施法距离索引 |
Speed | FLOAT | 0 | 法术飞行速度 |
SpellIconID | TINYINT UNSIGNED | 1 | 法术图标ID |
ActiveIconID | TINYINT UNSIGNED | 0 | 激活图标ID |
Name | VARCHAR(255) | '' | 法术名称 |
Rank | VARCHAR(255) | '' | 法术等级 |
Description | VARCHAR(255) | '' | 法术描述 |
ToolTip | VARCHAR(255) | '' | 法术提示文本 |
SchoolMask | TINYINT UNSIGNED | 1 | 法术学派掩码 |
RuneCostID | TINYINT UNSIGNED | 0 | 符文消耗ID |
SpellMissileID | TINYINT UNSIGNED | 0 | 法术弹道ID |
PowerDisplayId | TINYINT UNSIGNED | 0 | 能量显示ID |
EffectBasePoints1 | INT | 0 | 效果1基础点数 |
EffectBasePoints2 | INT | 0 | 效果2基础点数 |
EffectBasePoints3 | INT | 0 | 效果3基础点数 |
EffectAmplitude1 | INT | 0 | 效果1振幅 |
EffectAmplitude2 | INT | 0 | 效果2振幅 |
EffectAmplitude3 | INT | 0 | 效果3振幅 |
法术的唯一标识符,必须是唯一值。建议使用高于官方法术ID的数值(如从100000开始)以避免冲突。
法术属性是控制法术行为的关键字段,使用位掩码表示:
位值 | 属性名称 | 说明 |
---|---|---|
0x00000001 | SPELL_ATTR0_UNK0 | 未知属性0 |
0x00000002 | SPELL_ATTR0_REQ_AMMO | 需要弹药 |
0x00000004 | SPELL_ATTR0_ON_NEXT_SWING | 下次攻击时触发 |
0x00000008 | SPELL_ATTR0_IS_REPLENISHMENT | 是补充效果 |
0x00000010 | SPELL_ATTR0_ABILITY | 是技能 |
0x00000020 | SPELL_ATTR0_TRADESPELL | 是商业技能 |
0x00000040 | SPELL_ATTR0_PASSIVE | 被动法术 |
0x00000080 | SPELL_ATTR0_HIDDEN_CLIENTSIDE | 客户端隐藏 |
0x00000100 | SPELL_ATTR0_HIDE_IN_COMBAT_LOG | 战斗日志中隐藏 |
0x00000200 | SPELL_ATTR0_TARGET_MAINHAND_ITEM | 目标主手物品 |
位值 | 属性名称 | 说明 |
---|---|---|
0x00000001 | SPELL_ATTR1_DISMISS_PET | 解散宠物 |
0x00000002 | SPELL_ATTR1_DRAIN_ALL_POWER | 消耗所有能量 |
0x00000004 | SPELL_ATTR1_CHANNELED_1 | 引导法术1 |
0x00000008 | SPELL_ATTR1_CANT_BE_REDIRECTED | 不能被重定向 |
0x00000010 | SPELL_ATTR1_UNK4 | 未知属性4 |
0x00000020 | SPELL_ATTR1_NOT_BREAK_STEALTH | 不打破潜行 |
0x00000040 | SPELL_ATTR1_CHANNELED_2 | 引导法术2 |
0x00000080 | SPELL_ATTR1_CANT_BE_REFLECTED | 不能被反射 |
0x00000100 | SPELL_ATTR1_NOT_IN_COMBAT_TARGET | 非战斗目标 |
0x00000200 | SPELL_ATTR1_MELEE_COMBAT_START | 近战战斗开始 |
值 | 能量类型 | 说明 |
---|---|---|
0 | POWER_MANA | 法力值 |
1 | POWER_RAGE | 怒气 |
2 | POWER_FOCUS | 集中值 |
3 | POWER_ENERGY | 能量 |
4 | POWER_HAPPINESS | 快乐度 |
5 | POWER_RUNE | 符文 |
6 | POWER_RUNIC_POWER | 符文能量 |
-1 | POWER_HEALTH | 生命值 |
位值 | 学派名称 | 说明 |
---|---|---|
0x01 | SPELL_SCHOOL_NORMAL | 物理 |
0x02 | SPELL_SCHOOL_HOLY | 神圣 |
0x04 | SPELL_SCHOOL_FIRE | 火焰 |
0x08 | SPELL_SCHOOL_NATURE | 自然 |
0x10 | SPELL_SCHOOL_FROST | 冰霜 |
0x20 | SPELL_SCHOOL_SHADOW | 暗影 |
0x40 | SPELL_SCHOOL_ARCANE | 奥术 |
场景:创建一个基础的火球法术
说明:ID=100001,火焰学派(4),消耗法力(0),造成100点基础伤害
场景:创建一个增加攻击力的被动技能
说明:被动法术属性(0x00000040),永久持续(21),增加50点攻击力
选择一个未使用的法术ID,建议从100000开始:
根据法术类型设置相应的属性:
使用EffectBasePoints字段设置法术的具体效果数值。
在测试环境中验证法术效果,根据需要调整参数。
spell_template表经常与以下表格配合使用: