Gundrak: Fix for Eck the Ferocious spawning

--HG--
branch : trunk
This commit is contained in:
Tartalo
2010-03-23 12:25:01 +01:00
parent 05e7a155a5
commit 3cd729294e
3 changed files with 16 additions and 9 deletions
+2 -2
View File
@@ -140,8 +140,8 @@ struct npc_ruins_dwellerAI : public ScriptedAI
{ {
if(pInstance) if(pInstance)
{ {
pInstance->SetData(DATA_RUIN_DIED_DWELLER,m_creature->GetGUID()); pInstance->SetData64(DATA_RUIN_DWELLER_DIED,m_creature->GetGUID());
if (pInstance->GetData(DATA_RUIN_DIED_DWELLER) == 0) if (pInstance->GetData(DATA_ALIVE_RUIN_DWELLERS) == 0)
m_creature->SummonCreature(CREATURE_ECK, EckSpawnPoint, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300*IN_MILISECONDS); m_creature->SummonCreature(CREATURE_ECK, EckSpawnPoint, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300*IN_MILISECONDS);
} }
} }
+3 -2
View File
@@ -26,7 +26,7 @@ enum Data
DATA_DRAKKARI_COLOSSUS_EVENT, DATA_DRAKKARI_COLOSSUS_EVENT,
DATA_GAL_DARAH_EVENT, DATA_GAL_DARAH_EVENT,
DATA_ECK_THE_FEROCIOUS_EVENT, DATA_ECK_THE_FEROCIOUS_EVENT,
DATA_RUIN_DIED_DWELLER DATA_ALIVE_RUIN_DWELLERS
}; };
enum Data64 enum Data64
@@ -37,7 +37,8 @@ enum Data64
DATA_SLAD_RAN_STATUE, DATA_SLAD_RAN_STATUE,
DATA_MOORABI_STATUE, DATA_MOORABI_STATUE,
DATA_DRAKKARI_COLOSSUS_STATUE, DATA_DRAKKARI_COLOSSUS_STATUE,
DATA_DRAKKARI_COLOSSUS DATA_DRAKKARI_COLOSSUS,
DATA_RUIN_DWELLER_DIED
}; };
enum mainCreatures enum mainCreatures
@@ -137,7 +137,10 @@ struct instance_gundrak : public ScriptedInstance
case CREATURE_GALDARAH: uiGalDarah = pCreature->GetGUID(); break; case CREATURE_GALDARAH: uiGalDarah = pCreature->GetGUID(); break;
case CREATURE_DRAKKARICOLOSSUS: uiDrakkariColossus = pCreature->GetGUID(); break; case CREATURE_DRAKKARICOLOSSUS: uiDrakkariColossus = pCreature->GetGUID(); break;
case CREATURE_ECK: uiEckTheFerocious = 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,15 +289,18 @@ struct instance_gundrak : public ScriptedInstance
if (bHeroicMode && data == DONE) if (bHeroicMode && data == DONE)
HandleGameObject(uiEckTheFerociousDoorBehind,true); HandleGameObject(uiEckTheFerociousDoorBehind,true);
break; break;
case DATA_RUIN_DIED_DWELLER:
DwellerGUIDs.erase(data);
break;
} }
if (data == DONE) if (data == DONE)
SaveToDB(); SaveToDB();
} }
void SetData64(uint32 type, uint64 data)
{
if (type == DATA_RUIN_DWELLER_DIED)
DwellerGUIDs.erase(data);
}
uint32 GetData(uint32 type) uint32 GetData(uint32 type)
{ {
switch(type) switch(type)
@@ -304,7 +310,7 @@ struct instance_gundrak : public ScriptedInstance
case DATA_GAL_DARAH_EVENT: return m_auiEncounter[2]; case DATA_GAL_DARAH_EVENT: return m_auiEncounter[2];
case DATA_DRAKKARI_COLOSSUS_EVENT: return m_auiEncounter[3]; case DATA_DRAKKARI_COLOSSUS_EVENT: return m_auiEncounter[3];
case DATA_ECK_THE_FEROCIOUS_EVENT: return m_auiEncounter[4]; 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; return 0;