Scripts/Trial of the Crusader: Fixed crashes in Gormok the Impaler

Closes issue #4515.

--HG--
branch : trunk
This commit is contained in:
Shauren
2010-12-03 14:02:41 +01:00
parent 3badf69b63
commit 96ab1a102f
3 changed files with 38 additions and 28 deletions
@@ -86,6 +86,7 @@ enum BossSpells
/*######
## boss_jaraxxus
######*/
class boss_jaraxxus : public CreatureScript
{
public:
@@ -248,6 +249,7 @@ public:
};
class mob_legion_flame : public CreatureScript
{
public:
@@ -281,6 +283,7 @@ public:
};
class mob_infernal_volcano : public CreatureScript
{
public:
@@ -358,6 +361,7 @@ public:
};
class mob_fel_infernal : public CreatureScript
{
public:
@@ -412,6 +416,7 @@ public:
};
class mob_nether_portal : public CreatureScript
{
public:
@@ -483,6 +488,7 @@ public:
};
class mob_mistress_of_pain : public CreatureScript
{
public:
@@ -108,6 +108,7 @@ enum BossSpells
SPELL_FROTHING_RAGE = 66759,
SPELL_STAGGERED_DAZE = 66758,
};
class boss_gormok : public CreatureScript
{
public:
@@ -167,29 +168,26 @@ public:
m_pInstance->SetData(TYPE_NORTHREND_BEASTS,GORMOK_IN_PROGRESS);
}
void JustSummoned(Creature* pSummoned)
void JustSummoned(Creature* summon)
{
Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0);
switch(pSummoned->GetEntry())
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true))
{
case NPC_SNOBOLD_VASSAL:
pSummoned->GetMotionMaster()->MoveJump(pTarget->GetPositionX(),pTarget->GetPositionY(),pTarget->GetPositionZ(),10.0f,20.0f);
if (summon->GetEntry() == NPC_SNOBOLD_VASSAL)
{
summon->GetMotionMaster()->MoveJump(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 10.0f, 20.0f);
DoCast(me, SPELL_RISING_ANGER);
--m_uiSummonCount;
break;
}
pSummoned->AI()->AttackStart(pTarget);
Summons.Summon(pSummoned);
summon->AI()->AttackStart(target);
}
Summons.Summon(summon);
}
void SummonedCreatureDespawn(Creature* pSummoned)
void SummonedCreatureDespawn(Creature* summon)
{
switch(pSummoned->GetEntry())
{
case NPC_SNOBOLD_VASSAL:
if (pSummoned->isAlive()) ++m_uiSummonCount;
break;
}
if (summon->GetEntry() == NPC_SNOBOLD_VASSAL)
if (summon->isAlive())
++m_uiSummonCount;
}
void UpdateAI(const uint32 uiDiff)
@@ -225,6 +223,7 @@ public:
};
class mob_snobold_vassal : public CreatureScript
{
public:
@@ -563,6 +562,7 @@ struct boss_jormungarAI : public ScriptedAI
}
};
class boss_acidmaw : public CreatureScript
{
public:
@@ -596,6 +596,7 @@ struct boss_jormungarAI : public ScriptedAI
};
class boss_dreadscale : public CreatureScript
{
public:
@@ -628,6 +629,7 @@ public:
};
class mob_slime_pool : public CreatureScript
{
public:
@@ -663,6 +665,7 @@ public:
};
};
class boss_icehowl : public CreatureScript
{
public:
@@ -25,6 +25,7 @@ EndScriptData */
#include "ScriptPCH.h"
#include "trial_of_the_crusader.h"
class instance_trial_of_the_crusader : public InstanceMapScript
{
public: