pool_quest_save 任务池保存表
基于 AzerothCore 官方数据库 · Characters 库 · 记录任务池的当前激活任务
表概述
pool_quest_save 表记录任务池(pool_quest)的当前激活任务。任务池是一种随机任务机制:从一组任务中随机挑选一个激活。
核心概念:任务池池允许从多个候选任务中随机选取一个激活。此表保存当前已激活的任务,确保全服一致(所有玩家看到相同的激活任务)。
表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| pool_id | INT UNSIGNED | 0 | 任务池ID,关联 → pool_quest.entry |
| quest_id | INT UNSIGNED | 0 | 当前激活的任务ID → quest_template.ID |
重要字段详解
pool_id - 任务池ID
详细说明:对应 world 库 pool_quest 表中的任务池定义。
- 每个任务池包含多个候选任务
- 池中只有一个任务在同一时间激活
- 用于钓鱼日常、烹饪日常等随机日常任务系统
quest_id - 激活的任务
详细说明:当前任务池中激活的任务ID。
- 全服统一,确保所有玩家看到的任务相同
- 与 pool_quest 联合主键,每个池最多一条记录
- 重置时可清空记录,让系统重新随机选择
SQL示例:查看当前激活的任务 →
SELECT * FROM pool_quest_save;SQL查询示例
-- 查看所有任务池的当前激活状态
SELECT pqs.pool_id, pqs.quest_id, qt.Title AS quest_name
FROM pool_quest_save pqs
LEFT JOIN world.quest_template qt ON pqs.quest_id = qt.ID;-- 重置所有任务池(将重新随机选择任务)
DELETE FROM pool_quest_save;常见问题
Q: 为什么要保存任务池的激活状态?
确保全服玩家看到相同的每日随机任务。如果不保存,服务器重启后可能随机到不同的任务,造成不一致。
Q: 任务池何时重新随机选择?
在服务器启动时或每日重置脚本执行时,如果此表为空或记录过期,系统会从任务池中随机选择新任务并写入此表。