diff options
author | megamage <none@none> | 2009-09-01 19:28:20 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-09-01 19:28:20 -0500 |
commit | f808a461cc62c8bab6f2ff3d5d93867334dc64ed (patch) | |
tree | 5265a99207b02b65121674c27a14d407a37c35f5 /src | |
parent | 1e7386c638b819065791f85e09976697a39cc868 (diff) |
*Fix a crash caused by gothik. Thanks to new001.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/bindings/scripts/scripts/northrend/naxxramas/boss_gothik.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_gothik.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_gothik.cpp index 8844c41e896..00d769cb880 100644 --- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_gothik.cpp +++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_gothik.cpp @@ -106,8 +106,8 @@ struct TRINITY_DLL_DECL boss_gothikAI : public BossAI boss_gothikAI(Creature *c) : BossAI(c, BOSS_GOTHIK) {} uint32 waveCount; - std::vector<Creature*> liveTrigger; - std::vector<Creature*> deadTrigger; + typedef std::vector<Creature*> TriggerVct; + TriggerVct liveTrigger, deadTrigger; void Reset() { @@ -156,6 +156,20 @@ struct TRINITY_DLL_DECL boss_gothikAI : public BossAI summons.Summon(summon); } + void SummonedCreatureDespawn(Creature *summon) + { + if (summon->GetEntry() == WORLD_TRIGGER) + { + //for(TriggerVct::iterator itr = liveTrigger.begin(); itr != liveTrigger.end(); ++itr) + // if(*itr == summon) + error_log("boss_gothikAI: trigger is despawned!"); + EnterEvadeMode(); + return; + } + + summons.Despawn(summon); + } + void KilledUnit(Unit* victim) { if (!(rand()%5)) @@ -164,6 +178,8 @@ struct TRINITY_DLL_DECL boss_gothikAI : public BossAI void JustDied(Unit* Killer) { + liveTrigger.clear(); + deadTrigger.clear(); _JustDied(); DoScriptText(SAY_DEATH, me); } |