From 05b2fe8acd8947683be902ba7f8d9000b8aec29e Mon Sep 17 00:00:00 2001 From: Shauren Date: Wed, 21 Dec 2022 22:09:35 +0100 Subject: [PATCH] Core/WorldStates: Migrate Ebon Hold worldstates from Player::SendInitWorldStates to new system --- .../world/4.3.4/2022_12_21_05_world.sql | 8 ++++ .../the_scarlet_enclave_chapter_5.cpp | 37 +++++++------------ 2 files changed, 22 insertions(+), 23 deletions(-) create mode 100644 sql/updates/world/4.3.4/2022_12_21_05_world.sql diff --git a/sql/updates/world/4.3.4/2022_12_21_05_world.sql b/sql/updates/world/4.3.4/2022_12_21_05_world.sql new file mode 100644 index 0000000000..ca8ba7baa7 --- /dev/null +++ b/sql/updates/world/4.3.4/2022_12_21_05_world.sql @@ -0,0 +1,8 @@ +DELETE FROM `world_state` WHERE `ID` IN (3590,3591,3592,3603,3604,3605); +INSERT INTO `world_state` VALUES +(3590,300,'609',NULL,'','Ebon Hold - Forces of the Light remaining'), +(3591,10000,'609',NULL,'','Ebon Hold - Forces of the Scourge Remaining'), +(3592,0,'609',NULL,'','Ebon Hold - Show Forces Remaining'), +(3603,0,'609',NULL,'','Ebon Hold - Show Minutes until battle'), +(3604,0,'609',NULL,'','Ebon Hold - Minutes until battle'), +(3605,0,'609',NULL,'','Ebon Hold - Battle in progress'); diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/the_scarlet_enclave_chapter_5.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/the_scarlet_enclave_chapter_5.cpp index ff81fce314..ca9d21bed5 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/the_scarlet_enclave_chapter_5.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/the_scarlet_enclave_chapter_5.cpp @@ -24,6 +24,7 @@ #include "ScriptedEscortAI.h" #include "ScriptedGossip.h" #include "TemporarySummon.h" +#include "WorldStateMgr.h" #define LESS_MOB // if you do not have a good server and do not want it to be laggy as hell //Light of Dawn @@ -51,9 +52,12 @@ enum mograine ENCOUNTER_TOTAL_DAWN = 300, // Total number ENCOUNTER_TOTAL_SCOURGE = 10000, - WORLD_STATE_REMAINS = 3592, - WORLD_STATE_COUNTDOWN = 3603, - WORLD_STATE_EVENT_BEGIN = 3605, + WORLD_STATE_FORCES_OF_THE_LIGHT_REMAINING = 3590, + WORLD_STATE_FORCES_OF_THE_SCOURGE_REMAINING = 3591, + WORLD_STATE_SHOW_FORCES_REMAINING = 3592, + WORLD_STATE_SHOW_MINUTES_UNTIL_BATTLE = 3603, + WORLD_STATE_MINUTES_UNTIL_BATTLE = 3604, + WORLD_STATE_BATTLE_IN_PROGRESS = 3605, SAY_LIGHT_OF_DAWN01 = 0, // pre text SAY_LIGHT_OF_DAWN02 = 1, @@ -221,19 +225,6 @@ enum mograine SPELL_THUNDER = 53630 }; -void UpdateWorldState(Map* map, uint32 id, uint32 state) -{ - Map::PlayerList const& players = map->GetPlayers(); - if (!players.isEmpty()) - { - for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) - { - if (Player* player = itr->GetSource()) - player->SendUpdateWorldState(id, state); - } - } -} - Position const LightofDawnLoc[] = { {2281.335f, -5300.409f, 85.170f, 0}, // 0 Tirion Fordring loc @@ -350,9 +341,9 @@ public: me->Mount(25279); me->SetVisible(true); - UpdateWorldState(me->GetMap(), WORLD_STATE_REMAINS, 0); - //UpdateWorldState(me->GetMap(), WORLD_STATE_COUNTDOWN, 0); - UpdateWorldState(me->GetMap(), WORLD_STATE_EVENT_BEGIN, 0); + sWorldStateMgr->SetValue(WORLD_STATE_SHOW_FORCES_REMAINING, 0, false, me->GetMap()); + //sWorldStateMgr->SetValue(WORLD_STATE_SHOW_MINUTES_UNTIL_BATTLE, 0, false, me->GetMap()); + sWorldStateMgr->SetValue(WORLD_STATE_BATTLE_IN_PROGRESS, 0, false, me->GetMap()); if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID)) temp->setDeathState(JUST_DIED); @@ -590,13 +581,13 @@ public: switch (uiStep) { case 0: // countdown - //UpdateWorldState(me->GetMap(), WORLD_STATE_COUNTDOWN, 1); + //sWorldStateMgr->SetValue(WORLD_STATE_SHOW_MINUTES_UNTIL_BATTLE, 1, false, me->GetMap()); break; case 1: // just delay - //UpdateWorldState(me->GetMap(), WORLD_STATE_REMAINS, 1); - UpdateWorldState(me->GetMap(), WORLD_STATE_COUNTDOWN, 0); - UpdateWorldState(me->GetMap(), WORLD_STATE_EVENT_BEGIN, 1); + //sWorldStateMgr->SetValue(WORLD_STATE_SHOW_FORCES_REMAINING, 1, false, me->GetMap()); + sWorldStateMgr->SetValue(WORLD_STATE_SHOW_MINUTES_UNTIL_BATTLE, 0, false, me->GetMap()); + sWorldStateMgr->SetValue(WORLD_STATE_BATTLE_IN_PROGRESS, 1, false, me->GetMap()); me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); JumpToNextStep(3000); break;