character_queststatus_daily 每日任务表
基于 AzerothCore 官方数据库 · Characters 库 · 记录角色每日任务的完成状态
表概述
character_queststatus_daily 表记录角色已完成的每日任务及完成时间。用于防止同一天内重复完成同一个日常任务。
核心概念:角色完成一个每日任务后,在此表中记录任务ID和完成时间。每日重置时(通常凌晨3点),此表中的记录被清除,任务可以再次完成。
表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| guid | INT UNSIGNED | 0 | 角色GUID,关联 → characters.guid |
| quest | INT UNSIGNED | 0 | 任务ID,关联 → quest_template.ID |
| time | INT UNSIGNED | 0 | 完成时间(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;