Fix crash in npc_orinoko_tuskbreakerAI

--HG--
branch : trunk
This commit is contained in:
Trazom62
2010-01-26 18:55:00 +01:00
parent 89d86e0c57
commit b233a12c86
+12 -8
View File
@@ -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->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE);
m_creature->SetReactState(REACT_PASSIVE); m_creature->SetReactState(REACT_PASSIVE);
pAffected = NULL;
pWhisker = NULL;
} }
bool bSummoned; bool bSummoned;
@@ -457,7 +455,7 @@ struct TRINITY_DLL_DECL npc_orinoko_tuskbreakerAI : public ScriptedAI
uint32 uiFishyScentTimer; uint32 uiFishyScentTimer;
Unit* pAffected; Unit* pAffected;
Creature* pWhisker; uint64 uiWhisker;
void Reset() void Reset()
{ {
@@ -466,12 +464,15 @@ struct TRINITY_DLL_DECL npc_orinoko_tuskbreakerAI : public ScriptedAI
bFishyScent = false; bFishyScent = false;
uiBattleShoutTimer = 0; uiBattleShoutTimer = 0;
uiFishyScentTimer = 20000; uiFishyScentTimer = 20000;
uiWhisker = 0;
pAffected = NULL;
} }
void EnterEvadeMode() void EnterEvadeMode()
{ {
if (pWhisker) if (uiWhisker)
pWhisker->RemoveFromWorld(); if (Creature *pWhisker = m_creature->GetCreature(*m_creature, uiWhisker))
pWhisker->RemoveFromWorld();
if (m_creature->isSummon()) if (m_creature->isSummon())
if (Creature* pSummoner = CAST_CRE(CAST_SUM(m_creature)->GetSummoner())) 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); DoScriptText(SAY_CALL_FOR_HELP ,m_creature);
//DoCast(m_creature->getVictim(), SPELL_SUMMON_WHISKER); petai is not working correctly??? //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; bSummoned = true;
} }
@@ -540,8 +543,9 @@ struct TRINITY_DLL_DECL npc_orinoko_tuskbreakerAI : public ScriptedAI
void JustDied(Unit* pKiller) void JustDied(Unit* pKiller)
{ {
if (pWhisker) if (uiWhisker)
pWhisker->RemoveFromWorld(); if (Creature *pWhisker = m_creature->GetCreature(*m_creature, uiWhisker))
pWhisker->RemoveFromWorld();
if (pKiller->GetTypeId() == TYPEID_PLAYER) if (pKiller->GetTypeId() == TYPEID_PLAYER)
CAST_PLR(pKiller)->GroupEventHappens(QUEST_AMPHITHEATER_ANGUISH_TUSKARRMAGEDDON, CAST_PLR(pKiller)); CAST_PLR(pKiller)->GroupEventHappens(QUEST_AMPHITHEATER_ANGUISH_TUSKARRMAGEDDON, CAST_PLR(pKiller));