📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| 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_queststarter VALUES(
12345, 1000
);多任务 一个对象开始多个任务
游戏对象ID=12346可以开始任务1001、1002、1003
-- 第一个任务
INSERT INTO gameobject_queststarter VALUES(12346, 1001);
-- 第二个任务
INSERT INTO gameobject_queststarter VALUES(12346, 1002);
-- 第三个任务
INSERT INTO gameobject_queststarter VALUES(12346, 1003);任务物品 配置任务物品开始任务
书籍对象ID=12347可以开始任务ID=2000
INSERT INTO gameobject_queststarter VALUES(
12347, 2000
);查询 查询游戏对象可以开始的任务
查询游戏对象ID=12345可以开始的所有任务
SELECT gqs.id, gqs.quest, gt.name, qt.Title
FROM gameobject_queststarter gqs
JOIN gameobject_template gt ON gqs.id = gt.entry
JOIN quest_template qt ON gqs.quest = qt.ID
WHERE gqs.id = 12345;⚡ 快速参考
用途说明
| 任务公告板 | 多任务开始 |
| 任务物品 | 书籍、信件 |
| 特殊触发 | 任务触发对象 |
| 复合主键 | id + quest |
关联表
| gameobject_template | 游戏对象模板 |
| quest_template | 任务模板 |
| gameobject_questender | 任务结束表 |
| creature_queststarter | 生物任务开始 |
常见对象类型
| 公告板 | 多任务 |
| 书籍 | 阅读任务 |
| 信件 | 信件任务 |
| 宝箱 | 发现任务 |
任务流程
| 开始 | queststarter |
| 进行 | quest_template |
| 结束 | questender |
| 奖励 | quest_reward |
🔗 相关表格
- gameobject_template - 游戏对象模板表
- gameobject_questender - 游戏对象任务结束表
- quest_template - 任务模板表
- creature_queststarter - 生物任务开始表
❓ 常见问题
Q1: 游戏对象如何开始任务?
玩家点击或交互游戏对象时,如果该对象在gameobject_queststarter表中有记录,玩家就可以从该对象接受任务。
Q2: 一个对象可以开始多个任务吗?
可以,一个游戏对象可以开始多个任务,只需在表中添加多条记录即可。
Q3: 任务公告板如何配置?
公告板类型的游戏对象通常可以开始多个任务,为每个任务添加一条gameobject_queststarter记录。
Q4: 这个表和creature_queststarter的区别?
creature_queststarter针对生物NPC,gameobject_queststarter针对游戏对象(如公告板、书籍、宝箱等)。