From 8eb2cc7ebc18f0ace31c439a3786264993f2d90e Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Sat, 1 Sep 2018 10:21:39 +0200 Subject: [PATCH] Scripts/GB: improved Erudax' egg respawn and despawn mechanics --- .../GrimBatol/instance_grim_batol.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/GrimBatol/instance_grim_batol.cpp b/src/server/scripts/EasternKingdoms/GrimBatol/instance_grim_batol.cpp index cdce3170ed0..7f636dcc120 100644 --- a/src/server/scripts/EasternKingdoms/GrimBatol/instance_grim_batol.cpp +++ b/src/server/scripts/EasternKingdoms/GrimBatol/instance_grim_batol.cpp @@ -87,6 +87,7 @@ class instance_grim_batol : public InstanceMapScript } break; case NPC_ALEXSTRASZAS_EGG: + creature->SetCorpseDelay(DAY); creature->SetHealth(creature->GetMaxHealth()); alexstraszasEggGuidList.insert(creature->GetGUID()); break; @@ -112,15 +113,16 @@ class instance_grim_batol : public InstanceMapScript } if (state == FAIL) { - for (auto itr = alexstraszasEggGuidList.begin(); itr != alexstraszasEggGuidList.end(); itr++) - { - if (Creature* egg = instance->GetCreature((*itr))) - { - egg->Respawn(); - egg->SetHealth(egg->GetMaxHealth()); - } - } + for (ObjectGuid guid : alexstraszasEggGuidList) + if (Creature* egg = instance->GetCreature(guid)) + egg->DespawnOrUnsummon(0, 30s); + + alexstraszasEggGuidList.clear(); } + else if (state == DONE) + for (ObjectGuid guid : alexstraszasEggGuidList) + if (Creature* egg = instance->GetCreature(guid)) + egg->DespawnOrUnsummon(); break; default: break;