diff --git a/src/game/Handlers/SpellHandler.cpp b/src/game/Handlers/SpellHandler.cpp index 8992c3b05..6e75b4b1e 100644 --- a/src/game/Handlers/SpellHandler.cpp +++ b/src/game/Handlers/SpellHandler.cpp @@ -107,9 +107,15 @@ void WorldSession::HandleUseItemOpcode(WorldPacket& recvPacket) } } + // World of Warcraft Client Patch 1.10.0 (2006-03-28) + // - Stealth and Invisibility effects will now be canceled at the + // beginning of an action(spellcast, ability use etc...), rather than + // at the completion of the action. +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_9_4 // Remove invisibility except Gnomish Cloaking Device, since evidence suggests // it remains until cast finish _player->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ON_CAST_SPELL, 4079); +#endif // check also BIND_WHEN_PICKED_UP and BIND_QUEST_ITEM for .additem or .additemset case by GM (not binded at adding to inventory) if (pItem->GetProto()->Bonding == BIND_WHEN_USE || pItem->GetProto()->Bonding == BIND_WHEN_PICKED_UP || pItem->GetProto()->Bonding == BIND_QUEST_ITEM) @@ -314,9 +320,15 @@ void WorldSession::HandleCastSpellOpcode(WorldPacket& recvPacket) } } + // World of Warcraft Client Patch 1.10.0 (2006-03-28) + // - Stealth and Invisibility effects will now be canceled at the + // beginning of an action(spellcast, ability use etc...), rather than + // at the completion of the action. +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_9_4 // Remove invisibility except Gnomish Cloaking Device, since evidence suggests // it remains until cast finish _player->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ON_CAST_SPELL, 4079); +#endif // client provided targets SpellCastTargets targets; diff --git a/src/game/Spells/Spell.cpp b/src/game/Spells/Spell.cpp index aa1294ffc..88192f658 100644 --- a/src/game/Spells/Spell.cpp +++ b/src/game/Spells/Spell.cpp @@ -3302,8 +3302,15 @@ SpellCastResult Spell::prepare(Aura* triggeredByAura, uint32 chance) // If timer = 0, it's an instant cast spell and will be casted on the next tick. // Cast completion will remove all any stealth/invis auras - if (m_timer) { + if (m_timer) + { + // World of Warcraft Client Patch 1.10.0 (2006-03-28) + // - Stealth and Invisibility effects will now be canceled at the + // beginning of an action(spellcast, ability use etc...), rather than + // at the completion of the action. +#if SUPPORTED_CLIENT_BUILD > CLIENT_BUILD_1_9_4 RemoveStealthAuras(); +#endif // If using a game object we need to remove any remaining invis auras. Should only // ever be Gnomish Cloaking Device, since it's a special case and not removed on