表概述

character_queststatus_seasonal 表记录角色已完成的季节性节日任务(如冬幕节、美酒节、火焰节等),包含对应的事件ID。

核心概念:季节性任务与游戏事件(Event)关联。此表不仅记录任务完成状态,还绑定event字段,支持多个事件独立重置。

表结构

字段名数据类型默认值说明
guidINT UNSIGNED0角色GUID,关联 → characters.guid
questINT UNSIGNED0任务ID,关联 → quest_template.ID
eventINT UNSIGNED0事件ID,关联 → game_event.eventEntry

重要字段详解

event - 事件ID

详细说明:关联到 game_event 表中的事件ID,标识任务属于哪个季节性活动。
  • 美酒节事件对应ID
  • 冬幕节事件对应ID
  • 火焰节事件对应ID
  • 事件结束后,重置任务完成状态

季节性重置机制

详细说明:不同事件有不同的重置机制。重置方式
  • 按event字段过滤,可单独重置某个事件的任务
  • 事件开始时自动清空该事件对应的所有记录
  • 比简单的全表清空更灵活
SQL示例:重置美酒节任务 → DELETE FROM character_queststatus_seasonal WHERE event=美酒节事件ID;

SQL查询示例

-- 查看角色完成的所有季节性任务及事件 SELECT cqs.quest, cqs.event, qt.Title FROM character_queststatus_seasonal cqs LEFT JOIN world.quest_template qt ON cqs.quest = qt.ID WHERE cqs.guid = 1;
-- 统计各季节性事件的完成人数 SELECT event, COUNT(DISTINCT guid) AS player_count FROM character_queststatus_seasonal GROUP BY event;

常见问题

Q: 季节性任务和年度任务的区别?

季节性任务在事件开始时会自动重置(如每年美酒节时可以重新完成),而一次性任务(queststatus_rewarded)只能做一次。重复周期由 game_event 表的调度控制。

Q: 如何手动让角色重新完成某季节性任务?

DELETE FROM character_queststatus_seasonal WHERE guid=角色GUID AND quest=任务ID;