From f6d8f23174baeb0e5a3f4901767db555e8ef0a74 Mon Sep 17 00:00:00 2001 From: mik1893 Date: Wed, 3 Aug 2016 08:11:53 +0100 Subject: [PATCH 1/4] Guildhouses - remove guards --- .../data/sql/db-world/guildhouses/02_remove_guards.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 modules/azerothshard/data/sql/db-world/guildhouses/02_remove_guards.sql diff --git a/modules/azerothshard/data/sql/db-world/guildhouses/02_remove_guards.sql b/modules/azerothshard/data/sql/db-world/guildhouses/02_remove_guards.sql new file mode 100644 index 0000000000..a55a6513c6 --- /dev/null +++ b/modules/azerothshard/data/sql/db-world/guildhouses/02_remove_guards.sql @@ -0,0 +1 @@ +DELETE FROM creature where id in (5000003,5000004); From eb2fd1555d755b8c0c64b659cc46a237f7ed6acf Mon Sep 17 00:00:00 2001 From: mik1893 Date: Wed, 3 Aug 2016 08:26:29 +0100 Subject: [PATCH 2/4] DB/Spell: Fix spell area issue with spell WGA Phase --- data/sql/updates/world/2016_08_03_00.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 data/sql/updates/world/2016_08_03_00.sql diff --git a/data/sql/updates/world/2016_08_03_00.sql b/data/sql/updates/world/2016_08_03_00.sql new file mode 100644 index 0000000000..b0e770ae5e --- /dev/null +++ b/data/sql/updates/world/2016_08_03_00.sql @@ -0,0 +1 @@ +DELETE from spell_area where spell = 60815 and area = 14; \ No newline at end of file From b465fcfe71e673ff4b4a8e7651e314707f27dd10 Mon Sep 17 00:00:00 2001 From: mik1893 Date: Wed, 3 Aug 2016 08:48:47 +0100 Subject: [PATCH 3/4] Ensure team is switched before joining BG --- src/server/game/Handlers/BattleGroundHandler.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/server/game/Handlers/BattleGroundHandler.cpp b/src/server/game/Handlers/BattleGroundHandler.cpp index 93d3d1766d..a482ab8d70 100644 --- a/src/server/game/Handlers/BattleGroundHandler.cpp +++ b/src/server/game/Handlers/BattleGroundHandler.cpp @@ -450,6 +450,9 @@ void WorldSession::HandleBattleFieldPortOpcode(WorldPacket &recvData) teamId = TEAM_ALLIANCE; else teamId = TEAM_HORDE; + + _player->setTeamId(teamId); + _player->setFaction(teamId == TEAM_ALLIANCE ? 1 : 2); } // [/AZTH] From 4757e0e42ca356ee4401fae4ecccfd84a5dc36fb Mon Sep 17 00:00:00 2001 From: mik1893 Date: Wed, 3 Aug 2016 09:14:08 +0100 Subject: [PATCH 4/4] Fix Zul Aman --- .../EasternKingdoms/ZulAman/boss_nalorakk.cpp | 32 +++- .../ZulAman/instance_zulaman.cpp | 152 +++++++++--------- 2 files changed, 110 insertions(+), 74 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp index 08f3cf3fbf..91777b9941 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp @@ -143,7 +143,9 @@ class boss_nalorakk : public CreatureScript waitTimer = 0; me->SetSpeed(MOVE_RUN, 2); me->SetWalk(false); - }else + ResetMobs(); + } + else { (*me).GetMotionMaster()->MovePoint(0, NalorakkWay[7][0], NalorakkWay[7][1], NalorakkWay[7][2]); } @@ -160,6 +162,33 @@ class boss_nalorakk : public CreatureScript // me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, 5122); /// @todo find the correct equipment id } + void ResetMobs() + { + std::list templist; + float x, y, z; + me->GetPosition(x, y, z); + + { + CellCoord pair(Trinity::ComputeCellCoord(x, y)); + Cell cell(pair); + cell.SetNoCreate(); + + Trinity::AllFriendlyCreaturesInGrid check(me); + Trinity::CreatureListSearcher searcher(me, templist, check); + + TypeContainerVisitor, GridTypeMapContainer> cSearcher(searcher); + + cell.Visit(pair, cSearcher, *(me->GetMap()), *me, me->GetGridActivationRange()); + } + + if (templist.empty()) + return; + + for (std::list::const_iterator i = templist.begin(); i != templist.end(); ++i) + if ((*i) && me->IsWithinDistInMap((*i), 25)) + (*i)->AI()->Reset(); + } + void SendAttacker(Unit* target) { std::list templist; @@ -283,6 +312,7 @@ class boss_nalorakk : public CreatureScript void JustDied(Unit* /*killer*/) { + ResetMobs(); instance->SetData(DATA_NALORAKKEVENT, DONE); me->MonsterYell(YELL_DEATH, LANG_UNIVERSAL, NULL); diff --git a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp index 9b2d9be46b..084c87fbe9 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp @@ -235,69 +235,75 @@ class instance_zulaman : public InstanceMapScript { switch (type) { - case DATA_GONGEVENT: - m_auiEncounter[DATA_GONGEVENT] = data; - if (data == IN_PROGRESS) + case DATA_GONGEVENT: + m_auiEncounter[DATA_GONGEVENT] = data; + if (data == IN_PROGRESS) + SaveToDB(); + else if (data == DONE) + QuestMinute = 21; + break; + case DATA_NALORAKKEVENT: + m_auiEncounter[DATA_NALORAKKEVENT] = data; + if (data == DONE) + { + if (QuestMinute) + { + QuestMinute += 15; + DoUpdateWorldState(WORLDSTATE_TIME_TO_SACRIFICE, QuestMinute); + } + SummonHostage(0); + SaveToDB(); + } + break; + case DATA_AKILZONEVENT: + m_auiEncounter[DATA_AKILZONEVENT] = data; + HandleGameObject(AkilzonDoorGUID, data != IN_PROGRESS); + if (data == DONE) + { + if (QuestMinute) + { + QuestMinute += 10; + DoUpdateWorldState(WORLDSTATE_TIME_TO_SACRIFICE, QuestMinute); + } + SummonHostage(1); + SaveToDB(); + } + break; + case DATA_JANALAIEVENT: + m_auiEncounter[DATA_JANALAIEVENT] = data; + if (data == DONE) + SummonHostage(2); SaveToDB(); - else if (data == DONE) - QuestMinute = 21; - break; - case DATA_NALORAKKEVENT: - m_auiEncounter[DATA_NALORAKKEVENT] = data; - if (data == DONE) - { - if (QuestMinute) - { - QuestMinute += 15; - DoUpdateWorldState(WORLDSTATE_TIME_TO_SACRIFICE, QuestMinute); - } - SummonHostage(0); - } - break; - case DATA_AKILZONEVENT: - m_auiEncounter[DATA_AKILZONEVENT] = data; - HandleGameObject(AkilzonDoorGUID, data != IN_PROGRESS); - if (data == DONE) - { - if (QuestMinute) - { - QuestMinute += 10; - DoUpdateWorldState(WORLDSTATE_TIME_TO_SACRIFICE, QuestMinute); - } - SummonHostage(1); - } - break; - case DATA_JANALAIEVENT: - m_auiEncounter[DATA_JANALAIEVENT] = data; - if (data == DONE) - SummonHostage(2); - break; - case DATA_HALAZZIEVENT: - m_auiEncounter[DATA_HALAZZIEVENT] = data; - HandleGameObject(HalazziDoorGUID, data != IN_PROGRESS); - if (data == DONE) SummonHostage(3); - break; - case DATA_HEXLORDEVENT: - m_auiEncounter[DATA_HEXLORDEVENT] = data; - if (data == IN_PROGRESS) - HandleGameObject(HexLordGateGUID, false); - else if (data == NOT_STARTED) - CheckInstanceStatus(); - break; - case DATA_ZULJINEVENT: - m_auiEncounter[DATA_ZULJINEVENT] = data; - HandleGameObject(ZulJinDoorGUID, data != IN_PROGRESS); - break; - case DATA_CHESTLOOTED: - ++ChestLooted; - SaveToDB(); - break; - case TYPE_RAND_VENDOR_1: - RandVendor[0] = data; - break; - case TYPE_RAND_VENDOR_2: - RandVendor[1] = data; - break; + break; + case DATA_HALAZZIEVENT: + m_auiEncounter[DATA_HALAZZIEVENT] = data; + HandleGameObject(HalazziDoorGUID, data != IN_PROGRESS); + if (data == DONE) SummonHostage(3); + SaveToDB(); + break; + case DATA_HEXLORDEVENT: + m_auiEncounter[DATA_HEXLORDEVENT] = data; + if (data == IN_PROGRESS) + HandleGameObject(HexLordGateGUID, false); + else if (data == NOT_STARTED) + CheckInstanceStatus(); + SaveToDB(); + break; + case DATA_ZULJINEVENT: + m_auiEncounter[DATA_ZULJINEVENT] = data; + HandleGameObject(ZulJinDoorGUID, data != IN_PROGRESS); + SaveToDB(); + break; + case DATA_CHESTLOOTED: + ++ChestLooted; + SaveToDB(); + break; + case TYPE_RAND_VENDOR_1: + RandVendor[0] = data; + break; + case TYPE_RAND_VENDOR_2: + RandVendor[1] = data; + break; } if (data == DONE) @@ -317,17 +323,17 @@ class instance_zulaman : public InstanceMapScript { switch (type) { - case DATA_GONGEVENT: return m_auiEncounter[DATA_GONGEVENT]; - case DATA_NALORAKKEVENT: return m_auiEncounter[DATA_NALORAKKEVENT]; - case DATA_AKILZONEVENT: return m_auiEncounter[DATA_AKILZONEVENT]; - case DATA_JANALAIEVENT: return m_auiEncounter[DATA_JANALAIEVENT]; - case DATA_HALAZZIEVENT: return m_auiEncounter[DATA_HALAZZIEVENT]; - case DATA_HEXLORDEVENT: return m_auiEncounter[DATA_HEXLORDEVENT]; - case DATA_ZULJINEVENT: return m_auiEncounter[DATA_ZULJINEVENT]; - case DATA_CHESTLOOTED: return ChestLooted; - case TYPE_RAND_VENDOR_1: return RandVendor[0]; - case TYPE_RAND_VENDOR_2: return RandVendor[1]; - default: return 0; + case DATA_GONGEVENT: return m_auiEncounter[DATA_GONGEVENT]; + case DATA_NALORAKKEVENT: return m_auiEncounter[DATA_NALORAKKEVENT]; + case DATA_AKILZONEVENT: return m_auiEncounter[DATA_AKILZONEVENT]; + case DATA_JANALAIEVENT: return m_auiEncounter[DATA_JANALAIEVENT]; + case DATA_HALAZZIEVENT: return m_auiEncounter[DATA_HALAZZIEVENT]; + case DATA_HEXLORDEVENT: return m_auiEncounter[DATA_HEXLORDEVENT]; + case DATA_ZULJINEVENT: return m_auiEncounter[DATA_ZULJINEVENT]; + case DATA_CHESTLOOTED: return ChestLooted; + case TYPE_RAND_VENDOR_1: return RandVendor[0]; + case TYPE_RAND_VENDOR_2: return RandVendor[1]; + default: return 0; } }