📖 表说明
游戏事件任务条件表定义了事件与任务的条件关系。这个表用于控制任务在特定事件期间的可用性。
数据来源: 本文档基于AzerothCore官方Wiki和官方数据表借鉴.sql编写。
📊 表结构
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| eventEntry | tinyint UNSIGNED | 事件ID(主键) |
| quest | int UNSIGNED | 任务ID(主键) |
| condition_id | int UNSIGNED | 条件ID |
| num | float | 数量 |
主键: eventEntry + quest(联合主键)
🔍 重要字段详解
condition_id (条件类型)
定义任务完成条件的类型。对应game_event_condition表中condition_id的定义。常见条件类型包括:
- 击杀指定数量的怪物
- 收集指定数量的物品
- 达到指定的世界状态值
- 完成特定的互动操作
condition_id与eventEntry关联,确保条件在特定事件上下文中生效。
num (需求数量)
定义条件达成所需的具体数值。类型为FLOAT,支持小数(如进度百分比)。
- 1~100 - 击杀数量或收集物品数量
- 0~1 - 百分比进度(0=0%, 1=100%)
默认值0表示无数量要求。
quest (任务ID)
关联的任务ID,对应quest_template表的ID字段。是表的主键,意味着每个任务在此表中最多一条记录。
通过quest和eventEntry的组合,系统确定特定事件期间任务的完成条件。
💡 实战案例
查询火焰节事件中所有任务的完成条件:
SELECT gqc.quest, qt.Title, gqc.condition_id, gqc.num
FROM game_event_quest_condition gqc
JOIN quest_template qt ON gqc.quest = qt.ID
WHERE gqc.eventEntry = 1;
为火焰节任务设置完成条件(需要收集10个物品):
INSERT INTO game_event_quest_condition (eventEntry, quest, condition_id, num)
VALUES (1, 11691, 1, 10);
❓ 常见问题
Q: 同一个任务可以在不同事件中有不同的条件吗?
不可以。quest是主键,每个任务在此表最多一条记录,即一个任务只能关联一个事件的条件。如需同一任务在多个事件中可用,需要复制任务并创建不同ID。
Q: condition_id从哪里获取?
condition_id来自game_event_condition表,该表定义了事件条件的详细参数(req_num、world_state_field等)。需要先在game_event_condition中定义条件,再在quest_condition中引用。