📋 表概述

game_event_save 表用于持久化世界事件(如冬幕节、仲夏火焰节、美酒节等节日活动)的运行状态。记录每个事件的当前状态和下次启动时间,确保服务器重启后事件的进度不会丢失。

📊 表结构

字段名数据类型默认值说明
eventEntrytinyint UNSIGNED(无)事件ID,关联 world.game_event.eventEntry
statetinyint UNSIGNED1事件状态:0=未激活, 1=激活中
next_startint UNSIGNED0下次事件开始的时间(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;