graveyard_zone 表
graveyard_zone表将墓地与区域(Zone)关联,决定各区域玩家死亡后灵魂去往哪个墓地。
表概述
graveyard_zone表属于Trigger System,建立墓地(game_graveyard)与区域(Area/Zone)的映射关系。当玩家在某区域死亡时,系统查询此表确定灵魂应前往的墓地,并支持阵营区分。
主键为 (ID, GhostZone),ID对应game_graveyard的墓地编号,GhostZone为区域ID,Faction控制阵营可见性。
表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| ID | INT UNSIGNED | 0 | 墓地ID(主键,对应game_graveyard.ID) |
| GhostZone | INT UNSIGNED | 0 | 区域Zone ID(主键) |
| Faction | SMALLINT UNSIGNED | 0 | 阵营限制 |
| Comment | TEXT | NULL | 注释说明 |
重要字段详解
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。副本死亡后玩家灵魂出现在副本入口处的墓地。