Map.dbc - 地图数据库

Map.dbc存储了游戏中所有地图的基本信息。这个文件定义了地图的名称、类型、难度、进入要求等属性。地图是魔兽世界中最基本的游戏环境单位,包括大陆、副本、战场等。

注意: 在AzerothCore中,地图数据通常与world.instance_template表配合使用,以定义副本的属性和行为。

主要字段说明

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

基本信息字段

字段名 类型 描述
ID 整数 地图唯一标识符
Directory 字符串 地图目录名
InstanceType 整数 实例类型
Flags 整数 地图标志位
PVP 整数 是否为PVP地图
MapName 字符串 地图名称
AreaTableID 整数 区域表ID
MapDescription0 字符串 地图描述(联盟)
MapDescription1 字符串 地图描述(部落)
LoadingScreenID 整数 加载屏幕ID
MinimapIconScale 浮点数 小地图图标缩放
CorpseMapID 整数 尸体地图ID
CorpseX 浮点数 尸体X坐标
CorpseY 浮点数 尸体Y坐标
TimeOfDayOverride 整数 时间覆盖
ExpansionID 整数 资料片ID
RaidOffset 整数 团队副本偏移
MaxPlayers 整数 最大玩家数

实例类型(InstanceType)

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

名称 描述
0 MAP_COMMON 普通地图(如大陆)
1 MAP_INSTANCE 副本地图(如地下城)
2 MAP_RAID 团队副本地图
3 MAP_BATTLEGROUND 战场地图
4 MAP_ARENA 竞技场地图
5 MAP_SCENARIO 场景地图

地图标志位(Flags)

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

名称 描述
0x1 MAP_DYNAMIC_DIFFICULTY 动态难度
0x2 MAP_FLEX_LOCKING 弹性锁定
0x4 MAP_GARRISON 要塞
0x8 MAP_DISALLOW_MOUNT 禁止坐骑
0x10 MAP_DISALLOW_TAXI 禁止飞行路线
0x20 MAP_DISALLOW_PLAYER_COMBAT 禁止玩家战斗
0x40 MAP_DISALLOW_SWIMMING 禁止游泳
0x80 MAP_DISALLOW_FLYING 禁止飞行
0x100 MAP_DISALLOW_JUMPING 禁止跳跃
0x200 MAP_DISALLOW_PATHFINDING 禁止寻路
0x400 MAP_DISALLOW_GRAVEYARD_TELEPORT 禁止墓地传送
0x800 MAP_DISALLOW_RESURRECTION 禁止复活
0x1000 MAP_DISALLOW_CAMERA_CONTROL 禁止摄像机控制
0x2000 MAP_DISALLOW_AREA_TRIGGER 禁止区域触发器
0x4000 MAP_DISALLOW_CHALLENGE_MODE 禁止挑战模式
0x8000 MAP_DISALLOW_PETS 禁止宠物

常用地图ID

以下是一些常用的地图ID:

ID 名称 类型 描述
0 东部王国 大陆 包括暴风城、铁炉堡、幽暗城等
1 卡利姆多 大陆 包括奥格瑞玛、雷霆崖、达纳苏斯等
30 奥特兰克山谷 战场 40人战场
33 影牙城堡 副本 5人副本
34 死亡矿井 副本 5人副本
36 死亡矿井 副本 5人副本
43 哀嚎洞穴 副本 5人副本
47 剃刀沼泽 副本 5人副本
48 黑石深渊 副本 5人副本
70 奥达曼 副本 5人副本
90 诺莫瑞根 副本 5人副本
109 沉没的神庙 副本 5人副本
129 剃刀高地 副本 5人副本
189 血色修道院 副本 5人副本
209 祖尔法拉克 副本 5人副本
229 黑石塔 副本 5人副本
230 厄运之槌 副本 5人副本
249 奥妮克希亚的巢穴 团队副本 40人团队副本
269 黑石山脉 大陆 包括黑石深渊、黑石塔等
289 斯坦索姆 副本 5人副本
309 祖尔格拉布 团队副本 20人团队副本
329 斯坦索姆 副本 5人副本
349 玛拉顿 副本 5人副本
369 深渊之核 团队副本 40人团队副本
389 怒焰裂谷 副本 5人副本
409 熔火之心 团队副本 40人团队副本
429 厄运之槌 副本 5人副本
469 黑翼之巢 团队副本 40人团队副本
489 战歌峡谷 战场 10人战场
509 安其拉废墟 团队副本 20人团队副本
529 阿拉希盆地 战场 15人战场
531 安其拉神殿 团队副本 40人团队副本
533 纳克萨玛斯 团队副本 40人团队副本
559 纳格兰竞技场 竞技场 2v2/3v3/5v5竞技场
560 旧希尔斯布莱德丘陵 副本 5人副本
566 刀锋山竞技场 竞技场 2v2/3v3/5v5竞技场
571 诺森德 大陆 包括达拉然、冰冠堡垒等
572 洛丹伦废墟 竞技场 2v2/3v3/5v5竞技场
607 远古海滩 战场 15人战场
631 冰冠堡垒 团队副本 10/25人团队副本

地图与数据库的关系

在AzerothCore中,地图数据与多个数据库表有关联:

  1. Map.dbc:包含地图的基本信息,如名称、类型、标志位等
  2. world.instance_template:包含副本的详细信息,如重置时间、最大玩家数等
  3. world.access_requirement:包含进入地图的要求,如等级、任务、物品等
  4. world.areatrigger_teleport:包含地图入口的传送点信息
  5. world.game_tele:包含GM传送命令的目标位置

提示: 在创建自定义副本时,需要同时修改Map.dbc和相关的数据库表。

使用示例

查询副本信息

以下SQL语句将查询副本"熔火之心"的信息:

SELECT * FROM instance_template WHERE map = 409;

查询地图入口

以下SQL语句将查询进入"熔火之心"的传送点:

SELECT * FROM areatrigger_teleport WHERE target_map = 409;

查询地图进入要求

以下SQL语句将查询进入"熔火之心"的要求:

SELECT * FROM access_requirement WHERE mapId = 409;