diff --git a/src/server/game/Entities/Player/PlayerUpdates.cpp b/src/server/game/Entities/Player/PlayerUpdates.cpp index 58bb54ad5..df5153a1c 100644 --- a/src/server/game/Entities/Player/PlayerUpdates.cpp +++ b/src/server/game/Entities/Player/PlayerUpdates.cpp @@ -1968,10 +1968,7 @@ void Player::UpdateCharmedAI() Unit* target = GetVictim(); if (target) - { SetInFront(target); - SendMovementFlagUpdate(true); - } if (HasUnitState(UNIT_STATE_CASTING)) return; diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index ed907d951..cf1bb0520 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -10963,7 +10963,11 @@ void Unit::SetCharm(Unit* charm, bool apply) charm->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); } else + { charm->m_ControlledByPlayer = false; + if (!HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) + charm->RemoveUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); + } // PvP, FFAPvP charm->SetByteValue(UNIT_FIELD_BYTES_2, 1, GetByteValue(UNIT_FIELD_BYTES_2, 1));