mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-10 11:03:51 +00:00
feat(editor): add WSCB (Server Channel Broadcast) open catalog format
Novel replacement for the hardcoded login-MOTD chain, restart-warning announcements, and rotating /help-channel tips. Each entry is one scheduled or event-triggered broadcast with channelKind (Login / SystemChannel / RaidWarning / MOTD / HelpTip), faction filter, level-range gating, and optional periodic interval for ticker-driven channels. Three preset emitters covering the canonical operational broadcast patterns: makeMotd (4 login MOTDs — welcome banner, patch summary, Discord, forum), makeMaintenance (3 RaidWarning entries firing at 15min/5min/60s before restart, intervalSeconds=0 since they're triggered by the cron scheduler, not a self-timer), makeHelpTips (6 rotating /help-channel tips on a 600s cycle covering talents/mounts/auction/professions/dungeon-finder/ hearthstone with appropriate level gates). Validator catches several real misconfigurations: empty messageText (no payload), interval>0 with login/MOTD channel (timer ignored — those fire on session enter), intervalSeconds<10 (player-spam error), <60 (warning), text>255 chars (server truncation), level-range inversions, factionFilter=0 (no audience). Format count 97 -> 98. CLI flag count 1104 -> 1109.
This commit is contained in:
parent
2d99f82531
commit
57df129404
10 changed files with 744 additions and 0 deletions
|
|
@ -2125,6 +2125,16 @@ void printUsage(const char* argv0) {
|
|||
std::printf(" Export binary .whrt to a human-editable JSON sidecar (defaults to <base>.whrt.json; emits both bindKind/factionMask ints AND name strings)\n");
|
||||
std::printf(" --import-whrt-json <json-path> [out-base]\n");
|
||||
std::printf(" Import a .whrt.json sidecar back into binary .whrt (accepts bindKind int OR \"inn\"/\"capital\"/\"quest\"/\"guild\"/\"specialport\"/\"faction\"; factionMask int OR \"alliance\"/\"horde\"/\"both\")\n");
|
||||
std::printf(" --gen-scb <wscb-base> [name]\n");
|
||||
std::printf(" Emit .wscb 4 login-MOTD entries (welcome banner / patch notes summary / Discord link / forum link)\n");
|
||||
std::printf(" --gen-scb-maintenance <wscb-base> [name]\n");
|
||||
std::printf(" Emit .wscb 3 RaidWarning entries for restart countdown (15min / 5min / 60sec, intervalSeconds=0 — fired by external scheduler)\n");
|
||||
std::printf(" --gen-scb-helptips <wscb-base> [name]\n");
|
||||
std::printf(" Emit .wscb 6 HelpTip channel rotating tips on 600s cycle (talents / mounts / auction / professions / dungeon finder / hearthstone, level-gated)\n");
|
||||
std::printf(" --info-wscb <wscb-base> [--json]\n");
|
||||
std::printf(" Print WSCB entries (id / channel / faction / interval / level range / name)\n");
|
||||
std::printf(" --validate-wscb <wscb-base> [--json]\n");
|
||||
std::printf(" Static checks: id+name+messageText required, factionFilter 1..3, channelKind 0..4, min<=max level, no duplicate ids, intervalSeconds>=10 (errors below); warns on interval>0 with login/MOTD (timer ignored), interval<60 (spammy), text>255 chars (truncation)\n");
|
||||
std::printf(" --gen-weather-temperate <wow-base> [zoneName]\n");
|
||||
std::printf(" Emit .wow weather schedule: clear-dominant + occasional rain + fog (forest / grassland)\n");
|
||||
std::printf(" --gen-weather-arctic <wow-base> [zoneName]\n");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue