instance_template 表
instance_template表定义副本/地下城的基本配置,包括地图ID、父地图关系、实例脚本和坐骑权限。
表概述
instance_template表是副本系统的基础配置表。每个副本(地下城、团队副本)都有一条记录,通过parent字段建立副本入口地图与实际副本地图的关联关系。
主键为 map,每条记录对应Map.dbc中的一个地图ID。
表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| map | SMALLINT UNSIGNED | NOT NULL | 副本地图ID(主键),对应Map.dbc |
| parent | SMALLINT UNSIGNED | NOT NULL | 父地图ID,副本入口所在的地图 |
| script | VARCHAR(128) | '' | 实例脚本名称 |
| allowMount | TINYINT UNSIGNED | 0 | 是否允许在副本内骑乘:0=禁止,1=允许 |
重要字段详解
map (副本地图ID)
主键,对应Map.dbc中的地图编号。常见副本地图ID:
- 33 - 血色修道院
- 36 - 死亡矿井
- 43 - 哀嚎洞穴
- 48 - 黑暗深渊
- 70 - 奥达曼
- 90 - 诺莫瑞根
- 109 - 沉没的神庙
- 209 - 祖尔法拉克
- 229 - 黑石塔下层
- 230 - 黑石深渊
- 249 - 奥妮克希亚的巢穴
- 309 - 祖尔格拉布
- 409 - 熔火之心
- 469 - 黑翼之巢
- 531 - 安其拉废墟
- 532 - 卡拉赞
- 533 - 纳克萨玛斯
parent (父地图)
指向副本入口所在的世界地图。用于确定副本的物理入口位置:
- 0 - 东部王国(死亡矿井、血色修道院等)
- 1 - 卡利姆多(哀嚎洞穴、黑暗深渊等)
- 530 - 外域(地狱火城墙、暗影迷宫等)
- 571 - 诺森德(魔枢、闪电大厅等)
script (实例脚本)
C++实例脚本名称,用于控制副本的特殊机制:
instance_deadmines- 死亡矿井脚本instance_blackrock_depths- 黑石深渊脚本instance_molten_core- 熔火之心脚本
实战案例
查询所有副本及其入口位置:
SELECT it.map, it.parent, it.script, it.allowMount,
att.Name, att.target_map
FROM instance_template it
LEFT JOIN areatrigger_teleport att ON it.map = att.target_map
WHERE it.map > 1
ORDER BY it.map;
查询某地图上的所有副本入口:
SELECT it.map, it.script
FROM instance_template it
WHERE it.parent = 0 -- 东部王国
ORDER BY it.map;
允许在副本内骑乘:
UPDATE instance_template SET allowMount = 1 WHERE map = [副本地图ID];
常见问题
Q: 进入副本后被传送到错误的位置,如何排查?
检查areatrigger表和areatrigger_teleport表的对应记录,确认target_map与instance_template.map一致。
Q: 副本没有Boss刷新,如何排查?
检查instance_template.script是否正确填写,以及对应的C++脚本是否已编译加载。