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
This commit is contained in:
Andrew
2023-11-15 09:35:32 -03:00
committed by GitHub
parent 0373ce1efd
commit a0f66edcec
4 changed files with 10 additions and 28 deletions

View File

@@ -0,0 +1,2 @@
--
UPDATE `gameobject_template_addon` SET `flags` = `flags`|16 WHERE `entry` IN (184274, 184280);

View File

@@ -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)

View File

@@ -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;

View File

@@ -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,