aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMachiavelli <none@none>2009-11-04 18:18:42 +0100
committerMachiavelli <none@none>2009-11-04 18:18:42 +0100
commitd12a79807da28e717d055c8f3a286fb9aa71de31 (patch)
tree3a49f8880abdc938e9641c475594002261380911 /src
parentef420fc98c16e6b4e3318ff5207b4282b35017dc (diff)
Fix crash in Chromaggus script. Fixes #55
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/blackwing_lair/boss_chromaggus.cpp47
1 files changed, 26 insertions, 21 deletions
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/blackwing_lair/boss_chromaggus.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/blackwing_lair/boss_chromaggus.cpp
index 6f7751f6fc7..c251ada940e 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/blackwing_lair/boss_chromaggus.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/blackwing_lair/boss_chromaggus.cpp
@@ -231,29 +231,34 @@ struct TRINITY_DLL_DECL boss_chromaggusAI : public ScriptedAI
{
for (std::list<HostilReference*>::iterator i = m_creature->getThreatManager().getThreatList().begin(); i != m_creature->getThreatManager().getThreatList().end(); ++i)
{
- if (Unit* pUnit = Unit::GetUnit((*m_creature), (*i)->getUnitGuid()))
+ Unit* pUnit;
+ if ((*i)->getSource())
{
- //Cast affliction
- DoCast(pUnit, RAND(SPELL_BROODAF_BLUE, SPELL_BROODAF_BLACK,
- SPELL_BROODAF_RED, SPELL_BROODAF_BRONZE, SPELL_BROODAF_GREEN), true);
-
- //Chromatic mutation if target is effected by all afflictions
- if (pUnit->HasAura(SPELL_BROODAF_BLUE)
- && pUnit->HasAura(SPELL_BROODAF_BLACK)
- && pUnit->HasAura(SPELL_BROODAF_RED)
- && pUnit->HasAura(SPELL_BROODAF_BRONZE)
- && pUnit->HasAura(SPELL_BROODAF_GREEN))
+ pUnit = Unit::GetUnit((*m_creature), (*i)->getUnitGuid());
+ if (pUnit)
{
- //pTarget->RemoveAllAuras();
- //DoCast(pTarget,SPELL_CHROMATIC_MUT_1);
-
- //Chromatic mutation is causing issues
- //Assuming it is caused by a lack of core support for Charm
- //So instead we instant kill our target
-
- //WORKAROUND
- if (pUnit->GetTypeId() == TYPEID_PLAYER)
- pUnit->CastSpell(pUnit, 5, false);
+ //Cast affliction
+ DoCast(pUnit, RAND(SPELL_BROODAF_BLUE, SPELL_BROODAF_BLACK,
+ SPELL_BROODAF_RED, SPELL_BROODAF_BRONZE, SPELL_BROODAF_GREEN), true);
+
+ //Chromatic mutation if target is effected by all afflictions
+ if (pUnit->HasAura(SPELL_BROODAF_BLUE)
+ && pUnit->HasAura(SPELL_BROODAF_BLACK)
+ && pUnit->HasAura(SPELL_BROODAF_RED)
+ && pUnit->HasAura(SPELL_BROODAF_BRONZE)
+ && pUnit->HasAura(SPELL_BROODAF_GREEN))
+ {
+ //pTarget->RemoveAllAuras();
+ //DoCast(pTarget,SPELL_CHROMATIC_MUT_1);
+
+ //Chromatic mutation is causing issues
+ //Assuming it is caused by a lack of core support for Charm
+ //So instead we instant kill our target
+
+ //WORKAROUND
+ if (pUnit->GetTypeId() == TYPEID_PLAYER)
+ pUnit->CastSpell(pUnit, 5, false);
+ }
}
}
}