calendar_events - 游戏日历事件表
基于 AzerothCore Characters 数据库 · 玩家创建的日历活动事件表
📋 表概述
calendar_events 表存储玩家通过游戏内日历系统创建的活动事件。玩家可创建副本活动、团队活动、公会活动等,并邀请其他玩家参加。此表记录活动的基本信息、时间、类型和标记。
- 公会活动安排
- 副本/团队召集
- 玩家自建活动
- 活动时间管理
主键为 id(BIGINT类型)。活动创建者有 creator 字段记录,eventtime 和 time2 记录活动的起止时间。
📊 表结构
| 字段名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| id | bigint UNSIGNED | 0 | 事件唯一ID(主键) |
| creator | int UNSIGNED | 0 | 创建者角色GUID |
| title | varchar(255) | '' | 活动标题 |
| description | varchar(255) | '' | 活动描述 |
| type | tinyint UNSIGNED | 4 | 活动类型 |
| dungeon | int | -1 | 关联地下城ID(-1=无关联) |
| eventtime | int UNSIGNED | 0 | 活动开始时间(Unix时间戳) |
| flags | int UNSIGNED | 0 | 活动标记(按位掩码) |
| time2 | int UNSIGNED | 0 | 活动结束/重复时间(Unix时间戳) |
🔍 重要字段详解
📅 type - 活动类型
详细说明:定义日历活动的类型。
- 0 = 普通活动
- 1 = 副本活动(与 dungeon 关联)
- 2 = 团队活动
- 3 = 公会活动
- 4 = 竞技场活动
🏷️ flags - 事件标记
详细说明:按位标记,控制活动的属性。
- 位 0(值1)= 公会事件
- 位 1(值2)= 有注册人/主持人
- 位 2(值4)= 系统事件(不可编辑/删除)
- 位 3(值8)= 假日/节日事件
⏰ eventtime / time2 - 时间范围
详细说明:两个时间戳定义活动的时间区间。
- eventtime - 活动开始时间
- time2 - 活动结束时间或重复设置时间
- 两者都为Unix时间戳,使用 FROM_UNIXTIME() 查看
💡 SQL示例
示例1:查询未来的活动列表
SELECT
id, title, type, dungeon,
FROM_UNIXTIME(eventtime) AS start_time,
FROM_UNIXTIME(time2) AS end_time
FROM calendar_events
WHERE eventtime > UNIX_TIMESTAMP()
ORDER BY eventtime;示例2:清理已过期的活动
DELETE FROM calendar_events
WHERE time2 < UNIX_TIMESTAMP()
AND flags & 4 = 0;❓ 常见问题
Q1: 日历活动过期后会自动删除吗?
不会自动删除。系统事件(flags & 4 = 4)会保留用于历史参考,但普通活动需要手动清理。
Q2: dungeon 字段为-1是什么意思?
表示该活动不是副本/地下城活动。仅当 type=1(副本活动)时 dungeon 字段才会有有效的副本ID。