📊 WorldMapOverlay.dbc
WorldMapOverlay.dbc 定义了世界地图(M键)上的覆盖图层。控制区域纹理、迷雾图层、资源节点标记等在地图上的叠加显示。
📋 字段结构
| 索引 | 字段名 | 类型 | 说明 |
|---|---|---|---|
| 0 | ID | uint32 | 覆盖图层唯一标识符 |
| 1 | MapAreaID | uint32 | 关联的 WorldMapArea 条目ID |
| 2-5 | AreaID[1-4] | uint32 | 覆盖的区域ID列表(引用 AreaTable.dbc) |
| 6 | TextureName | string | 覆盖纹理资源路径 |
| 7 | TextureWidth | uint32 | 纹理宽度(像素) |
| 8 | TextureHeight | uint32 | 纹理高度(像素) |
| 9 | OffsetX | uint32 | X轴偏移量 |
| 10 | OffsetY | uint32 | Y轴偏移量 |
| 11 | HitRectTop/HitRectBottom | uint32 | 点击区域边界 |
📌 关键字段详解
TextureName - 覆盖纹理
在地图UI上叠加显示的纹理路径。例如迷雾区域在探索前显示为空白/迷雾纹理。格式如 Interface\\WorldMap\\...。
AreaID[1-4] - 覆盖区域
地图覆盖层在哪些 AreaTable 区域上显示。最多支持 4 个区域。用于为特定区域显示专属地图覆盖(如副本内部地图)。
OffsetX / OffsetY - 偏移
纹理在世界地图UI上的像素偏移。用于精确定位覆盖层的位置,确保区域纹理对齐游戏实际坐标。
🔧 使用示例
查询地图覆盖层
-- 查询指定地图的所有覆盖层
SELECT wmo.ID, wmo.TextureName, wma.AreaName
FROM world_map_overlay wmo
JOIN world_map_area wma ON wmo.MapAreaID = wma.ID
WHERE wma.MapID = 0;💡 使用技巧
- 迷雾系统:未探索区域通过覆盖层纹理显示为空白/迷雾,探索后移除。
- 自定义地图:创建自定义地图时需要配置正确的覆盖层确保显示无误。
- 纹理格式:贴图应为 .blp 格式,路径相对于客户端根目录。
- 参考链接:AzerothCore Wiki - world_map_overlay