📖 表说明

游戏事件生物任务表定义了事件期间生物提供的任务。这个表用于控制任务在特定事件期间由特定生物提供。

数据来源: 本文档基于AzerothCore官方Wiki和官方数据表借鉴.sql编写。

📊 表结构

字段名数据类型描述
eventEntrytinyint UNSIGNED事件ID
idint UNSIGNED生物ID(主键)
questint UNSIGNED任务ID(主键)

主键: id + quest(联合主键)

🔍 重要字段详解

id (生物ID)

主键之一,对应creature_template表的entry字段,即生物模板ID。指定哪个生物在此事件期间提供额外任务。注意这是模板ID而非guid(实例ID)。

quest (任务ID)

主键之一,对应quest_template表的ID。指定事件期间该生物额外提供的任务。该任务仅在事件激活时对玩家可见和可接取。

💡 实战案例

查询某事件中所有生物提供的任务:
SELECT gcq.eventEntry, gcq.id, gcq.quest,
       ct.name AS creature_name, qt.Title AS quest_title,
       ge.description AS event_name
FROM game_event_creature_quest gcq
JOIN creature_template ct ON gcq.id = ct.entry
JOIN quest_template qt ON gcq.quest = qt.ID
JOIN game_event ge ON gcq.eventEntry = ge.eventEntry
ORDER BY ge.eventEntry, ct.name;
为节日NPC添加限时任务:
INSERT INTO game_event_creature_quest (eventEntry, id, quest)
VALUES (12, 12345, 98765)
ON DUPLICATE KEY UPDATE quest = 98765;

❓ 常见问题

Q: 任务在事件期间不显示?

A: 检查:(1) quest_template中任务ID是否正确,(2) eventEntry在game_event中是否激活,(3) 生物ID对应creature_template.entry是否正确,(4) 确认生物本身已正常刷新。

Q: 如何让多个NPC在事件期间提供相同任务?

A: 为每个NPC创建独立的记录:INSERT INTO game_event_creature_quest (eventEntry, id, quest) VALUES (12, NPC_ID_1, QUEST_ID), (12, NPC_ID_2, QUEST_ID);