spell_linked_spell表是AzerothCore中定义法术之间链接关系的重要表格。它控制着当一个法术被施放、移除或触发时,自动施放或移除其他相关法术的机制,是实现复杂法术组合和连锁效果的核心系统。
字段名 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
spell_trigger | INT | 0 | 触发法术ID |
详细说明:触发链接效果的法术ID。可以是正值或负值。
正值:当法术被施放时触发链接 负值:当法术被移除时触发链接 应用场景:
|
|||
spell_effect | INT | 0 | 效果法术ID |
详细说明:被触发的法术ID。可以是正值或负值。
正值:施放指定的法术 负值:移除指定的法术 效果类型:
|
|||
type | TINYINT UNSIGNED | 0 | 链接类型 |
详细说明:定义链接的触发时机和条件。
类型值:
触发时机:
|
-- 查看所有法术链接关系
SELECT spell_trigger, spell_effect, type,
CASE type
WHEN 0 THEN '施放时触发'
WHEN 1 THEN '移除时触发'
WHEN 2 THEN '施放和移除时触发'
WHEN 3 THEN '学会时触发'
WHEN 4 THEN '忘记时触发'
END as trigger_type
FROM spell_linked_spell
ORDER BY spell_trigger;
-- 设置变形术链接:施放变形术时自动移除所有增益
INSERT INTO spell_linked_spell (spell_trigger, spell_effect, type)
VALUES
(118, -1234, 0), -- 施放变形术时移除法术1234
(118, -5678, 0); -- 施放变形术时移除法术5678
-- 设置死亡链接:死亡时自动移除所有临时效果
INSERT INTO spell_linked_spell (spell_trigger, spell_effect, type)
VALUES
(-15007, -12345, 1); -- 移除复活疾病时移除临时增益
-- 创建战士技能组合:使用冲锋时自动获得攻击速度加成
INSERT INTO spell_linked_spell (spell_trigger, spell_effect, type)
VALUES
(100, 12345, 0); -- 施放冲锋时自动获得攻击速度增益
-- 创建法师护盾链接:施放法师护甲时移除其他护甲
INSERT INTO spell_linked_spell (spell_trigger, spell_effect, type)
VALUES
(1459, -7301, 0), -- 施放奥术智慧时移除冰甲术
(1459, -6143, 0); -- 施放奥术智慧时移除火焰护体
-- 复杂的条件链接示例
-- 当玩家血量低于30%时,治疗法术自动触发护盾
INSERT INTO spell_linked_spell (spell_trigger, spell_effect, type)
VALUES
(2061, 12345, 0); -- 快速治疗触发护盾效果
-- 创建链式反应:A触发B,B触发C
INSERT INTO spell_linked_spell (spell_trigger, spell_effect, type)
VALUES
(1000, 2000, 0), -- 法术1000触发法术2000
(2000, 3000, 0); -- 法术2000触发法术3000
-- 创建双向链接:施放和移除都有效果
INSERT INTO spell_linked_spell (spell_trigger, spell_effect, type)
VALUES
(1234, 5678, 0), -- 施放时触发
(-1234, -5678, 1); -- 移除时触发移除