表概述

graveyard_zone表属于Trigger System,建立墓地(game_graveyard)与区域(Area/Zone)的映射关系。当玩家在某区域死亡时,系统查询此表确定灵魂应前往的墓地,并支持阵营区分。

主键为 (ID, GhostZone),ID对应game_graveyard的墓地编号,GhostZone为区域ID,Faction控制阵营可见性。

表结构

字段名数据类型默认值说明
IDINT UNSIGNED0墓地ID(主键,对应game_graveyard.ID)
GhostZoneINT UNSIGNED0区域Zone ID(主键)
FactionSMALLINT UNSIGNED0阵营限制
CommentTEXTNULL注释说明

重要字段详解

GhostZone (灵魂归宿区域)

玩家死亡后,系统查找死亡位置所属区域(GhostZone),然后定位到关联的墓地(ID)。GhostZone通常对应AreaTable.dbc中的区域ID,可以是父区域或子区域。

Faction (阵营区分)

值为0/1/2,控制墓地阵营专属:

  • 0 - 中立/通用(双方均可用)
  • 1 - 仅部落使用
  • 2 - 仅联盟使用

同一区域可以有两条记录分别对应不同阵营的墓地。

实战案例

为区域绑定阵营专属墓地
-- 东瘟疫之地(区域139),部落和联盟各有不同墓地
INSERT INTO graveyard_zone (ID, GhostZone, Faction, Comment) VALUES
(34, 139, 2, '东瘟疫-联盟墓地'),
(35, 139, 1, '东瘟疫-部落墓地');
查询某区域的所有墓地关联
SELECT gz.ID, gg.Comment AS graveyard_name, gz.GhostZone, gz.Faction, gz.Comment
FROM graveyard_zone gz
JOIN game_graveyard gg ON gz.ID = gg.ID
WHERE gz.GhostZone = 139
ORDER BY gz.Faction;

常见问题

Q: 玩家死亡后被传送到很远的地方?

A: 检查ghostZone是否与该区域匹配。如果某区域没有对应的graveyard_zone记录,系统会向上级区域查找。确保每个主要区域都有墓地映射。

Q: 副本内墓地如何配置?

A: 副本内的墓地同样在graveyard_zone表中配置,GhostZone使用副本内的子区域ID。副本死亡后玩家灵魂出现在副本入口处的墓地。