DB/Holidays: Difference between revisions

From wowdev
Jump to navigation Jump to search
mNo edit summary
m (official flag names 9.0.1)
 
(18 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{Template:Sandbox/VersionRange|min_expansionlevel=3}}
==3.3.5a 12340==
==3.3.5a 12340==
{| style="background:#FCFCFC; color:black"
{| style="background:#f3f3f3; color:black; border: 1px dashed;"
|-  
|-  
! width="80" | Column  
! width="50" | Column  
! width="180 " | Field  
! width="150" | Field  
! width="80" | Type  
! width="100" | Type  
! width="600" | Notes
! width="800" | Notes
! width="500" | Extra info
|-  
|-  
|0  || eventID  || Integer || Reference to the Holiday eventID
|0  || eventID  || Integer || Holiday event ID
|-  
|-  
|1  || eventStage1Duration || Integer || stage1 event timer (preparation or main event, depends on schedulerType)
|1  || eventStageDuration || Integer[10] || Stage1 event length in hours. (for stage, either as preparation, main event, ... or cooldown. See eventSchedulerType for more info)
|-
|-
||| eventStage2Duration || Integer || stage2 event timer (main event if schedulerType is 2) - starts stage2 X hours after stage1 (see eventSchedulerType)
|11 || eventDate || Integer[26] || Packed blizzdate (integers with bits (LSB->MSB) 6: minutes, 5: hours, 3: day of week, 6: day of month, 4: month, 5: year, 2: time zone, last bit unused) - Epochdate=01.01.2000-00:00
|-
|-
|11 || eventDate || Integer || Unixtime-style timestamp - unixtime-like, epoch date is 01.01.2000 00:00 (uses only date (not year) if column12-> is 0)
|37 || Region || integer || bitmask, connected to Cfg_Regions::m_region_group_mask field ||
|-
|-
|37  || Region || integer || (schlumpf, care to elaborate on this ? -click)
|38 || Looping || integer || ??? (needs more research - used only on Call To Arms events -click) ||
  283 - Call to Arms: Alterac Valley
  284 - Call to Arms: Warsong Gulch
  285 - Call to Arms: Arathi Basin
  353 - Call to Arms: Eye of the Storm
  400 - Call to Arms: Strand of the Ancient
  420 - Call to Arms: Isle of Conquest
|-
|-
|38  || Looping || integer || (schlumpf, care to elaborate on this ? -click)
|39 || calendarFlags || integer[10] || ??? (needs more research -click) ||
|-
|-
|39  || calendarFlags || integer || (schlumpf, care to elaborate on this ? -click)
|49 || eventCalendarName || [[HolidayNames.dbc|iRefID]] || Ref to [[Loc]] in HolidayNames.dbc ||
|-
|-
|40  || eventName || [[HolidayNames.dbc|iRefID]] || Ref to [[Loc]] in HolidayNames.dbc (this is field 49 for me -click)
|50 || eventCalendarDescription || [[HolidayDescriptions.dbc|iRefID]] || Ref to [[Loc]] in HolidayDescriptions.dbc ||
|-
|-
|41  || eventDescription|| [[HolidayDescriptions.dbc|iRefID]] || Ref to [[Loc]] in HolidayDescriptions.dbc (this is field 50 for me -click)
|51 || eventCalendarOverlay || String || Overlay texture used for ingame calendar event-decorations ||
|-
|-
|49 || eventNameRefId || [[HolidayNames.dbc|iRefID]] || Ref to [[Loc]] in HolidayNames.dbc
|52 || priority || Integer || ??? (needs more research -click) ||
|-
|-
|50 || eventDescriptionRefId || [[HolidayDescriptions.dbc|iRefID]] || Ref to [[Loc]] in HolidayDescriptions.dbc
|53 || eventSchedulerType|| Integer || Definition of which timer is used, see eventSchedulerType below ||
  -1: repeat, yearly
  0: repeat, weekly
  1: repeat, use defined dates
  2: repeat, hourly
|-
|-
|51  || calendarTextureFilename || String || Overlay used for ingame calendar event-decorations
|54 || eventFlags || Integer ||  ??? (needs more research -click) ||
|-
|52 || priority || integer || (schlumpf, care to elaborate on this ? -click)
|-
|53  || eventSchedulerType|| Integer || -1, 0, 1, 2
|-
|54  || flags || integer || (schlumpf, care to elaborate on this ? -click)
|}
|}
  '''eventSchedulerType''' defines what kind of timer is used for when the event is to stop, start etc. - and if it uses different stages during it's "buildup"-phase (2 stages available)
    -1: event repeats every year based on column11, column12 etc dates - length and possible event stages is taken from the information given in column1 and column2
        (adjusted in DBC to keep it in line with **yearly** changes) - if column12=0, use DATE only from field11
    0: event repeats every 7 days, with a duration of <eventStage1Duration> hours (hardcoded startdate serverside depending on eventID)
    1: event repeats based on column11, column12 etc values (see -1) - if <eventStage2Duration> exists, use <eventStage1Duration> as event prestage length
    2: event repeats every X hours (with <eventStage2Duration> being the eventPause/eventWait timer)
==6.0.1.18179==
struct HolidaysRec {
  uint32_t m_ID;
  uint32_t m_duration[10];
  uint32_t m_date[26];
  uint32_t m_region;
  uint32_t m_looping;
  uint32_t m_calendarFlags[10]; // &1: Alliance, &2: Horde
  uint32_t m_holidayNameID;
  uint32_t m_holidayDescriptionID;
  {{Template:Type|stringref}} m_textureFilename;
  uint32_t m_priority;
  uint32_t m_calendarFilterType;
  uint32_t m_flags;  // &1: IsRegionwide, &2: DontShowInCalendar, &4: DontDisplayEnd, &8: DontDisplayBanner
};
[[Category:DBC]][[Category:DBC_WotLK]]
[[Category:DBC]][[Category:DBC_WotLK]]
'''eventSchedulerType''' defines what kind of timer is used for when the event is to stop, start etc. - and if it uses different stages during it's "buildup"-phase (2 stages available)
[[Category:DBC_WoD]][[Category:6.0.1.18179]]
  -1: event repeats every year based on column11, column12 etc dates - lengt and event stages handled by length given in column1 and column2
      (adjusted in DBC to keep it in line with **yearly** changes) - if column12=0, use DATE only from field11
  0: event repeats every 7 days, with a duration of <eventTimer1> hours (hardcoded startdate serverside depending on eventID)
  1: event repeats based on column11, column12 etc values (see -1) - if eventTimer2 exists do eventTimer1 as event prestage, start eventTimer2 at once as it's timed out
  2: event repeats every X hours (with eventTimer2 being the eventPause/eventWait timer)

Latest revision as of 10:04, 17 April 2020

≥ Wrath

3.3.5a 12340

Column Field Type Notes Extra info
0 eventID Integer Holiday event ID
1 eventStageDuration Integer[10] Stage1 event length in hours. (for stage, either as preparation, main event, ... or cooldown. See eventSchedulerType for more info)
11 eventDate Integer[26] Packed blizzdate (integers with bits (LSB->MSB) 6: minutes, 5: hours, 3: day of week, 6: day of month, 4: month, 5: year, 2: time zone, last bit unused) - Epochdate=01.01.2000-00:00
37 Region integer bitmask, connected to Cfg_Regions::m_region_group_mask field
38 Looping integer ??? (needs more research - used only on Call To Arms events -click)
 283 - Call to Arms: Alterac Valley
 284 - Call to Arms: Warsong Gulch
 285 - Call to Arms: Arathi Basin
 353 - Call to Arms: Eye of the Storm
 400 - Call to Arms: Strand of the Ancient
 420 - Call to Arms: Isle of Conquest
39 calendarFlags integer[10] ??? (needs more research -click)
49 eventCalendarName iRefID Ref to Loc in HolidayNames.dbc
50 eventCalendarDescription iRefID Ref to Loc in HolidayDescriptions.dbc
51 eventCalendarOverlay String Overlay texture used for ingame calendar event-decorations
52 priority Integer ??? (needs more research -click)
53 eventSchedulerType Integer Definition of which timer is used, see eventSchedulerType below
 -1: repeat, yearly
  0: repeat, weekly
  1: repeat, use defined dates
  2: repeat, hourly
54 eventFlags Integer ??? (needs more research -click)
 eventSchedulerType defines what kind of timer is used for when the event is to stop, start etc. - and if it uses different stages during it's "buildup"-phase (2 stages available)
   -1: event repeats every year based on column11, column12 etc dates - length and possible event stages is taken from the information given in column1 and column2
       (adjusted in DBC to keep it in line with **yearly** changes) - if column12=0, use DATE only from field11
    0: event repeats every 7 days, with a duration of <eventStage1Duration> hours (hardcoded startdate serverside depending on eventID)
    1: event repeats based on column11, column12 etc values (see -1) - if <eventStage2Duration> exists, use <eventStage1Duration> as event prestage length
    2: event repeats every X hours (with <eventStage2Duration> being the eventPause/eventWait timer)

6.0.1.18179

struct HolidaysRec {
  uint32_t m_ID;
  uint32_t m_duration[10];
  uint32_t m_date[26];
  uint32_t m_region;
  uint32_t m_looping;
  uint32_t m_calendarFlags[10]; // &1: Alliance, &2: Horde
  uint32_t m_holidayNameID;
  uint32_t m_holidayDescriptionID;
  stringref m_textureFilename;
  uint32_t m_priority;
  uint32_t m_calendarFilterType;
  uint32_t m_flags;  // &1: IsRegionwide, &2: DontShowInCalendar, &4: DontDisplayEnd, &8: DontDisplayBanner
};