From a0f66edcecd2e1586e66a472f76f8b5cc901c2b8 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Wed, 15 Nov 2023 09:35:32 -0300 Subject: [PATCH] fix(Scripts/Karazhan): Fix being able to interact with Nightbane's doors (#17713) fix(Scripts/Karazhan): Fix being able to interact with NIghtbane's doors --- .../rev_1700012919541108000.sql | 2 ++ .../Karazhan/boss_nightbane.cpp | 15 --------------- .../Karazhan/instance_karazhan.cpp | 19 ++++++++----------- .../EasternKingdoms/Karazhan/karazhan.h | 2 -- 4 files changed, 10 insertions(+), 28 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1700012919541108000.sql diff --git a/data/sql/updates/pending_db_world/rev_1700012919541108000.sql b/data/sql/updates/pending_db_world/rev_1700012919541108000.sql new file mode 100644 index 000000000..9e9189011 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1700012919541108000.sql @@ -0,0 +1,2 @@ +-- +UPDATE `gameobject_template_addon` SET `flags` = `flags`|16 WHERE `entry` IN (184274, 184280); diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp index fad93fe08..156bb7ecc 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_nightbane.cpp @@ -88,8 +88,6 @@ struct boss_nightbane : public BossAI me->SetWalk(false); me->setActive(true); - HandleTerraceDoors(true); - _flying = false; _movement = false; _intro = true; @@ -109,18 +107,11 @@ struct boss_nightbane : public BossAI me->GetMotionMaster()->MoveTakeoff(POINT_DESPAWN, -11013.246f, -1770.5212f, 166.50139f); } - void HandleTerraceDoors(bool open) - { - instance->HandleGameObject(instance->GetGuidData(DATA_MASTERS_TERRACE_DOOR_1), open); - instance->HandleGameObject(instance->GetGuidData(DATA_MASTERS_TERRACE_DOOR_2), open); - } - void JustEngagedWith(Unit* who) override { BossAI::JustEngagedWith(who); _intro = false; - HandleTerraceDoors(false); Talk(YELL_AGGRO); ScheduleGround(); } @@ -197,12 +188,6 @@ struct boss_nightbane : public BossAI ScriptedAI::AttackStart(who); } - void JustDied(Unit* /*killer*/) override - { - _JustDied(); - HandleTerraceDoors(true); - } - void MoveInLineOfSight(Unit* who) override { if (!_intro && !_flying) diff --git a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp index ab75ae0d6..109d4236f 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp @@ -55,6 +55,13 @@ ObjectData const gameObjectData[] = { 0, 0 } }; +DoorData const doorData[] = +{ + { GO_MASTERS_TERRACE_DOOR, DATA_NIGHTBANE, DOOR_TYPE_ROOM }, + { GO_MASTERS_TERRACE_DOOR2, DATA_NIGHTBANE, DOOR_TYPE_ROOM }, + { 0, 0, DOOR_TYPE_ROOM } +}; + class instance_karazhan : public InstanceMapScript { public: @@ -72,6 +79,7 @@ public: SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadObjectData(creatureData, gameObjectData); + LoadDoorData(doorData); // 1 - OZ, 2 - HOOD, 3 - RAJ, this never gets altered. OperaEvent = urand(EVENT_OZ, EVENT_RAJ); @@ -370,12 +378,6 @@ public: else go->RemoveGameObjectFlag(GO_FLAG_LOCKED); break; - case GO_MASTERS_TERRACE_DOOR: - MastersTerraceDoor[0] = go->GetGUID(); - break; - case GO_MASTERS_TERRACE_DOOR2: - MastersTerraceDoor[1] = go->GetGUID(); - break; case GO_SIDE_ENTRANCE_DOOR: if (GetBossState(DATA_OPERA_PERFORMANCE) == DONE) go->RemoveGameObjectFlag(GO_FLAG_LOCKED); @@ -487,10 +489,6 @@ public: return m_uiGamesmansExitDoor; case DATA_GO_NETHER_DOOR: return m_uiNetherspaceDoor; - case DATA_MASTERS_TERRACE_DOOR_1: - return MastersTerraceDoor[0]; - case DATA_MASTERS_TERRACE_DOOR_2: - return MastersTerraceDoor[1]; case DATA_IMAGE_OF_MEDIVH: return ImageGUID; case DATA_NIGHTBANE: @@ -524,7 +522,6 @@ public: ObjectGuid m_uiGamesmansDoor; // Door before Chess ObjectGuid m_uiGamesmansExitDoor; // Door after Chess ObjectGuid m_uiNetherspaceDoor; // Door at Malchezaar - ObjectGuid MastersTerraceDoor[2]; ObjectGuid ImageGUID; ObjectGuid DustCoveredChest; ObjectGuid m_uiRelayGUID; diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h index 983d6d8fd..34ceb1d14 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h +++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h @@ -54,8 +54,6 @@ enum KZDataTypes DATA_GO_GAME_DOOR = 24, DATA_GO_GAME_EXIT_DOOR = 25, DATA_IMAGE_OF_MEDIVH = 26, - DATA_MASTERS_TERRACE_DOOR_1 = 27, - DATA_MASTERS_TERRACE_DOOR_2 = 28, DATA_GO_SIDE_ENTRANCE_DOOR = 29, DATA_PRINCE = 30, DATA_SPAWN_OPERA_DECORATIONS = 31,