aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormaanuel <none@none>2009-12-07 13:06:26 -0300
committermaanuel <none@none>2009-12-07 13:06:26 -0300
commit1ef6d7b464205fcb5a42f88809dcaab61892449e (patch)
treeaa4b7e151f19d5a0a61bee087020bd86b2e9ed2b
parentba0f7c74bea1ba75e7987ca169e8e4be13b2265a (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.cpp30
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);
+ }
}
}