Map.dbc - 地图数据库

Map.dbc存储了游戏中所有地图的基本信息。这个文件定义了地图的名称、类型、区域链接、入口条件等属性。

注意: 在AzerothCore中,地图数据通常不需要直接修改,除非添加自定义地图。

主要字段说明

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

基本信息字段

字段名 类型 描述
ID 整数 地图唯一标识符
Directory 字符串 地图文件目录
InstanceType 整数 实例类型
Flags 整数 地图标志
MapType 整数 地图类型
Name 字符串 地图名称(本地化字符串)

实例类型(InstanceType)

实例类型字段定义了地图的副本类型:

名称 描述
0 MAP_COMMON 普通区域
1 MAP_INSTANCE 5人副本
2 MAP_RAID 团队副本
3 MAP_BATTLEGROUND 战场
4 MAP_ARENA 竞技场

地图标志(Flags)

地图标志字段定义了地图的特殊属性:

名称 描述
0x0001 MAP_FLAG_DUNGEON 地下城
0x0002 MAP_FLAG_RAID 团队副本
0x0004 MAP_FLAG_BATTLEGROUND 战场
0x0008 MAP_FLAG_ARENA 竞技场
0x0010 MAP_FLAG_CITY 主城
0x0020 MAP_FLAG_NO_PVP 非PvP区域
0x0040 MAP_FLAG_ARENA_INSTANCE 竞技场实例
0x0080 MAP_FLAG_NO_RESPAWN 无重生点

地图与数据库的关系

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

  1. Map.dbc:包含地图的基本信息
  2. world.map_template:包含地图的游戏设置,如重置时间、最大玩家数等
  3. world.areatrigger_teleport:包含地图的传送点信息
  4. world.game_tele:包含GM命令".tele"使用的传送点

使用示例

查询地图信息

以下SQL语句将查询"奥格瑞玛"的地图信息:

SELECT * FROM map_template WHERE name LIKE '%奥格瑞玛%';

添加自定义地图传送

以下SQL语句将添加一个到自定义地图的传送点:

INSERT INTO game_tele (id, position_x, position_y, position_z, orientation, map, name) 
VALUES (1000, 16220.5, 16258.5, 15.0, 3.14, 1, '自定义地图');