diff options
4 files changed, 24 insertions, 14 deletions
| diff --git a/src/server/game/AI/CreatureAIImpl.h b/src/server/game/AI/CreatureAIImpl.h index f3e7de15518..f92fb316377 100755 --- a/src/server/game/AI/CreatureAIImpl.h +++ b/src/server/game/AI/CreatureAIImpl.h @@ -544,17 +544,6 @@ inline bool CreatureAI::UpdateVictim()      return true;  } -/* -inline bool CreatureAI::UpdateVictim() -{ -    if (!me->isInCombat()) -        return false; -    if (Unit *victim = me->SelectVictim()) -        AttackStart(victim); -    return me->getVictim(); -} -*/ -  inline bool CreatureAI::_EnterEvadeMode()  {      if (!me->isAlive()) diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp index 553781913aa..f1f71bf31aa 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp @@ -216,7 +216,7 @@ class boss_devourer_of_souls : public CreatureScript                      instance->DoCompleteAchievement(ACHIEV_THREE_FACED);                  int32 entryIndex; -                if (instance->GetData(DATA_TEAM_IN_INSTANCE) == TEAM_ALLIANCE) +                if (instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)                      entryIndex = 0;                  else                      entryIndex = 1; diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp index 6305a84a312..578fa2d1ec5 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp @@ -46,7 +46,7 @@ class instance_forge_of_souls : public InstanceMapScript                  Map::PlayerList const &players = instance->GetPlayers();                  if (!players.isEmpty())                      if (Player* player = players.begin()->getSource()) -                        teamInInstance = player->GetTeamId(); +                        teamInInstance = player->GetTeam();                  switch (creature->GetEntry())                  { @@ -56,6 +56,18 @@ class instance_forge_of_souls : public InstanceMapScript                      case CREATURE_DEVOURER:                          devourerOfSouls = creature->GetGUID();                          break; +                    case NPC_SYLVANAS_PART1: +                        if (teamInInstance == ALLIANCE) +                            creature->UpdateEntry(NPC_JAINA_PART1, ALLIANCE); +                        break; +                    case NPC_LORALEN: +                        if (teamInInstance == ALLIANCE) +                            creature->UpdateEntry(NPC_ELANDRA, ALLIANCE); +                        break; +                    case NPC_KALIRA: +                        if (teamInInstance == ALLIANCE) +                            creature->UpdateEntry(NPC_KORELN, ALLIANCE); +                        break;                  }              } diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp index af49b457338..cd436e1dc8f 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp @@ -93,6 +93,7 @@ enum Actions      ACTION_START_INTRO      = 1,      ACTION_START_RIMEFANG   = 2,      ACTION_START_OUTRO      = 3, +    ACTION_END_COMBAT       = 4,  };  #define GUID_HOARFROST 1 @@ -128,8 +129,10 @@ class boss_tyrannus : public CreatureScript              {                  if (!instance || static_cast<InstanceMap*>(me->GetMap())->GetScriptId() != GetScriptId(PoSScriptName))                      me->IsAIEnabled = false; -                else if (!me->isDead()) +                else if (instance->GetBossState(DATA_TYRANNUS) != DONE)                      Reset(); +                else +                    me->DespawnOrUnsummon();              }              void Reset() @@ -183,6 +186,10 @@ class boss_tyrannus : public CreatureScript                  // Prevent corpse despawning                  if (TempSummon* summ = me->ToTempSummon())                      summ->SetTempSummonType(TEMPSUMMON_DEAD_DESPAWN); + +                // Stop combat for Rimefang +                if (Creature* rimefang = GetRimefang()) +                    rimefang->AI()->DoAction(ACTION_END_COMBAT);              }              void DoAction(const int32 actionId) @@ -306,6 +313,8 @@ class boss_rimefang : public CreatureScript                      _events.ScheduleEvent(EVENT_MOVE_NEXT, 500, 0, PHASE_COMBAT);                      _events.ScheduleEvent(EVENT_ICY_BLAST, 15000, 0, PHASE_COMBAT);                  } +                else if (actionId == ACTION_END_COMBAT) +                    _EnterEvadeMode();              }              void SetGUID(const uint64& guid, int32 type) | 
