diff options
| author | Trazom62 <none@none> | 2010-01-26 18:55:00 +0100 |
|---|---|---|
| committer | Trazom62 <none@none> | 2010-01-26 18:55:00 +0100 |
| commit | b233a12c86af3f9d9bcd38756289665e2a506029 (patch) | |
| tree | 71a47887dbfde106784a24fe1d0e02b0861bfe11 /src | |
| parent | 89d86e0c579d73fb4088752092eb5029e03615d6 (diff) | |
Fix crash in npc_orinoko_tuskbreakerAI
--HG--
branch : trunk
Diffstat (limited to 'src')
| -rw-r--r-- | src/scripts/northrend/zuldrak.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/scripts/northrend/zuldrak.cpp b/src/scripts/northrend/zuldrak.cpp index bee987bd64c..641479d66a7 100644 --- a/src/scripts/northrend/zuldrak.cpp +++ b/src/scripts/northrend/zuldrak.cpp @@ -445,8 +445,6 @@ struct TRINITY_DLL_DECL npc_orinoko_tuskbreakerAI : public ScriptedAI { m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE); m_creature->SetReactState(REACT_PASSIVE); - pAffected = NULL; - pWhisker = NULL; } bool bSummoned; @@ -457,7 +455,7 @@ struct TRINITY_DLL_DECL npc_orinoko_tuskbreakerAI : public ScriptedAI uint32 uiFishyScentTimer; Unit* pAffected; - Creature* pWhisker; + uint64 uiWhisker; void Reset() { @@ -466,12 +464,15 @@ struct TRINITY_DLL_DECL npc_orinoko_tuskbreakerAI : public ScriptedAI bFishyScent = false; uiBattleShoutTimer = 0; uiFishyScentTimer = 20000; + uiWhisker = 0; + pAffected = NULL; } void EnterEvadeMode() { - if (pWhisker) - pWhisker->RemoveFromWorld(); + if (uiWhisker) + if (Creature *pWhisker = m_creature->GetCreature(*m_creature, uiWhisker)) + pWhisker->RemoveFromWorld(); if (m_creature->isSummon()) if (Creature* pSummoner = CAST_CRE(CAST_SUM(m_creature)->GetSummoner())) @@ -517,7 +518,9 @@ struct TRINITY_DLL_DECL npc_orinoko_tuskbreakerAI : public ScriptedAI { DoScriptText(SAY_CALL_FOR_HELP ,m_creature); //DoCast(m_creature->getVictim(), SPELL_SUMMON_WHISKER); petai is not working correctly??? - pWhisker = m_creature->SummonCreature(NPC_WHISKER, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0); + + if (Creature *pWhisker = m_creature->SummonCreature(NPC_WHISKER, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0)) + uiWhisker = pWhisker->GetGUID(); bSummoned = true; } @@ -540,8 +543,9 @@ struct TRINITY_DLL_DECL npc_orinoko_tuskbreakerAI : public ScriptedAI void JustDied(Unit* pKiller) { - if (pWhisker) - pWhisker->RemoveFromWorld(); + if (uiWhisker) + if (Creature *pWhisker = m_creature->GetCreature(*m_creature, uiWhisker)) + pWhisker->RemoveFromWorld(); if (pKiller->GetTypeId() == TYPEID_PLAYER) CAST_PLR(pKiller)->GroupEventHappens(QUEST_AMPHITHEATER_ANGUISH_TUSKARRMAGEDDON, CAST_PLR(pKiller)); |
