diff options
| author | mik1893 <michele.roscelli@gmail.com> | 2015-07-15 18:43:19 +0200 |
|---|---|---|
| committer | DDuarte <dnpd.dd@gmail.com> | 2015-07-19 01:43:05 +0100 |
| commit | fa0e5289a87fea15fac2ab0c2ace26ee06288174 (patch) | |
| tree | 911637b91b6eb8560c9df986c5480fcfb6039598 /src/server/game/AI/ScriptedAI | |
| parent | 0ea0e9ee01383d8a74357000e854dc0777669d6d (diff) | |
Merge pull request #14974 from pete318/stealth_work
Stealth changes (Player stealthed vs NPCs) - 3.3.5
(cherry picked from commit 90fcfb3f2d71e15d162cb52b915b53a11bc42212)
Conflicts:
src/server/game/Entities/Object/Object.h
src/server/game/Entities/Unit/Unit.cpp
Diffstat (limited to 'src/server/game/AI/ScriptedAI')
| -rw-r--r-- | src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp | 8 | ||||
| -rw-r--r-- | src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp | 8 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp index 66164730219..7ea77341567 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp +++ b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp @@ -120,7 +120,13 @@ void npc_escortAI::MoveInLineOfSight(Unit* who) { if (!me->GetVictim()) { - who->RemoveAurasByType(SPELL_AURA_MOD_STEALTH); + // Clear distracted state on combat + if (me->HasUnitState(UNIT_STATE_DISTRACTED)) + { + me->ClearUnitState(UNIT_STATE_DISTRACTED); + me->GetMotionMaster()->Clear(); + } + AttackStart(who); } else if (me->GetMap()->IsDungeon()) diff --git a/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp b/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp index ab91b0b5b27..856ca1d9e16 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp +++ b/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp @@ -117,7 +117,13 @@ void FollowerAI::MoveInLineOfSight(Unit* who) { if (!me->GetVictim()) { - who->RemoveAurasByType(SPELL_AURA_MOD_STEALTH); + // Clear distracted state on combat + if (me->HasUnitState(UNIT_STATE_DISTRACTED)) + { + me->ClearUnitState(UNIT_STATE_DISTRACTED); + me->GetMotionMaster()->Clear(); + } + AttackStart(who); } else if (me->GetMap()->IsDungeon()) |
