diff options
author | maximius <none@none> | 2009-10-31 00:05:50 -0700 |
---|---|---|
committer | maximius <none@none> | 2009-10-31 00:05:50 -0700 |
commit | ad12344d6a071a257d71d4161e3c9b83b3e952cb (patch) | |
tree | 6a9c369899a4f2c3d427b81565b7db7628c4688f /src | |
parent | 08f99a7794bfa8c19efa4b52a26c166575f9d6d4 (diff) |
*Ulduar - fix several cases of incorrect targeting and spells.
--HG--
branch : trunk
Diffstat (limited to 'src')
4 files changed, 41 insertions, 54 deletions
diff --git a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_auriaya.cpp b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_auriaya.cpp index 9338097f5a1..9ce17808966 100644 --- a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_auriaya.cpp +++ b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_auriaya.cpp @@ -20,8 +20,10 @@ #include "ulduar.h" //boss_auriaya -#define SPELL_TERRIFYING_SCREECH 64386 -#define SPELL_SONIC_BOOM 38897 +#define SPELL_TERRIFYING_SCREECH 64386 +#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(); } diff --git a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_freya.cpp b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_freya.cpp index 8ac121d8e14..10b74528fcd 100644 --- a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_freya.cpp +++ b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_freya.cpp @@ -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(); - } diff --git a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_ignis.cpp b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_ignis.cpp index 33d86cd2bd5..7a7203a4c76 100644 --- a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_ignis.cpp +++ b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_ignis.cpp @@ -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; diff --git a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_razorscale.cpp b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_razorscale.cpp index 2dd753e6b85..34fa7820208 100644 --- a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_razorscale.cpp +++ b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_razorscale.cpp @@ -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; } |