diff options
Diffstat (limited to 'src/server/scripts')
| -rw-r--r-- | src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp | 6 | ||||
| -rw-r--r-- | src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp | 48 | 
2 files changed, 32 insertions, 22 deletions
| diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp index 6733200e44d..4927666073b 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp @@ -29,6 +29,7 @@ EndScriptData */  #include "scarlet_monastery.h"  #include "LFGMgr.h"  #include "Player.h" +#include "Group.h"  #include "SpellInfo.h"  //this texts are already used by 3975 and 3976 @@ -576,10 +577,7 @@ public:              Map::PlayerList const& players = me->GetMap()->GetPlayers();              if (!players.isEmpty()) -                for (Map::PlayerList::const_iterator i = players.begin(); i != players.end(); ++i) -                    if (Player* player = i->getSource()) -                        if (player->IsAtGroupRewardDistance(me)) -                            sLFGMgr->RewardDungeonDoneFor(285, player); +                sLFGMgr->FinishDungeon(players.begin()->getSource()->GetGroup()->GetGUID(), 285);          }          void SpellHit(Unit* caster, const SpellInfo* spell) diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp index 32d4c621450..ba554c3703d 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp @@ -29,7 +29,7 @@ enum Yells      SAY_KILL_PLAYER     = 6  }; -enum eAIs +enum AIs  {      AI_MELEE    = 0,      AI_RANGED   = 1, @@ -1484,8 +1484,11 @@ class mob_toc_hunter : public CreatureScript                              events.ScheduleEvent(EVENT_STEADY_SHOT, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));                              return;                          case EVENT_WING_CLIP: -                            if (me->GetDistance2d(me->getVictim()) < 6.0f) -                                DoCastVictim(SPELL_WING_CLIP); +                            if (Unit* target = me->getVictim()) +                            { +                                if (me->GetDistance2d(target) < 6.0f) +                                    DoCast(target, SPELL_WING_CLIP); +                            }                              events.ScheduleEvent(EVENT_WING_CLIP, urand(15*IN_MILLISECONDS, 25*IN_MILLISECONDS));                              return;                          case EVENT_WYVERN_STING: @@ -1670,13 +1673,16 @@ class mob_toc_warrior : public CreatureScript                              events.ScheduleEvent(EVENT_SUNDER_ARMOR, urand(2*IN_MILLISECONDS, 5*IN_MILLISECONDS));                              return;                          case EVENT_SHATTERING_THROW: -                            if (me->getVictim()->HasAuraWithMechanic(1<<MECHANIC_IMMUNE_SHIELD)) +                            if (Unit* target = me->getVictim())                              { -                                DoCastVictim(SPELL_SHATTERING_THROW); -                                events.RescheduleEvent(EVENT_SHATTERING_THROW, 5*MINUTE*IN_MILLISECONDS); +                                if (target->HasAuraWithMechanic(1 << MECHANIC_IMMUNE_SHIELD)) +                                { +                                    DoCast(target, SPELL_SHATTERING_THROW); +                                    events.RescheduleEvent(EVENT_SHATTERING_THROW, 5*MINUTE*IN_MILLISECONDS); +                                    return; +                                }                              } -                            else -                                events.RescheduleEvent(EVENT_SHATTERING_THROW, 3*IN_MILLISECONDS); +                            events.RescheduleEvent(EVENT_SHATTERING_THROW, 3*IN_MILLISECONDS);                              return;                          case EVENT_RETALIATION:                              if (HealthBelowPct(50)) @@ -1746,13 +1752,16 @@ class mob_toc_dk : public CreatureScript                              events.ScheduleEvent(EVENT_DEATH_COIL, urand(5*IN_MILLISECONDS, 15*IN_MILLISECONDS));                              return;                          case EVENT_DEATH_GRIP: -                            if (me->IsInRange(me->getVictim(), 5.0f, 30.0f, false)) +                            if (Unit* target = me->getVictim())                              { -                                DoCast(me->getVictim(), SPELL_DEATH_GRIP); -                                events.RescheduleEvent(EVENT_DEATH_GRIP, 35*IN_MILLISECONDS); +                                if (me->IsInRange(target, 5.0f, 30.0f, false)) +                                { +                                    DoCast(target, SPELL_DEATH_GRIP); +                                    events.RescheduleEvent(EVENT_DEATH_GRIP, 35*IN_MILLISECONDS); +                                    return; +                                }                              } -                            else -                                events.RescheduleEvent(EVENT_DEATH_GRIP, 3*IN_MILLISECONDS); +                            events.RescheduleEvent(EVENT_DEATH_GRIP, 3*IN_MILLISECONDS);                              return;                          case EVENT_FROST_STRIKE:                              DoCastVictim(SPELL_FROST_STRIKE); @@ -1862,13 +1871,16 @@ class mob_toc_rogue : public CreatureScript                                  events.RescheduleEvent(EVENT_BLADE_FLURRY, 5*IN_MILLISECONDS);                              return;                          case EVENT_SHADOWSTEP: -                            if (me->IsInRange(me->getVictim(), 10.0f, 40.0f, false)) +                            if (Unit* target = me->getVictim())                              { -                                DoCast(me->getVictim(), SPELL_SHADOWSTEP); -                                events.RescheduleEvent(EVENT_SHADOWSTEP, 30*IN_MILLISECONDS); +                                if (me->IsInRange(target, 10.0f, 40.0f, false)) +                                { +                                    DoCast(target, SPELL_SHADOWSTEP); +                                    events.RescheduleEvent(EVENT_SHADOWSTEP, 30*IN_MILLISECONDS); +                                    return; +                                }                              } -                            else -                                events.RescheduleEvent(EVENT_SHADOWSTEP, 5*IN_MILLISECONDS); +                            events.RescheduleEvent(EVENT_SHADOWSTEP, 5*IN_MILLISECONDS);                              return;                          case EVENT_HEMORRHAGE:                              DoCastVictim(SPELL_HEMORRHAGE); | 
