*Cleanup.
--HG-- branch : trunk
This commit is contained in:
@@ -210,12 +210,7 @@ struct TRINITY_DLL_DECL boss_moroesAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
Temp = Creature::GetCreature((*m_creature),AddGUID[i]);
|
Temp = Creature::GetCreature((*m_creature),AddGUID[i]);
|
||||||
if (Temp && Temp->isAlive())
|
if (Temp && Temp->isAlive())
|
||||||
{
|
Temp->DisappearAndDie();
|
||||||
(*Temp).GetMotionMaster()->Clear(true);
|
|
||||||
Temp->DealDamage(Temp, Temp->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
|
||||||
Temp->RemoveCorpse();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -116,10 +116,7 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
|
|||||||
if (pInstance)
|
if (pInstance)
|
||||||
{
|
{
|
||||||
if (pInstance->GetData(TYPE_NIGHTBANE) == DONE || pInstance->GetData(TYPE_NIGHTBANE) == IN_PROGRESS)
|
if (pInstance->GetData(TYPE_NIGHTBANE) == DONE || pInstance->GetData(TYPE_NIGHTBANE) == IN_PROGRESS)
|
||||||
{
|
m_creature->DisappearAndDie();
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
|
||||||
m_creature->RemoveCorpse();
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
pInstance->SetData(TYPE_NIGHTBANE, NOT_STARTED);
|
pInstance->SetData(TYPE_NIGHTBANE, NOT_STARTED);
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-5
@@ -445,7 +445,7 @@ struct TRINITY_DLL_DECL mob_felkael_flamestrikeAI : public ScriptedAI
|
|||||||
if (FlameStrikeTimer < diff)
|
if (FlameStrikeTimer < diff)
|
||||||
{
|
{
|
||||||
DoCast(m_creature, Heroic ? SPELL_FLAMESTRIKE1_HEROIC : SPELL_FLAMESTRIKE1_NORMAL, true);
|
DoCast(m_creature, Heroic ? SPELL_FLAMESTRIKE1_HEROIC : SPELL_FLAMESTRIKE1_NORMAL, true);
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
m_creature->Kill(m_creature);
|
||||||
} else FlameStrikeTimer -= diff;
|
} else FlameStrikeTimer -= diff;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -580,7 +580,7 @@ struct TRINITY_DLL_DECL mob_felkael_phoenix_eggAI : public ScriptedAI
|
|||||||
if (HatchTimer < diff)
|
if (HatchTimer < diff)
|
||||||
{
|
{
|
||||||
m_creature->SummonCreature(CREATURE_PHOENIX, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000);
|
m_creature->SummonCreature(CREATURE_PHOENIX, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000);
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
m_creature->Kill(m_creature);
|
||||||
} else HatchTimer -= diff;
|
} else HatchTimer -= diff;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -596,7 +596,7 @@ struct TRINITY_DLL_DECL mob_arcane_sphereAI : public ScriptedAI
|
|||||||
void Reset()
|
void Reset()
|
||||||
{
|
{
|
||||||
DespawnTimer = 30000;
|
DespawnTimer = 30000;
|
||||||
ChangeTargetTimer = 6000 + rand()%6000;
|
ChangeTargetTimer = urand(6000,12000);
|
||||||
|
|
||||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||||
m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
|
m_creature->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
|
||||||
@@ -604,10 +604,8 @@ struct TRINITY_DLL_DECL mob_arcane_sphereAI : public ScriptedAI
|
|||||||
DoCast(m_creature, SPELL_ARCANE_SPHERE_PASSIVE, true);
|
DoCast(m_creature, SPELL_ARCANE_SPHERE_PASSIVE, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void EnterCombat(Unit* who) {}
|
void EnterCombat(Unit* who) {}
|
||||||
|
|
||||||
|
|
||||||
void UpdateAI(const uint32 diff)
|
void UpdateAI(const uint32 diff)
|
||||||
{
|
{
|
||||||
if (DespawnTimer < diff)
|
if (DespawnTimer < diff)
|
||||||
|
|||||||
+8
-10
@@ -226,7 +226,7 @@ struct TRINITY_DLL_DECL mob_headAI : public ScriptedAI
|
|||||||
die = false;
|
die = false;
|
||||||
withbody = true;
|
withbody = true;
|
||||||
wait = 1000;
|
wait = 1000;
|
||||||
laugh = 15000 + rand()%16 * 1000;
|
laugh = urand(15000,30000);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnterCombat(Unit *who) {}
|
void EnterCombat(Unit *who) {}
|
||||||
@@ -324,8 +324,8 @@ struct TRINITY_DLL_DECL mob_headAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
die = false;
|
die = false;
|
||||||
if (Unit *body = Unit::GetUnit((*m_creature), bodyGUID))
|
if (Unit *body = Unit::GetUnit((*m_creature), bodyGUID))
|
||||||
body->DealDamage(body, body->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
body->Kill(body);
|
||||||
m_creature->setDeathState(JUST_DIED);
|
m_creature->Kill(m_creature);
|
||||||
} else wait -= diff;
|
} else wait -= diff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -400,11 +400,9 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
|
|||||||
DoCast(m_creature,SPELL_HEAD);
|
DoCast(m_creature,SPELL_HEAD);
|
||||||
if (headGUID)
|
if (headGUID)
|
||||||
{
|
{
|
||||||
if (Unit* Head = Unit::GetUnit((*m_creature), headGUID))
|
if (Creature* Head = Unit::GetCreature((*m_creature), headGUID))
|
||||||
{
|
Head->DisappearAndDie();
|
||||||
Head->SetVisibility(VISIBILITY_OFF);
|
|
||||||
Head->setDeathState(JUST_DIED);
|
|
||||||
}
|
|
||||||
headGUID = 0;
|
headGUID = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -661,7 +659,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
if (Unit *plr = SelectRandomPlayer(30.0f))
|
if (Unit *plr = SelectRandomPlayer(30.0f))
|
||||||
m_creature->CastSpell(plr,SPELL_CONFLAGRATION,false);
|
m_creature->CastSpell(plr,SPELL_CONFLAGRATION,false);
|
||||||
conflagrate = 10000 + rand()%7 * 1000;
|
conflagrate = urand(10000,16000);
|
||||||
} else conflagrate -= diff;
|
} else conflagrate -= diff;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
@@ -670,7 +668,7 @@ struct TRINITY_DLL_DECL boss_headless_horsemanAI : public ScriptedAI
|
|||||||
m_creature->InterruptNonMeleeSpells(false);
|
m_creature->InterruptNonMeleeSpells(false);
|
||||||
DoCast(m_creature,SPELL_SUMMON_PUMPKIN);
|
DoCast(m_creature,SPELL_SUMMON_PUMPKIN);
|
||||||
SaySound(SAY_SPROUTING_PUMPKINS);
|
SaySound(SAY_SPROUTING_PUMPKINS);
|
||||||
summonadds = 25000 + rand()%11 *1000;
|
summonadds = urand(25000,35000);
|
||||||
} else summonadds -= diff;
|
} else summonadds -= diff;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -107,7 +107,7 @@ struct TRINITY_DLL_DECL instance_scarlet_monastery : public ScriptedInstance
|
|||||||
{
|
{
|
||||||
Creature* add = instance->GetCreature(*itr);
|
Creature* add = instance->GetCreature(*itr);
|
||||||
if (add && add->isAlive())
|
if (add && add->isAlive())
|
||||||
add->DealDamage(add, add->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
add->Kill(add);
|
||||||
}
|
}
|
||||||
HorsemanAdds.clear();
|
HorsemanAdds.clear();
|
||||||
HandleGameObject(PumpkinShrineGUID, false);
|
HandleGameObject(PumpkinShrineGUID, false);
|
||||||
|
|||||||
@@ -296,8 +296,7 @@ struct TRINITY_DLL_DECL boss_muruAI : public Scripted_NoMovementAI
|
|||||||
break;
|
break;
|
||||||
case DONE:
|
case DONE:
|
||||||
Phase = 4;
|
Phase = 4;
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
m_creature->DisappearAndDie();
|
||||||
m_creature->RemoveCorpse();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Timer[TIMER_PHASE] = 3000;
|
Timer[TIMER_PHASE] = 3000;
|
||||||
@@ -396,8 +395,8 @@ struct TRINITY_DLL_DECL npc_muru_portalAI : public Scripted_NoMovementAI
|
|||||||
|
|
||||||
void JustSummoned(Creature* summoned)
|
void JustSummoned(Creature* summoned)
|
||||||
{
|
{
|
||||||
Player* Target = Unit::GetPlayer(pInstance ? pInstance->GetData64(DATA_PLAYER_GUID) : 0);
|
if (pInstance)
|
||||||
if (Target)
|
if (Player* Target = Unit::GetPlayer(pInstance->GetData64(DATA_PLAYER_GUID)))
|
||||||
summoned->AI()->AttackStart(Target);
|
summoned->AI()->AttackStart(Target);
|
||||||
|
|
||||||
Summons.Summon(summoned);
|
Summons.Summon(summoned);
|
||||||
@@ -462,10 +461,7 @@ struct TRINITY_DLL_DECL npc_dark_fiendAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
for(uint8 i = 0; i < 3; ++i)
|
for(uint8 i = 0; i < 3; ++i)
|
||||||
if (Spell->Effect[i] == 38)
|
if (Spell->Effect[i] == 38)
|
||||||
{
|
m_creature->DisappearAndDie();
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
|
||||||
m_creature->RemoveCorpse();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateAI(const uint32 diff)
|
void UpdateAI(const uint32 diff)
|
||||||
@@ -489,8 +485,7 @@ struct TRINITY_DLL_DECL npc_dark_fiendAI : public ScriptedAI
|
|||||||
if (m_creature->IsWithinDist(m_creature->getVictim(), 5))
|
if (m_creature->IsWithinDist(m_creature->getVictim(), 5))
|
||||||
{
|
{
|
||||||
DoCastAOE(SPELL_DARKFIEND_AOE, false);
|
DoCastAOE(SPELL_DARKFIEND_AOE, false);
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
m_creature->DisappearAndDie();
|
||||||
m_creature->RemoveCorpse();
|
|
||||||
}
|
}
|
||||||
WaitTimer = 500;
|
WaitTimer = 500;
|
||||||
}
|
}
|
||||||
@@ -522,10 +517,9 @@ struct TRINITY_DLL_DECL npc_void_sentinelAI : public ScriptedAI
|
|||||||
|
|
||||||
void JustDied(Unit* killer)
|
void JustDied(Unit* killer)
|
||||||
{
|
{
|
||||||
for (uint8 i = 0; i < 8; ++i){
|
for (uint8 i = 0; i < 8; ++i)
|
||||||
m_creature->SummonCreature(CREATURE_VOID_SPAWN, m_creature->GetPositionX(),m_creature->GetPositionY(),m_creature->GetPositionZ(), rand()%6, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 180000);
|
m_creature->SummonCreature(CREATURE_VOID_SPAWN, m_creature->GetPositionX(),m_creature->GetPositionY(),m_creature->GetPositionZ(), rand()%6, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 180000);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
void UpdateAI(const uint32 diff)
|
void UpdateAI(const uint32 diff)
|
||||||
{
|
{
|
||||||
@@ -603,21 +597,20 @@ struct TRINITY_DLL_DECL npc_blackholeAI : public ScriptedAI
|
|||||||
m_creature->RemoveAura(SPELL_BLACKHOLE_GROW, 1);
|
m_creature->RemoveAura(SPELL_BLACKHOLE_GROW, 1);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
SpellTimer = 400+rand()%500;
|
SpellTimer = urand(400,900);
|
||||||
NeedForAHack = 1;
|
NeedForAHack = 1;
|
||||||
Unit* Temp = m_creature->getVictim();
|
if (Unit* Temp = m_creature->getVictim())
|
||||||
if (!Temp)
|
{
|
||||||
return;
|
|
||||||
if (Temp->GetPositionZ() > 73 && Victim)
|
if (Temp->GetPositionZ() > 73 && Victim)
|
||||||
AttackStart(Victim);
|
AttackStart(Victim);
|
||||||
|
} else
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
} else SpellTimer -= diff;
|
} else SpellTimer -= diff;
|
||||||
|
|
||||||
if (DespawnTimer < diff)
|
if (DespawnTimer < diff)
|
||||||
{
|
m_creature->DisappearAndDie();
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
else DespawnTimer -= diff;
|
||||||
m_creature->RemoveCorpse();
|
|
||||||
}else DespawnTimer -= diff;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -192,17 +192,10 @@ struct TRINITY_DLL_DECL eye_of_cthunAI : public Scripted_NoMovementAI
|
|||||||
|
|
||||||
void SpawnEyeTentacle(float x, float y)
|
void SpawnEyeTentacle(float x, float y)
|
||||||
{
|
{
|
||||||
Creature* Spawned;
|
if (Creature* Spawned = me->SummonCreature(MOB_EYE_TENTACLE,m_creature->GetPositionX()+x,m_creature->GetPositionY()+y,m_creature->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500))
|
||||||
Spawned = me->SummonCreature(MOB_EYE_TENTACLE,m_creature->GetPositionX()+x,m_creature->GetPositionY()+y,m_creature->GetPositionZ(),0,TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT,500);
|
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
|
||||||
if (Spawned)
|
|
||||||
{
|
|
||||||
Unit* target;
|
|
||||||
target = SelectUnit(SELECT_TARGET_RANDOM,0);
|
|
||||||
|
|
||||||
if (target)
|
|
||||||
Spawned->AI()->AttackStart(target);
|
Spawned->AI()->AttackStart(target);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
void UpdateAI(const uint32 diff)
|
void UpdateAI(const uint32 diff)
|
||||||
{
|
{
|
||||||
@@ -323,7 +316,8 @@ struct TRINITY_DLL_DECL eye_of_cthunAI : public Scripted_NoMovementAI
|
|||||||
//Set angle and cast
|
//Set angle and cast
|
||||||
if (ClockWise)
|
if (ClockWise)
|
||||||
m_creature->SetOrientation(DarkGlareAngle + ((float)DarkGlareTick*PI/35));
|
m_creature->SetOrientation(DarkGlareAngle + ((float)DarkGlareTick*PI/35));
|
||||||
else m_creature->SetOrientation(DarkGlareAngle - ((float)DarkGlareTick*PI/35));
|
else
|
||||||
|
m_creature->SetOrientation(DarkGlareAngle - ((float)DarkGlareTick*PI/35));
|
||||||
|
|
||||||
m_creature->StopMoving();
|
m_creature->StopMoving();
|
||||||
|
|
||||||
@@ -358,7 +352,8 @@ struct TRINITY_DLL_DECL eye_of_cthunAI : public Scripted_NoMovementAI
|
|||||||
//Eye Beam for 50 seconds
|
//Eye Beam for 50 seconds
|
||||||
PhaseTimer = 50000;
|
PhaseTimer = 50000;
|
||||||
} else PhaseTimer -= diff;
|
} else PhaseTimer -= diff;
|
||||||
}break;
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
//Transition phase
|
//Transition phase
|
||||||
case 2:
|
case 2:
|
||||||
@@ -371,7 +366,7 @@ struct TRINITY_DLL_DECL eye_of_cthunAI : public Scripted_NoMovementAI
|
|||||||
//Dead phase
|
//Dead phase
|
||||||
case 5:
|
case 5:
|
||||||
{
|
{
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NONE, NULL, false);
|
m_creature->Kill(m_creature);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -538,9 +533,8 @@ struct TRINITY_DLL_DECL cthunAI : public ScriptedAI
|
|||||||
|
|
||||||
//Only units out of stomach
|
//Only units out of stomach
|
||||||
if (pUnit && i->second == false)
|
if (pUnit && i->second == false)
|
||||||
{
|
|
||||||
temp.push_back(pUnit);
|
temp.push_back(pUnit);
|
||||||
}
|
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -581,7 +575,7 @@ struct TRINITY_DLL_DECL cthunAI : public ScriptedAI
|
|||||||
}
|
}
|
||||||
|
|
||||||
//One random wisper every 90 - 300 seconds
|
//One random wisper every 90 - 300 seconds
|
||||||
WisperTimer = 90000 + (rand()% 210000);
|
WisperTimer = urand(90000,300000);
|
||||||
} else WisperTimer -= diff;
|
} else WisperTimer -= diff;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -649,7 +643,8 @@ struct TRINITY_DLL_DECL cthunAI : public ScriptedAI
|
|||||||
PhaseTimer = 0;
|
PhaseTimer = 0;
|
||||||
} else PhaseTimer -= diff;
|
} else PhaseTimer -= diff;
|
||||||
|
|
||||||
}break;
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
//Body Phase
|
//Body Phase
|
||||||
case 3:
|
case 3:
|
||||||
@@ -849,7 +844,7 @@ struct TRINITY_DLL_DECL cthunAI : public ScriptedAI
|
|||||||
Spawned = me->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS1_X, TENTACLE_POS1_Y, TENTACLE_POS1_Z, TENTACLE_POS1_O, TEMPSUMMON_CORPSE_DESPAWN, 0);
|
Spawned = me->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS1_X, TENTACLE_POS1_Y, TENTACLE_POS1_Z, TENTACLE_POS1_O, TEMPSUMMON_CORPSE_DESPAWN, 0);
|
||||||
|
|
||||||
if (!Spawned)
|
if (!Spawned)
|
||||||
FleshTentaclesKilled++;
|
++FleshTentaclesKilled;
|
||||||
else
|
else
|
||||||
CAST_AI(flesh_tentacleAI, (Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID());
|
CAST_AI(flesh_tentacleAI, (Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID());
|
||||||
|
|
||||||
@@ -857,7 +852,7 @@ struct TRINITY_DLL_DECL cthunAI : public ScriptedAI
|
|||||||
Spawned = me->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS2_X, TENTACLE_POS2_Y, TENTACLE_POS2_Z, TENTACLE_POS2_O, TEMPSUMMON_CORPSE_DESPAWN, 0);
|
Spawned = me->SummonCreature(MOB_FLESH_TENTACLE, TENTACLE_POS2_X, TENTACLE_POS2_Y, TENTACLE_POS2_Z, TENTACLE_POS2_O, TEMPSUMMON_CORPSE_DESPAWN, 0);
|
||||||
|
|
||||||
if (!Spawned)
|
if (!Spawned)
|
||||||
FleshTentaclesKilled++;
|
++FleshTentaclesKilled;
|
||||||
else
|
else
|
||||||
CAST_AI(flesh_tentacleAI, (Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID());
|
CAST_AI(flesh_tentacleAI, (Spawned->AI()))->SpawnedByCthun(m_creature->GetGUID());
|
||||||
|
|
||||||
@@ -931,7 +926,7 @@ struct TRINITY_DLL_DECL eye_tentacleAI : public ScriptedAI
|
|||||||
void JustDied(Unit* who)
|
void JustDied(Unit* who)
|
||||||
{
|
{
|
||||||
if (Unit* p = Unit::GetUnit(*m_creature, Portal))
|
if (Unit* p = Unit::GetUnit(*m_creature, Portal))
|
||||||
p->DealDamage(p, p->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NONE, NULL, false);
|
p->Kill(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Reset()
|
void Reset()
|
||||||
@@ -957,8 +952,7 @@ struct TRINITY_DLL_DECL eye_tentacleAI : public ScriptedAI
|
|||||||
//KillSelfTimer
|
//KillSelfTimer
|
||||||
if (KillSelfTimer < diff)
|
if (KillSelfTimer < diff)
|
||||||
{
|
{
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NONE, NULL, false);
|
m_creature->Kill(m_creature);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
} else KillSelfTimer -= diff;
|
} else KillSelfTimer -= diff;
|
||||||
|
|
||||||
@@ -970,7 +964,7 @@ struct TRINITY_DLL_DECL eye_tentacleAI : public ScriptedAI
|
|||||||
DoCast(target,SPELL_MIND_FLAY);
|
DoCast(target,SPELL_MIND_FLAY);
|
||||||
|
|
||||||
//Mindflay every 10 seconds
|
//Mindflay every 10 seconds
|
||||||
MindflayTimer = 10100;
|
MindflayTimer = 10000;
|
||||||
} else MindflayTimer -= diff;
|
} else MindflayTimer -= diff;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -993,7 +987,7 @@ struct TRINITY_DLL_DECL claw_tentacleAI : public ScriptedAI
|
|||||||
void JustDied(Unit* who)
|
void JustDied(Unit* who)
|
||||||
{
|
{
|
||||||
if (Unit* p = Unit::GetUnit(*m_creature, Portal))
|
if (Unit* p = Unit::GetUnit(*m_creature, Portal))
|
||||||
p->DealDamage(p, p->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NONE, NULL, false);
|
p->Kill(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Reset()
|
void Reset()
|
||||||
@@ -1020,7 +1014,7 @@ struct TRINITY_DLL_DECL claw_tentacleAI : public ScriptedAI
|
|||||||
if (EvadeTimer < diff)
|
if (EvadeTimer < diff)
|
||||||
{
|
{
|
||||||
if (Unit* p = Unit::GetUnit(*m_creature, Portal))
|
if (Unit* p = Unit::GetUnit(*m_creature, Portal))
|
||||||
p->DealDamage(p, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NONE, NULL, false);
|
p->Kill(p);
|
||||||
|
|
||||||
//Dissapear and reappear at new position
|
//Dissapear and reappear at new position
|
||||||
m_creature->SetVisibility(VISIBILITY_OFF);
|
m_creature->SetVisibility(VISIBILITY_OFF);
|
||||||
@@ -1028,7 +1022,7 @@ struct TRINITY_DLL_DECL claw_tentacleAI : public ScriptedAI
|
|||||||
Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0);
|
Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0);
|
||||||
if (!target)
|
if (!target)
|
||||||
{
|
{
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NONE, NULL, false);
|
m_creature->Kill(m_creature);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1045,7 +1039,6 @@ struct TRINITY_DLL_DECL claw_tentacleAI : public ScriptedAI
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_creature->SetVisibility(VISIBILITY_ON);
|
m_creature->SetVisibility(VISIBILITY_ON);
|
||||||
|
|
||||||
} else EvadeTimer -= diff;
|
} else EvadeTimer -= diff;
|
||||||
|
|
||||||
//GroundRuptureTimer
|
//GroundRuptureTimer
|
||||||
@@ -1085,7 +1078,7 @@ struct TRINITY_DLL_DECL giant_claw_tentacleAI : public ScriptedAI
|
|||||||
void JustDied(Unit* who)
|
void JustDied(Unit* who)
|
||||||
{
|
{
|
||||||
if (Unit* p = Unit::GetUnit(*m_creature, Portal))
|
if (Unit* p = Unit::GetUnit(*m_creature, Portal))
|
||||||
p->DealDamage(p, p->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NONE, NULL, false);
|
p->Kill(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Reset()
|
void Reset()
|
||||||
@@ -1113,7 +1106,7 @@ struct TRINITY_DLL_DECL giant_claw_tentacleAI : public ScriptedAI
|
|||||||
if (EvadeTimer < diff)
|
if (EvadeTimer < diff)
|
||||||
{
|
{
|
||||||
if (Unit* p = Unit::GetUnit(*m_creature, Portal))
|
if (Unit* p = Unit::GetUnit(*m_creature, Portal))
|
||||||
p->DealDamage(p, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NONE, NULL, false);
|
p->Kill(p);
|
||||||
|
|
||||||
//Dissapear and reappear at new position
|
//Dissapear and reappear at new position
|
||||||
m_creature->SetVisibility(VISIBILITY_OFF);
|
m_creature->SetVisibility(VISIBILITY_OFF);
|
||||||
@@ -1121,7 +1114,7 @@ struct TRINITY_DLL_DECL giant_claw_tentacleAI : public ScriptedAI
|
|||||||
Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0);
|
Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0);
|
||||||
if (!target)
|
if (!target)
|
||||||
{
|
{
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NONE, NULL, false);
|
m_creature->Kill(m_creature);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1183,7 +1176,7 @@ struct TRINITY_DLL_DECL giant_eye_tentacleAI : public ScriptedAI
|
|||||||
void JustDied(Unit* who)
|
void JustDied(Unit* who)
|
||||||
{
|
{
|
||||||
if (Unit* p = Unit::GetUnit(*m_creature, Portal))
|
if (Unit* p = Unit::GetUnit(*m_creature, Portal))
|
||||||
p->DealDamage(p, p->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NONE, NULL, false);
|
p->Kill(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Reset()
|
void Reset()
|
||||||
|
|||||||
+3
-5
@@ -359,11 +359,9 @@ struct TRINITY_DLL_DECL mob_taldaram_flamesphereAI : public ScriptedAI
|
|||||||
void UpdateAI(const uint32 diff)
|
void UpdateAI(const uint32 diff)
|
||||||
{
|
{
|
||||||
if (uiDespawnTimer < diff)
|
if (uiDespawnTimer < diff)
|
||||||
{
|
m_creature->DisappearAndDie();
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
else
|
||||||
m_creature->RemoveCorpse();
|
uiDespawnTimer -= diff;
|
||||||
}
|
|
||||||
else uiDespawnTimer -= diff;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -135,6 +135,7 @@ struct TRINITY_DLL_DECL instance_drak_tharon : public ScriptedInstance
|
|||||||
case DATA_DRED_EVENT: return m_auiEncounter[2];
|
case DATA_DRED_EVENT: return m_auiEncounter[2];
|
||||||
case DATA_THARON_JA_EVENT: return m_auiEncounter[3];
|
case DATA_THARON_JA_EVENT: return m_auiEncounter[3];
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string GetSaveData()
|
std::string GetSaveData()
|
||||||
@@ -164,10 +165,10 @@ struct TRINITY_DLL_DECL instance_drak_tharon : public ScriptedInstance
|
|||||||
OUT_LOAD_INST_DATA(in);
|
OUT_LOAD_INST_DATA(in);
|
||||||
|
|
||||||
char dataHead1, dataHead2;
|
char dataHead1, dataHead2;
|
||||||
uint16 data0,data1,data2,data3,data4, data5, data6;
|
uint16 data0,data1,data2,data3,data4;//,data5,data6;
|
||||||
|
|
||||||
std::istringstream loadStream(in);
|
std::istringstream loadStream(in);
|
||||||
loadStream >> dataHead1 >> dataHead2 >> data0 >> data1 >> data2 >> data3;
|
loadStream >> dataHead1 >> dataHead2 >> data0 >> data1 >> data2 >> data3 >> data4;
|
||||||
|
|
||||||
if (dataHead1 == 'D' && dataHead2 == 'K')
|
if (dataHead1 == 'D' && dataHead2 == 'K')
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -245,10 +245,8 @@ struct TRINITY_DLL_DECL mob_malformed_oozeAI : public ScriptedAI
|
|||||||
if (Creature* pTemp = m_creature->FindNearestCreature(CREATURE_MALFORMED_OOZE, 1.0f, true))
|
if (Creature* pTemp = m_creature->FindNearestCreature(CREATURE_MALFORMED_OOZE, 1.0f, true))
|
||||||
{
|
{
|
||||||
DoSpawnCreature(CREATURE_IRON_SLUDGE, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 20000);
|
DoSpawnCreature(CREATURE_IRON_SLUDGE, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 20000);
|
||||||
pTemp->Kill(pTemp, false);
|
pTemp->DisappearAndDie();
|
||||||
pTemp->RemoveCorpse();
|
m_creature->DisappearAndDie();
|
||||||
m_creature->Kill(m_creature, false);
|
|
||||||
m_creature->RemoveCorpse();
|
|
||||||
} else bIsMerging = false;
|
} else bIsMerging = false;
|
||||||
} else uiMergeTimer -= diff;
|
} else uiMergeTimer -= diff;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -367,7 +367,7 @@ struct TRINITY_DLL_DECL mob_lightning_elementalAI : public ScriptedAI
|
|||||||
if(m_creature->IsWithinMeleeRange(Target))
|
if(m_creature->IsWithinMeleeRange(Target))
|
||||||
{
|
{
|
||||||
DoCast(Target, (HeroicMode) ? SPELL_LIGHTNING_BLAST_H : SPELL_LIGHTNING_BLAST);
|
DoCast(Target, (HeroicMode) ? SPELL_LIGHTNING_BLAST_H : SPELL_LIGHTNING_BLAST);
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth()); // hack untill spell works
|
m_creature->Kill(m_creature); // hack until spell works
|
||||||
}
|
}
|
||||||
|
|
||||||
m_creature->GetMotionMaster()->MoveChase(Target); // needed at every update?
|
m_creature->GetMotionMaster()->MoveChase(Target); // needed at every update?
|
||||||
|
|||||||
@@ -173,8 +173,7 @@ struct TRINITY_DLL_DECL boss_svalaAI : public ScriptedAI
|
|||||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||||
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||||
m_creature->SetDisplayId(DATA_SVALA_DISPLAY_ID);
|
m_creature->SetDisplayId(DATA_SVALA_DISPLAY_ID);
|
||||||
pArthas->Kill(pArthas, false);
|
pArthas->DisappearAndDie();
|
||||||
pArthas->RemoveCorpse();
|
|
||||||
Phase = FINISHED;
|
Phase = FINISHED;
|
||||||
}
|
}
|
||||||
else Reset();
|
else Reset();
|
||||||
@@ -294,7 +293,7 @@ struct TRINITY_DLL_DECL boss_svala_sorrowgraveAI : public ScriptedAI
|
|||||||
if (mob_ritual_channelerAI *pChannelerAI = CAST_AI(mob_ritual_channelerAI,pRitualChanneler[i]->AI()))
|
if (mob_ritual_channelerAI *pChannelerAI = CAST_AI(mob_ritual_channelerAI,pRitualChanneler[i]->AI()))
|
||||||
pChannelerAI->AttackStartNoMove(pSacrificeTarget);
|
pChannelerAI->AttackStartNoMove(pSacrificeTarget);
|
||||||
|
|
||||||
uiRitualOfSwordTimer = 18000 + rand()%4000;
|
uiRitualOfSwordTimer = urand(18000,22000);
|
||||||
}
|
}
|
||||||
} else uiRitualOfSwordTimer -= diff;
|
} else uiRitualOfSwordTimer -= diff;
|
||||||
|
|
||||||
@@ -314,7 +313,7 @@ struct TRINITY_DLL_DECL boss_svala_sorrowgraveAI : public ScriptedAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (bSacrificed && pSacrificeTarget && pSacrificeTarget->isAlive())
|
if (bSacrificed && pSacrificeTarget && pSacrificeTarget->isAlive())
|
||||||
m_creature->Kill(pSacrificeTarget, false);
|
m_creature->Kill(pSacrificeTarget, false); // durability damage?
|
||||||
|
|
||||||
//go down
|
//go down
|
||||||
Phase = NORMAL;
|
Phase = NORMAL;
|
||||||
@@ -343,7 +342,7 @@ struct TRINITY_DLL_DECL boss_svala_sorrowgraveAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
Creature* pSvala = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_SVALA));
|
Creature* pSvala = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_SVALA));
|
||||||
if (pSvala && pSvala->isAlive())
|
if (pSvala && pSvala->isAlive())
|
||||||
pKiller->Kill(pSvala, false);
|
pKiller->Kill(pSvala);
|
||||||
|
|
||||||
pInstance->SetData(DATA_SVALA_SORROWGRAVE_EVENT, IN_PROGRESS);
|
pInstance->SetData(DATA_SVALA_SORROWGRAVE_EVENT, IN_PROGRESS);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-6
@@ -48,16 +48,11 @@ struct TRINITY_DLL_DECL instance_sethekk_halls : public ScriptedInstance
|
|||||||
if (pCreature->GetEntry() == NPC_ANZU)
|
if (pCreature->GetEntry() == NPC_ANZU)
|
||||||
{
|
{
|
||||||
if (AnzuEncounter >= IN_PROGRESS)
|
if (AnzuEncounter >= IN_PROGRESS)
|
||||||
{
|
pCreature->DisappearAndDie();
|
||||||
pCreature->DealDamage(pCreature, pCreature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
|
||||||
pCreature->RemoveCorpse();
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
AnzuEncounter = IN_PROGRESS;
|
AnzuEncounter = IN_PROGRESS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
void OnGameObjectCreate(GameObject* pGo, bool add)
|
void OnGameObjectCreate(GameObject* pGo, bool add)
|
||||||
{
|
{
|
||||||
|
|||||||
+8
-17
@@ -85,7 +85,7 @@ struct TRINITY_DLL_DECL mob_voidtravelerAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
if (!Vorpil)
|
if (!Vorpil)
|
||||||
{
|
{
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
m_creature->Kill(m_creature);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (move < diff)
|
if (move < diff)
|
||||||
@@ -97,7 +97,7 @@ struct TRINITY_DLL_DECL mob_voidtravelerAI : public ScriptedAI
|
|||||||
Vorpil->AddAura(new Aura(spell, 1, Vorpil, me, me));
|
Vorpil->AddAura(new Aura(spell, 1, Vorpil, me, me));
|
||||||
Vorpil->SetHealth(Vorpil->GetHealth()+Vorpil->GetMaxHealth()/25);
|
Vorpil->SetHealth(Vorpil->GetHealth()+Vorpil->GetMaxHealth()/25);
|
||||||
DoCast(m_creature, SPELL_SHADOW_NOVA, true);
|
DoCast(m_creature, SPELL_SHADOW_NOVA, true);
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
m_creature->Kill(m_creature);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
m_creature->GetMotionMaster()->MoveFollow(Vorpil,0,0);
|
m_creature->GetMotionMaster()->MoveFollow(Vorpil,0,0);
|
||||||
@@ -110,7 +110,7 @@ struct TRINITY_DLL_DECL mob_voidtravelerAI : public ScriptedAI
|
|||||||
}
|
}
|
||||||
if (!Vorpil->isInCombat() || Vorpil->isDead())
|
if (!Vorpil->isInCombat() || Vorpil->isDead())
|
||||||
{
|
{
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
m_creature->Kill(m_creature);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
move = 1000;
|
move = 1000;
|
||||||
@@ -159,7 +159,7 @@ struct TRINITY_DLL_DECL boss_grandmaster_vorpilAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
if (!sumportals)
|
if (!sumportals)
|
||||||
{
|
{
|
||||||
for (int i = 0;i<5; ++i)
|
for (uint8 i = 0; i < 5; ++i)
|
||||||
{
|
{
|
||||||
Creature *Portal = NULL;
|
Creature *Portal = NULL;
|
||||||
Portal = m_creature->SummonCreature(MOB_VOID_PORTAL,VoidPortalCoords[i][0],VoidPortalCoords[i][1],VoidPortalCoords[i][2],0,TEMPSUMMON_CORPSE_DESPAWN,3000000);
|
Portal = m_creature->SummonCreature(MOB_VOID_PORTAL,VoidPortalCoords[i][0],VoidPortalCoords[i][1],VoidPortalCoords[i][2],0,TEMPSUMMON_CORPSE_DESPAWN,3000000);
|
||||||
@@ -178,7 +178,7 @@ struct TRINITY_DLL_DECL boss_grandmaster_vorpilAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
if (sumportals)
|
if (sumportals)
|
||||||
{
|
{
|
||||||
for (int i = 0;i < 5; i ++)
|
for (uint8 i = 0; i < 5; ++i)
|
||||||
{
|
{
|
||||||
Unit *Portal = Unit::GetUnit((*m_creature), PortalsGuid[i]);
|
Unit *Portal = Unit::GetUnit((*m_creature), PortalsGuid[i]);
|
||||||
if (Portal && Portal->isAlive())
|
if (Portal && Portal->isAlive())
|
||||||
@@ -191,7 +191,7 @@ struct TRINITY_DLL_DECL boss_grandmaster_vorpilAI : public ScriptedAI
|
|||||||
|
|
||||||
void spawnVoidTraveler()
|
void spawnVoidTraveler()
|
||||||
{
|
{
|
||||||
int pos = rand()%5;
|
int pos = urand(0,4);
|
||||||
m_creature->SummonCreature(MOB_VOID_TRAVELER,VoidPortalCoords[pos][0],VoidPortalCoords[pos][1],VoidPortalCoords[pos][2],0,TEMPSUMMON_CORPSE_TIMED_DESPAWN,5000);
|
m_creature->SummonCreature(MOB_VOID_TRAVELER,VoidPortalCoords[pos][0],VoidPortalCoords[pos][1],VoidPortalCoords[pos][2],0,TEMPSUMMON_CORPSE_TIMED_DESPAWN,5000);
|
||||||
if (!HelpYell)
|
if (!HelpYell)
|
||||||
{
|
{
|
||||||
@@ -208,11 +208,7 @@ struct TRINITY_DLL_DECL boss_grandmaster_vorpilAI : public ScriptedAI
|
|||||||
|
|
||||||
void KilledUnit(Unit *victim)
|
void KilledUnit(Unit *victim)
|
||||||
{
|
{
|
||||||
switch(rand()%2)
|
DoScriptText(RAND(SAY_SLAY1,SAY_SLAY2), m_creature);
|
||||||
{
|
|
||||||
case 0: DoScriptText(SAY_SLAY1, m_creature); break;
|
|
||||||
case 1: DoScriptText(SAY_SLAY2, m_creature); break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void JustDied(Unit *victim)
|
void JustDied(Unit *victim)
|
||||||
@@ -226,12 +222,7 @@ struct TRINITY_DLL_DECL boss_grandmaster_vorpilAI : public ScriptedAI
|
|||||||
|
|
||||||
void EnterCombat(Unit *who)
|
void EnterCombat(Unit *who)
|
||||||
{
|
{
|
||||||
switch(rand()%3)
|
DoScriptText(RAND(SAY_AGGRO1,SAY_AGGRO2,SAY_AGGRO3), m_creature);
|
||||||
{
|
|
||||||
case 0: DoScriptText(SAY_AGGRO1, m_creature); break;
|
|
||||||
case 1: DoScriptText(SAY_AGGRO2, m_creature); break;
|
|
||||||
case 2: DoScriptText(SAY_AGGRO3, m_creature); break;
|
|
||||||
}
|
|
||||||
summonPortals();
|
summonPortals();
|
||||||
|
|
||||||
if (pInstance)
|
if (pInstance)
|
||||||
|
|||||||
+3
-7
@@ -639,13 +639,9 @@ struct TRINITY_DLL_DECL mob_enchanted_elementalAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
m_creature->AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
|
m_creature->AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
|
||||||
if (phase == 1)
|
if (phase == 1)
|
||||||
{
|
|
||||||
m_creature->GetMotionMaster()->MovePoint(0, x, y, z);
|
m_creature->GetMotionMaster()->MovePoint(0, x, y, z);
|
||||||
}
|
|
||||||
if (phase == 1 && m_creature->IsWithinDist3d(x,y,z, 0.1))
|
if (phase == 1 && m_creature->IsWithinDist3d(x,y,z, 0.1))
|
||||||
{
|
|
||||||
phase = 2;
|
phase = 2;
|
||||||
}
|
|
||||||
if (phase == 2)
|
if (phase == 2)
|
||||||
{
|
{
|
||||||
m_creature->GetMotionMaster()->MovePoint(0, MIDDLE_X, MIDDLE_Y, MIDDLE_Z);
|
m_creature->GetMotionMaster()->MovePoint(0, MIDDLE_X, MIDDLE_Y, MIDDLE_Z);
|
||||||
@@ -660,7 +656,7 @@ struct TRINITY_DLL_DECL mob_enchanted_elementalAI : public ScriptedAI
|
|||||||
if (spell)
|
if (spell)
|
||||||
{
|
{
|
||||||
uint8 eff_mask=0;
|
uint8 eff_mask=0;
|
||||||
for (int i=0; i<3; ++i)
|
for (uint8 i = 0; i < 3; ++i)
|
||||||
{
|
{
|
||||||
if (!spell->Effect[i])
|
if (!spell->Effect[i])
|
||||||
continue;
|
continue;
|
||||||
@@ -668,13 +664,13 @@ struct TRINITY_DLL_DECL mob_enchanted_elementalAI : public ScriptedAI
|
|||||||
}
|
}
|
||||||
Vashj->AddAura(new Aura(spell, eff_mask, Vashj, Vashj, Vashj));
|
Vashj->AddAura(new Aura(spell, eff_mask, Vashj, Vashj, Vashj));
|
||||||
}
|
}
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
m_creature->Kill(m_creature);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!Vashj->isInCombat() || CAST_AI(boss_lady_vashjAI, Vashj->AI())->Phase != 2 || Vashj->isDead())
|
if (!Vashj->isInCombat() || CAST_AI(boss_lady_vashjAI, Vashj->AI())->Phase != 2 || Vashj->isDead())
|
||||||
{
|
{
|
||||||
//call Unsummon()
|
//call Unsummon()
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
m_creature->Kill(m_creature);
|
||||||
}
|
}
|
||||||
move = 1000;
|
move = 1000;
|
||||||
} else move -= diff;
|
} else move -= diff;
|
||||||
|
|||||||
+1
-5
@@ -82,11 +82,7 @@ struct TRINITY_DLL_DECL boss_the_black_stalkerAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
for(std::list<uint64>::iterator i = Striders.begin(); i != Striders.end(); ++i)
|
for(std::list<uint64>::iterator i = Striders.begin(); i != Striders.end(); ++i)
|
||||||
if (Creature *strider = Unit::GetCreature(*m_creature, *i))
|
if (Creature *strider = Unit::GetCreature(*m_creature, *i))
|
||||||
{
|
strider->DisappearAndDie();
|
||||||
strider->SetLootRecipient(NULL);
|
|
||||||
strider->DealDamage(strider,strider->GetMaxHealth(),NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
|
||||||
strider->RemoveCorpse();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateAI(const uint32 diff)
|
void UpdateAI(const uint32 diff)
|
||||||
|
|||||||
+16
-38
@@ -109,12 +109,9 @@ struct TRINITY_DLL_DECL boss_nazanAI : public ScriptedAI
|
|||||||
if (!UpdateVictim())
|
if (!UpdateVictim())
|
||||||
{
|
{
|
||||||
if (UnsummonCheck < diff && m_creature->isAlive())
|
if (UnsummonCheck < diff && m_creature->isAlive())
|
||||||
{
|
m_creature->DisappearAndDie();
|
||||||
m_creature->SetLootRecipient(NULL);
|
else
|
||||||
m_creature->SetVisibility(VISIBILITY_OFF);
|
UnsummonCheck -= diff;
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
|
||||||
m_creature->RemoveCorpse();
|
|
||||||
}else UnsummonCheck -= diff;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -122,7 +119,7 @@ struct TRINITY_DLL_DECL boss_nazanAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
if (Unit *victim = SelectUnit(SELECT_TARGET_RANDOM,0))
|
if (Unit *victim = SelectUnit(SELECT_TARGET_RANDOM,0))
|
||||||
DoCast(victim, SPELL_FIREBALL,true);
|
DoCast(victim, SPELL_FIREBALL,true);
|
||||||
Fireball_Timer = 4000+rand()%3000;
|
Fireball_Timer = urand(4000,7000);
|
||||||
} else Fireball_Timer -= diff;
|
} else Fireball_Timer -= diff;
|
||||||
|
|
||||||
if (flight) // phase 1 - the flight
|
if (flight) // phase 1 - the flight
|
||||||
@@ -192,22 +189,13 @@ struct TRINITY_DLL_DECL boss_vazrudenAI : public ScriptedAI
|
|||||||
|
|
||||||
void EnterCombat(Unit *who)
|
void EnterCombat(Unit *who)
|
||||||
{
|
{
|
||||||
switch(rand()%3)
|
DoScriptText(RAND(SAY_AGGRO_1,SAY_AGGRO_2,SAY_AGGRO_3), m_creature);
|
||||||
{
|
|
||||||
case 0: DoScriptText(SAY_AGGRO_1, m_creature); break;
|
|
||||||
case 1: DoScriptText(SAY_AGGRO_2, m_creature); break;
|
|
||||||
default: DoScriptText(SAY_AGGRO_3, m_creature); break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void KilledUnit(Unit* who)
|
void KilledUnit(Unit* who)
|
||||||
{
|
{
|
||||||
if (who && who->GetEntry()!=ENTRY_VAZRUDEN)
|
if (who && who->GetEntry()!=ENTRY_VAZRUDEN)
|
||||||
switch(rand()%2)
|
DoScriptText(RAND(SAY_KILL_1,SAY_KILL_2), m_creature);
|
||||||
{
|
|
||||||
case 0: DoScriptText(SAY_KILL_1, m_creature); break;
|
|
||||||
default: DoScriptText(SAY_KILL_2, m_creature); break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void JustDied(Unit* who)
|
void JustDied(Unit* who)
|
||||||
@@ -227,10 +215,7 @@ struct TRINITY_DLL_DECL boss_vazrudenAI : public ScriptedAI
|
|||||||
DoScriptText(SAY_WIPE, m_creature);
|
DoScriptText(SAY_WIPE, m_creature);
|
||||||
WipeSaid = true;
|
WipeSaid = true;
|
||||||
}
|
}
|
||||||
m_creature->SetLootRecipient(NULL);
|
m_creature->DisappearAndDie();
|
||||||
m_creature->SetVisibility(VISIBILITY_OFF);
|
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
|
||||||
m_creature->RemoveCorpse();
|
|
||||||
} else UnsummonCheck -= diff;
|
} else UnsummonCheck -= diff;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -283,18 +268,12 @@ struct TRINITY_DLL_DECL boss_vazruden_the_heraldAI : public ScriptedAI
|
|||||||
Creature *Vazruden = Unit::GetCreature(*m_creature, VazrudenGUID);
|
Creature *Vazruden = Unit::GetCreature(*m_creature, VazrudenGUID);
|
||||||
if (Nazan || (Nazan = me->FindNearestCreature(ENTRY_NAZAN, 5000)))
|
if (Nazan || (Nazan = me->FindNearestCreature(ENTRY_NAZAN, 5000)))
|
||||||
{
|
{
|
||||||
Nazan->SetLootRecipient(NULL);
|
Nazan->DisappearAndDie();
|
||||||
Nazan->SetVisibility(VISIBILITY_OFF);
|
|
||||||
Nazan->DealDamage(Nazan, Nazan->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
|
||||||
Nazan->RemoveCorpse();
|
|
||||||
NazanGUID = 0;
|
NazanGUID = 0;
|
||||||
}
|
}
|
||||||
if (Vazruden || (Vazruden = me->FindNearestCreature(ENTRY_VAZRUDEN, 5000)))
|
if (Vazruden || (Vazruden = me->FindNearestCreature(ENTRY_VAZRUDEN, 5000)))
|
||||||
{
|
{
|
||||||
Vazruden->SetLootRecipient(NULL);
|
Vazruden->DisappearAndDie();
|
||||||
Vazruden->SetVisibility(VISIBILITY_OFF);
|
|
||||||
Vazruden->DealDamage(Vazruden, Vazruden->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
|
||||||
Vazruden->RemoveCorpse();
|
|
||||||
VazrudenGUID = 0;
|
VazrudenGUID = 0;
|
||||||
}
|
}
|
||||||
summoned = false;
|
summoned = false;
|
||||||
@@ -307,11 +286,9 @@ struct TRINITY_DLL_DECL boss_vazruden_the_heraldAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
if (!summoned)
|
if (!summoned)
|
||||||
{
|
{
|
||||||
Creature* Vazruden = m_creature->SummonCreature(ENTRY_VAZRUDEN,VazrudenMiddle[0],VazrudenMiddle[1],VazrudenMiddle[2],0,TEMPSUMMON_CORPSE_TIMED_DESPAWN,6000000);
|
if (Creature* Vazruden = m_creature->SummonCreature(ENTRY_VAZRUDEN,VazrudenMiddle[0],VazrudenMiddle[1],VazrudenMiddle[2],0,TEMPSUMMON_CORPSE_TIMED_DESPAWN,6000000))
|
||||||
if (Vazruden)
|
|
||||||
VazrudenGUID = Vazruden->GetGUID();
|
VazrudenGUID = Vazruden->GetGUID();
|
||||||
Creature* Nazan = m_creature->SummonCreature(ENTRY_NAZAN,VazrudenMiddle[0],VazrudenMiddle[1],VazrudenMiddle[2],0,TEMPSUMMON_CORPSE_TIMED_DESPAWN,6000000);
|
if (Creature* Nazan = m_creature->SummonCreature(ENTRY_NAZAN,VazrudenMiddle[0],VazrudenMiddle[1],VazrudenMiddle[2],0,TEMPSUMMON_CORPSE_TIMED_DESPAWN,6000000))
|
||||||
if (Nazan)
|
|
||||||
NazanGUID = Nazan->GetGUID();
|
NazanGUID = Nazan->GetGUID();
|
||||||
summoned = true;
|
summoned = true;
|
||||||
m_creature->SetVisibility(VISIBILITY_OFF);
|
m_creature->SetVisibility(VISIBILITY_OFF);
|
||||||
@@ -395,11 +372,12 @@ struct TRINITY_DLL_DECL boss_vazruden_the_heraldAI : public ScriptedAI
|
|||||||
EnterEvadeMode();
|
EnterEvadeMode();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
m_creature->SummonGameObject(ENTRY_REINFORCED_FEL_IRON_CHEST,VazrudenMiddle[0],VazrudenMiddle[1],VazrudenMiddle[2],0,0,0,0,0,0);
|
m_creature->SummonGameObject(ENTRY_REINFORCED_FEL_IRON_CHEST,VazrudenMiddle[0],VazrudenMiddle[1],VazrudenMiddle[2],0,0,0,0,0,0);
|
||||||
m_creature->SetLootRecipient(NULL);
|
m_creature->SetLootRecipient(NULL); // don't think this is necessary..
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
m_creature->Kill(m_creature);
|
||||||
}
|
}
|
||||||
check = 2000;
|
check = 2000;
|
||||||
}else check -= diff;
|
}else check -= diff;
|
||||||
@@ -416,7 +394,7 @@ struct TRINITY_DLL_DECL mob_hellfire_sentryAI : public ScriptedAI
|
|||||||
|
|
||||||
void Reset()
|
void Reset()
|
||||||
{
|
{
|
||||||
KidneyShot_Timer = 3000+rand()%4000;
|
KidneyShot_Timer = urand(3000,7000);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnterCombat(Unit* who) {}
|
void EnterCombat(Unit* who) {}
|
||||||
|
|||||||
@@ -173,11 +173,9 @@ struct TRINITY_DLL_DECL advisorbase_ai : public ScriptedAI
|
|||||||
|
|
||||||
//reset encounter
|
//reset encounter
|
||||||
if (m_pInstance && (m_pInstance->GetData(DATA_KAELTHASEVENT) == 1 || m_pInstance->GetData(DATA_KAELTHASEVENT) == 3))
|
if (m_pInstance && (m_pInstance->GetData(DATA_KAELTHASEVENT) == 1 || m_pInstance->GetData(DATA_KAELTHASEVENT) == 3))
|
||||||
{
|
|
||||||
if (Creature *Kaelthas = Unit::GetCreature((*m_creature), m_pInstance->GetData64(DATA_KAELTHAS)))
|
if (Creature *Kaelthas = Unit::GetCreature((*m_creature), m_pInstance->GetData64(DATA_KAELTHAS)))
|
||||||
Kaelthas->AI()->EnterEvadeMode();
|
Kaelthas->AI()->EnterEvadeMode();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
void MoveInLineOfSight(Unit *who)
|
void MoveInLineOfSight(Unit *who)
|
||||||
{
|
{
|
||||||
@@ -424,12 +422,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
|
|||||||
|
|
||||||
void KilledUnit()
|
void KilledUnit()
|
||||||
{
|
{
|
||||||
switch(rand()%3)
|
DoScriptText(RAND(SAY_SLAY1,SAY_SLAY2,SAY_SLAY3), m_creature);
|
||||||
{
|
|
||||||
case 0: DoScriptText(SAY_SLAY1, m_creature); break;
|
|
||||||
case 1: DoScriptText(SAY_SLAY2, m_creature); break;
|
|
||||||
case 2: DoScriptText(SAY_SLAY3, m_creature); break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void JustSummoned(Creature* pSummoned)
|
void JustSummoned(Creature* pSummoned)
|
||||||
@@ -461,7 +454,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
|
|||||||
for(uint8 i = 0; i < MAX_ADVISORS; ++i)
|
for(uint8 i = 0; i < MAX_ADVISORS; ++i)
|
||||||
{
|
{
|
||||||
if (Unit* pAdvisor = Unit::GetUnit((*m_creature), m_auiAdvisorGuid[i]))
|
if (Unit* pAdvisor = Unit::GetUnit((*m_creature), m_auiAdvisorGuid[i]))
|
||||||
pAdvisor->DealDamage(pAdvisor, pAdvisor->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
pAdvisor->Kill(pAdvisor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -486,7 +479,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
|
|||||||
|
|
||||||
//start advisor within 7 seconds
|
//start advisor within 7 seconds
|
||||||
Phase_Timer = 7000;
|
Phase_Timer = 7000;
|
||||||
PhaseSubphase++;
|
++PhaseSubphase;
|
||||||
} else Phase_Timer -= diff;
|
} else Phase_Timer -= diff;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -506,7 +499,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
|
|||||||
Advisor->AI()->AttackStart(target);
|
Advisor->AI()->AttackStart(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
PhaseSubphase++;
|
++PhaseSubphase;
|
||||||
} else Phase_Timer -= diff;
|
} else Phase_Timer -= diff;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -520,7 +513,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
|
|||||||
|
|
||||||
//start advisor within 12.5 seconds
|
//start advisor within 12.5 seconds
|
||||||
Phase_Timer = 12500;
|
Phase_Timer = 12500;
|
||||||
PhaseSubphase++;
|
++PhaseSubphase;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -540,7 +533,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
|
|||||||
Advisor->AI()->AttackStart(target);
|
Advisor->AI()->AttackStart(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
PhaseSubphase++;
|
++PhaseSubphase;
|
||||||
} else Phase_Timer -= diff;
|
} else Phase_Timer -= diff;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -554,7 +547,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
|
|||||||
|
|
||||||
//start advisor within 7 seconds
|
//start advisor within 7 seconds
|
||||||
Phase_Timer = 7000;
|
Phase_Timer = 7000;
|
||||||
PhaseSubphase++;
|
++PhaseSubphase;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -574,7 +567,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
|
|||||||
Advisor->AI()->AttackStart(target);
|
Advisor->AI()->AttackStart(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
PhaseSubphase++;
|
++PhaseSubphase;
|
||||||
} else Phase_Timer -= diff;
|
} else Phase_Timer -= diff;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -588,7 +581,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
|
|||||||
|
|
||||||
//start advisor within 8.4 seconds
|
//start advisor within 8.4 seconds
|
||||||
Phase_Timer = 8400;
|
Phase_Timer = 8400;
|
||||||
PhaseSubphase++;
|
++PhaseSubphase;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -609,7 +602,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
|
|||||||
}
|
}
|
||||||
|
|
||||||
Phase_Timer = 3000;
|
Phase_Timer = 3000;
|
||||||
PhaseSubphase++;
|
++PhaseSubphase;
|
||||||
} else Phase_Timer -= diff;
|
} else Phase_Timer -= diff;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -761,7 +754,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
|
|||||||
DoCast(pUnit, SPELL_FLAME_STRIKE);
|
DoCast(pUnit, SPELL_FLAME_STRIKE);
|
||||||
|
|
||||||
FlameStrike_Timer = 30000;
|
FlameStrike_Timer = 30000;
|
||||||
}FlameStrike_Timer -= diff;
|
} else FlameStrike_Timer -= diff;
|
||||||
|
|
||||||
if (MindControl_Timer < diff)
|
if (MindControl_Timer < diff)
|
||||||
{
|
{
|
||||||
@@ -773,18 +766,14 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
|
|||||||
}
|
}
|
||||||
|
|
||||||
MindControl_Timer = 60000;
|
MindControl_Timer = 60000;
|
||||||
}MindControl_Timer -= diff;
|
} else MindControl_Timer -= diff;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Phoenix_Timer
|
//Phoenix_Timer
|
||||||
if (Phoenix_Timer < diff)
|
if (Phoenix_Timer < diff)
|
||||||
{
|
{
|
||||||
DoCast(m_creature, SPELL_PHOENIX_ANIMATION);
|
DoCast(m_creature, SPELL_PHOENIX_ANIMATION);
|
||||||
switch(rand()%2)
|
DoScriptText(RAND(SAY_SUMMON_PHOENIX1,SAY_SUMMON_PHOENIX2), m_creature);
|
||||||
{
|
|
||||||
case 0: DoScriptText(SAY_SUMMON_PHOENIX1, m_creature); break;
|
|
||||||
case 1: DoScriptText(SAY_SUMMON_PHOENIX2, m_creature); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
Phoenix_Timer = 60000;
|
Phoenix_Timer = 60000;
|
||||||
} else Phoenix_Timer -= diff;
|
} else Phoenix_Timer -= diff;
|
||||||
@@ -827,8 +816,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
|
|||||||
if (PyrosCasted < 3)
|
if (PyrosCasted < 3)
|
||||||
{
|
{
|
||||||
DoCast(m_creature->getVictim(), SPELL_PYROBLAST);
|
DoCast(m_creature->getVictim(), SPELL_PYROBLAST);
|
||||||
PyrosCasted++;
|
++PyrosCasted;
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -890,11 +878,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
switch(rand()%2)
|
DoScriptText(RAND(SAY_GRAVITYLAPSE1,SAY_GRAVITYLAPSE2), m_creature);
|
||||||
{
|
|
||||||
case 0: DoScriptText(SAY_GRAVITYLAPSE1, m_creature); break;
|
|
||||||
case 1: DoScriptText(SAY_GRAVITYLAPSE2, m_creature); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 2) At that point he will put a Gravity Lapse debuff on everyone
|
// 2) At that point he will put a Gravity Lapse debuff on everyone
|
||||||
for (i = m_creature->getThreatManager().getThreatList().begin(); i != m_creature->getThreatManager().getThreatList().end(); ++i)
|
for (i = m_creature->getThreatManager().getThreatList().begin(); i != m_creature->getThreatManager().getThreatList().end(); ++i)
|
||||||
@@ -916,7 +900,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
GravityLapse_Timer = 10000;
|
GravityLapse_Timer = 10000;
|
||||||
GravityLapse_Phase++;
|
++GravityLapse_Phase;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
@@ -925,7 +909,7 @@ struct TRINITY_DLL_DECL boss_kaelthasAI : public ScriptedAI
|
|||||||
DoCast(m_creature, SPELL_NETHER_VAPOR);
|
DoCast(m_creature, SPELL_NETHER_VAPOR);
|
||||||
|
|
||||||
GravityLapse_Timer = 20000;
|
GravityLapse_Timer = 20000;
|
||||||
GravityLapse_Phase++;
|
++GravityLapse_Phase;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
@@ -1334,7 +1318,7 @@ struct TRINITY_DLL_DECL mob_kael_flamestrikeAI : public ScriptedAI
|
|||||||
{
|
{
|
||||||
m_creature->InterruptNonMeleeSpells(false);
|
m_creature->InterruptNonMeleeSpells(false);
|
||||||
DoCast(m_creature, SPELL_FLAME_STRIKE_DMG);
|
DoCast(m_creature, SPELL_FLAME_STRIKE_DMG);
|
||||||
}else m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
} else m_creature->Kill(m_creature);
|
||||||
|
|
||||||
KillSelf = true;
|
KillSelf = true;
|
||||||
Timer = 1000;
|
Timer = 1000;
|
||||||
|
|||||||
@@ -740,7 +740,7 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32
|
|||||||
sLog.outErrorDb("CreatureEventAI: Event %d ACTION_T_DIE on dead creature. Creature %d", EventId, m_creature->GetEntry());
|
sLog.outErrorDb("CreatureEventAI: Event %d ACTION_T_DIE on dead creature. Creature %d", EventId, m_creature->GetEntry());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(),NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
|
m_creature->Kill(m_creature);
|
||||||
break;
|
break;
|
||||||
case ACTION_T_ZONE_COMBAT_PULSE:
|
case ACTION_T_ZONE_COMBAT_PULSE:
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user