diff options
author | maanuel <none@none> | 2009-12-07 13:06:26 -0300 |
---|---|---|
committer | maanuel <none@none> | 2009-12-07 13:06:26 -0300 |
commit | 1ef6d7b464205fcb5a42f88809dcaab61892449e (patch) | |
tree | aa4b7e151f19d5a0a61bee087020bd86b2e9ed2b | |
parent | ba0f7c74bea1ba75e7987ca169e8e4be13b2265a (diff) |
Trying to fix a crash in npc_marzon_silent_bladeAI. Closes #673 #675
--HG--
branch : trunk
-rw-r--r-- | src/bindings/scripts/scripts/eastern_kingdoms/stormwind_city.cpp | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/stormwind_city.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/stormwind_city.cpp index 889a7063e48..6ea696e7ae3 100644 --- a/src/bindings/scripts/scripts/eastern_kingdoms/stormwind_city.cpp +++ b/src/bindings/scripts/scripts/eastern_kingdoms/stormwind_city.cpp @@ -418,10 +418,14 @@ struct TRINITY_DLL_DECL npc_marzon_silent_bladeAI : public ScriptedAI void EnterCombat(Unit* pWho) { DoScriptText(SAY_MARZON_2, m_creature); - if (Unit* pSummoner = CAST_SUM(m_creature)->GetSummoner()) + + if (m_creature->isSummon()) { - if (pSummoner && pSummoner->isAlive() && !pSummoner->isInCombat()) - CAST_CRE(pSummoner)->AI()->AttackStart(pWho); + if (Unit* pSummoner = CAST_SUM(m_creature)->GetSummoner()) + { + if (pSummoner && pSummoner->isAlive() && !pSummoner->isInCombat()) + CAST_CRE(pSummoner)->AI()->AttackStart(pWho); + } } } @@ -429,10 +433,13 @@ struct TRINITY_DLL_DECL npc_marzon_silent_bladeAI : public ScriptedAI { m_creature->DisappearAndDie(); - if (Unit* pSummoner = CAST_SUM(m_creature)->GetSummoner()) + if (m_creature->isSummon()) { - if (pSummoner && pSummoner->isAlive()) - CAST_CRE(pSummoner)->DisappearAndDie(); + if (Unit* pSummoner = CAST_SUM(m_creature)->GetSummoner()) + { + if (pSummoner && pSummoner->isAlive()) + CAST_CRE(pSummoner)->DisappearAndDie(); + } } } @@ -441,11 +448,14 @@ struct TRINITY_DLL_DECL npc_marzon_silent_bladeAI : public ScriptedAI if (uiType != POINT_MOTION_TYPE) return; - if (Unit* pSummoner = CAST_SUM(m_creature)->GetSummoner()) + if (m_creature->isSummon()) { - CAST_AI(npc_lord_gregor_lescovarAI, CAST_CRE(pSummoner)->AI())->uiTimer = 2000; - CAST_AI(npc_lord_gregor_lescovarAI, CAST_CRE(pSummoner)->AI())->uiPhase = 5; - m_creature->ChangeOrient(0.0f, pSummoner); + if (Unit* pSummoner = CAST_SUM(m_creature)->GetSummoner()) + { + CAST_AI(npc_lord_gregor_lescovarAI, CAST_CRE(pSummoner)->AI())->uiTimer = 2000; + CAST_AI(npc_lord_gregor_lescovarAI, CAST_CRE(pSummoner)->AI())->uiPhase = 5; + m_creature->ChangeOrient(0.0f, pSummoner); + } } } |