aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnubisss <none@none>2009-05-01 01:07:09 +0200
committerAnubisss <none@none>2009-05-01 01:07:09 +0200
commitf72cd39122d6345bb1262883b5b5bd648459fc7c (patch)
treecc5451e9bbc31091f4b808a875c637f70bdf13c1
parent16913c63c3a2ec707be0d351e44ece5a6e9c7bc0 (diff)
*Add the second part of the previous commit.
--HG-- branch : trunk
-rw-r--r--src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp16
-rw-r--r--src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp1
-rw-r--r--src/bindings/scripts/scripts/zone/naxxramas/boss_maexxna.cpp3
-rw-r--r--src/bindings/scripts/scripts/zone/razorfen_downs/boss_amnennar_the_coldbringer.cpp9
-rw-r--r--src/bindings/scripts/scripts/zone/scarlet_monastery/boss_headless_horseman.cpp26
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp60
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp3
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp14
-rw-r--r--src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp1
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp1
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp1
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_cannon_master_willey.cpp1
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp1
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp1
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_postmaster_malown.cpp1
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp1
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_timmy_the_cruel.cpp11
-rw-r--r--src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp24
-rw-r--r--src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp27
-rw-r--r--src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kiljaeden.cpp3
-rw-r--r--src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp13
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp61
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp34
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp39
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_ouro.cpp3
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_sartura.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp9
-rw-r--r--src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp1
-rw-r--r--src/bindings/scripts/scripts/zone/uldaman/boss_archaedas.cpp12
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp9
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp3
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp14
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp7
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp7
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp37
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp20
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp75
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp4
52 files changed, 389 insertions, 216 deletions
diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp
index 8684f10c509..e512d42384c 100644
--- a/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp
+++ b/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp
@@ -65,10 +65,10 @@ struct TRINITY_DLL_DECL boss_golemaggAI : public ScriptedAI
void JustDied(Unit* Killer)
{
-
if(pInstance)
pInstance->SetData(DATA_GOLEMAGG_DEATH, 0);
}
+
void UpdateAI(const uint32 diff)
{
if (!UpdateVictim())
diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp
index 7d9a64666cf..2a698c975fc 100644
--- a/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp
+++ b/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp
@@ -224,8 +224,12 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public Scripted_NoMovementAI
for(int i = 0; i < 9;i++)
{
target = SelectUnit(SELECT_TARGET_RANDOM,0);
- Summoned = m_creature->SummonCreature(12143,target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),0,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,900000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(target)
+ {
+ Summoned = m_creature->SummonCreature(12143,target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),0,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,900000);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ }
}
HasSubmergedOnce = true;
@@ -241,8 +245,12 @@ struct TRINITY_DLL_DECL boss_ragnarosAI : public Scripted_NoMovementAI
for(int i = 0; i < 9;i++)
{
target = SelectUnit(SELECT_TARGET_RANDOM,0);
- Summoned = m_creature->SummonCreature(12143,target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),0,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,900000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(target)
+ {
+ Summoned = m_creature->SummonCreature(12143,target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),0,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,900000);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ }
}
WasBanished = true;
diff --git a/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp b/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp
index 74d800a5484..4af70ebda45 100644
--- a/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp
+++ b/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp
@@ -106,7 +106,7 @@ struct TRINITY_DLL_DECL npc_kyle_frenziedAI : public ScriptedAI
{
Unit *plr = Unit::GetUnit((*m_creature),player);
if(plr)
- m_creature->SetOrientation(m_creature->GetAngle(plr));
+ m_creature->SetOrientation(m_creature->GetAngle(plr));
m_creature->HandleEmoteCommand(EMOTE_STATE_USESTANDING); //eat
WorldPacket data;
m_creature->BuildHeartBeatMsg(&data);
diff --git a/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp b/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp
index 0266fa8ef43..9259cc31121 100644
--- a/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp
+++ b/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp
@@ -157,6 +157,7 @@ struct TRINITY_DLL_DECL mob_lumpAI : public ScriptedAI
EnterEvadeMode();
bReset = false;
m_creature->setFaction(1711); //hostile
+ return;
}
else Reset_Timer -= diff;
}
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_maexxna.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_maexxna.cpp
index 235029f1cb7..b3185d01cdf 100644
--- a/src/bindings/scripts/scripts/zone/naxxramas/boss_maexxna.cpp
+++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_maexxna.cpp
@@ -75,7 +75,8 @@ struct TRINITY_DLL_DECL mob_webwrapAI : public ScriptedAI
{
Unit* victim = NULL;
victim = Unit::GetUnit((*m_creature), victimGUID);
- victim->RemoveAurasDueToSpell(SPELL_WEBTRAP);
+ if(victim)
+ victim->RemoveAurasDueToSpell(SPELL_WEBTRAP);
}
}
}
diff --git a/src/bindings/scripts/scripts/zone/razorfen_downs/boss_amnennar_the_coldbringer.cpp b/src/bindings/scripts/scripts/zone/razorfen_downs/boss_amnennar_the_coldbringer.cpp
index d8e1a297872..5502fe61f1a 100644
--- a/src/bindings/scripts/scripts/zone/razorfen_downs/boss_amnennar_the_coldbringer.cpp
+++ b/src/bindings/scripts/scripts/zone/razorfen_downs/boss_amnennar_the_coldbringer.cpp
@@ -115,9 +115,12 @@ struct TRINITY_DLL_DECL boss_amnennar_the_coldbringerAI : public ScriptedAI
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM,0);
- SummonSpectrals(target);
- SummonSpectrals(target);
- SummonSpectrals(target);
+ if(target)
+ {
+ SummonSpectrals(target);
+ SummonSpectrals(target);
+ SummonSpectrals(target);
+ }
Spectrals = true;
}
diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_headless_horseman.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_headless_horseman.cpp
index 441797ec158..99d08375fae 100644
--- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_headless_horseman.cpp
+++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_headless_horseman.cpp
@@ -224,6 +224,7 @@ struct TRINITY_DLL_DECL mob_headAI : public ScriptedAI
DoScriptText(textEntry, m_creature, target);
//DoCast(m_creature,SPELL_HEAD_SPEAKS,true);
Creature *speaker = DoSpawnCreature(HELPER,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN,1000);
+ if(speaker)
speaker->CastSpell(speaker,SPELL_HEAD_SPEAKS,false);
laugh += 3000;
}
@@ -295,6 +296,7 @@ struct TRINITY_DLL_DECL mob_headAI : public ScriptedAI
DoPlaySoundToSet(m_creature, RandomLaught[rand()%3]);
//DoCast(m_creature,SPELL_HEAD_SPEAKS,true); //this spell remove buff "head"
Creature *speaker = DoSpawnCreature(HELPER,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN,1000);
+ if(speaker)
speaker->CastSpell(speaker,SPELL_HEAD_SPEAKS,false);
DoTextEmote("laughts",NULL);
} else laugh -= diff;
@@ -421,8 +423,9 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
m_creature->SetVisibility(VISIBILITY_ON);break;
case 1: {
Creature *smoke = m_creature->SummonCreature(HELPER,Spawn[1].x,Spawn[1].y,Spawn[1].z,0,TEMPSUMMON_TIMED_DESPAWN,20000);
+ if(smoke)
((mob_wisp_invisAI*)smoke->AI())->SetType(3);
- DoCast(m_creature,SPELL_RHYME_BIG);
+ DoCast(m_creature,SPELL_RHYME_BIG);
break;}
case 6:
if(pInstance)
@@ -515,8 +518,10 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
//m_creature->GetMotionMaster()->MoveIdle(); test
SaySound(SAY_DEATH);
Creature *flame = DoSpawnCreature(HELPER,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN,60000);
+ if(flame)
flame->CastSpell(flame,SPELL_BODY_FLAME,false);
Creature *wisp = DoSpawnCreature(WISP_INVIS,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN,60000);
+ if(wisp)
((mob_wisp_invisAI*)wisp->AI())->SetType(4);
if(pInstance)
pInstance->SetData(DATA_HORSEMAN_EVENT, DONE);
@@ -592,11 +597,15 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
say_timer = 3000;
Player *plr = SelectRandomPlayer(100.0f,false);
if (count < 3)
- plr->Say(Text[count].text,0);
+ if(plr)
+ plr->Say(Text[count].text,0);
else {
DoCast(m_creature,SPELL_RHYME_BIG);
- plr->Say(Text[count].text,0);
- plr->HandleEmoteCommand(ANIM_EMOTE_SHOUT);
+ if(plr)
+ {
+ plr->Say(Text[count].text,0);
+ plr->HandleEmoteCommand(ANIM_EMOTE_SHOUT);
+ }
wp_reached = true;
IsFlying = true;
count = 0;
@@ -618,8 +627,9 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
if(burn < diff)
{
Creature *flame = m_creature->SummonCreature(HELPER,Spawn[0].x,Spawn[0].y,Spawn[0].z,0,TEMPSUMMON_TIMED_DESPAWN,17000);
+ if(flame)
((mob_wisp_invisAI*)flame->AI())->SetType(2);
- burned = true;
+ burned = true;
}else burn -= diff;
break;
case 2:
@@ -727,10 +737,13 @@ struct TRINITY_DLL_DECL mob_pulsing_pumpkinAI : public ScriptedAI
m_creature->Relocate(x,y,z + 0.35f);
Despawn();
Creature *debuff = DoSpawnCreature(HELPER,0,0,0,0,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,14500);
+ if(debuff)
+ {
debuff->SetDisplayId(m_creature->GetDisplayId());
debuff->CastSpell(debuff,SPELL_PUMPKIN_AURA_GREEN,false);
((mob_wisp_invisAI*)debuff->AI())->SetType(1);
debuffGUID = debuff->GetGUID();
+ }
sprouted = false;
DoCast(m_creature,SPELL_PUMPKIN_AURA,true);
DoCast(m_creature,SPELL_SPROUTING);
@@ -792,8 +805,11 @@ bool GOHello_go_loosely_turned_soil(Player *plr, GameObject* soil)
{ */
plr->AreaExploredOrEventHappens(11405);
Creature *horseman = soil->SummonCreature(HH_MOUNTED,FlightPoint[20].x,FlightPoint[20].y,FlightPoint[20].z,0,TEMPSUMMON_MANUAL_DESPAWN,0);
+ if(horseman)
+ {
((boss_headless_horsemanAI*)horseman->AI())->playerGUID = plr->GetGUID();
((boss_headless_horsemanAI*)horseman->AI())->FlyMode();
+ }
//}
return true;
}
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp
index a20cd4d8b83..094b61a6c7e 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp
@@ -113,60 +113,80 @@ struct TRINITY_DLL_DECL boss_darkmaster_gandlingAI : public ScriptedAI
case 0:
DoTeleportPlayer(target, 250.0696,0.3921,84.8408,3.149);
Summoned = m_creature->SummonCreature(16119,254.2325,0.3417,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,257.7133,4.0226,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,258.6702,-2.60656,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
break;
case 1:
DoTeleportPlayer(target, 181.4220,-91.9481,84.8410,1.608);
Summoned = m_creature->SummonCreature(16119,184.0519,-73.5649,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,179.5951,-73.7045,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,180.6452,-78.2143,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,283.2274,-78.1518,84.8407,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
break;
case 2:
DoTeleportPlayer(target, 95.1547,-1.8173,85.2289,0.043);
Summoned = m_creature->SummonCreature(16119,100.9404,-1.8016,85.2289,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,101.3729,0.4882,85.2289,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,101.4596,-4.4740,85.2289,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
break;
case 3:
DoTeleportPlayer(target, 250.0696,0.3921,72.6722,3.149);
Summoned = m_creature->SummonCreature(16119,240.34481,0.7368,72.6722,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,240.3633,-2.9520,72.6722,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,240.6702,3.34949,72.6722,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
break;
case 4:
DoTeleportPlayer(target, 181.4220,-91.9481,70.7734,1.608);
Summoned = m_creature->SummonCreature(16119,184.0519,-73.5649,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,179.5951,-73.7045,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,180.6452,-78.2143,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,283.2274,-78.1518,70.7734,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
break;
case 5:
DoTeleportPlayer(target, 106.1541,-1.8994,75.3663,0.043);
Summoned = m_creature->SummonCreature(16119,115.3945,-1.5555,75.3663,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,257.7133,1.8066,75.3663,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
Summoned = m_creature->SummonCreature(16119,258.6702,-5.1001,75.3663,0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,10000);
- ((CreatureAI*)Summoned->AI())->AttackStart(target);
+ if(Summoned)
+ ((CreatureAI*)Summoned->AI())->AttackStart(target);
break;
}
}
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp
index c6ff12be817..c8f7cfcac0a 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp
@@ -122,7 +122,8 @@ struct TRINITY_DLL_DECL boss_jandicebarovAI : public ScriptedAI
for(int i = 0; i < 10;i++)
{
target = SelectUnit(SELECT_TARGET_RANDOM,0);
- SummonIllusions(target);
+ if(target)
+ SummonIllusions(target);
}
Invisible = true;
Invisible_Timer = 3000;
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp
index 355fbd90c9b..b9e0254b8bc 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp
@@ -74,7 +74,8 @@ struct TRINITY_DLL_DECL boss_kormokAI : public ScriptedAI
}
Rand1 = 0;
SummonedMinions = DoSpawnCreature(16119, Rand1X, Rand1Y, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000);
- ((CreatureAI*)SummonedMinions->AI())->AttackStart(victim);
+ if(SummonedMinions)
+ ((CreatureAI*)SummonedMinions->AI())->AttackStart(victim);
}
void SummonMages(Unit* victim)
@@ -94,7 +95,8 @@ struct TRINITY_DLL_DECL boss_kormokAI : public ScriptedAI
}
Rand2 = 0;
SummonedMages = DoSpawnCreature(16120, Rand2X, Rand2Y, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000);
- ((CreatureAI*)SummonedMages->AI())->AttackStart(victim);
+ if(SummonedMages)
+ ((CreatureAI*)SummonedMages->AI())->AttackStart(victim);
}
void UpdateAI(const uint32 diff)
diff --git a/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp b/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp
index 720d5aabb1c..365499a7956 100644
--- a/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp
+++ b/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp
@@ -140,8 +140,10 @@ struct TRINITY_DLL_DECL mob_mature_netherwing_drakeAI : public ScriptedAI
if(Evade)
if(ResetTimer < diff)
+ {
EnterEvadeMode();
- else ResetTimer -= diff;
+ return;
+ }else ResetTimer -= diff;
if(!UpdateVictim())
return;
@@ -695,12 +697,16 @@ struct TRINITY_DLL_DECL npc_overlord_morghorAI : public ScriptedAI
m_creature->SetUInt32Value(UNIT_NPC_FLAGS, 0);
m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0);
Unit* Illidan = m_creature->SummonCreature(C_ILLIDAN, -5107.83, 602.584, 85.2393, 4.92598, TEMPSUMMON_CORPSE_DESPAWN, 0);
- IllidanGUID = Illidan->GetGUID();
- Illidan->SetVisibility(VISIBILITY_OFF);
+ if(Illidan)
+ {
+ IllidanGUID = Illidan->GetGUID();
+ Illidan->SetVisibility(VISIBILITY_OFF);
+ }
if(PlayerGUID)
{
Player* player = Unit::GetPlayer(PlayerGUID);
- DoScriptText(OVERLORD_SAY_1, m_creature, player);
+ if(player)
+ DoScriptText(OVERLORD_SAY_1, m_creature, player);
}
ConversationTimer = 4200;
Step = 0;
diff --git a/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp b/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp
index c2aa57d8c49..3b28c1526ee 100644
--- a/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp
+++ b/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp
@@ -77,6 +77,7 @@ struct TRINITY_DLL_DECL mob_yennikuAI : public ScriptedAI
EnterEvadeMode();
bReset = false;
m_creature->setFaction(28); //troll, bloodscalp
+ return;
}
else Reset_Timer -= diff;
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp
index c8ad95038c0..e50ab2196fb 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp
@@ -177,7 +177,6 @@ CreatureAI* GetAI_boss_baron_rivendare(Creature *_Creature)
return new boss_baron_rivendareAI (_Creature);
}
-
void AddSC_boss_baron_rivendare()
{
Script *newscript;
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp
index c30f712a98b..cef99648d2f 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp
@@ -116,7 +116,6 @@ CreatureAI* GetAI_boss_baroness_anastari(Creature *_Creature)
return new boss_baroness_anastariAI (_Creature);
}
-
void AddSC_boss_baroness_anastari()
{
Script *newscript;
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_cannon_master_willey.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_cannon_master_willey.cpp
index 9fc9194ca4b..ab2aa112a01 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_cannon_master_willey.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_cannon_master_willey.cpp
@@ -210,7 +210,6 @@ CreatureAI* GetAI_boss_cannon_master_willey(Creature *_Creature)
return new boss_cannon_master_willeyAI (_Creature);
}
-
void AddSC_boss_cannon_master_willey()
{
Script *newscript;
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp
index 5d0eda58c37..cae6dbcbcc6 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp
@@ -122,7 +122,6 @@ CreatureAI* GetAI_boss_magistrate_barthilas(Creature *_Creature)
return new boss_magistrate_barthilasAI (_Creature);
}
-
void AddSC_boss_magistrate_barthilas()
{
Script *newscript;
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp
index 652dd48e766..68890d43c1d 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp
@@ -97,7 +97,6 @@ CreatureAI* GetAI_boss_maleki_the_pallid(Creature *_Creature)
return new boss_maleki_the_pallidAI (_Creature);
}
-
void AddSC_boss_maleki_the_pallid()
{
Script *newscript;
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp
index db425ebcca0..68336fca890 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp
@@ -52,7 +52,7 @@ struct TRINITY_DLL_DECL boss_nerubenkanAI : public ScriptedAI
CryptScarabs_Timer = 3000;
EncasingWebs_Timer = 7000;
PierceArmor_Timer = 19000;
- RaiseUndeadScarab_Timer = 3000;
+ RaiseUndeadScarab_Timer = 3000;
}
void Aggro(Unit *who)
@@ -94,9 +94,7 @@ struct TRINITY_DLL_DECL boss_nerubenkanAI : public ScriptedAI
//EncasingWebs
if (EncasingWebs_Timer < diff)
{
-
DoCast(m_creature->getVictim(),SPELL_ENCASINGWEBS);
-
EncasingWebs_Timer = 30000;
}else EncasingWebs_Timer -= diff;
@@ -105,7 +103,6 @@ struct TRINITY_DLL_DECL boss_nerubenkanAI : public ScriptedAI
{
if (rand()%100 < 75)
DoCast(m_creature->getVictim(),SPELL_PIERCEARMOR);
-
PierceArmor_Timer = 35000;
}else PierceArmor_Timer -= diff;
@@ -131,7 +128,6 @@ CreatureAI* GetAI_boss_nerubenkan(Creature *_Creature)
return new boss_nerubenkanAI (_Creature);
}
-
void AddSC_boss_nerubenkan()
{
Script *newscript;
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp
index 86602f40d34..42b9a32ae8b 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp
@@ -145,10 +145,6 @@ CreatureAI* GetAI_boss_silver_hand_bossesAI(Creature *_Creature)
return new boss_silver_hand_bossesAI (_Creature);
}
-/*#####
-#
-#####*/
-
void AddSC_boss_order_of_silver_hand()
{
Script *newscript;
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_postmaster_malown.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_postmaster_malown.cpp
index d6a87d43d8b..8e088dd4126 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_postmaster_malown.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_postmaster_malown.cpp
@@ -133,7 +133,6 @@ CreatureAI* GetAI_boss_postmaster_malown(Creature *_Creature)
return new boss_postmaster_malownAI (_Creature);
}
-
void AddSC_boss_postmaster_malown()
{
Script *newscript;
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp
index 2e16dc883cc..9b7682a522a 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp
@@ -88,7 +88,6 @@ CreatureAI* GetAI_boss_ramstein_the_gorger(Creature *_Creature)
return new boss_ramstein_the_gorgerAI (_Creature);
}
-
void AddSC_boss_ramstein_the_gorger()
{
Script *newscript;
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_timmy_the_cruel.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_timmy_the_cruel.cpp
index f41c5f013b6..0e013642b3a 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_timmy_the_cruel.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_timmy_the_cruel.cpp
@@ -42,11 +42,11 @@ struct TRINITY_DLL_DECL boss_timmy_the_cruelAI : public ScriptedAI
void Aggro(Unit *who)
{
- if (!HasYelled)
- {
- DoYell(SAY_SPAWN,LANG_UNIVERSAL,NULL);
- HasYelled = true;
- }
+ if (!HasYelled)
+ {
+ DoYell(SAY_SPAWN,LANG_UNIVERSAL,NULL);
+ HasYelled = true;
+ }
}
void UpdateAI(const uint32 diff)
@@ -72,7 +72,6 @@ CreatureAI* GetAI_boss_timmy_the_cruel(Creature *_Creature)
return new boss_timmy_the_cruelAI (_Creature);
}
-
void AddSC_boss_timmy_the_cruel()
{
Script *newscript;
diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp
index f408212b129..5dcb5e2abc5 100644
--- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp
+++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp
@@ -262,7 +262,8 @@ struct TRINITY_DLL_DECL boss_sacrolashAI : public ScriptedAI
m_creature->InterruptSpell(CURRENT_GENERIC_SPELL);
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM, 0);
- DoCast(target, SPELL_CONFLAGRATION);
+ if(target)
+ DoCast(target, SPELL_CONFLAGRATION);
ConflagrationTimer = 30000+(rand()%5000);
}
}else ConflagrationTimer -= diff;
@@ -275,11 +276,13 @@ struct TRINITY_DLL_DECL boss_sacrolashAI : public ScriptedAI
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM, 0);
- DoCast(target, SPELL_SHADOW_NOVA);
+ if(target)
+ DoCast(target, SPELL_SHADOW_NOVA);
if(!SisterDeath)
{
- DoScriptText(EMOTE_SHADOW_NOVA, m_creature, target);
+ if(target)
+ DoScriptText(EMOTE_SHADOW_NOVA, m_creature, target);
DoScriptText(YELL_SHADOW_NOVA, m_creature);
}
ShadownovaTimer = 30000+(rand()%5000);
@@ -293,7 +296,8 @@ struct TRINITY_DLL_DECL boss_sacrolashAI : public ScriptedAI
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM, 0);
- DoCast(target, SPELL_CONFOUNDING_BLOW);
+ if(target)
+ DoCast(target, SPELL_CONFOUNDING_BLOW);
ConfoundingblowTimer = 20000 + (rand()%5000);
}
}else ConfoundingblowTimer -=diff;
@@ -306,7 +310,8 @@ struct TRINITY_DLL_DECL boss_sacrolashAI : public ScriptedAI
{
target = SelectUnit(SELECT_TARGET_RANDOM, 0);
temp = DoSpawnCreature(MOB_SHADOW_IMAGE,0,0,0,0,TEMPSUMMON_CORPSE_DESPAWN,10000);
- temp->AI()->AttackStart(target);
+ if(temp && target)
+ temp->AI()->AttackStart(target);
}
ShadowimageTimer = 20000;
}else ShadowimageTimer -=diff;
@@ -595,7 +600,8 @@ struct TRINITY_DLL_DECL boss_alythessAI : public Scripted_NoMovementAI
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM, 0);
- DoCast(target, SPELL_SHADOW_NOVA);
+ if(target)
+ DoCast(target, SPELL_SHADOW_NOVA);
ShadownovaTimer= 30000+(rand()%5000);
}
}else ShadownovaTimer -=diff;
@@ -609,12 +615,14 @@ struct TRINITY_DLL_DECL boss_alythessAI : public Scripted_NoMovementAI
m_creature->InterruptSpell(CURRENT_GENERIC_SPELL);
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM, 0);
- DoCast(target, SPELL_CONFLAGRATION);
+ if(target)
+ DoCast(target, SPELL_CONFLAGRATION);
ConflagrationTimer = 30000+(rand()%5000);
if(!SisterDeath)
{
- DoScriptText(EMOTE_CONFLAGRATION, m_creature, target);
+ if(target)
+ DoScriptText(EMOTE_CONFLAGRATION, m_creature, target);
DoScriptText(YELL_CANFLAGRATION, m_creature);
}
diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp
index 230ba2e9cd3..50770b30dff 100644
--- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp
+++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp
@@ -318,7 +318,12 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
m_creature->CastSpell(Vapor, SPELL_VAPOR_CHANNEL, false); // core bug
Vapor->CastSpell(Vapor, SPELL_VAPOR_TRIGGER, true);
}
- }else EnterEvadeMode();
+ }
+ else
+ {
+ EnterEvadeMode();
+ return;
+ }
Timer[EVENT_FLIGHT_SEQUENCE] = 10000;
break;}
case 3: {
@@ -339,7 +344,12 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
m_creature->CastSpell(Vapor, SPELL_VAPOR_CHANNEL, false); // core bug
Vapor->CastSpell(Vapor, SPELL_VAPOR_TRIGGER, true);
}
- }else EnterEvadeMode();
+ }
+ else
+ {
+ EnterEvadeMode();
+ return;
+ }
Timer[EVENT_FLIGHT_SEQUENCE] = 10000;
break;}
case 4:
@@ -357,7 +367,11 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
float x, y, z;
target->GetContactPoint(m_creature, x, y, z, 70);
m_creature->GetMotionMaster()->MovePoint(0, x, y, z+10);
- }else EnterEvadeMode();
+ }else
+ {
+ EnterEvadeMode();
+ return;
+ }
Timer[EVENT_FLIGHT_SEQUENCE] = 0;
break;}
case 6:
@@ -391,7 +405,12 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
float x, y, z;
target->GetContactPoint(m_creature, x, y, z);
m_creature->GetMotionMaster()->MovePoint(0, x, y, z);
- }else EnterEvadeMode();
+ }
+ else
+ {
+ EnterEvadeMode();
+ return;
+ }
Timer[EVENT_FLIGHT_SEQUENCE] = 0;
break;
case 10:
diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp
index e39f7e02bd7..fca9b0c19e3 100644
--- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp
+++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp
@@ -396,6 +396,7 @@ struct TRINITY_DLL_DECL boss_sathrovarrAI : public ScriptedAI
{
DoTextEmote("is unable to find Kalecgos", NULL);
EnterEvadeMode();
+ return;
}
}
CheckTimer = 1000;
@@ -594,6 +595,7 @@ void boss_kalecgosAI::UpdateAI(const uint32 diff)
{
error_log("TSCR: Didn't find Shathrowar. Kalecgos event reseted.");
EnterEvadeMode();
+ return;
}
}
CheckTimer = 1000;
@@ -627,7 +629,7 @@ void boss_kalecgosAI::UpdateAI(const uint32 diff)
{
//this is a hack. we need to find a victim without aura in core
Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0);
- if( ( target != m_creature->getVictim() ) && target->isAlive() && !(target->HasAura(AURA_SPECTRAL_EXHAUSTION, 0)) )
+ if( ( target && target != m_creature->getVictim() ) && target->isAlive() && !(target->HasAura(AURA_SPECTRAL_EXHAUSTION, 0)) )
{
DoCast(target, SPELL_SPECTRAL_BLAST);
SpectralBlastTimer = 20000+(rand()%5000);
diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kiljaeden.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kiljaeden.cpp
index 2ac90b87c35..29248b5e786 100644
--- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kiljaeden.cpp
+++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kiljaeden.cpp
@@ -545,7 +545,8 @@ struct TRINITY_DLL_DECL boss_kiljaedenAI : public Scripted_NoMovementAI
}
target->GetPosition(x,y,z);
Creature* SinisterReflection = m_creature->SummonCreature(CREATURE_SINISTER_REFLECTION, x,y,z,0, TEMPSUMMON_CORPSE_DESPAWN, 0);
- SinisterReflection->AI()->AttackStart(target);
+ if(SinisterReflection)
+ SinisterReflection->AI()->AttackStart(target);
}
}
diff --git a/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp b/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp
index 45d9eba60d5..8e1a9967bb8 100644
--- a/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp
+++ b/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp
@@ -407,7 +407,7 @@ struct TRINITY_DLL_DECL npc_OOX17AI : public npc_escortAI
DoScriptText(SAY_CHICKEN_AMB, m_creature);
{Unit* scoff = FindCreature(SPAWN_SECOND_2, 30, m_creature);
if(scoff)
- DoScriptText(SAY_SCOFF, scoff);}break;
+ DoScriptText(SAY_SCOFF, scoff);}break;
break;
case 86:
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp
index 813222b52c9..52c2433ae43 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp
@@ -276,8 +276,12 @@ struct TRINITY_DLL_DECL boss_alarAI : public ScriptedAI
m_creature->Relocate(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ());
m_creature->StopMoving();
WaitEvent = WE_LAND;
- }else EnterEvadeMode();
- return;
+ }
+ else
+ {
+ EnterEvadeMode();
+ return;
+ }
case WE_LAND:
WaitEvent = WE_SUMMON;
WaitTimer = 2000;
@@ -349,7 +353,8 @@ struct TRINITY_DLL_DECL boss_alarAI : public ScriptedAI
if(Charge_Timer < diff)
{
Unit *target= SelectUnit(SELECT_TARGET_RANDOM, 1, GetSpellMaxRange(SPELL_CHARGE), true);
- DoCast(target, SPELL_CHARGE);
+ if(target)
+ DoCast(target, SPELL_CHARGE);
Charge_Timer = 30000;
}else Charge_Timer -= diff;
@@ -405,7 +410,7 @@ struct TRINITY_DLL_DECL boss_alarAI : public ScriptedAI
else
{
Unit *target = NULL;
- if(Phase1 && (target = m_creature->SelectNearestTarget(5)))
+ if(Phase1 && target && (target = m_creature->SelectNearestTarget(5)))
m_creature->AI()->AttackStart(target);
else
{
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp
index bc215f8c683..4e2320d1d90 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp
@@ -233,38 +233,38 @@ struct TRINITY_DLL_DECL boss_high_astromancer_solarianAI : public ScriptedAI
Wrath_Timer = 20000+rand()%5000;
}else Wrath_Timer -= diff;
- if (ArcaneMissiles_Timer < diff)
- {
- if(BlindingLight)
- {
- DoCast(m_creature->getVictim(), SPELL_BLINDING_LIGHT);
- BlindingLight = false;
- }else{
- Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0);
-
- if(!m_creature->HasInArc(2.5f, target))
- target = m_creature->getVictim();
+ if (ArcaneMissiles_Timer < diff)
+ {
+ if(BlindingLight)
+ {
+ DoCast(m_creature->getVictim(), SPELL_BLINDING_LIGHT);
+ BlindingLight = false;
+ }else{
+ Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0);
+
+ if(!m_creature->HasInArc(2.5f, target))
+ target = m_creature->getVictim();
+
+ if(target)
+ DoCast(target, SPELL_ARCANE_MISSILES);
+ }
+ ArcaneMissiles_Timer = 3000;
+ }else ArcaneMissiles_Timer -= diff;
+ if (MarkOfTheSolarian_Timer < diff)
+ {
+ DoCast(m_creature->getVictim(), MARK_OF_SOLARIAN);
+ MarkOfTheSolarian_Timer = 45000;
+ }else MarkOfTheSolarian_Timer -= diff;
+
+ if (MarkOfTheAstromancer_Timer < diff) //A debuff that lasts for 5 seconds, cast several times each phase on a random raid member, but not the main tank
+ {
+ Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 1, 100, true);
if(target)
- DoCast(target, SPELL_ARCANE_MISSILES);
- }
- ArcaneMissiles_Timer = 3000;
- }else ArcaneMissiles_Timer -= diff;
-
- if (MarkOfTheSolarian_Timer < diff)
- {
- DoCast(m_creature->getVictim(), MARK_OF_SOLARIAN);
- MarkOfTheSolarian_Timer = 45000;
- }else MarkOfTheSolarian_Timer -= diff;
-
- if (MarkOfTheAstromancer_Timer < diff) //A debuff that lasts for 5 seconds, cast several times each phase on a random raid member, but not the main tank
- {
- Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 1, 100, true);
- if(target)
- DoCast(target, SPELL_MARK_OF_THE_ASTROMANCER);
- else DoCast(m_creature->getVictim(), SPELL_MARK_OF_THE_ASTROMANCER);
- MarkOfTheAstromancer_Timer = 15000;
- }else MarkOfTheAstromancer_Timer -= diff;
+ DoCast(target, SPELL_MARK_OF_THE_ASTROMANCER);
+ else DoCast(m_creature->getVictim(), SPELL_MARK_OF_THE_ASTROMANCER);
+ MarkOfTheAstromancer_Timer = 15000;
+ }else MarkOfTheAstromancer_Timer -= diff;
//Phase1_Timer
if (Phase1_Timer < diff)
@@ -383,6 +383,7 @@ struct TRINITY_DLL_DECL boss_high_astromancer_solarianAI : public ScriptedAI
m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID, MODEL_VOIDWALKER);
m_creature->SetFloatValue(OBJECT_FIELD_SCALE_X, defaultsize*2.5f);
}
+
DoMeleeAttackIfReady();
}
};
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp
index f4e80001cf7..1a2fcaea1a2 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp
@@ -258,6 +258,8 @@ struct TRINITY_DLL_DECL advisorbase_ai : public ScriptedAI
if (!Target)
Target = m_creature->getVictim();
DoResetThreat();
+ if(!Target)
+ return;
AttackStart(Target);
m_creature->GetMotionMaster()->Clear();
m_creature->GetMotionMaster()->MoveChase(Target);
@@ -325,7 +327,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
i_pl->DestroyItemCount(30318, 1, true);
i_pl->DestroyItemCount(30319, 1, true);
i_pl->DestroyItemCount(30320, 1, true);
- }
+ }
}
void Reset()
@@ -436,7 +438,8 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
{
summoned->setFaction(m_creature->getFaction());
Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0);
- summoned->AI()->AttackStart(target);
+ if(target)
+ summoned->AI()->AttackStart(target);
}
summons.Summon(summoned);
}
@@ -498,12 +501,12 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
void UpdateAI(const uint32 diff)
{
-
+
if(pInstance && Phase)
{
if(pInstance->GetData(DATA_KAELTHASEVENT) == IN_PROGRESS && m_creature->getThreatManager().getThreatList().empty())
{
- EnterEvadeMode();
+ EnterEvadeMode();
return;
}
}
@@ -730,7 +733,8 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
Advisor = (Creature*)(Unit::GetUnit((*m_creature), AdvisorGuid[i]));
if (!Advisor)
error_log("TSCR: Kael'Thas Advisor %u does not exist. Possibly despawned? Incorrectly Killed?", i);
- else ((advisorbase_ai*)Advisor->AI())->Revive(Target);
+ else if(Target)
+ ((advisorbase_ai*)Advisor->AI())->Revive(Target);
}
PhaseSubphase = 1;
@@ -815,7 +819,8 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
Unit* target =SelectUnit(SELECT_TARGET_RANDOM, 1, 70, true);
if(!target) target = m_creature->getVictim();
debug_log("TSCR: Kael'Thas mind control not supported.");
- DoCast(target, SPELL_MIND_CONTROL);
+ if(target)
+ DoCast(target, SPELL_MIND_CONTROL);
}
MindControl_Timer = 60000;
@@ -1078,8 +1083,11 @@ struct TRINITY_DLL_DECL boss_thaladred_the_darkenerAI : public advisorbase_ai
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0, 100, true))
{
DoResetThreat();
- m_creature->AddThreat(target, 5000000.0f);
- DoScriptText(EMOTE_THALADRED_GAZE, m_creature, target);
+ if(target)
+ {
+ m_creature->AddThreat(target, 5000000.0f);
+ DoScriptText(EMOTE_THALADRED_GAZE, m_creature, target);
+ }
Gaze_Timer = 8500;
}
}else Gaze_Timer -= diff;
@@ -1398,7 +1406,7 @@ struct TRINITY_DLL_DECL mob_kael_flamestrikeAI : public ScriptedAI
//Phoenix AI
struct TRINITY_DLL_DECL mob_phoenix_tkAI : public ScriptedAI
{
- mob_phoenix_tkAI(Creature *c) : ScriptedAI(c)
+ mob_phoenix_tkAI(Creature *c) : ScriptedAI(c)
{
pInstance = ((ScriptedInstance*)c->GetInstanceData());
}
@@ -1408,7 +1416,7 @@ struct TRINITY_DLL_DECL mob_phoenix_tkAI : public ScriptedAI
bool egg;
void JustDied(Unit *victim)
- {
+ {
if(egg)
{
float x,y,z;
@@ -1438,7 +1446,7 @@ struct TRINITY_DLL_DECL mob_phoenix_tkAI : public ScriptedAI
}
void UpdateAI(const uint32 diff)
- {
+ {
if (Cycle_Timer < diff)
{
if(pInstance)//check for boss reset
@@ -1447,7 +1455,7 @@ struct TRINITY_DLL_DECL mob_phoenix_tkAI : public ScriptedAI
if (Kael && Kael->getThreatManager().getThreatList().empty())
{
egg = false;
- m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
+ m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
Cycle_Timer = 2000;
return;
}
@@ -1460,7 +1468,7 @@ struct TRINITY_DLL_DECL mob_phoenix_tkAI : public ScriptedAI
m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
Cycle_Timer = 2000;
}else Cycle_Timer -= diff;
-
+
if (!UpdateVictim())
return;
DoMeleeAttackIfReady();
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp
index b3eddfa7ebe..14bf854b6df 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp
@@ -100,7 +100,6 @@ struct TRINITY_DLL_DECL boss_nethermancer_sepethreaAI : public ScriptedAI
void UpdateAI(const uint32 diff)
{
-
//Return since we have no target
if (!UpdateVictim() )
return;
@@ -151,7 +150,6 @@ struct TRINITY_DLL_DECL boss_nethermancer_sepethreaAI : public ScriptedAI
}else solarburn_Timer -= diff;
DoMeleeAttackIfReady();
-
}
};
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp
index 338e115ef85..073054c3b90 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp
@@ -216,7 +216,6 @@ struct TRINITY_DLL_DECL mob_nether_wraithAI : public ScriptedAI
DoCast(m_creature,SPELL_DETONATION);
Detonation = true;
}else Detonation_Timer -= diff;
-
}
if (Detonation)
@@ -228,7 +227,6 @@ struct TRINITY_DLL_DECL mob_nether_wraithAI : public ScriptedAI
}else Die_Timer -= diff;
}
-
DoMeleeAttackIfReady();
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp
index 05866eb27fb..a3b4661389e 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp
@@ -56,7 +56,7 @@ struct TRINITY_DLL_DECL instance_mechanar : public ScriptedInstance
{
switch(type)
{
- case DATA_NETHERMANCER_EVENT: return Encounters[0];
+ case DATA_NETHERMANCER_EVENT: return Encounters[0];
}
return false;
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp
index dc1e4df24ca..7c04dc5e0d0 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp
@@ -239,7 +239,7 @@ struct TRINITY_DLL_DECL boss_yaujAI : public ScriptedAI
{
Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0);
Creature* Summoned = m_creature->SummonCreature(15621,m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(),0,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,90000);
- if(Summoned)
+ if(Summoned && target)
((CreatureAI*)Summoned->AI())->AttackStart(target);
}
}
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp
index 0888c395489..b560f174bc4 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp
@@ -58,6 +58,9 @@ struct TRINITY_DLL_DECL boss_fankrissAI : public ScriptedAI
void SummonSpawn(Unit* victim)
{
+ if(!victim)
+ return;
+
Rand = 10 + (rand()%10);
switch (rand()%2)
{
@@ -135,35 +138,47 @@ struct TRINITY_DLL_DECL boss_fankrissAI : public ScriptedAI
case 0:
DoTeleportPlayer(target, -8106.0142,1289.2900,-74.419533,5.112);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()-3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ if(Hatchling)
+ ((CreatureAI*)Hatchling->AI())->AttackStart(target);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()+3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ if(Hatchling)
+ ((CreatureAI*)Hatchling->AI())->AttackStart(target);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()-5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ if(Hatchling)
+ ((CreatureAI*)Hatchling->AI())->AttackStart(target);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()+5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ if(Hatchling)
+ ((CreatureAI*)Hatchling->AI())->AttackStart(target);
break;
case 1:
DoTeleportPlayer(target, -7990.135354,1155.1907,-78.849319,2.608);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()-3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ if(Hatchling)
+ ((CreatureAI*)Hatchling->AI())->AttackStart(target);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()+3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ if(Hatchling)
+ ((CreatureAI*)Hatchling->AI())->AttackStart(target);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()-5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ if(Hatchling)
+ ((CreatureAI*)Hatchling->AI())->AttackStart(target);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()+5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ if(Hatchling)
+ ((CreatureAI*)Hatchling->AI())->AttackStart(target);
break;
case 2:
DoTeleportPlayer(target,-8159.7753,1127.9064,-76.868660,0.675);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()-3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ if(Hatchling)
+ ((CreatureAI*)Hatchling->AI())->AttackStart(target);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-3, target->GetPositionY()+3, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ if(Hatchling)
+ ((CreatureAI*)Hatchling->AI())->AttackStart(target);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()-5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ if(Hatchling)
+ ((CreatureAI*)Hatchling->AI())->AttackStart(target);
Hatchling = m_creature->SummonCreature(15962, target->GetPositionX()-5, target->GetPositionY()+5, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- ((CreatureAI*)Hatchling->AI())->AttackStart(target);
+ if(Hatchling)
+ ((CreatureAI*)Hatchling->AI())->AttackStart(target);
break;
}
}
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_ouro.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_ouro.cpp
index 7f5827d398b..4193c7a666f 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_ouro.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_ouro.cpp
@@ -103,7 +103,8 @@ struct TRINITY_DLL_DECL boss_ouroAI : public ScriptedAI
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM,0);
- DoTeleportTo(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ());
+ if(target)
+ DoTeleportTo(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ());
ChangeTarget_Timer = 10000 + rand()%10000;
}else ChangeTarget_Timer -= diff;
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_sartura.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_sartura.cpp
index a9b0578279d..e1e88101fdd 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_sartura.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_sartura.cpp
@@ -161,7 +161,6 @@ struct TRINITY_DLL_DECL boss_sarturaAI : public ScriptedAI
}
};
-
struct TRINITY_DLL_DECL mob_sartura_royal_guardAI : public ScriptedAI
{
mob_sartura_royal_guardAI(Creature *c) : ScriptedAI(c) {}
@@ -187,7 +186,6 @@ struct TRINITY_DLL_DECL mob_sartura_royal_guardAI : public ScriptedAI
WhirlWind = false;
AggroReset = false;
-
}
void Aggro(Unit *who)
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp
index 84311d725f5..bbf7df27f78 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp
@@ -274,16 +274,20 @@ struct TRINITY_DLL_DECL boss_skeramAI : public ScriptedAI
Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0);
Image1 = m_creature->SummonCreature(15263, i1->x, i1->y, i1->z, i1->r, TEMPSUMMON_CORPSE_DESPAWN, 30000);
+ if(!Image1)
+ return;
Image1->SetMaxHealth(m_creature->GetMaxHealth() / 5);
Image1->SetHealth(m_creature->GetHealth() / 5);
if (target)
- Image1->AI()->AttackStart(target);
+ Image1->AI()->AttackStart(target);
Image2 = m_creature->SummonCreature(15263,i2->x, i2->y, i2->z, i2->r, TEMPSUMMON_CORPSE_DESPAWN, 30000);
+ if(!Image2)
+ return;
Image2->SetMaxHealth(m_creature->GetMaxHealth() / 5);
Image2->SetHealth(m_creature->GetHealth() / 5);
if (target)
- Image2->AI()->AttackStart(target);
+ Image2->AI()->AttackStart(target);
((boss_skeramAI*)Image1->AI())->IsImage = true;
((boss_skeramAI*)Image2->AI())->IsImage = true;
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp
index c707ad23cee..2a658449b97 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp
@@ -266,8 +266,11 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI
m_creature->clearUnitState(UNIT_STAT_STUNNED);
Unit *nearu = m_creature->SelectNearestTarget(100);
//DoYell(nearu->GetName(), LANG_UNIVERSAL, 0);
- AttackStart(nearu);
- m_creature->getThreatManager().addThreat(nearu, 10000);
+ if(nearu)
+ {
+ AttackStart(nearu);
+ m_creature->getThreatManager().addThreat(nearu, 10000);
+ }
return true;
}
else
@@ -346,7 +349,7 @@ struct TRINITY_DLL_DECL boss_twinemperorsAI : public ScriptedAI
for(std::list<Creature*>::iterator iter = unitList.begin(); iter != unitList.end(); ++iter)
{
Creature *c = (Creature *)(*iter);
- if (c->isDead())
+ if (c && c->isDead())
{
c->Respawn();
c->setFaction(7);
diff --git a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp
index 9e7e809ba66..7146b33de7d 100644
--- a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp
+++ b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp
@@ -120,6 +120,7 @@ struct TRINITY_DLL_DECL mob_unkor_the_ruthlessAI : public ScriptedAI
if( UnkorUnfriendly_Timer < diff )
{
EnterEvadeMode();
+ return;
}else UnkorUnfriendly_Timer -= diff;
}
}
diff --git a/src/bindings/scripts/scripts/zone/uldaman/boss_archaedas.cpp b/src/bindings/scripts/scripts/zone/uldaman/boss_archaedas.cpp
index adf88585a39..1536728365e 100644
--- a/src/bindings/scripts/scripts/zone/uldaman/boss_archaedas.cpp
+++ b/src/bindings/scripts/scripts/zone/uldaman/boss_archaedas.cpp
@@ -120,6 +120,8 @@ struct TRINITY_DLL_DECL boss_archaedasAI : public ScriptedAI
void UpdateAI(const uint32 diff)
{
+ if(!pInstance)
+ return;
// we're still doing awaken animation
if (wakingUp && Awaken_Timer >= 0) {
Awaken_Timer -= diff;
@@ -180,8 +182,11 @@ struct TRINITY_DLL_DECL boss_archaedasAI : public ScriptedAI
}
void JustDied (Unit *killer) {
- pInstance->SetData(NULL,3); // open the vault door
- pInstance->SetData(NULL,4); // deactivate his minions
+ if(pInstance)
+ {
+ pInstance->SetData(NULL,3); // open the vault door
+ pInstance->SetData(NULL,4); // deactivate his minions
+ }
}
};
@@ -389,7 +394,8 @@ struct TRINITY_DLL_DECL mob_stonekeepersAI : public ScriptedAI
void DamageTaken (Unit *attacker, uint32 &damage) {
if (damage > m_creature->GetHealth()) {
DoCast (m_creature, SPELL_SELF_DESTRUCT,true);
- pInstance->SetData(NULL, 1); // activate next stonekeeper
+ if(pInstance)
+ pInstance->SetData(NULL, 1); // activate next stonekeeper
}
}
diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp
index 8792a988c6f..375c8758bb0 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp
@@ -189,7 +189,10 @@ struct TRINITY_DLL_DECL boss_hexlord_addAI : public ScriptedAI
void UpdateAI(const uint32 diff)
{
if(pInstance && pInstance->GetData(DATA_HEXLORDEVENT) != IN_PROGRESS)
+ {
EnterEvadeMode();
+ return;
+ }
DoMeleeAttackIfReady();
}
@@ -383,7 +386,11 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI
{
Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0, 70, true);
Unit *trigger = DoSpawnCreature(MOB_TEMP_TRIGGER, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 30000);
- if(!target || !trigger) EnterEvadeMode();
+ if(!target || !trigger)
+ {
+ EnterEvadeMode();
+ return;
+ }
else
{
trigger->SetUInt32Value(UNIT_FIELD_DISPLAYID, 11686);
diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp
index c70bd007c58..05b92144a89 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp
@@ -397,7 +397,7 @@ struct TRINITY_DLL_DECL boss_janalaiAI : public ScriptedAI
m_creature->AttackStop();
m_creature->GetMotionMaster()->Clear();
- DoTeleportTo(JanalainPos[0][0],JanalainPos[0][1],JanalainPos[0][2]);
+ DoTeleportTo(JanalainPos[0][0],JanalainPos[0][1],JanalainPos[0][2]);
m_creature->StopMoving();
m_creature->CastSpell(m_creature, SPELL_HATCH_ALL, false);
HatchAllEggs(2);
diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp
index 75d08661834..d8a909f605a 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp
@@ -407,7 +407,8 @@ struct TRINITY_DLL_DECL boss_nalorakkAI : public ScriptedAI
DoYell(YELL_SURGE, LANG_UNIVERSAL, NULL);
DoPlaySoundToSet(m_creature, SOUND_YELL_SURGE);
Unit *target = SelectUnit(SELECT_TARGET_RANDOM, 1, GetSpellMaxRange(SPELL_SURGE), true);
- DoCast(target, SPELL_SURGE);
+ if(target)
+ DoCast(target, SPELL_SURGE);
Surge_Timer = 15000 + rand()%5000;
}else Surge_Timer -= diff;
}
diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp
index cf319c8f063..6cdd5316fec 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp
@@ -487,7 +487,12 @@ struct TRINITY_DLL_DECL boss_zuljinAI : public ScriptedAI
else
Claw_Loop_Timer = 500;
}
- }else EnterEvadeMode(); // if(target)
+ }
+ else
+ {
+ EnterEvadeMode(); // if(target)
+ return;
+ }
}else Claw_Loop_Timer -= diff;
} //if(TankGUID)
}else Claw_Rage_Timer -= diff;
@@ -529,7 +534,12 @@ struct TRINITY_DLL_DECL boss_zuljinAI : public ScriptedAI
else
AttackStart(SelectUnit(SELECT_TARGET_RANDOM, 0));
}
- }else EnterEvadeMode(); // if(target)
+ }
+ else
+ {
+ EnterEvadeMode(); // if(target)
+ return;
+ }
} //if(TankGUID)
}else Lynx_Rush_Timer -= diff;
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp
index a472fff2076..3d90fad3b63 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp
@@ -125,13 +125,13 @@ struct TRINITY_DLL_DECL boss_arlokkAI : public ScriptedAI
{
DoScriptText(SAY_FEAST_PANTHER, m_creature, markedTarget);
Panther ->AI()->AttackStart(markedTarget);
- }else Panther ->AI()->AttackStart(target);
+ }else if(Panther && target) Panther ->AI()->AttackStart(target);
Panther = m_creature->SummonCreature(15101,-11532.9970,-1606.4840,41.2979,0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
if(markedTarget && Panther )
Panther ->AI()->AttackStart(markedTarget);
- else
+ else if(Panther && target)
Panther ->AI()->AttackStart(target);
Counter++;
@@ -164,7 +164,8 @@ struct TRINITY_DLL_DECL boss_arlokkAI : public ScriptedAI
m_creature->SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, (cinfo->mindmg +((cinfo->mindmg/100) * 35)));
m_creature->SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, (cinfo->maxdmg +((cinfo->maxdmg/100) * 35)));
m_creature->UpdateDamagePhysical(BASE_ATTACK);
- AttackStart(target);
+ if(target)
+ AttackStart(target);
//The Panther Model
m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID,15215);
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp
index efe847045d5..ca47d766676 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp
@@ -75,8 +75,12 @@ struct TRINITY_DLL_DECL boss_hazzarahAI : public ScriptedAI
for(int i = 0; i < 3;i++)
{
target = SelectUnit(SELECT_TARGET_RANDOM,0);
+ if(!target)
+ return;
+
Illusion = m_creature->SummonCreature(15163,target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),0,TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN,30000);
- ((CreatureAI*)Illusion->AI())->AttackStart(target);
+ if(Illusion)
+ ((CreatureAI*)Illusion->AI())->AttackStart(target);
}
Illusions_Timer = 15000 + rand()%10000;
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp
index aecc2f450db..7e29787cc5b 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp
@@ -184,13 +184,12 @@ struct TRINITY_DLL_DECL boss_jeklikAI : public ScriptedAI
if(SpawnFlyingBats_Timer < diff)
{
Unit *target = SelectUnit(SELECT_TARGET_RANDOM, 0);
+ if(!target)
+ return;
Creature* FlyingBat = m_creature->SummonCreature(14965, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ()+15, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
if(FlyingBat)
- {
- if(target)
- FlyingBat->AI()->AttackStart(target);
- }
+ FlyingBat->AI()->AttackStart(target);
SpawnFlyingBats_Timer = 10000 + rand()%5000;
}else SpawnFlyingBats_Timer -=diff;
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp
index 100d8881127..1f9486ed625 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp
@@ -108,10 +108,11 @@ struct TRINITY_DLL_DECL boss_jindoAI : public ScriptedAI
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
{
- DoCast(target, SPELL_DELUSIONSOFJINDO);
+ DoCast(target, SPELL_DELUSIONSOFJINDO);
- Shade = m_creature->SummonCreature(14986, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- Shade->AI()->AttackStart(target);
+ Shade = m_creature->SummonCreature(14986, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
+ if(Shade)
+ Shade->AI()->AttackStart(target);
}
Delusions_Timer = 4000 + rand()%8000;
@@ -130,23 +131,32 @@ struct TRINITY_DLL_DECL boss_jindoAI : public ScriptedAI
DoModifyThreatPercent(target,-100);
Skeletons = m_creature->SummonCreature(14826, target->GetPositionX()+2, target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- Skeletons->AI()->AttackStart(target);
+ if(Skeletons)
+ Skeletons->AI()->AttackStart(target);
Skeletons = m_creature->SummonCreature(14826, target->GetPositionX()-2, target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- Skeletons->AI()->AttackStart(target);
+ if(Skeletons)
+ Skeletons->AI()->AttackStart(target);
Skeletons = m_creature->SummonCreature(14826, target->GetPositionX()+4, target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- Skeletons->AI()->AttackStart(target);
+ if(Skeletons)
+ Skeletons->AI()->AttackStart(target);
Skeletons = m_creature->SummonCreature(14826, target->GetPositionX()-4, target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- Skeletons->AI()->AttackStart(target);
+ if(Skeletons)
+ Skeletons->AI()->AttackStart(target);
Skeletons = m_creature->SummonCreature(14826, target->GetPositionX(), target->GetPositionY()+2, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- Skeletons->AI()->AttackStart(target);
+ if(Skeletons)
+ Skeletons->AI()->AttackStart(target);
Skeletons = m_creature->SummonCreature(14826, target->GetPositionX(), target->GetPositionY()-2, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- Skeletons->AI()->AttackStart(target);
+ if(Skeletons)
+ Skeletons->AI()->AttackStart(target);
Skeletons = m_creature->SummonCreature(14826, target->GetPositionX(), target->GetPositionY()+4, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- Skeletons->AI()->AttackStart(target);
+ if(Skeletons)
+ Skeletons->AI()->AttackStart(target);
Skeletons = m_creature->SummonCreature(14826, target->GetPositionX(), target->GetPositionY()-4, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- Skeletons->AI()->AttackStart(target);
+ if(Skeletons)
+ Skeletons->AI()->AttackStart(target);
Skeletons = m_creature->SummonCreature(14826, target->GetPositionX()+3, target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- Skeletons->AI()->AttackStart(target);
+ if(Skeletons)
+ Skeletons->AI()->AttackStart(target);
}
Teleport_Timer = 15000 + rand()%8000;
@@ -185,7 +195,8 @@ struct TRINITY_DLL_DECL mob_healing_wardAI : public ScriptedAI
if(pInstance)
{
Unit *pJindo = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_JINDO));
- DoCast(pJindo, SPELL_HEAL);
+ if(pJindo)
+ DoCast(pJindo, SPELL_HEAL);
}
Heal_Timer = 3000;
}else Heal_Timer -= diff;
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp
index 69588bdfbb8..83db48e0a54 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp
@@ -112,15 +112,21 @@ struct TRINITY_DLL_DECL boss_marliAI : public ScriptedAI
DoScriptText(SAY_SPIDER_SPAWN, m_creature);
Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0);
+ if(!target)
+ return;
Spider = m_creature->SummonCreature(15041,target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if(target && Spider ) Spider ->AI()->AttackStart(target);
+ if(Spider)
+ Spider->AI()->AttackStart(target);
Spider = m_creature->SummonCreature(15041,target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if(target && Spider ) Spider ->AI()->AttackStart(target);
+ if(Spider)
+ Spider->AI()->AttackStart(target);
Spider = m_creature->SummonCreature(15041,target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if(target && Spider ) Spider ->AI()->AttackStart(target);
+ if(Spider)
+ Spider->AI()->AttackStart(target);
Spider = m_creature->SummonCreature(15041,target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if(target && Spider ) Spider ->AI()->AttackStart(target);
+ if(Spider)
+ Spider->AI()->AttackStart(target);
Spawned = true;
}else SpawnStartSpiders_Timer -= diff;
@@ -128,10 +134,12 @@ struct TRINITY_DLL_DECL boss_marliAI : public ScriptedAI
if (SpawnSpider_Timer < diff)
{
Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0);
+ if(!target)
+ return;
Spider = m_creature->SummonCreature(15041,target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000);
- if (target && Spider )
- Spider ->AI()->AttackStart(target);
+ if(Spider)
+ Spider->AI()->AttackStart(target);
SpawnSpider_Timer = 12000 + rand()%5000;
}else SpawnSpider_Timer -= diff;
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp
index 36e9fd9c84d..6fbdebc40d5 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp
@@ -118,20 +118,26 @@ struct TRINITY_DLL_DECL boss_thekalAI : public ScriptedAI
{
//Resurrect LorKhan
Unit *pLorKhan = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_LORKHAN));
- pLorKhan->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
- pLorKhan->setFaction(14);
- pLorKhan->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- pLorKhan->SetHealth(int(pLorKhan->GetMaxHealth()*1.0));
+ if(pLorKhan)
+ {
+ pLorKhan->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
+ pLorKhan->setFaction(14);
+ pLorKhan->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ pLorKhan->SetHealth(int(pLorKhan->GetMaxHealth()*1.0));
+ }
}
if(pInstance->GetData(DATA_ZATHISDEAD))
{
//Resurrect Zath
Unit *pZath = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_ZATH));
- pZath->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
- pZath->setFaction(14);
- pZath->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- pZath->SetHealth(int(pZath->GetMaxHealth()*1.0));
+ if(pZath)
+ {
+ pZath->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
+ pZath->setFaction(14);
+ pZath->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ pZath->SetHealth(int(pZath->GetMaxHealth()*1.0));
+ }
}
}
@@ -192,9 +198,9 @@ struct TRINITY_DLL_DECL boss_thekalAI : public ScriptedAI
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
{
- DoCast(target,SPELL_CHARGE);
- DoResetThreat();
- AttackStart(target);
+ DoCast(target,SPELL_CHARGE);
+ DoResetThreat();
+ AttackStart(target);
}
Charge_Timer = 15000 + rand()%7000;
@@ -296,6 +302,9 @@ struct TRINITY_DLL_DECL mob_zealot_lorkhanAI : public ScriptedAI
Unit *pThekal = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_THEKAL));
Unit *pZath = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_ZATH));
+ if(!pThekal || !pZath)
+ return;
+
switch(rand()%2)
{
case 0:
@@ -328,20 +337,26 @@ struct TRINITY_DLL_DECL mob_zealot_lorkhanAI : public ScriptedAI
{
//Resurrect Thekal
Unit *pThekal = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_THEKAL));
- pThekal->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
- pThekal->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- pThekal->setFaction(14);
- pThekal->SetHealth(int(pThekal->GetMaxHealth()*1.0));
+ if(pThekal)
+ {
+ pThekal->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
+ pThekal->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ pThekal->setFaction(14);
+ pThekal->SetHealth(int(pThekal->GetMaxHealth()*1.0));
+ }
}
if(pInstance->GetData(DATA_ZATHISDEAD))
{
//Resurrect Zath
Unit *pZath = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_ZATH));
- pZath->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
- pZath->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- pZath->setFaction(14);
- pZath->SetHealth(int(pZath->GetMaxHealth()*1.0));
+ if(pZath)
+ {
+ pZath->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
+ pZath->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ pZath->setFaction(14);
+ pZath->SetHealth(int(pZath->GetMaxHealth()*1.0));
+ }
}
}
@@ -459,20 +474,26 @@ struct TRINITY_DLL_DECL mob_zealot_zathAI : public ScriptedAI
{
//Resurrect LorKhan
Unit *pLorKhan = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_LORKHAN));
- pLorKhan->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
- pLorKhan->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- pLorKhan->setFaction(14);
- pLorKhan->SetHealth(int(pLorKhan->GetMaxHealth()*1.0));
+ if(pLorKhan)
+ {
+ pLorKhan->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
+ pLorKhan->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ pLorKhan->setFaction(14);
+ pLorKhan->SetHealth(int(pLorKhan->GetMaxHealth()*1.0));
+ }
}
if(pInstance->GetData(DATA_THEKALISFAKEDEAD))
{
//Resurrect Thekal
Unit *pThekal = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_THEKAL));
- pThekal->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
- pThekal->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- pThekal->setFaction(14);
- pThekal->SetHealth(int(pThekal->GetMaxHealth()*1.0));
+ if(pThekal)
+ {
+ pThekal->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
+ pThekal->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ pThekal->setFaction(14);
+ pThekal->SetHealth(int(pThekal->GetMaxHealth()*1.0));
+ }
}
}
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp
index 29c79a28187..5bed9f80ddd 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp
@@ -134,7 +134,7 @@ struct TRINITY_DLL_DECL boss_venoxisAI : public ScriptedAI
if (HolyFire_Timer < diff && TargetInRange < 3)
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
- DoCast(target, SPELL_HOLY_FIRE);
+ DoCast(target, SPELL_HOLY_FIRE);
HolyFire_Timer = 8000;
}else HolyFire_Timer -= diff;
@@ -164,7 +164,7 @@ struct TRINITY_DLL_DECL boss_venoxisAI : public ScriptedAI
if (PhaseTwo && VenomSpit_Timer < diff)
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
- DoCast(target, SPELL_VENOMSPIT);
+ DoCast(target, SPELL_VENOMSPIT);
VenomSpit_Timer = 15000 + rand()%5000;
}else VenomSpit_Timer -= diff;