character_queststatus表记录了角色当前正在进行的任务状态和进度信息。这个表跟踪每个任务的完成情况、目标进度、状态变化等关键数据,是任务系统的核心数据表。
序号 | 字段名 | 数据类型 | 默认值 | 是否为空 | 键类型 | 说明 |
---|---|---|---|---|---|---|
1 | guid | int(10) unsigned | 0 | NOT NULL | PRIMARY KEY | 角色GUID,关联characters表,复合主键之一 |
2 | quest | int(10) unsigned | 0 | NOT NULL | PRIMARY KEY | 任务ID,关联world.quest_template表,复合主键之一 |
3 | status | tinyint(3) unsigned | 0 | NOT NULL | 任务状态:0=无,1=完成,2=失败,3=进行中,4=可交付 | |
4 | explored | tinyint(3) unsigned | 0 | NOT NULL | 探索标志,用于探索类任务的区域发现状态 | |
5 | timer | int(10) unsigned | 0 | NOT NULL | 任务计时器,限时任务的剩余时间(毫秒) | |
6 | mobcount1 | smallint(5) unsigned | 0 | NOT NULL | 第1个击杀目标的当前计数 | |
7 | mobcount2 | smallint(5) unsigned | 0 | NOT NULL | 第2个击杀目标的当前计数 | |
8 | mobcount3 | smallint(5) unsigned | 0 | NOT NULL | 第3个击杀目标的当前计数 | |
9 | mobcount4 | smallint(5) unsigned | 0 | NOT NULL | 第4个击杀目标的当前计数 | |
10 | itemcount1 | smallint(5) unsigned | 0 | NOT NULL | 第1个物品目标的当前计数 | |
11 | itemcount2 | smallint(5) unsigned | 0 | NOT NULL | 第2个物品目标的当前计数 | |
12 | itemcount3 | smallint(5) unsigned | 0 | NOT NULL | 第3个物品目标的当前计数 | |
13 | itemcount4 | smallint(5) unsigned | 0 | NOT NULL | 第4个物品目标的当前计数 | |
14 | itemcount5 | smallint(5) unsigned | 0 | NOT NULL | 第5个物品目标的当前计数 | |
15 | itemcount6 | smallint(5) unsigned | 0 | NOT NULL | 第6个物品目标的当前计数 | |
16 | playercount | smallint(5) unsigned | 0 | NOT NULL | 玩家相关计数,用于PVP任务等特殊计数 |
中文意思:角色全局唯一标识符
作用:标识拥有此任务状态的角色
常见值:1, 2, 3, 4, 5... (对应characters表中的guid)
示例应用:查询指定角色的所有任务进度,角色删除时清理任务数据
中文意思:任务模板标识符
作用:关联到world.quest_template表,定义任务的基础信息
常见值:1, 25, 60, 1234 (对应不同的任务模板)
示例应用:通过此ID查询任务的名称、描述、奖励等基础信息
中文意思:任务当前状态
作用:控制任务在客户端的显示和行为
常见值:
示例应用:任务日志中的状态显示,NPC头顶的任务标记
中文意思:区域探索完成标志
作用:记录探索类任务的区域发现状态
常见值:0 (未探索), 1 (已探索)
示例应用:探索某个区域的任务,发现新地点时更新此标志
中文意思:任务剩余时间
作用:控制限时任务的时间限制
常见值:0 (无时间限制), 3600000 (1小时,毫秒为单位)
示例应用:护送任务、限时收集任务的倒计时显示
中文意思:击杀目标当前计数
作用:记录击杀类任务目标的完成进度
常见值:0-65535 (根据任务要求而定)
示例应用:
中文意思:物品收集目标当前计数
作用:记录收集类任务物品的完成进度
常见值:0-65535 (根据任务要求而定)
示例应用:
中文意思:玩家相关目标计数
作用:记录PVP任务或其他玩家相关任务的进度
常见值:0-65535 (根据任务要求而定)
示例应用:击杀敌对阵营玩家、协助其他玩家等任务
-- 查询角色当前进行的所有任务 SELECT cqs.quest, qt.LogTitle, cqs.status FROM character_queststatus cqs JOIN world.quest_template qt ON cqs.quest = qt.ID WHERE cqs.guid = 1 AND cqs.status = 3; -- 查询可交付的任务 SELECT cqs.quest, qt.LogTitle FROM character_queststatus cqs JOIN world.quest_template qt ON cqs.quest = qt.ID WHERE cqs.guid = 1 AND cqs.status = 4; -- 查询任务进度详情 SELECT qt.LogTitle, cqs.mobcount1, qt.RequiredNpcOrGo1, qt.RequiredNpcOrGoCount1, cqs.itemcount1, qt.RequiredItemId1, qt.RequiredItemCount1 FROM character_queststatus cqs JOIN world.quest_template qt ON cqs.quest = qt.ID WHERE cqs.guid = 1 AND cqs.quest = 60; -- 统计角色任务完成情况 SELECT COUNT(*) as total_quests, SUM(CASE WHEN status = 3 THEN 1 ELSE 0 END) as in_progress, SUM(CASE WHEN status = 4 THEN 1 ELSE 0 END) as ready_to_turn_in FROM character_queststatus WHERE guid = 1;