character_queststatus表

表格概述

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任务等特殊计数

字段详细说明

👤 guid - 角色标识符

中文意思:角色全局唯一标识符

作用:标识拥有此任务状态的角色

常见值:1, 2, 3, 4, 5... (对应characters表中的guid)

示例应用:查询指定角色的所有任务进度,角色删除时清理任务数据

📋 quest - 任务标识符

中文意思:任务模板标识符

作用:关联到world.quest_template表,定义任务的基础信息

常见值:1, 25, 60, 1234 (对应不同的任务模板)

示例应用:通过此ID查询任务的名称、描述、奖励等基础信息

🔄 status - 任务状态

中文意思:任务当前状态

作用:控制任务在客户端的显示和行为

常见值:

示例应用:任务日志中的状态显示,NPC头顶的任务标记

🗺️ explored - 探索标志

中文意思:区域探索完成标志

作用:记录探索类任务的区域发现状态

常见值:0 (未探索), 1 (已探索)

示例应用:探索某个区域的任务,发现新地点时更新此标志

⏰ timer - 任务计时器

中文意思:任务剩余时间

作用:控制限时任务的时间限制

常见值:0 (无时间限制), 3600000 (1小时,毫秒为单位)

示例应用:护送任务、限时收集任务的倒计时显示

⚔️ mobcount1-4 - 击杀目标计数

中文意思:击杀目标当前计数

作用:记录击杀类任务目标的完成进度

常见值:0-65535 (根据任务要求而定)

示例应用:

📦 itemcount1-6 - 物品目标计数

中文意思:物品收集目标当前计数

作用:记录收集类任务物品的完成进度

常见值:0-65535 (根据任务要求而定)

示例应用:

👥 playercount - 玩家计数

中文意思:玩家相关目标计数

作用:记录PVP任务或其他玩家相关任务的进度

常见值:0-65535 (根据任务要求而定)

示例应用:击杀敌对阵营玩家、协助其他玩家等任务

任务状态流程

📋 任务状态变化流程

  1. 接受任务:创建记录,status=3(进行中)
  2. 完成目标:更新相应的计数字段
  3. 目标达成:status=4(可交付)
  4. 交付任务:删除记录,转移到character_queststatus_rewarded表
  5. 任务失败:status=2(失败)或直接删除记录

使用注意事项

⚠️ 重要提醒

常用查询示例

💡 SQL查询示例

-- 查询角色当前进行的所有任务
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;
                

相关表格