mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-03-15 05:25:08 +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->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)
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user