From 3c851c059a3d6a51307776ff4b112ce459a85d09 Mon Sep 17 00:00:00 2001 From: Skjalf <47818697+Nyeriah@users.noreply.github.com> Date: Tue, 3 May 2022 07:10:09 -0300 Subject: [PATCH] fix(Scripts/BlackwingLair): Prevent Chromaggus cage from looking (#11603) --- .../rev_1651542266671948700.sql | 2 + .../BlackwingLair/boss_chromaggus.cpp | 4 +- .../BlackwingLair/instance_blackwing_lair.cpp | 42 +++++-------------- 3 files changed, 15 insertions(+), 33 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1651542266671948700.sql diff --git a/data/sql/updates/pending_db_world/rev_1651542266671948700.sql b/data/sql/updates/pending_db_world/rev_1651542266671948700.sql new file mode 100644 index 000000000..3c306df60 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1651542266671948700.sql @@ -0,0 +1,2 @@ +-- +UPDATE `gameobject_template_addon` SET `flags` = `flags` |16 WHERE `entry` = 179116; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp index 846dad802..49ca899d7 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp @@ -237,14 +237,14 @@ class go_chromaggus_lever : public GameObjectScript { if (_instance->GetBossState(DATA_CHROMAGGUS) != DONE && _instance->GetBossState(DATA_CHROMAGGUS) != IN_PROGRESS) { - if (Creature* creature = _instance->instance->GetCreature(_instance->GetGuidData(DATA_CHROMAGGUS))) + if (Creature* creature = _instance->GetCreature(DATA_CHROMAGGUS)) { creature->SetHomePosition(homePos); creature->GetMotionMaster()->MovePath(creature->GetEntry() * 10, false); creature->AI()->SetGUID(player->GetGUID(), GUID_LEVER_USER); } - if (GameObject* go = _instance->instance->GetGameObject(_instance->GetGuidData(DATA_GO_CHROMAGGUS_DOOR))) + if (GameObject* go = _instance->GetGameObject(DATA_GO_CHROMAGGUS_DOOR)) _instance->HandleGameObject(ObjectGuid::Empty, true, go); } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp index eb8984a76..a9d1299e6 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp @@ -35,7 +35,7 @@ DoorData const doorData[] = { GO_PORTCULLIS_RAZORGORE_ROOM, DATA_RAZORGORE_THE_UNTAMED, DOOR_TYPE_ROOM, }, // ID 176964 || GUID 75158 { GO_PORTCULLIS_VAELASTRASZ, DATA_VAELASTRAZ_THE_CORRUPT, DOOR_TYPE_PASSAGE }, // ID 175185 || GUID 7229 { GO_PORTCULLIS_BROODLORD, DATA_BROODLORD_LASHLAYER, DOOR_TYPE_PASSAGE }, // ID 179365 || GUID 75159 - { GO_PORTCULLIS_CHROMAGGUS, DATA_CHROMAGGUS, DOOR_TYPE_PASSAGE }, // ID 179116 || GUID 75161 + { GO_PORTCULLIS_NEFARIAN, DATA_CHROMAGGUS, DOOR_TYPE_PASSAGE }, // ID 179116 || GUID 75161 { GO_PORTCULLIS_NEFARIAN, DATA_NEFARIAN, DOOR_TYPE_ROOM }, // ID 179117 || GUID 75164 { 0, 0, DOOR_TYPE_ROOM } // END }; @@ -44,7 +44,13 @@ ObjectData const creatureData[] = { { NPC_GRETHOK, DATA_GRETHOK }, { NPC_NEFARIAN_TROOPS, DATA_NEFARIAN_TROOPS }, - { NPC_VICTOR_NEFARIUS, DATA_LORD_VICTOR_NEFARIUS } + { NPC_VICTOR_NEFARIUS, DATA_LORD_VICTOR_NEFARIUS }, + { NPC_CHROMAGGUS, DATA_CHROMAGGUS } +}; + +ObjectData const objectData[] = +{ + { GO_PORTCULLIS_CHROMAGGUS, DATA_GO_CHROMAGGUS_DOOR } }; Position const SummonPosition[8] = @@ -73,7 +79,7 @@ public: //SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); - LoadObjectData(creatureData, nullptr); + LoadObjectData(creatureData, objectData); } void Initialize() override @@ -101,9 +107,6 @@ public: case NPC_RAZORGORE: razorgoreGUID = creature->GetGUID(); break; - case NPC_CHROMAGGUS: - chromaggusGUID = creature->GetGUID(); - break; case NPC_BLACKWING_DRAGON: ++addsCount[0]; if (Creature* razor = instance->GetCreature(razorgoreGUID)) @@ -166,19 +169,6 @@ public: EggList.push_back(go->GetGUID()); } break; - case GO_PORTCULLIS_NEFARIAN: - AddDoor(go, true); - nefarianDoorGUID = go->GetGUID(); - if (GetBossState(DATA_CHROMAGGUS) != DONE) - { - HandleGameObject(ObjectGuid::Empty, false, go); - } - break; - case GO_PORTCULLIS_CHROMAGGUS: - AddDoor(go, true); - chromaggusDoorGUID = go->GetGUID(); - go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE); - break; default: break; } @@ -245,12 +235,6 @@ public: } } break; - case DATA_CHROMAGGUS: - if (state == DONE) - { - HandleGameObject(nefarianDoorGUID, true); - } - break; case DATA_NEFARIAN: switch (state) { @@ -259,7 +243,9 @@ public: [[fallthrough]]; case NOT_STARTED: if (Creature* nefarian = instance->GetCreature(nefarianGUID)) + { nefarian->DespawnOrUnsummon(); + } break; default: break; @@ -341,10 +327,6 @@ public: { case DATA_RAZORGORE_THE_UNTAMED: return razorgoreGUID; - case DATA_CHROMAGGUS: - return chromaggusGUID; - case DATA_GO_CHROMAGGUS_DOOR: - return chromaggusDoorGUID; default: break; } @@ -498,8 +480,6 @@ public: protected: ObjectGuid razorgoreGUID; - ObjectGuid chromaggusGUID; - ObjectGuid chromaggusDoorGUID; ObjectGuid nefarianGUID; ObjectGuid nefarianDoorGUID;