diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index b0e1ba146..d86a5166d 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -21113,9 +21113,6 @@ void Player::SendAutoRepeatCancel(Unit* target) WorldPacket data(SMSG_CANCEL_AUTO_REPEAT, target->GetPackGUID().size()); data << target->GetPackGUID(); // may be it's target guid SendMessageToSet(&data, true); - - // To properly cancel autoshot done by client - SendAttackSwingCancelAttack(); } void Player::SendExplorationExperience(uint32 Area, uint32 Experience) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 982bbc1ea..6b233af72 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -3376,10 +3376,11 @@ void Unit::_UpdateAutoRepeatSpell() static uint32 const HUNTER_AUTOSHOOT = 75; // Check "realtime" interrupts - if ((GetTypeId() == TYPEID_PLAYER && ToPlayer()->isMoving() && spellProto->Id != HUNTER_AUTOSHOOT) || - IsNonMeleeSpellCast(false, false, true, spellProto->Id == HUNTER_AUTOSHOOT)) + if ((GetTypeId() == TYPEID_PLAYER && ToPlayer()->isMoving() && spellProto->Id != HUNTER_AUTOSHOOT) || IsNonMeleeSpellCast(false, false, true, spellProto->Id == HUNTER_AUTOSHOOT)) { - InterruptSpell(CURRENT_AUTOREPEAT_SPELL); + // cancel wand shoot + if (spellProto->Id != HUNTER_AUTOSHOOT) + InterruptSpell(CURRENT_AUTOREPEAT_SPELL); m_AutoRepeatFirstCast = true; return; }