AreaGroup.dbc
区域组定义文件。用于储存 characters_glyph 表中使用的地形编号,将多个区域组合在一起用于UI显示和分类
文件概述
AreaGroup.dbc 将多个区域(参考 AreaTable.dbc 中的条目)分组为一个逻辑组。每个记录可以包含最多6个区域编号(列2~列7),如果6个编号不够用,则第8列可继续链接更多编号。主要用于世界地图UI中的区域分类显示,也用于战场、竞技场等场景的区域管理。
列结构
| 列号 | 字段名 | 类型 | 描述 |
|---|---|---|---|
| 1 | ID | 整数 | 区域组编号,组唯一标识符 |
| 2 | AreaID_1 | 整数 | 区域编号1,对应 AreaTable.dbc 的区域ID |
| 3 | AreaID_2 | 整数 | 区域编号2,对应 AreaTable.dbc 的区域列表 |
| 4 | AreaID_3 | 整数 | 区域编号3 |
| 5 | AreaID_4 | 整数 | 区域编号4 |
| 6 | AreaID_5 | 整数 | 区域编号5 |
| 7 | AreaID_6 | 整数 | 区域编号6 |
| 8 | NextGroupID | 整数 | 更多编号。如果上面6个编号不够用,此列指向下一个关联的区域组ID,形成链表结构串联更多区域 |
重要字段详解
区域分组逻辑
每个 AreaGroup 记录将地理位置相邻或功能相关的区域组合在一起,所有区域编号均源自 AreaTable.dbc。例如:
- 艾尔文森林组:包含艾尔文森林、闪金镇、北郡修道院等子区域
- 战场组:包含战场内的各个区域
- 主城组:包含主城的各个分区
NextGroupID(链式分组——更多编号)
当6个区域编号不足以容纳所有子区域时,第8列 NextGroupID 指向下一个 AreaGroup 记录,形成链表结构。多个组通过此字段串联起来,实现更多编号的扩展。
在实际中的应用
- 世界地图界面:鼠标悬停时高亮显示整个区域组
- 任务追踪:判断玩家是否在任务目标区域内
- 成就系统:探索成就需要发现区域组中的所有子区域
- 雕文系统:characters_glyph 表使用此地形编号
使用技巧
- 未使用的 AreaID 列设置为0
- 添加自定义区域时,需要同时在 AreaTable.dbc 和此文件中注册
- 区域的父子关系在 AreaTable.dbc 中定义,区域分组在本文件中定义
- 探索成就关联的区域通过此文件确定