📖 表说明
游戏事件生物任务表定义了事件期间生物提供的任务。这个表用于控制任务在特定事件期间由特定生物提供。
数据来源: 本文档基于AzerothCore官方Wiki和官方数据表借鉴.sql编写。
📊 表结构
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| eventEntry | tinyint UNSIGNED | 事件ID |
| id | int UNSIGNED | 生物ID(主键) |
| quest | int 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);