文件概述

Holidays.dbc 定义了游戏中所有节日的日程安排。每个条目包含节日的日期周期、持续时间、循环规则等。与 HolidayNames.dbc 配合,前者提供名称,后者提供日程。数据库中的 game_event 表通过 holiday 字段引用此文件。

列结构

列号字段名类型描述
1ID整数节日唯一ID
2Duration[1-10]整数10个时段定义
3Name字符串节日名称(对应HolidayNames)
4Region整数区域标志(0=全部)
5Looping整数循环类型
6Flags[1-10]整数10个时段标志
7TextureFilename字符串日历图标纹理

重要字段详解

Duration / Flags 时段数组

每个节日可以有最多10个时段。每个时段由两个值定义:

  • Duration[N]:该时段的开始日期(枚举值,如"在1月1日")
  • Flags[N]:该时段的持续时间标志

对于只有单一时段的节日(如万圣节只在10月),只使用 Duration[1] 和 Flags[1]。

Looping(循环类型)

控制节日的重复规则:

  • 0:年度循环(大多数节日,如春节每年一次)
  • 1:每月循环(如暗月马戏团每月出现)
  • 2:每周循环(如荆棘谷钓鱼大赛)

使用技巧

查询所有年度循环的节日:
SELECT ID, Name FROM Holidays WHERE Looping = 0;