diff options
Diffstat (limited to 'src/server/game/Handlers/SpellHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/SpellHandler.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp index 722b83de80e..4f49bd176fe 100644 --- a/src/server/game/Handlers/SpellHandler.cpp +++ b/src/server/game/Handlers/SpellHandler.cpp @@ -21,6 +21,7 @@ #include "DatabaseEnv.h" #include "Log.h" #include "DBCStores.h" +#include "GameClient.h" #include "GameObject.h" #include "GameObjectAI.h" #include "Item.h" @@ -336,8 +337,8 @@ void WorldSession::HandleCastSpellOpcode(WorldPacket& recvPacket) TC_LOG_DEBUG("network", "WORLD: got cast spell packet, castCount: %u, spellId: %u, castFlags: %u, data length = %u", castCount, spellId, castFlags, (uint32)recvPacket.size()); // ignore for remote control state (for player case) - Unit* mover = _player->GetCharmedOrSelf(); - if (mover != _player && mover->GetTypeId() == TYPEID_PLAYER) + Unit* mover = GetGameClient()->GetActivelyMovedUnit(); + if (!mover || mover != _player && mover->GetTypeId() == TYPEID_PLAYER) { recvPacket.rfinish(); // prevent spam at ignore packet return; @@ -546,10 +547,10 @@ void WorldSession::HandleCancelAutoRepeatSpellOpcode(WorldPackets::Spells::Cance void WorldSession::HandleCancelChanneling(WorldPackets::Spells::CancelChannelling& cancelChanneling) { - Unit* mover = _player->GetCharmedOrSelf(); + Unit* mover = GetGameClient()->GetActivelyMovedUnit(); // ignore for remote control state (for player case) - if (_player->GetCharmed() && _player->GetCharmed()->GetTypeId() == TYPEID_PLAYER) + if (!mover) return; SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(cancelChanneling.ChannelSpell); |