mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-18 19:35:42 +00:00
fix(Scripts/Instances): Fixed some problems with getting proper unit'… (#10193)
* fix(Scripts/Instances): Fixed some problems with getting proper unit's GUID in BlackwingLair raid. Fixes #5054 Fixes #10156 * Update.
This commit is contained in:
@@ -305,22 +305,25 @@ class go_chromaggus_lever : public GameObjectScript
|
||||
{
|
||||
go_chromaggus_leverAI(GameObject* go) : GameObjectAI(go), _instance(go->GetInstanceScript()) { }
|
||||
|
||||
bool OnGossipHello(Player* player)
|
||||
bool GossipHello(Player* player, bool reportUse) override
|
||||
{
|
||||
if (_instance->GetBossState(DATA_CHROMAGGUS) != DONE && _instance->GetBossState(DATA_CHROMAGGUS) != IN_PROGRESS)
|
||||
if (reportUse)
|
||||
{
|
||||
_instance->SetBossState(DATA_CHROMAGGUS, IN_PROGRESS);
|
||||
if (_instance->GetBossState(DATA_CHROMAGGUS) != DONE && _instance->GetBossState(DATA_CHROMAGGUS) != IN_PROGRESS)
|
||||
{
|
||||
_instance->SetBossState(DATA_CHROMAGGUS, IN_PROGRESS);
|
||||
|
||||
if (Creature* creature = _instance->instance->GetCreature(_instance->GetGuidData(DATA_CHROMAGGUS)))
|
||||
creature->AI()->AttackStart(player);
|
||||
if (Creature* creature = _instance->instance->GetCreature(_instance->GetGuidData(DATA_CHROMAGGUS)))
|
||||
creature->AI()->AttackStart(player);
|
||||
|
||||
if (GameObject* go = _instance->instance->GetGameObject(_instance->GetGuidData(DATA_GO_CHROMAGGUS_DOOR)))
|
||||
_instance->HandleGameObject(ObjectGuid::Empty, true, go);
|
||||
if (GameObject* go = _instance->instance->GetGameObject(_instance->GetGuidData(DATA_GO_CHROMAGGUS_DOOR)))
|
||||
_instance->HandleGameObject(ObjectGuid::Empty, true, go);
|
||||
}
|
||||
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE | GO_FLAG_IN_USE);
|
||||
me->SetGoState(GO_STATE_ACTIVE);
|
||||
}
|
||||
|
||||
me->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE | GO_FLAG_IN_USE);
|
||||
me->SetGoState(GO_STATE_ACTIVE);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -84,6 +84,9 @@ public:
|
||||
case NPC_RAZORGORE:
|
||||
razorgoreGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_CHROMAGGUS:
|
||||
chromaggusGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_BLACKWING_DRAGON:
|
||||
case NPC_BLACKWING_TASKMASTER:
|
||||
case NPC_BLACKWING_LEGIONAIRE:
|
||||
@@ -92,6 +95,12 @@ public:
|
||||
if (CreatureAI* razorAI = razor->AI())
|
||||
razorAI->JustSummoned(creature);
|
||||
break;
|
||||
case NPC_NEFARIAN:
|
||||
nefarianGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_VICTOR_NEFARIUS:
|
||||
victorNefariusGUID = creature->GetGUID();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -114,10 +123,14 @@ public:
|
||||
case GO_PORTCULLIS_VAELASTRASZ:
|
||||
case GO_PORTCULLIS_BROODLORD:
|
||||
case GO_PORTCULLIS_THREEDRAGONS:
|
||||
case GO_PORTCULLIS_CHROMAGGUS:
|
||||
case GO_PORTCULLIS_NEFARIAN:
|
||||
AddDoor(go, true);
|
||||
break;
|
||||
case GO_PORTCULLIS_CHROMAGGUS:
|
||||
AddDoor(go, true);
|
||||
chromaggusDoorGUID = go->GetGUID();
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -186,7 +199,7 @@ public:
|
||||
switch (state)
|
||||
{
|
||||
case NOT_STARTED:
|
||||
if (Creature* nefarian = instance->GetCreature(GetGuidData(DATA_NEFARIAN)))
|
||||
if (Creature* nefarian = instance->GetCreature(nefarianGUID))
|
||||
nefarian->DespawnOrUnsummon();
|
||||
break;
|
||||
case FAIL:
|
||||
@@ -242,6 +255,10 @@ public:
|
||||
{
|
||||
case DATA_RAZORGORE_THE_UNTAMED:
|
||||
return razorgoreGUID;
|
||||
case DATA_CHROMAGGUS:
|
||||
return chromaggusGUID;
|
||||
case DATA_GO_CHROMAGGUS_DOOR:
|
||||
return chromaggusDoorGUID;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -279,7 +296,7 @@ public:
|
||||
razor->AI()->DoAction(ACTION_PHASE_TWO);
|
||||
break;
|
||||
case EVENT_RESPAWN_NEFARIUS:
|
||||
if (Creature* nefarius = instance->GetCreature(GetGuidData(DATA_LORD_VICTOR_NEFARIUS)))
|
||||
if (Creature* nefarius = instance->GetCreature(victorNefariusGUID))
|
||||
{
|
||||
nefarius->SetPhaseMask(1, true);
|
||||
nefarius->setActive(true);
|
||||
@@ -292,14 +309,19 @@ public:
|
||||
}
|
||||
|
||||
protected:
|
||||
// Misc
|
||||
EventMap _events;
|
||||
ObjectGuid razorgoreGUID;
|
||||
ObjectGuid chromaggusGUID;
|
||||
ObjectGuid chromaggusDoorGUID;
|
||||
ObjectGuid nefarianGUID;
|
||||
ObjectGuid victorNefariusGUID;
|
||||
|
||||
// Razorgore
|
||||
ObjectGuid razorgoreGUID;
|
||||
uint8 EggCount;
|
||||
uint32 EggEvent;
|
||||
GuidList EggList;
|
||||
|
||||
// Misc
|
||||
EventMap _events;
|
||||
};
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const
|
||||
|
||||
Reference in New Issue
Block a user