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,7 +86,8 @@ enum BossSpells
/*###### /*######
## boss_jaraxxus ## boss_jaraxxus
######*/ ######*/
␍class boss_jaraxxus : public CreatureScript
class boss_jaraxxus : public CreatureScript
{ {
public: public:
boss_jaraxxus() : CreatureScript("boss_jaraxxus") { } boss_jaraxxus() : CreatureScript("boss_jaraxxus") { }
@@ -248,7 +249,8 @@ public:
}; };
␍class mob_legion_flame : public CreatureScript
class mob_legion_flame : public CreatureScript
{ {
public: public:
mob_legion_flame() : CreatureScript("mob_legion_flame") { } mob_legion_flame() : CreatureScript("mob_legion_flame") { }
@@ -281,7 +283,8 @@ public:
}; };
␍class mob_infernal_volcano : public CreatureScript
class mob_infernal_volcano : public CreatureScript
{ {
public: public:
mob_infernal_volcano() : CreatureScript("mob_infernal_volcano") { } mob_infernal_volcano() : CreatureScript("mob_infernal_volcano") { }
@@ -358,7 +361,8 @@ public:
}; };
␍class mob_fel_infernal : public CreatureScript
class mob_fel_infernal : public CreatureScript
{ {
public: public:
mob_fel_infernal() : CreatureScript("mob_fel_infernal") { } mob_fel_infernal() : CreatureScript("mob_fel_infernal") { }
@@ -412,7 +416,8 @@ public:
}; };
␍class mob_nether_portal : public CreatureScript
class mob_nether_portal : public CreatureScript
{ {
public: public:
mob_nether_portal() : CreatureScript("mob_nether_portal") { } mob_nether_portal() : CreatureScript("mob_nether_portal") { }
@@ -483,7 +488,8 @@ public:
}; };
␍class mob_mistress_of_pain : public CreatureScript
class mob_mistress_of_pain : public CreatureScript
{ {
public: public:
mob_mistress_of_pain() : CreatureScript("mob_mistress_of_pain") { } mob_mistress_of_pain() : CreatureScript("mob_mistress_of_pain") { }
@@ -108,7 +108,8 @@ enum BossSpells
SPELL_FROTHING_RAGE = 66759, SPELL_FROTHING_RAGE = 66759,
SPELL_STAGGERED_DAZE = 66758, SPELL_STAGGERED_DAZE = 66758,
}; };
␍class boss_gormok : public CreatureScript
class boss_gormok : public CreatureScript
{ {
public: public:
boss_gormok() : CreatureScript("boss_gormok") { } boss_gormok() : CreatureScript("boss_gormok") { }
@@ -167,29 +168,26 @@ public:
m_pInstance->SetData(TYPE_NORTHREND_BEASTS,GORMOK_IN_PROGRESS); m_pInstance->SetData(TYPE_NORTHREND_BEASTS,GORMOK_IN_PROGRESS);
} }
void JustSummoned(Creature* pSummoned) void JustSummoned(Creature* summon)
{ {
Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0); if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true))
switch(pSummoned->GetEntry())
{ {
case NPC_SNOBOLD_VASSAL: if (summon->GetEntry() == NPC_SNOBOLD_VASSAL)
pSummoned->GetMotionMaster()->MoveJump(pTarget->GetPositionX(),pTarget->GetPositionY(),pTarget->GetPositionZ(),10.0f,20.0f); {
summon->GetMotionMaster()->MoveJump(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 10.0f, 20.0f);
DoCast(me, SPELL_RISING_ANGER); DoCast(me, SPELL_RISING_ANGER);
--m_uiSummonCount; --m_uiSummonCount;
break;
} }
pSummoned->AI()->AttackStart(pTarget); summon->AI()->AttackStart(target);
Summons.Summon(pSummoned); }
Summons.Summon(summon);
} }
void SummonedCreatureDespawn(Creature* pSummoned) void SummonedCreatureDespawn(Creature* summon)
{ {
switch(pSummoned->GetEntry()) if (summon->GetEntry() == NPC_SNOBOLD_VASSAL)
{ if (summon->isAlive())
case NPC_SNOBOLD_VASSAL: ++m_uiSummonCount;
if (pSummoned->isAlive()) ++m_uiSummonCount;
break;
}
} }
void UpdateAI(const uint32 uiDiff) void UpdateAI(const uint32 uiDiff)
@@ -225,7 +223,8 @@ public:
}; };
␍class mob_snobold_vassal : public CreatureScript
class mob_snobold_vassal : public CreatureScript
{ {
public: public:
mob_snobold_vassal() : CreatureScript("mob_snobold_vassal") { } mob_snobold_vassal() : CreatureScript("mob_snobold_vassal") { }
@@ -563,7 +562,8 @@ struct boss_jormungarAI : public ScriptedAI
} }
}; };
␍class boss_acidmaw : public CreatureScript
class boss_acidmaw : public CreatureScript
{ {
public: public:
boss_acidmaw() : CreatureScript("boss_acidmaw") { } boss_acidmaw() : CreatureScript("boss_acidmaw") { }
@@ -596,7 +596,8 @@ struct boss_jormungarAI : public ScriptedAI
}; };
␍class boss_dreadscale : public CreatureScript
class boss_dreadscale : public CreatureScript
{ {
public: public:
boss_dreadscale() : CreatureScript("boss_dreadscale") { } boss_dreadscale() : CreatureScript("boss_dreadscale") { }
@@ -628,7 +629,8 @@ public:
}; };
␍class mob_slime_pool : public CreatureScript
class mob_slime_pool : public CreatureScript
{ {
public: public:
mob_slime_pool() : CreatureScript("mob_slime_pool") { } mob_slime_pool() : CreatureScript("mob_slime_pool") { }
@@ -663,7 +665,8 @@ public:
}; };
}; };
␍class boss_icehowl : public CreatureScript
class boss_icehowl : public CreatureScript
{ {
public: public:
boss_icehowl() : CreatureScript("boss_icehowl") { } boss_icehowl() : CreatureScript("boss_icehowl") { }
@@ -25,7 +25,8 @@ EndScriptData */
#include "ScriptPCH.h" #include "ScriptPCH.h"
#include "trial_of_the_crusader.h" #include "trial_of_the_crusader.h"
␍class instance_trial_of_the_crusader : public InstanceMapScript
class instance_trial_of_the_crusader : public InstanceMapScript
{ {
public: public:
instance_trial_of_the_crusader() : InstanceMapScript("instance_trial_of_the_crusader", 649) { } instance_trial_of_the_crusader() : InstanceMapScript("instance_trial_of_the_crusader", 649) { }