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->SetWalk(false);
me->setActive(true); me->setActive(true);
HandleTerraceDoors(true);
_flying = false; _flying = false;
_movement = false; _movement = false;
_intro = true; _intro = true;
@@ -109,18 +107,11 @@ struct boss_nightbane : public BossAI
me->GetMotionMaster()->MoveTakeoff(POINT_DESPAWN, -11013.246f, -1770.5212f, 166.50139f); 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 void JustEngagedWith(Unit* who) override
{ {
BossAI::JustEngagedWith(who); BossAI::JustEngagedWith(who);
_intro = false; _intro = false;
HandleTerraceDoors(false);
Talk(YELL_AGGRO); Talk(YELL_AGGRO);
ScheduleGround(); ScheduleGround();
} }
@@ -197,12 +188,6 @@ struct boss_nightbane : public BossAI
ScriptedAI::AttackStart(who); ScriptedAI::AttackStart(who);
} }
void JustDied(Unit* /*killer*/) override
{
_JustDied();
HandleTerraceDoors(true);
}
void MoveInLineOfSight(Unit* who) override void MoveInLineOfSight(Unit* who) override
{ {
if (!_intro && !_flying) if (!_intro && !_flying)

View File

@@ -55,6 +55,13 @@ ObjectData const gameObjectData[] =
{ 0, 0 } { 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 class instance_karazhan : public InstanceMapScript
{ {
public: public:
@@ -72,6 +79,7 @@ public:
SetHeaders(DataHeader); SetHeaders(DataHeader);
SetBossNumber(EncounterCount); SetBossNumber(EncounterCount);
LoadObjectData(creatureData, gameObjectData); LoadObjectData(creatureData, gameObjectData);
LoadDoorData(doorData);
// 1 - OZ, 2 - HOOD, 3 - RAJ, this never gets altered. // 1 - OZ, 2 - HOOD, 3 - RAJ, this never gets altered.
OperaEvent = urand(EVENT_OZ, EVENT_RAJ); OperaEvent = urand(EVENT_OZ, EVENT_RAJ);
@@ -370,12 +378,6 @@ public:
else else
go->RemoveGameObjectFlag(GO_FLAG_LOCKED); go->RemoveGameObjectFlag(GO_FLAG_LOCKED);
break; 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: case GO_SIDE_ENTRANCE_DOOR:
if (GetBossState(DATA_OPERA_PERFORMANCE) == DONE) if (GetBossState(DATA_OPERA_PERFORMANCE) == DONE)
go->RemoveGameObjectFlag(GO_FLAG_LOCKED); go->RemoveGameObjectFlag(GO_FLAG_LOCKED);
@@ -487,10 +489,6 @@ public:
return m_uiGamesmansExitDoor; return m_uiGamesmansExitDoor;
case DATA_GO_NETHER_DOOR: case DATA_GO_NETHER_DOOR:
return m_uiNetherspaceDoor; 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: case DATA_IMAGE_OF_MEDIVH:
return ImageGUID; return ImageGUID;
case DATA_NIGHTBANE: case DATA_NIGHTBANE:
@@ -524,7 +522,6 @@ public:
ObjectGuid m_uiGamesmansDoor; // Door before Chess ObjectGuid m_uiGamesmansDoor; // Door before Chess
ObjectGuid m_uiGamesmansExitDoor; // Door after Chess ObjectGuid m_uiGamesmansExitDoor; // Door after Chess
ObjectGuid m_uiNetherspaceDoor; // Door at Malchezaar ObjectGuid m_uiNetherspaceDoor; // Door at Malchezaar
ObjectGuid MastersTerraceDoor[2];
ObjectGuid ImageGUID; ObjectGuid ImageGUID;
ObjectGuid DustCoveredChest; ObjectGuid DustCoveredChest;
ObjectGuid m_uiRelayGUID; ObjectGuid m_uiRelayGUID;

View File

@@ -54,8 +54,6 @@ enum KZDataTypes
DATA_GO_GAME_DOOR = 24, DATA_GO_GAME_DOOR = 24,
DATA_GO_GAME_EXIT_DOOR = 25, DATA_GO_GAME_EXIT_DOOR = 25,
DATA_IMAGE_OF_MEDIVH = 26, DATA_IMAGE_OF_MEDIVH = 26,
DATA_MASTERS_TERRACE_DOOR_1 = 27,
DATA_MASTERS_TERRACE_DOOR_2 = 28,
DATA_GO_SIDE_ENTRANCE_DOOR = 29, DATA_GO_SIDE_ENTRANCE_DOOR = 29,
DATA_PRINCE = 30, DATA_PRINCE = 30,
DATA_SPAWN_OPERA_DECORATIONS = 31, DATA_SPAWN_OPERA_DECORATIONS = 31,