表概述

character_queststatus_daily 表记录角色已完成的每日任务及完成时间。用于防止同一天内重复完成同一个日常任务。

核心概念:角色完成一个每日任务后,在此表中记录任务ID和完成时间。每日重置时(通常凌晨3点),此表中的记录被清除,任务可以再次完成。

表结构

字段名数据类型默认值说明
guidINT UNSIGNED0角色GUID,关联 → characters.guid
questINT UNSIGNED0任务ID,关联 → quest_template.ID
timeINT UNSIGNED0完成时间(Unix时间戳)

重要字段详解

time - 完成时间

详细说明:Unix时间戳,记录任务完成的确切时间。
  • 用于每日重置判断:比较完成时间是否在当天的重置周期内
  • 每日重置时清除此表中的所有记录

quest - 任务ID

详细说明:关联 world 库 quest_template 表的任务ID。
  • 与 guid 组成联合主键,确保同一角色不能重复记录同一任务
  • 只有标记为"每日任务"(QuestInfoID)的任务才会在此表记录
SQL示例:查看角色今天完成的每日任务 → SELECT * FROM character_queststatus_daily WHERE guid=1;

SQL查询示例

-- 查看角色今天完成了多少个每日任务 SELECT COUNT(*) AS daily_count FROM character_queststatus_daily WHERE guid = 1;
-- 手动重置角色的每日任务(允许重新做) DELETE FROM character_queststatus_daily WHERE guid = 1;
-- 全局重置所有角色的每日任务 DELETE FROM character_queststatus_daily;

常见问题

Q: 每日任务什么时候重置?

默认每日凌晨3:00(服务器时间)重置。重置时 char_db_cleanup 或相关维护脚本会清空此表。具体时间由服务器配置文件中的 DailyQuestResetTime 控制。

Q: 如何让角色重新完成今天已交的每日任务?

删除该角色在此表中的对应记录:DELETE FROM character_queststatus_daily WHERE guid=角色GUID AND quest=任务ID;