📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| GameObjectEntry | INT UNSIGNED | 0 | 游戏对象模板ID (主键1) |
| Idx | INT UNSIGNED | 0 | 物品索引 (主键2) |
| ItemId | INT UNSIGNED | 0 | 物品ID |
| VerifiedBuild | INT | NULL | 验证版本 |
🔑 核心字段详解
🆔 GameObjectEntry - 游戏对象模板ID
详细说明:对应gameobject_template.entry,指定掉落任务物品的游戏对象模板。
取值范围:对应gameobject_template.entry
- 复合主键的一部分
- 一个游戏对象可以掉落多个任务物品
- 对应游戏对象的模板ID
- 必须是已存在的游戏对象模板
📊 Idx - 物品索引
详细说明:同一游戏对象的不同任务物品编号索引。
取值范围:0 - 255
- 复合主键的一部分
- 决定物品显示顺序
- Idx=0表示第一个物品
- Idx=1表示第二个物品
- 依次排列
📦 ItemId - 物品ID
详细说明:掉落的任务物品ID,对应item_template.entry。
取值范围:对应item_template.entry
- 必须是任务物品类型
- 玩家打开游戏对象时掉落
- 通常用于任务收集目标
- 每个玩家只能拾取一次
✔️ VerifiedBuild - 验证版本
详细说明:用于确定数据来源和验证状态。
- 0 - 未解析或继承自旧数据库
- 正数 - 已用该客户端版本解析
- -1 - 占位符,等待正确数据
- -客户端版本 - 已解析但手动编辑
💡 实际案例
单一物品 配置单一任务物品掉落
游戏对象ID=12345掉落任务物品ID=1000
INSERT INTO gameobject_questitem VALUES(
12345, 0, 1000, NULL
);多物品 配置多个任务物品掉落
游戏对象ID=12346掉落任务物品1001、1002、1003
-- 第一个任务物品
INSERT INTO gameobject_questitem VALUES(12346, 0, 1001, NULL);
-- 第二个任务物品
INSERT INTO gameobject_questitem VALUES(12346, 1, 1002, NULL);
-- 第三个任务物品
INSERT INTO gameobject_questitem VALUES(12346, 2, 1003, NULL);宝箱 配置宝箱掉落任务物品
宝箱对象ID=12347掉落任务物品ID=2000
INSERT INTO gameobject_questitem VALUES(
12347, 0, 2000, NULL
);查询 查询游戏对象掉落的任务物品
查询游戏对象ID=12345掉落的所有任务物品
SELECT gqi.GameObjectEntry, gqi.Idx, gqi.ItemId, gt.name, it.name
FROM gameobject_questitem gqi
JOIN gameobject_template gt ON gqi.GameObjectEntry = gt.entry
JOIN item_template it ON gqi.ItemId = it.entry
WHERE gqi.GameObjectEntry = 12345
ORDER BY gqi.Idx;⚡ 快速参考
用途说明
| 任务物品掉落 | 打开对象 |
| 任务收集 | 收集目标 |
| 一次性拾取 | 每个玩家一次 |
| 复合主键 | Entry+Idx |
关联表
| gameobject_template | 游戏对象模板 |
| item_template | 物品模板 |
| quest_template | 任务模板 |
| creature_questitem | 生物任务物品 |
常见对象类型
| 宝箱 | 任务物品箱 |
| 容器 | 任务容器 |
| 尸体 | 任务尸体 |
| 包裹 | 任务包裹 |
拾取规则
| 任务相关 | 需要任务 |
| 一次性 | 每个玩家一次 |
| 自动拾取 | 自动进入背包 |
| 任务目标 | 计入任务进度 |
🔗 相关表格
- gameobject_template - 游戏对象模板表
- gameobject_loot_template - 游戏对象掉落表
- item_template - 物品模板表
- quest_template - 任务模板表
- creature_questitem - 生物任务物品表
❓ 常见问题
Q1: 任务物品掉落机制?
玩家打开游戏对象时,如果该对象在gameobject_questitem表中有记录,且玩家有相关任务,就会掉落任务物品。
Q2: 一个对象可以掉落多个任务物品吗?
可以,一个游戏对象可以掉落多个任务物品,每个物品使用不同的Idx值。
Q3: 任务物品拾取规则?
任务物品每个玩家只能拾取一次,拾取后自动进入背包,并计入任务收集进度。
Q4: 这个表和gameobject_loot_template的区别?
gameobject_loot_template定义普通物品掉落,gameobject_questitem定义任务物品掉落,两者独立工作。