diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp index 25c48eff9..8bd9dadcd 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp @@ -78,7 +78,7 @@ public: { uint32 CurrentSolakarWave = 0; uint32 SolakarState = NOT_STARTED; // there should be a global instance encounter state, where is it? - std::vector SolakarSummons; + GuidVector SolakarSummons; instance_blackrock_spireMapScript(InstanceMap* map) : InstanceScript(map) { @@ -360,11 +360,11 @@ public: } break; case FAIL: - for (const auto& creature : SolakarSummons) + for (ObjectGuid const& guid : SolakarSummons) { - if (creature) + if (Creature* creature = instance->GetCreature(guid)) { - creature->RemoveFromWorld(); + creature->DespawnOrUnsummon(); } } SolakarSummons.clear(); @@ -429,11 +429,19 @@ public: { if (number < MAX_WAVE_COUNT) { - SolakarSummons.push_back(instance->SummonCreature(NPC_ROOKERY_GUARDIAN, SolakarPosLeft)); - SolakarSummons.push_back(instance->SummonCreature(NPC_ROOKERY_HATCHER, SolakarPosRight)); + if (Creature* summon = instance->SummonCreature(NPC_ROOKERY_GUARDIAN, SolakarPosLeft)) + { + SolakarSummons.push_back(summon->GetGUID()); + } + + if (Creature* summon = instance->SummonCreature(NPC_ROOKERY_HATCHER, SolakarPosRight)) + { + SolakarSummons.push_back(summon->GetGUID()); + } + if (number == 0) { - if (Creature* FirstHatcher = SolakarSummons.back()) // works because we spawned a hatcher second + if (Creature* FirstHatcher = instance->GetCreature(SolakarSummons.back())) // works because we spawned a hatcher second { FirstHatcher->AI()->Talk(SAY_SOLAKAR_FIRST_HATCHER); } @@ -441,7 +449,10 @@ public: } else if (number == MAX_WAVE_COUNT) { - SolakarSummons.push_back(instance->SummonCreature(NPC_SOLAKAR, SolakarPosBoss)); + if (Creature* summon = instance->SummonCreature(NPC_SOLAKAR, SolakarPosBoss)) + { + SolakarSummons.push_back(summon->GetGUID()); + } } }