diff options
author | Jeremy <Golrag@users.noreply.github.com> | 2024-10-31 08:28:17 +0100 |
---|---|---|
committer | Ovahlord <dreadkiller@gmx.de> | 2024-11-01 07:55:03 +0100 |
commit | d25a2698d88243d6259a4b3730f85a878677a4f1 (patch) | |
tree | a68eadece056b4206d5b4f122a9da309d98af52c /src | |
parent | a27ab0d3ca8eaf85b6be698d1f2b37eab072c0f4 (diff) |
Core/Units: only set spellClickHandled to true when spell cast was succesful (#30388)4.4.0/57244
(cherry picked from commit 214580d345616b492ce9654ef30c1a436d224b25)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 7dedf9418c0..c588739db89 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -12460,6 +12460,7 @@ void Unit::HandleSpellClick(Unit* clicker, int8 seatId /*= -1*/) SpellInfo const* spellEntry = sSpellMgr->AssertSpellInfo(clickPair.second.spellId, caster->GetMap()->GetDifficultyID()); // if (!spellEntry) should be checked at npc_spellclick load + SpellCastResult castResult = SPELL_FAILED_SUCCESS; if (seatId > -1) { uint8 i = 0; @@ -12485,7 +12486,7 @@ void Unit::HandleSpellClick(Unit* clicker, int8 seatId /*= -1*/) CastSpellExtraArgs args(flags); args.OriginalCaster = origCasterGUID; args.AddSpellMod(SpellValueMod(SPELLVALUE_BASE_POINT0 + i), seatId + 1); - caster->CastSpell(target, clickPair.second.spellId, args); + castResult = caster->CastSpell(target, clickPair.second.spellId, args); } else // This can happen during Player::_LoadAuras { @@ -12507,7 +12508,7 @@ void Unit::HandleSpellClick(Unit* clicker, int8 seatId /*= -1*/) else { if (IsInMap(caster)) - caster->CastSpell(target, spellEntry->Id, CastSpellExtraArgs().SetOriginalCaster(origCasterGUID)); + castResult = caster->CastSpell(target, spellEntry->Id, CastSpellExtraArgs().SetOriginalCaster(origCasterGUID)); else { AuraCreateInfo createInfo(ObjectGuid::Create<HighGuid::Cast>(SPELL_CAST_SOURCE_NORMAL, GetMapId(), spellEntry->Id, GetMap()->GenerateLowGuid<HighGuid::Cast>()), spellEntry, GetMap()->GetDifficultyID(), MAX_EFFECT_MASK, this); @@ -12519,7 +12520,7 @@ void Unit::HandleSpellClick(Unit* clicker, int8 seatId /*= -1*/) } } - spellClickHandled = true; + spellClickHandled = castResult == SPELL_FAILED_SUCCESS; } Creature* creature = ToCreature(); |