WMOAreaTable.dbc
WMO区域表,定义WMO建筑内部各区域的环境属性。归功于客户端的加载和缓存方式,此文件的索引需要按WMO编号(也可能是组编号)排序
文件概述
WMOAreaTable.dbc 定义了 WMO(World Model Object,世界模型对象)建筑内部各区域的环境属性。包括区域名称、室内/室外标识、环境音效、区域音乐等。WMO建筑可拆分为 root(根)、adt(地图网格)和 group(组)三个层级的编号进行管理。
列结构
| 列号 | 字段 | 类型 | 详细说明 |
|---|---|---|---|
| 1 | 编号 | 整数 | WMO区域唯一标识符 |
| 2 | root 编号 | 整数 | 用于 root 级别 WMO(建筑整体模型编号) |
| 3 | adt 编号 | 整数 | 用于 adt 级别 WMO(地图网格中的WMO实例) |
| 4 | 组编号 | 整数 | 用于 group 级别 WMO(建筑内部的子区域组) |
| 5~9 | 未知 | 整数 | (用途待确认) |
| 10 | 标识 | 整数 | 用于检测户内还是户外。0x1=室内, 0x2=室外 |
| 11 | 区域编号 | 整数 | 关联的 AreaTable.dbc 区域编号 |
| 12~27 | 名称 | 字符串 | 各国语言版本的WMO区域名称(本地化) |
| 28 | 名称标识 | 整数 | 名称字符串标志位,疑似总为 0xFF01FC |
关键字段详解
WMO层级结构
WMO建筑使用三层编号体系管理:
- root 编号:建筑整体模型编号,对应 WMO 模型根文件
- adt 编号:ADT 地图网格中引用的 WMO 实例编号
- 组编号:建筑内部的具体区域组,如同一副本的不同房间
同一建筑的不同房间(不同组编号)可以有不同的环境音效和区域名称。
标识(列10)—— 室内/室外检测
用于判断玩家当前处于室内还是室外环境:
| 标志值 | 说明 |
|---|---|
| 0x1 | 室内区域——天气效果不适用,使用室内光照 |
| 0x2 | 室外区域——可显示天气效果,使用室外光照 |
此标识影响天气效果显示、小地图显示和行为判定。
区域编号(列11)
关联到 AreaTable.dbc 中的区域条目。通过此关联,WMO内部区域在UI中显示正确的区域名称,并支持任务追踪、小地图显示等功能。
名称与名称标识
WMO区域名称支持多语言本地化(列12~27),用于在游戏界面上显示区域名称(如副本房间名)。名称标识(列28)通常为 0xFF01FC,用于标记字符串有效性。
使用技巧
- 索引排序:由于客户端的加载和缓存机制,此文件的记录应按照 WMO编号(或组编号)顺序排列
- 自定义建筑:添加自定义WMO建筑时,需要在 AreaTable.dbc 中创建对应的区域条目
- 室内/室外:标识字段影响天气效果和小地图渲染行为
- 副本的不同区域可以通过组编号设置不同的环境属性