📖 game_event_save 表
游戏事件保存表,记录世界事件(节日/活动)的状态和下一次触发时间。
📋 表概述
game_event_save 表用于持久化世界事件(如冬幕节、仲夏火焰节、美酒节等节日活动)的运行状态。记录每个事件的当前状态和下次启动时间,确保服务器重启后事件的进度不会丢失。
- 主键:(eventEntry)
- 引擎:InnoDB
- 关联表:world 库的 game_event
📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
eventEntry | tinyint UNSIGNED | (无) | 事件ID,关联 world.game_event.eventEntry |
state | tinyint UNSIGNED | 1 | 事件状态:0=未激活, 1=激活中 |
next_start | int UNSIGNED | 0 | 下次事件开始的时间(Unix时间戳) |
🔍 重要字段详解
eventEntry — 事件标识
对应 world 库中 game_event 表的 eventEntry。每条记录追踪一个特定世界事件的运行时状态。例如美酒节事件ID、万圣节事件ID等。
next_start — 下次启动时间
记录事件下次计划触发的时间(Unix 时间戳)。服务器根据 game_event 表中的调度配置计算此值,并在事件结束后更新为下一个周期的开始时间。
💡 SQL查询示例
查看所有正在进行中的游戏事件
SELECT gs.eventEntry, gs.state,
FROM_UNIXTIME(gs.next_start) AS 下次开始时间
FROM game_event_save gs
WHERE gs.state = 1;
手动触发一个游戏事件(设为激活状态)
UPDATE game_event_save
SET state = 1, next_start = UNIX_TIMESTAMP()
WHERE eventEntry = 10;
❓ 常见问题
Q: game_event_save 和 world 库的 game_event 有什么区别?
world 库的 game_event 存储事件的定义配置(何时触发、持续多久等),game_event_save 存储事件的运行时状态(当前是否激活、下次何时触发)。后者会在服务器运行过程中动态更新。
Q: 如何强制关闭一个正在进行的节日活动?
将 state 设为 0:UPDATE game_event_save SET state = 0 WHERE eventEntry = 节日ID;