AreaTable.dbc - 区域表数据库

AreaTable.dbc存储了游戏世界中所有区域的详细信息。这个文件定义了区域的名称、等级范围、地图关联、PvP设置等属性。区域是魔兽世界地图系统的基础组成部分,每个区域都有其独特的属性和设置。

注意: 在AzerothCore中,AreaTable.dbc与Map.dbc配合使用,定义完整的世界地图结构。

主要字段说明

以下是AreaTable.dbc中的主要字段:

基本信息字段

列号 字段名 类型 描述
1 ID 整数 区域唯一标识符
2 MapID 整数 所属地图ID,对应Map.dbc
3 ParentAreaID 整数 父区域ID(子区域指向主区域)
4 AreaBit 整数 区域位标识
5 Flags 整数 区域标志位
6 SoundProviderPref 整数 音效提供者偏好
7 SoundProviderPrefUnderwater 整数 水下音效提供者偏好
8 AmbienceID 整数 环境音效ID
9 ZoneMusic 整数 区域音乐ID
10 ZoneName 字符串 区域名称

区域标志位(Flags)

区域标志位字段定义了区域的特殊属性:

标志值 名称 描述
0x00000001 AREA_FLAG_SNOW 雪地区域
0x00000002 AREA_FLAG_UNK1 未知标志1
0x00000004 AREA_FLAG_UNK2 未知标志2
0x00000008 AREA_FLAG_SLAVE_CAPITAL 从属首都
0x00000010 AREA_FLAG_UNK3 未知标志3
0x00000020 AREA_FLAG_SLAVE_CAPITAL2 从属首都2
0x00000040 AREA_FLAG_ALLOW_DUELS 允许决斗
0x00000080 AREA_FLAG_ARENA 竞技场区域

与其他文件的关系

在AzerothCore中,区域数据分布在多个地方:

  1. AreaTable.dbc:包含区域的基本信息和属性
  2. Map.dbc:通过MapID字段关联地图
  3. world.areatrigger:定义区域触发器
  4. world.game_event_creature:定义区域相关的事件

提示: 修改区域属性时,需要考虑对玩家体验和游戏平衡的影响。

使用示例

查询区域信息

以下SQL语句将查询特定地图的所有区域:

-- 查询东部王国的所有区域
SELECT ID, ZoneName, ParentAreaID
FROM AreaTable
WHERE MapID = 0;

查找PvP区域

查找允许PvP的区域:

-- 查找竞技场区域
SELECT ID, ZoneName
FROM AreaTable
WHERE Flags & 0x00000080;