WorldSafeLocs.dbc
世界安全位置(墓地)定义文件。当你死亡时,灵魂会刷新到此处。游戏会自动计算离你死亡位置最近的墓地并将你刷新到那里
文件概述
WorldSafeLocs.dbc 定义了游戏世界中所有墓地(灵魂刷新点)和安全登录位置。玩家死亡后释放灵魂时,系统根据死亡位置计算最近的墓地,将玩家的灵魂传送到对应坐标。同时也用作角色掉线/卡死时的安全传送备选点。
列结构
| 列号 | 字段 | 类型 | 详细说明 |
|---|---|---|---|
| 1 | 编号 | 整数 | 墓地唯一标识符 |
| 2 | 地图编号 | 整数 | 墓地所在的地图编号,参考 Map.dbc |
| 3 | X | 浮点数 | 灵魂刷新点的 X 坐标 |
| 4 | Y | 浮点数 | 灵魂刷新点的 Y 坐标 |
| 5 | Z | 浮点数 | 灵魂刷新点的 Z 坐标(高度) |
| 6~21 | 名称 | 字符串 | 各国语言的墓地名称(本地化),如"闪金镇""十字路口" |
| 22 | 名称标识 | 整数 | 名称字符串的标志位 |
关键字段详解
墓地选择机制
当玩家死亡后释放灵魂时:
- 系统计算玩家死亡位置与各墓地的距离
- 自动选择距离最近的墓地
- 将玩家的灵魂传送到该墓地的 XYZ 坐标
- 灵魂旁边的灵魂医者可供玩家选择虚弱复活
- 玩家也可以选择跑回尸体处复活
地图编号与坐标
灵魂刷新点的坐标必须在指定的地图编号上:
- 不同地图拥有各自的墓地集合
- Z 坐标确保灵魂在地面上方,而非地下
- 副本内的墓地通常设在入口/Boss房间附近
名称(列6~21)
墓地名称支持多种语言的本地化,在释放灵魂对话框中显示,帮助玩家识别当前位置。如 "Goldshire"、"Crossroads" 等。
名称标识(列22)
名称字符串的标志位。通常用于标识字符串是否有效及编码格式。
常见墓地ID速查
| ID | 地图 | 名称 |
|---|---|---|
| 1 | 东部王国 | 丹莫罗墓地 |
| 3 | 东部王国 | 艾尔文森林墓地 |
| 5 | 卡利姆多 | 杜隆塔尔墓地 |
| 128 | 东部王国 | 西部荒野 |
使用示例
-- 查询东部王国(MapID=0)的所有墓地
SELECT 编号, 名称, X, Y, Z
FROM world_safe_locs
WHERE 地图编号 = 0;
使用技巧
- 绑定墓地:生物和 GameObject 通过 graveyard_id 绑定到特定墓地
- 副本墓地:副本内的墓地设在入口/Boss房间附近
- 墓地链接:game_graveyard_zone 表定义区域与墓地的精确关联
- 安全登录:角色"卡死"时自动传送到此表中的最近位置
- 参考:AzerothCore Wiki - world_safe_locs