表概述

points_of_interest 表存储了游戏世界中各个重要位置的坐标和图标信息。当玩家与守卫等 NPC 对话并询问方向时,游戏会通过 gossip_menu_option 表中的 ActionPoiID 字段引用本表的 ID,在地图上显示相应的标记。

每个兴趣点包含世界坐标(PositionX, PositionY)、图标类型(Icon)、标志位(Flags)、重要性等级(Importance)和显示名称(Name)。

ID
int unsigned, 主键
兴趣点唯一标识符
PositionX/Y
float
世界坐标位置
Icon
int unsigned
地图图标类型
Name
text, 非空
兴趣点显示名称

表结构

字段名数据类型默认值说明
IDint UNSIGNED0兴趣点的唯一标识符,主键
PositionXfloat0兴趣点的世界 X 坐标
PositionYfloat0兴趣点的世界 Y 坐标
Iconint UNSIGNED0在地图上显示的图标类型编号
Flagsint UNSIGNED0兴趣点的标志位,控制显示行为
Importanceint UNSIGNED0兴趣点的重要性等级
Nametext非空鼠标悬停时显示的文本名称

主键: ID | 引擎: InnoDB | 字符集: utf8mb4

重要字段详解

ID (兴趣点 ID)

兴趣点的唯一标识符。在 gossip_menu_option 表的 ActionPoiID 字段中被引用,用于在 NPC 对话中标记位置。

PositionX / PositionY (坐标)

兴趣点在游戏世界中的二维坐标。这些坐标决定了地图标记的位置。可以通过 GM 命令 .gps 获取当前位置坐标。

示例:

  • 暴风城区域:PositionX ≈ -8833, PositionY ≈ 628
  • 奥格瑞玛区域:PositionX ≈ 1632, PositionY ≈ -4373
Icon (图标类型)

定义在地图上显示的图标类型:

  • 0 默认图标
  • 1 商店/商人
  • 2 训练师
  • 3 旅店
  • 4 银行
  • 5 修理
  • 6 飞行点
  • 7 任务
Flags (标志位)

控制兴趣点的特殊行为和显示方式:

  • 0 无特殊标志
  • 1 始终显示
  • 2 仅在附近显示
  • 4 重要位置
Importance (重要性)

兴趣点的重要性等级,数值越高表示越重要。当多个兴趣点重叠时,重要性高的会优先显示。

Name (名称)

当玩家将鼠标悬停在地图标记上时显示的文本。名称应简洁明了,如"武器商店"、"法师训练师"等。

实战案例

案例1:添加武器商店标记

INSERT INTO points_of_interest (ID, PositionX, PositionY, Icon, Flags, Importance, Name)
VALUES (1001, -8800.0, 650.0, 1, 1, 10, '武器商店');

案例2:添加训练师标记

INSERT INTO points_of_interest (ID, PositionX, PositionY, Icon, Flags, Importance, Name)
VALUES (1002, -8850.0, 700.0, 2, 1, 10, '战士训练师');

案例3:添加飞行点标记

INSERT INTO points_of_interest (ID, PositionX, PositionY, Icon, Flags, Importance, Name)
VALUES (1003, -8840.0, 490.0, 6, 1, 20, '暴风城飞行点');

案例4:在对话选项中引用兴趣点

-- 让守卫对话选项在地图上标记武器商店
UPDATE gossip_menu_option
SET ActionPoiID = 1001
WHERE MenuID = 5000 AND OptionID = 0;

查询示例

查找特定区域的兴趣点
SELECT ID, Name, PositionX, PositionY, Icon
FROM points_of_interest
WHERE PositionX BETWEEN -9000 AND -8000
AND PositionY BETWEEN 500 AND 800
ORDER BY Name;
按图标类型统计
SELECT Icon, COUNT(*) as count
FROM points_of_interest
GROUP BY Icon
ORDER BY count DESC;

常见问题

Q: 兴趣点不显示怎么办?
  • 坐标(PositionX, PositionY)是否正确
  • Icon 图标类型是否有效
  • Flags 设置是否合理
  • gossip_menu_option 中的 ActionPoiID 是否正确引用
Q: 兴趣点名称支持多语言吗?

是的,可以通过 points_of_interest_locale 表为不同语言提供本地化名称。

相关表格