diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/scripts/northrend/gundrak/boss_eck.cpp | 4 | ||||
-rw-r--r-- | src/scripts/northrend/gundrak/gundrak.h | 5 | ||||
-rw-r--r-- | src/scripts/northrend/gundrak/instance_gundrak.cpp | 16 |
3 files changed, 16 insertions, 9 deletions
diff --git a/src/scripts/northrend/gundrak/boss_eck.cpp b/src/scripts/northrend/gundrak/boss_eck.cpp index 89843bac7f5..cac1bfd8f3e 100644 --- a/src/scripts/northrend/gundrak/boss_eck.cpp +++ b/src/scripts/northrend/gundrak/boss_eck.cpp @@ -140,8 +140,8 @@ struct npc_ruins_dwellerAI : public ScriptedAI { if(pInstance) { - pInstance->SetData(DATA_RUIN_DIED_DWELLER,m_creature->GetGUID()); - if (pInstance->GetData(DATA_RUIN_DIED_DWELLER) == 0) + pInstance->SetData64(DATA_RUIN_DWELLER_DIED,m_creature->GetGUID()); + if (pInstance->GetData(DATA_ALIVE_RUIN_DWELLERS) == 0) m_creature->SummonCreature(CREATURE_ECK, EckSpawnPoint, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300*IN_MILISECONDS); } } diff --git a/src/scripts/northrend/gundrak/gundrak.h b/src/scripts/northrend/gundrak/gundrak.h index f0ec7006a67..17f0097bbf7 100644 --- a/src/scripts/northrend/gundrak/gundrak.h +++ b/src/scripts/northrend/gundrak/gundrak.h @@ -26,7 +26,7 @@ enum Data DATA_DRAKKARI_COLOSSUS_EVENT, DATA_GAL_DARAH_EVENT, DATA_ECK_THE_FEROCIOUS_EVENT, - DATA_RUIN_DIED_DWELLER + DATA_ALIVE_RUIN_DWELLERS }; enum Data64 @@ -37,7 +37,8 @@ enum Data64 DATA_SLAD_RAN_STATUE, DATA_MOORABI_STATUE, DATA_DRAKKARI_COLOSSUS_STATUE, - DATA_DRAKKARI_COLOSSUS + DATA_DRAKKARI_COLOSSUS, + DATA_RUIN_DWELLER_DIED }; enum mainCreatures diff --git a/src/scripts/northrend/gundrak/instance_gundrak.cpp b/src/scripts/northrend/gundrak/instance_gundrak.cpp index 0356f6b9584..88043730ae5 100644 --- a/src/scripts/northrend/gundrak/instance_gundrak.cpp +++ b/src/scripts/northrend/gundrak/instance_gundrak.cpp @@ -137,7 +137,10 @@ struct instance_gundrak : public ScriptedInstance case CREATURE_GALDARAH: uiGalDarah = pCreature->GetGUID(); break; case CREATURE_DRAKKARICOLOSSUS: uiDrakkariColossus = pCreature->GetGUID(); break; case CREATURE_ECK: uiEckTheFerocious = pCreature->GetGUID(); break; - case CREATURE_RUIN_DWELLER: DwellerGUIDs.insert(pCreature->GetGUID()); break; + case CREATURE_RUIN_DWELLER: + if (pCreature->isAlive()) + DwellerGUIDs.insert(pCreature->GetGUID()); + break; } } @@ -286,14 +289,17 @@ struct instance_gundrak : public ScriptedInstance if (bHeroicMode && data == DONE) HandleGameObject(uiEckTheFerociousDoorBehind,true); break; - case DATA_RUIN_DIED_DWELLER: - DwellerGUIDs.erase(data); - break; } if (data == DONE) SaveToDB(); } + + void SetData64(uint32 type, uint64 data) + { + if (type == DATA_RUIN_DWELLER_DIED) + DwellerGUIDs.erase(data); + } uint32 GetData(uint32 type) { @@ -304,7 +310,7 @@ struct instance_gundrak : public ScriptedInstance case DATA_GAL_DARAH_EVENT: return m_auiEncounter[2]; case DATA_DRAKKARI_COLOSSUS_EVENT: return m_auiEncounter[3]; case DATA_ECK_THE_FEROCIOUS_EVENT: return m_auiEncounter[4]; - case DATA_RUIN_DIED_DWELLER: return DwellerGUIDs.size(); + case DATA_ALIVE_RUIN_DWELLERS: return DwellerGUIDs.size(); } return 0; |