mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-13 09:17:18 +00:00
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:
@@ -0,0 +1,2 @@
|
||||
--
|
||||
UPDATE `gameobject_template_addon` SET `flags` = `flags`|16 WHERE `entry` IN (184274, 184280);
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user