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表经常与以下表格配合使用: