📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| id | MEDIUMINT UNSIGNED | 0 | 游戏对象模板ID (主键1) |
| quest | MEDIUMINT UNSIGNED | 0 | 任务ID (主键2) |
🔑 核心字段详解
🆔 id - 游戏对象模板ID
详细说明:对应gameobject_template.entry,指定可以结束任务的游戏对象模板。
取值范围:对应gameobject_template.entry
- 复合主键的一部分
- 一个游戏对象可以结束多个任务
- 对应游戏对象的模板ID
- 必须是已存在的游戏对象模板
📋 quest - 任务ID
详细说明:对应quest_template.ID,指定游戏对象可以结束的任务。
取值范围:对应quest_template.ID
- 复合主键的一部分
- 同一个任务可以被多个对象结束
- 对应任务的模板ID
- 必须是已存在的任务
💡 实际案例
交付点 配置任务交付点
游戏对象ID=12345可以结束任务ID=1000
INSERT INTO gameobject_questender VALUES(
12345, 1000
);多任务 一个对象结束多个任务
游戏对象ID=12346可以结束任务1001、1002、1003
-- 第一个任务
INSERT INTO gameobject_questender VALUES(12346, 1001);
-- 第二个任务
INSERT INTO gameobject_questender VALUES(12346, 1002);
-- 第三个任务
INSERT INTO gameobject_questender VALUES(12346, 1003);宝箱 配置宝箱结束任务
宝箱对象ID=12347可以结束任务ID=2000
INSERT INTO gameobject_questender VALUES(
12347, 2000
);查询 查询游戏对象可以结束的任务
查询游戏对象ID=12345可以结束的所有任务
SELECT gqe.id, gqe.quest, gt.name, qt.Title
FROM gameobject_questender gqe
JOIN gameobject_template gt ON gqe.id = gt.entry
JOIN quest_template qt ON gqe.quest = qt.ID
WHERE gqe.id = 12345;⚡ 快速参考
用途说明
| 任务交付点 | 交付任务 |
| 宝箱 | 打开完成 |
| 特殊触发 | 任务完成对象 |
| 复合主键 | id + quest |
关联表
| gameobject_template | 游戏对象模板 |
| quest_template | 任务模板 |
| gameobject_queststarter | 任务开始表 |
| creature_questender | 生物任务结束 |
常见对象类型
| 宝箱 | 收集任务 |
| 祭坛 | 仪式任务 |
| 旗帜 | 占领任务 |
| 传送门 | 到达任务 |
任务流程
| 开始 | queststarter |
| 进行 | quest_template |
| 结束 | questender |
| 奖励 | quest_reward |
🔗 相关表格
- gameobject_template - 游戏对象模板表
- gameobject_queststarter - 游戏对象任务开始表
- quest_template - 任务模板表
- creature_questender - 生物任务结束表
❓ 常见问题
Q1: 游戏对象如何结束任务?
玩家点击或交互游戏对象时,如果该对象在gameobject_questender表中有记录,且玩家已完成任务目标,就可以交付任务。
Q2: 一个对象可以结束多个任务吗?
可以,一个游戏对象可以结束多个任务,只需在表中添加多条记录即可。
Q3: 宝箱如何配置任务结束?
宝箱类型的游戏对象通常用于收集任务,玩家打开宝箱时交付任务,添加gameobject_questender记录。
Q4: 这个表和creature_questender的区别?
creature_questender针对生物NPC,gameobject_questender针对游戏对象(如宝箱、祭坛、旗帜等)。