areatrigger_involvedrelation 表
areatrigger_involvedrelation表定义区域触发与任务的关联,用于判断进入某区域是否触发任务进度。
表概述
areatrigger_involvedrelation表属于Trigger System,将areatrigger(区域触发器)与quest(任务)绑定。当玩家进入该区域触发器范围时,如果正在进行关联的任务,会自动更新任务进度。
主键为 id,对应AreaTrigger.dbc中的触发器ID。每条记录绑定一个任务。
表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| id | INT UNSIGNED | 0 | 区域触发器ID(主键,来自AreaTrigger.dbc) |
| quest | INT UNSIGNED | 0 | 关联的任务ID |
重要字段详解
id (区域触发器)
对应AreaTrigger.dbc中的ID。每个触发器在游戏世界中定义一个检测区域(通常是一个球形或方形范围),当玩家进入该区域时触发检查。
quest (关联任务)
当玩家进入触发器区域且正在进行该任务时,自动更新任务进度。通常用于"前往XX地点"类型的任务目标。一个触发器可以绑定多个任务(多条记录)。
实战案例
为任务绑定区域触发检测
INSERT INTO areatrigger_involvedrelation (id, quest)
VALUES (100, 25001)
ON DUPLICATE KEY UPDATE quest=25001;
-- 当玩家进入areatrigger ID=100的区域且正在进行任务25001时,自动更新进度
查询某个区域触发器涉及的所有任务
SELECT id, quest
FROM areatrigger_involvedrelation
WHERE id = 100;
常见问题
Q: 任务进度不更新?
A: 检查areatrigger_involvedrelation中id是否与AreaTrigger.dbc的ID一致,quest是否正确,以及任务模板(quest_template)中是否配置了"进入区域"类型的任务目标。
Q: 一个触发器能关联多个任务吗?
A: 可以。在表中添加多条记录,使用相同的id但不同的quest即可。符合条件的任务都会被触发。