aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2020-03-02 20:43:52 +0100
committerjackpoz <giacomopoz@gmail.com>2020-03-02 20:43:52 +0100
commit69809d12031d055d8d0cffb5a187d9af09dd0efe (patch)
tree870249ea4815a9ca999f5b68ac53fec0a5cc6a63
parent817ae5bca6db14c9b3db7d5268511525e0cb4105 (diff)
Core/AI: Fix remaining charming issue
Make creatures evade when a charming expires and they cannot attack the charmer (i.e. charmer with .gm on)
-rw-r--r--src/server/game/AI/CreatureAI.cpp3
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.cpp3
2 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/AI/CreatureAI.cpp b/src/server/game/AI/CreatureAI.cpp
index 75f45395e4f..e028665e843 100644
--- a/src/server/game/AI/CreatureAI.cpp
+++ b/src/server/game/AI/CreatureAI.cpp
@@ -62,6 +62,9 @@ void CreatureAI::OnCharmed(bool isNew)
}
me->LastCharmerGUID.Clear();
+
+ if (!me->IsInCombat())
+ EnterEvadeMode(EVADE_REASON_NO_HOSTILES);
}
UnitAI::OnCharmed(isNew);
diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp
index 4bc9aeafe0c..f09db2f1c68 100644
--- a/src/server/game/AI/SmartScripts/SmartAI.cpp
+++ b/src/server/game/AI/SmartScripts/SmartAI.cpp
@@ -706,6 +706,9 @@ void SmartAI::OnCharmed(bool /*isNew*/)
if (Unit* lastCharmer = ObjectAccessor::GetUnit(*me, me->LastCharmerGUID))
me->EngageWithTarget(lastCharmer);
me->LastCharmerGUID.Clear();
+
+ if (!me->IsInCombat())
+ EnterEvadeMode(EVADE_REASON_NO_HOSTILES);
}
}