Violet Hold: Some fixes, infinite loop one included

--HG--
branch : trunk
This commit is contained in:
Tartalo
2010-06-19 23:01:26 +02:00
parent 6e871d6f4d
commit 78fab5fa18
@@ -383,7 +383,7 @@ struct npc_teleportation_portalAI : public ScriptedAI
{ {
bPortalGuardianOrKeeperOrEliteSpawn = true; bPortalGuardianOrKeeperOrEliteSpawn = true;
uint8 k = pInstance->GetData(DATA_WAVE_COUNT) < 12 ? 2 : 3; uint8 k = pInstance->GetData(DATA_WAVE_COUNT) < 12 ? 2 : 3;
for (uint8 i = 0; i < k; i) for (uint8 i = 0; i < k; ++i)
{ {
uint32 entry = RAND(CREATURE_AZURE_CAPTAIN,CREATURE_AZURE_RAIDER,CREATURE_AZURE_STALKER,CREATURE_AZURE_SORCEROR); uint32 entry = RAND(CREATURE_AZURE_CAPTAIN,CREATURE_AZURE_RAIDER,CREATURE_AZURE_STALKER,CREATURE_AZURE_SORCEROR);
DoSummon(entry, me, 2.0f, 20000, TEMPSUMMON_DEAD_DESPAWN); DoSummon(entry, me, 2.0f, 20000, TEMPSUMMON_DEAD_DESPAWN);
@@ -394,7 +394,7 @@ struct npc_teleportation_portalAI : public ScriptedAI
else else
{ {
// if all spawned elites have died kill portal // if all spawned elites have died kill portal
if(!listOfMobs.size()) if(listOfMobs.empty())
{ {
me->Kill(me, false); me->Kill(me, false);
me->RemoveCorpse(); me->RemoveCorpse();
@@ -408,7 +408,7 @@ struct npc_teleportation_portalAI : public ScriptedAI
if(bPortalGuardianOrKeeperOrEliteSpawn) if(bPortalGuardianOrKeeperOrEliteSpawn)
{ {
uint8 k = pInstance->GetData(DATA_WAVE_COUNT) < 12 ? 3 : 4; uint8 k = pInstance->GetData(DATA_WAVE_COUNT) < 12 ? 3 : 4;
for (uint8 i = 0; i < k; i) for (uint8 i = 0; i < k; ++i)
{ {
uint32 entry = RAND(CREATURE_AZURE_INVADER_1,CREATURE_AZURE_INVADER_2,CREATURE_AZURE_SPELLBREAKER_1,CREATURE_AZURE_SPELLBREAKER_2,CREATURE_AZURE_MAGE_SLAYER_1,CREATURE_AZURE_MAGE_SLAYER_2,CREATURE_AZURE_BINDER_1,CREATURE_AZURE_BINDER_2); uint32 entry = RAND(CREATURE_AZURE_INVADER_1,CREATURE_AZURE_INVADER_2,CREATURE_AZURE_SPELLBREAKER_1,CREATURE_AZURE_SPELLBREAKER_2,CREATURE_AZURE_MAGE_SLAYER_1,CREATURE_AZURE_MAGE_SLAYER_2,CREATURE_AZURE_BINDER_1,CREATURE_AZURE_BINDER_2);
DoSummon(entry, me, 2.0f, 20000, TEMPSUMMON_DEAD_DESPAWN); DoSummon(entry, me, 2.0f, 20000, TEMPSUMMON_DEAD_DESPAWN);
@@ -439,14 +439,14 @@ struct npc_teleportation_portalAI : public ScriptedAI
pInstance->SetData(DATA_WAVE_COUNT,pInstance->GetData(DATA_WAVE_COUNT)+1); pInstance->SetData(DATA_WAVE_COUNT,pInstance->GetData(DATA_WAVE_COUNT)+1);
} }
void JustSummoned(Creature *summoned) void JustSummoned(Creature *pSummoned)
{ {
listOfMobs.Summon(summoned); listOfMobs.Summon(pSummoned);
} }
void SummonedMobDied(Creature *summoned) void SummonedCreatureDespawn(Creature *pSummoned)
{ {
listOfMobs.Despawn(summoned); listOfMobs.Despawn(pSummoned);
} }
}; };
@@ -562,8 +562,6 @@ struct violet_hold_trashAI : public npc_escortAI
void JustDied(Unit *unit) void JustDied(Unit *unit)
{ {
Creature* portal = Unit::GetCreature((*me),pInstance->GetData64(DATA_TELEPORTATION_PORTAL)); Creature* portal = Unit::GetCreature((*me),pInstance->GetData64(DATA_TELEPORTATION_PORTAL));
if (portal)
CAST_AI(npc_teleportation_portalAI,portal->AI())->SummonedMobDied(me);
pInstance->SetData(DATA_NPC_PRESENCE_AT_DOOR_REMOVE,1); pInstance->SetData(DATA_NPC_PRESENCE_AT_DOOR_REMOVE,1);
} }