📖 表说明

法术区域表定义了在特定区域、地图或任务状态下自动应用给玩家的法术效果。这个表用于创建区域性的增益效果、环境影响或特殊的游戏机制。

数据来源: 本文档基于AzerothCore官方Wiki和官方数据表借鉴.sql编写,确保字段定义的准确性和权威性。

官方文档: AzerothCore Wiki - spell_area

📊 表结构

字段名 数据类型 属性 默认值 描述
spell int UNSIGNED 不为空 主键 0 法术ID,对应Spell.dbc
area int UNSIGNED 不为空 主键 0 区域ID,对应AreaTable.dbc
quest_start int UNSIGNED 不为空 主键 0 开始任务ID,0表示无任务要求
quest_end int UNSIGNED 不为空 0 结束任务ID,0表示无任务要求
aura_spell int 不为空 主键 0 光环法术ID,0表示无光环要求
racemask int UNSIGNED 不为空 主键 0 种族掩码,0表示所有种族
gender tinyint UNSIGNED 不为空 主键 2 性别要求(0=男性,1=女性,2=无性别要求)
autocast tinyint UNSIGNED 不为空 0 是否自动施法(0=否,1=是)
quest_start_status int 不为空 64 任务开始状态标志
quest_end_status int 不为空 11 任务结束状态标志

主键: (spell, area, quest_start, aura_spell, racemask, gender)

🔑 核心字段详解

🆔 spell - 法术ID

详细说明:要自动应用的法术ID,对应Spell.dbc文件中的法术记录。 取值范围:对应Spell.dbc中的法术ID
  • 主键字段,标识要应用的法术
  • 必须对应Spell.dbc中存在的法术ID
  • 通常是光环类法术或增益效果
  • 用于定义区域自动应用的法术效果

示例:

  • spell=28522 - 军旗光环(PvP区域效果)
  • spell=57970 - 冬拥湖光环(战场区域效果)

🗺️ area - 区域ID

详细说明:法术应用的区域ID,对应AreaTable.dbc文件中的区域记录。 取值范围:对应AreaTable.dbc中的区域ID
  • 主键字段,标识法术应用的区域
  • 必须对应AreaTable.dbc中存在的区域ID
  • 可以是具体区域或父区域
  • 用于定义法术生效的地理范围

示例:

  • area=1 - 杜隆塔尔(新手区域)
  • area=12 - 艾尔文森林(联盟新手区域)

📋 quest_start - 开始任务ID

详细说明:触发法术应用的任务ID,玩家必须满足任务状态要求。 取值范围:对应quest_template.entry或0
  • 主键字段,标识触发任务
  • 设置为0表示无任务要求
  • 配合quest_start_status字段控制任务状态
  • 用于创建任务相关的区域效果

示例:

  • quest_start=0 - 无任务要求
  • quest_start=12345 - 需要任务12345处于特定状态

其他字段说明

quest_end: 结束任务ID,设置为0表示无结束任务要求。当玩家完成此任务后,法术效果将被移除。

aura_spell: 光环法术ID,设置为0表示无光环要求。玩家必须拥有此光环才能获得区域法术效果。

racemask: 种族掩码,设置为0表示所有种族都可获得。使用位掩码指定特定种族。

gender: 性别要求,0=男性,1=女性,2=无性别要求。

autocast: 是否自动施法,0=否,1=是。设置为1时,法术会自动施放给符合条件的玩家。

💡 实际案例

区域 PvP区域光环效果

在PvP区域自动应用军旗光环效果

-- PvP区域光环效果 DELETE FROM spell_area WHERE spell = 28522; INSERT INTO spell_area VALUES (28522, 123, 0, 0, 0, 0, 2, 1, 64, 11);

效果: 在区域123(PvP区域)中,所有玩家自动获得军旗光环效果(spell=28522)。

区域 任务相关区域效果

只有完成特定任务的玩家才能获得区域效果

-- 任务相关区域效果 DELETE FROM spell_area WHERE spell = 12345 AND area = 456; INSERT INTO spell_area VALUES (12345, 456, 789, 0, 0, 0, 2, 1, 64, 11);

效果: 在区域456中,只有任务789处于特定状态的玩家才能获得法术12345的效果。

⚡ 快速参考

任务状态标志

标志值 含义 说明
64 QUEST_STATUS_INCOMPLETE 任务未完成
11 QUEST_STATUS_COMPLETE 任务已完成
1 QUEST_STATUS_NONE 无任务状态

表关系

🔗 相关表格

❓ 常见问题

Q1: 如何创建区域性的增益效果?
在spell_area表中添加条目,指定法术ID和区域ID。设置autocast=1,使法术自动施放给符合条件的玩家。
Q2: 如何限制法术只对特定种族生效?
使用racemask字段设置种族掩码。例如,racemask=1表示人类,racemask=2表示兽人,racemask=0表示所有种族。
Q3: 如何创建任务相关的区域效果?
设置quest_start字段为任务ID,并配合quest_start_status字段控制任务状态要求。只有满足任务状态要求的玩家才能获得区域效果。