From 99c63e86ae7b7ced1f2781b5ccf551e7e2cf3216 Mon Sep 17 00:00:00 2001 From: Souler Date: Thu, 22 Sep 2011 22:14:52 +0200 Subject: [PATCH] Scripts/Ulduar: Make XT-002 and Ignis enter evade mode if pulled out from their fight areas. Also implement a default case for EnterEvadeIfOutOfCombatArea. --- src/server/game/AI/ScriptedAI/ScriptedCreature.cpp | 8 +++++--- src/server/scripts/Northrend/Ulduar/ulduar/boss_ignis.cpp | 2 ++ src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp | 2 ++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp index 8443c4b1bf..ecdae923a9 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp +++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp @@ -454,9 +454,11 @@ bool ScriptedAI::EnterEvadeIfOutOfCombatArea(uint32 const diff) if (x > 3218.86f && x < 3275.69f && y < 572.40f && y > 484.68f) return false; break; - default: - sLog->outError("TSCR: EnterEvadeIfOutOfCombatArea used for creature entry %u, but does not have any definition.", me->GetEntry()); - return false; + default: // For most of creatures that certain area is their home area. + sLog->outDetail("TSCR: EnterEvadeIfOutOfCombatArea used for creature entry %u, but does not have any definition. Using the default one.", me->GetEntry()); + uint32 homeAreaId = me->GetMap()->GetAreaId(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY(), me->GetHomePosition().GetPositionZ()); + if(me->GetAreaId() == homeAreaId) + return false; } EnterEvadeMode(); diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_ignis.cpp index 53c19b00ee..2331cc9a68 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_ignis.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_ignis.cpp @@ -273,6 +273,8 @@ class boss_ignis : public CreatureScript } DoMeleeAttackIfReady(); + + EnterEvadeIfOutOfCombatArea(diff); } private: diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp index e012cb4ca4..087f74b654 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp @@ -306,6 +306,8 @@ class boss_xt002 : public CreatureScript if (_phase == 1) DoMeleeAttackIfReady(); + + EnterEvadeIfOutOfCombatArea(diff); } void PassengerBoarded(Unit* who, int8 /*seatId*/, bool apply)