`game_event` 表
表结构
该表保存核心中由游戏事件系统(Game Event System)自动激活或停用的所有游戏事件的定义。
| 字段 | 类型 | 属性 | 键 | 允许为空 | 默认值 | 额外 | 注释 |
|---|---|---|---|---|---|---|---|
| eventEntry | TINYINT | UNSIGNED | PRI | NO | Unique | 游戏事件的条目(Entry) | |
| start_time | TIMESTAMP | YES | NULL | 绝对开始日期,事件绝不会在此之前开始 | |||
| end_time | TIMESTAMP | YES | NULL | 绝对结束日期,事件绝不会在此之后开始;如果为 NULL,则在每次服务器启动时将其隐式设置为未来 2 年 | |||
| occurence | BIGINT | UNSIGNED | NO | 事件两次发生之间的延迟(分钟) | |||
| length | BIGINT | UNSIGNED | NO | 事件的持续时长(分钟) | |||
| holiday | MEDIUMINT | UNSIGNED | NO | 客户端节日 ID(来自 dbc) | |||
| holidayStage | TINYINT | UNSIGNED | NO | ||||
| description | VARCHAR(255) | SIGNED | YES | NULL | 在控制台显示的事件描述 | ||
| world_event | TINYINT | UNSIGNED | NO | 0 表示普通事件,1 表示世界事件 | |||
| announce | TINYINT | UNSIGNED | YES | 2 | 0 不公告,1 公告,2 使用配置中的值 |
字段说明
事件的条目。请尽量保持其数值较低,并避免在列表中留下空档。最大 ID 越高,存储事件数据所使用的内存就越多。
事件的绝对开始日期。只有当服务器的本地时间晚于此处设置的时间时,事件才会开始发生。
事件的绝对结束日期。如果服务器的本地时间晚于此处设置的时间,事件将停止发生。
事件两次发生之间的分钟数。(2880 = 2 天,1440 = 1 天,以此类推)
事件从本次发生开始后持续的分钟数。(2880 = 2 天,1440 = 1 天,以此类推) 该值必须小于 occurrence 的值,否则事件将永远不会停止。
来自 Holidays DBC 文件 的节日 ID。该值会发送给客户端以更新日历。
包含事件名称的字符串,每次事件开始或停止时会在控制台显示。
这是一个布尔字段,用于确定该游戏事件是否为世界事件。0 = 普通事件,1 = 世界事件。要使世界事件生效,您至少需要填充 game_event_condition 和 game_event_quest_condition。
| 值 | 描述 |
|---|---|
| 0 | 不公告该事件 |
| 1 | 向世界公告该事件的描述 |
| 2 | 使用配置中的 event.announce 设置 |
某些节日发生在每年变化的日期。对于这些节日,服务器会在启动时使用天文算法和日历规则自动计算正确的日期。
| 节日 ID | 节日名称 | 计算方法 |
|---|---|---|
| 141 | 冬幕节(Feast of Winter Veil) | 冬至前 6 天(12 月 15-16 日) |
| 181 | 复活节(Noblegarden) | 复活节星期日的次日 |
| 201 | 儿童周(Children's Week) | 4 月 25 日当天或之后的第一个星期一 |
| 283 | 收获节(Harvest Festival) | 秋分前 2 天 |
| 301 | 万圣节(Hallow's End) | 固定为 10 月 18 日 |
| 321 | 农历新年(Lunar Festival) | 中国农历新年的前一天(天文农历计算) |
| 324 | 仲夏火焰节(Midsummer Fire Festival) | 固定为 6 月 21 日 |
| 327 | 啤酒节(Brewfest) | 9 月 15 日当天或之后的第一个星期六,再减去 7 天 |
| 335 | 情人节(Love is in the Air) | 2 月 3 日当天或之后的第一个星期一 |
| 341 | 亡灵节(Day of the Dead) | 固定为 11 月 1 日 |
| 372 | 丰收节(Pilgrim's Bounty) | 11 月的第 4 个星期四减去 4 天 |
| 374 | 暗月马戏团(艾尔文森林) | 3 月/6 月/9 月/12 月的第一个星期日减去 2 天 |
| 375 | 暗月马戏团(莫高雷) | 1 月/4 月/7 月/10 月的第一个星期日减去 2 天 |
| 376 | 暗月马戏团(泰罗卡) | 2 月/5 月/8 月/11 月的第一个星期日减去 2 天 |
GameEventMgr::LoadHolidayDates() 会遍历所有节日规则Holidays.dbc 的 Date[] 数组,用于日历显示start_time 和 end_time 会更新以匹配下一次发生的时间holiday_dates 数据库表已被移除——所有日期现在都动态计算