instance_reset - 副本重置时间配置表
基于 AzerothCore Characters 数据库 · 全局副本重置时间调度表
📋 表概述
instance_reset 表管理每个副本地图+难度的全局重置调度。系统根据此表的时间戳来决定何时清理过期的副本实例和角色绑定。服务器定期检查此表,当到达 resettime 时执行相关副本的全局重置操作。
- 副本重置调度
- 按地图+难度配置
- 定时自动清理
- 全局重置管理
联合主键 (mapid, difficulty),每个副本地图+难度组合有唯一的重置调度记录。系统会自动更新 resettime 字段。
📊 表结构
| 字段名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| mapid | smallint UNSIGNED | 0 | 副本地图ID(联合主键1) |
| difficulty | tinyint UNSIGNED | 0 | 副本难度(联合主键2) |
| resettime | int UNSIGNED | 0 | Unix时间戳,下次重置时间 |
🔍 重要字段详解
🗺️ mapid / difficulty - 副本标识
详细说明:两个字段组成联合主键,精确定位一个副本地图在特定难度下的重置配置。
- mapid - 副本地图ID(与 instance.map 对应)
- difficulty - 难度级别(0~3,与 instance.difficulty 对应)
- 同一map可能有2条记录(普通10人+英雄5人各一条)
⏰ resettime - 重置时间戳
详细说明:记录该副本下一次全局重置的时间点。系统到达该时间后会自动执行清理。
- Unix时间戳格式,可用 FROM_UNIXTIME() 转换查看
- 5人英雄副本通常每日重置一次
- 团队副本通常每周重置一次(通常在周二维护时间)
- 手动修改可实现提前/延后重置
💡 立即重置全部副本:
UPDATE instance_reset SET resettime = 1;(设置已过期时间戳)💡 SQL示例
示例1:查看所有副本重置时间
SELECT
mapid,
difficulty,
FROM_UNIXTIME(resettime) AS next_reset,
TIMEDIFF(FROM_UNIXTIME(resettime), NOW()) AS time_remaining
FROM instance_reset
ORDER BY resettime;示例2:将所有5人英雄本延后24小时
UPDATE instance_reset
SET resettime = resettime + 86400
WHERE difficulty = 1;❓ 常见问题
Q1: 修改 resettime 后需要重启服务器吗?
通常不需要。服务器会定期检查此表。但如果需要立即生效,可以使用 GM 命令
.instance unbind all 或重启服务器。Q2: 此表为空会怎样?
如果某副本没有对应的 instance_reset 记录,该副本将不会自动重置,副本实例会一直存在。服务器启动时通常会初始化这些记录。