diff options
Diffstat (limited to 'src/server/game/Handlers/SpellHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/SpellHandler.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp index 7c079d3a40a..db35fca9e07 100644 --- a/src/server/game/Handlers/SpellHandler.cpp +++ b/src/server/game/Handlers/SpellHandler.cpp @@ -25,6 +25,7 @@ #include "GuildMgr.h" #include "Item.h" #include "Log.h" +#include "Map.h" #include "Player.h" #include "ObjectAccessor.h" #include "ObjectMgr.h" @@ -97,7 +98,7 @@ void WorldSession::HandleUseItemOpcode(WorldPackets::Spells::UseItem& packet) { for (ItemEffectEntry const* effect : item->GetEffects()) { - if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(effect->SpellID)) + if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(effect->SpellID, user->GetMap()->GetDifficultyID())) { if (!spellInfo->CanBeUsedInCombat()) { @@ -275,7 +276,7 @@ void WorldSession::HandleCastSpellOpcode(WorldPackets::Spells::CastSpell& cast) if (mover != _player && mover->GetTypeId() == TYPEID_PLAYER) return; - SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(cast.Cast.SpellID); + SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(cast.Cast.SpellID, mover->GetMap()->GetDifficultyID()); if (!spellInfo) { TC_LOG_ERROR("network", "WORLD: unknown spell id %u", cast.Cast.SpellID); @@ -350,7 +351,7 @@ void WorldSession::HandleCancelCastOpcode(WorldPackets::Spells::CancelCast& pack void WorldSession::HandleCancelAuraOpcode(WorldPackets::Spells::CancelAura& cancelAura) { - SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(cancelAura.SpellID); + SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(cancelAura.SpellID, _player->GetMap()->GetDifficultyID()); if (!spellInfo) return; @@ -376,7 +377,7 @@ void WorldSession::HandleCancelAuraOpcode(WorldPackets::Spells::CancelAura& canc _player->RemoveOwnedAura(cancelAura.SpellID, cancelAura.CasterGUID, 0, AURA_REMOVE_BY_CANCEL); // If spell being removed is a resource tracker, see if player was tracking both (herbs / minerals) and remove the other - if (sWorld->getBoolConfig(CONFIG_ALLOW_TRACK_BOTH_RESOURCES) && spellInfo->HasAura(DIFFICULTY_NONE, SPELL_AURA_TRACK_RESOURCES)) + if (sWorld->getBoolConfig(CONFIG_ALLOW_TRACK_BOTH_RESOURCES) && spellInfo->HasAura(SPELL_AURA_TRACK_RESOURCES)) { Unit::AuraEffectList const& auraEffects = _player->GetAuraEffectsByType(SPELL_AURA_TRACK_RESOURCES); if (!auraEffects.empty()) @@ -397,8 +398,7 @@ void WorldSession::HandleCancelAuraOpcode(WorldPackets::Spells::CancelAura& canc void WorldSession::HandlePetCancelAuraOpcode(WorldPackets::Spells::PetCancelAura& packet) { - SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(packet.SpellID); - if (!spellInfo) + if (sSpellMgr->GetSpellInfo(packet.SpellID, DIFFICULTY_NONE)) { TC_LOG_ERROR("network", "WORLD: unknown PET spell id %u", packet.SpellID); return; @@ -491,7 +491,7 @@ void WorldSession::HandleSelfResOpcode(WorldPackets::Spells::SelfRes& selfRes) if (std::find(selfResSpells.begin(), selfResSpells.end(), selfRes.SpellID) == selfResSpells.end()) return; - SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(selfRes.SpellID); + SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(selfRes.SpellID, _player->GetMap()->GetDifficultyID()); if (spellInfo) _player->CastSpell(_player, spellInfo, false, nullptr); |