📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| QuestID | INT UNSIGNED | 0 | 任务ID (主键1) |
| id | INT UNSIGNED | 0 | POI ID (主键2) |
| ObjectiveIndex | INT | 0 | 目标索引 |
| MapID | INT UNSIGNED | 0 | 地图ID |
| WorldMapAreaId | INT UNSIGNED | 0 | 世界地图区域ID |
| Floor | INT UNSIGNED | 0 | 楼层 |
| Priority | INT UNSIGNED | 0 | 优先级 |
| Flags | INT UNSIGNED | 0 | 标志 |
| VerifiedBuild | INT | NULL | 验证版本 |
🔑 核心字段详解
🆔 QuestID - 任务ID
详细说明:任务ID,对应quest_template.ID。
取值范围:对应quest_template.ID
- 复合主键的一部分
- 指定POI所属的任务
- 一个任务可以有多个POI
- 必须与quest_template中的ID匹配
📋 id - POI ID
详细说明:POI的唯一标识ID,用于关联quest_poi_points。
取值范围:0开始递增
- 复合主键的一部分
- 同一任务的POI ID从0开始
- 对应quest_poi_points中的Idx1
- 用于区分同一任务的不同POI
🎯 ObjectiveIndex - 目标索引
详细说明:POI对应的任务目标索引。
取值范围:-1, 0-4
- -1 - 任务完成NPC位置
- 0 - 第一个任务目标
- 1-4 - 第2-5个任务目标
- 对应quest_template中的目标
🗺️ MapID - 地图ID
详细说明:POI所在的地图ID。
取值范围:对应Map.dbc
- 指定POI所在的地图
- 对应Map.dbc中的地图ID
- 如艾尔文森林=12,暴风城=0
- 用于在正确的地图上显示POI
🌐 WorldMapAreaId - 世界地图区域ID
详细说明:世界地图上的区域ID。
取值范围:对应WorldMapArea.dbc
- 指定POI在世界地图上的区域
- 对应WorldMapArea.dbc中的区域ID
- 用于在世界地图上显示POI
🏢 Floor - 楼层
详细说明:POI所在的楼层,对应AreaTable.dbc。
取值范围:对应AreaTable.dbc
- 对应AreaTable.dbc中的区域ID
- 用于多层建筑中的POI定位
- 影响POI的显示层级
⭐ Priority - 优先级
详细说明:POI的显示优先级。
取值范围:0开始递增
- 优先级越高,POI越重要
- 用于多个POI时的显示顺序
- 高优先级POI优先显示
🚩 Flags - 标志
详细说明:POI的标志位。
取值范围:位标志组合
- 控制POI的显示和行为
- 不同的标志组合表示不同的POI类型
- 影响POI在地图上的显示方式
💡 实际案例
任务 Quest ID 8318 - Secret Communication
任务"秘密通信"的POI配置,标记任务目标区域
-- QuestID=8318, id=3, ObjectiveIndex=目标索引, MapID=地图ID
DELETE FROM quest_poi WHERE QuestID = 8318 AND id = 3;
INSERT INTO quest_poi VALUES
(8318,3,0,0,0,0,0,0,0);任务 Quest ID 747 - 任务开始位置
任务开始NPC位置的POI,ObjectiveIndex=-1表示任务完成位置
-- QuestID=747, id=0, ObjectiveIndex=-1(任务完成NPC位置)
DELETE FROM quest_poi WHERE QuestID = 747 AND id = 0;
INSERT INTO quest_poi VALUES
(747,0,-1,12,45,0,0,0,0);任务 Quest ID 2 - 多目标任务
任务"The Jasperlode Mine"的多目标POI配置
-- QuestID=2, 配置多个目标位置的POI
DELETE FROM quest_poi WHERE QuestID = 2;
INSERT INTO quest_poi VALUES
(2,0,-1,12,45,0,0,0,0),
(2,1,0,12,45,0,1,0,0);⚡ 快速参考
目标索引
| -1 | 任务完成NPC |
| 0 | 目标1 |
| 1 | 目标2 |
| 2-4 | 目标3-5 |
关联表
| quest_template | 任务模板 |
| quest_poi_points | POI坐标点 |
| Map.dbc | 地图数据 |
| WorldMapArea.dbc | 世界区域 |
POI用途
| 任务开始 | NPC位置 |
| 任务目标 | 目标位置 |
| 地图显示 | 问号标记 |
| 区域范围 | 蓝色框 |
显示位置
| 主地图 | 显示POI |
| 小地图 | 不显示 |
| 任务日志 | 关联显示 |
| 任务追踪 | 关联显示 |
🔗 相关表格
- quest_template - 任务模板表
- quest_poi_points - 任务POI点表
- areatrigger - 区域触发器表
❓ 常见问题
Q1: POI的作用?
POI(兴趣点)用于在地图上标记任务目标的位置,帮助玩家找到任务目标的位置和范围。显示为地图上的问号标记或蓝色区域框。
Q2: ObjectiveIndex的含义?
ObjectiveIndex=-1表示任务完成NPC的位置,0-4表示第1-5个任务目标的位置,对应quest_template中的目标。
Q3: Floor的作用?
Floor对应AreaTable.dbc中的区域ID,用于多层建筑中的POI定位,影响POI的显示层级。
Q4: 如何修改POI?
修改后需要执行".reload quest_poi"命令,关闭Wow.exe,然后删除cache文件夹才能看到变化。