*Ulduar - fix several cases of incorrect targeting and spells.
--HG-- branch : trunk
This commit is contained in:
@@ -21,7 +21,9 @@
|
||||
|
||||
//boss_auriaya
|
||||
#define SPELL_TERRIFYING_SCREECH 64386
|
||||
#define SPELL_SONIC_BOOM 38897
|
||||
#define SPELL_SETINEL_BLAST 64679
|
||||
#define SPELL_SONIC_SCREECH 64422
|
||||
#define SPELL_SUMMON_SWARMING_GUARDIAN 64397
|
||||
//wrong text ids. correct are beetwen -1000000 AND -1999999
|
||||
//beetwen -2000000 and -2999999 are custom texts so wtf?
|
||||
#define SAY_AGGRO -2615016
|
||||
@@ -37,12 +39,12 @@ struct TRINITY_DLL_DECL boss_auriaya_AI : public BossAI
|
||||
ScriptedInstance* m_pInstance;
|
||||
|
||||
uint32 TERRIFYING_SCREECH_Timer;
|
||||
uint32 SONIC_BOOM_Timer;
|
||||
uint32 SONIC_SCREECH_Timer;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
TERRIFYING_SCREECH_Timer = 0;
|
||||
SONIC_BOOM_Timer = 2000;
|
||||
TERRIFYING_SCREECH_Timer = 180000;
|
||||
SONIC_SCREECH_Timer = 30000;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* who)
|
||||
@@ -71,16 +73,16 @@ struct TRINITY_DLL_DECL boss_auriaya_AI : public BossAI
|
||||
|
||||
if (TERRIFYING_SCREECH_Timer <= diff)
|
||||
{
|
||||
DoCast(m_creature,SPELL_TERRIFYING_SCREECH);
|
||||
DoCast(SPELL_TERRIFYING_SCREECH);
|
||||
DoScriptText(SAY_SLAY_1, m_creature);
|
||||
TERRIFYING_SCREECH_Timer = 360000;
|
||||
TERRIFYING_SCREECH_Timer = 180000;
|
||||
} else TERRIFYING_SCREECH_Timer -= diff;
|
||||
|
||||
if (SONIC_BOOM_Timer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(),SPELL_SONIC_BOOM);
|
||||
SONIC_BOOM_Timer = 20000;
|
||||
} else SONIC_BOOM_Timer -= diff;
|
||||
DoCastVictim(SPELL_SONIC_SCREECH);
|
||||
SONIC_SCREECH_Timer = 30000;
|
||||
} else SONIC_SCREECH_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
@@ -67,9 +67,7 @@ struct TRINITY_DLL_DECL boss_freyaAI : public BossAI
|
||||
DoMeleeAttackIfReady();
|
||||
|
||||
EnterEvadeIfOutOfCombatArea(diff);
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
CreatureAI* GetAI_boss_freya(Creature* pCreature)
|
||||
@@ -84,5 +82,4 @@ void AddSC_boss_freya()
|
||||
newscript->Name = "boss_freya";
|
||||
newscript->GetAI = &GetAI_boss_freya;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ struct TRINITY_DLL_DECL boss_ignis_AI : public BossAI
|
||||
|
||||
if (SCORCH_Timer <= diff)
|
||||
{
|
||||
DoCastVictim(SPELL_SCORCH);
|
||||
DoCast(SPELL_SCORCH);
|
||||
SCORCH_Timer = 20000;
|
||||
} else SCORCH_Timer -= diff;
|
||||
|
||||
|
||||
@@ -17,10 +17,8 @@
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
Name: razorscale
|
||||
%Complete: 90
|
||||
Comment: Made by Epsik from WoW Arthas wow.dsl.net.pk
|
||||
Category:
|
||||
SDName: razorscale
|
||||
SD%Complete: 65
|
||||
EndScriptData */
|
||||
|
||||
#include "precompiled.h"
|
||||
@@ -41,16 +39,12 @@ EndScriptData */
|
||||
#define SPELL_FLAMEBREATH 63317
|
||||
#define SPELL_FUSEARMOR 64771
|
||||
#define SPELL_DEVOURINGFLAME 63014
|
||||
#define SPELL_KNOCK_AWAY 19633
|
||||
|
||||
#define SPELL_BELLOWINGROAR 18431
|
||||
#define SPELL_HEATED_GROUND 22191
|
||||
|
||||
#define SPELL_SUMMONADDS 17646
|
||||
|
||||
#define CREATURE_ADDS 33846
|
||||
|
||||
static float MovementLocations[4][3]=
|
||||
static float MovementLocations[4][3] =
|
||||
{
|
||||
{607.7, -281.9, 408.6},
|
||||
{602.0, -245.5, 424.7},
|
||||
@@ -58,7 +52,7 @@ static float MovementLocations[4][3]=
|
||||
{624.1, -251.8, 426.1}
|
||||
};
|
||||
|
||||
static float SpawnLocations[4][3]=
|
||||
static float SpawnLocations[4][3] =
|
||||
{
|
||||
{602.0, -248.1, 391.2},
|
||||
{624.4, -232-4, 391.1},
|
||||
@@ -77,9 +71,7 @@ struct TRINITY_DLL_DECL boss_razorscaleAI : public BossAI
|
||||
uint32 DEVOURINGFLAMETimer;
|
||||
uint32 MovementTimer;
|
||||
uint32 SummonAddsTimer;
|
||||
uint32 BellowingRoarTimer;
|
||||
uint32 WingBuffetTimer;
|
||||
uint32 KnockAwayTimer;
|
||||
uint32 FireballTimer;
|
||||
|
||||
bool InitialSpawn;
|
||||
@@ -93,9 +85,7 @@ struct TRINITY_DLL_DECL boss_razorscaleAI : public BossAI
|
||||
FUSEARMORTimer = 15000;
|
||||
MovementTimer = 3000;
|
||||
SummonAddsTimer = 45000;
|
||||
BellowingRoarTimer = 30000;
|
||||
WingBuffetTimer = 17000;
|
||||
KnockAwayTimer = 15000;
|
||||
FireballTimer = 18000;
|
||||
|
||||
InitialSpawn = true;
|
||||
@@ -158,47 +148,36 @@ struct TRINITY_DLL_DECL boss_razorscaleAI : public BossAI
|
||||
{
|
||||
if (FlameBreathTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_FLAMEBREATH);
|
||||
DoCastVictim(SPELL_FLAMEBREATH);
|
||||
FlameBreathTimer = 15000;
|
||||
} else FlameBreathTimer -= diff;
|
||||
|
||||
if (DEVOURINGFLAMETimer <= diff)
|
||||
{
|
||||
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
if (!m_creature->HasInArc(M_PI, pTarget))
|
||||
DoCast(pTarget, SPELL_DEVOURINGFLAME);
|
||||
std::list<Unit*> pTargets;
|
||||
SelectTargetList(pTargets, 10, SELECT_TARGET_RANDOM, 100, true);
|
||||
for (std::list<Unit*>::iterator i = pTargets.begin(); i != pTargets.end(); ++i)
|
||||
if (!m_creature->HasInArc(M_PI, *i))
|
||||
{
|
||||
DoCast(*i, SPELL_DEVOURINGFLAME);
|
||||
break;
|
||||
}
|
||||
|
||||
DEVOURINGFLAMETimer = 10000;
|
||||
} else DEVOURINGFLAMETimer -= diff;
|
||||
|
||||
if (FUSEARMORTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_FUSEARMOR);
|
||||
DoCastVictim(SPELL_FUSEARMOR);
|
||||
FUSEARMORTimer = 10000;
|
||||
} else FUSEARMORTimer -= diff;
|
||||
|
||||
if (WingBuffetTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_WINGBUFFET);
|
||||
DoCast(SPELL_WINGBUFFET);
|
||||
WingBuffetTimer = urand(7000,14000);
|
||||
} else WingBuffetTimer -= diff;
|
||||
|
||||
if (KnockAwayTimer <= diff)
|
||||
{
|
||||
if (urand(0,99) < 30)
|
||||
DoCast(m_creature->getVictim(), SPELL_KNOCK_AWAY);
|
||||
KnockAwayTimer = 15000;
|
||||
} else KnockAwayTimer -= diff;
|
||||
|
||||
if (Phase == 3)
|
||||
{
|
||||
if (BellowingRoarTimer <= diff)
|
||||
{
|
||||
DoCast(m_creature->getVictim(), SPELL_BELLOWINGROAR);
|
||||
BellowingRoarTimer = 30000;
|
||||
} else BellowingRoarTimer -= diff;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
@@ -211,7 +190,14 @@ struct TRINITY_DLL_DECL boss_razorscaleAI : public BossAI
|
||||
|
||||
if (FireballTimer <= diff)
|
||||
{
|
||||
DoCast(SelectUnit(SELECT_TARGET_RANDOM, 0), SPELL_FIREBALL);
|
||||
std::list<Unit*> pTargets;
|
||||
SelectTargetList(pTargets, 10, SELECT_TARGET_RANDOM, 100, true);
|
||||
for (std::list<Unit*>::iterator i = pTargets.begin(); i != pTargets.end(); ++i)
|
||||
if (!m_creature->HasInArc(M_PI, *i))
|
||||
{
|
||||
DoCast(*i, SPELL_FIREBALL);
|
||||
break;
|
||||
}
|
||||
|
||||
FireballTimer = 18000;
|
||||
} else FireballTimer -= diff;
|
||||
@@ -221,7 +207,8 @@ struct TRINITY_DLL_DECL boss_razorscaleAI : public BossAI
|
||||
if (urand(0,99) < 30)
|
||||
{
|
||||
DoScriptText(EMOTE_BREATH, m_creature);
|
||||
DoCast(m_creature->getVictim(), SPELL_FLAMEBUFFET);
|
||||
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
|
||||
DoCast(pTarget, SPELL_FLAMEBUFFET);
|
||||
}
|
||||
else ChangePosition();
|
||||
|
||||
@@ -246,8 +233,9 @@ struct TRINITY_DLL_DECL boss_razorscaleAI : public BossAI
|
||||
for (uint32 i = 0; i < 4; ++i)
|
||||
{
|
||||
uint8 random = urand(0,3);
|
||||
if (Creature* Add = m_creature->SummonCreature(CREATURE_ADDS, SpawnLocations[random][0], SpawnLocations[random][1], SpawnLocations[random][2], 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000))
|
||||
Add->AI()->AttackStart(SelectTarget(SELECT_TARGET_RANDOM, 0, 0, true));
|
||||
if (Creature *pAdd = m_creature->SummonCreature(CREATURE_ADDS, SpawnLocations[random][0], SpawnLocations[random][1], SpawnLocations[random][2], 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000))
|
||||
if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 200, true))
|
||||
pAdd->AI()->AttackStart(pTarget);
|
||||
}
|
||||
SummonAddsTimer = 45000;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user