From 0cc5ab8372f19dad7412038d52dcd39db5e0e171 Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 16 Dec 2022 22:44:55 +0100 Subject: Core/Players: Implemented new talent system --- src/server/game/Spells/Spell.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/server/game/Spells/Spell.cpp') diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 2cd10e0b4e8..58007c844ac 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -55,6 +55,7 @@ #include "SpellScript.h" #include "TemporarySummon.h" #include "TradeData.h" +#include "TraitPackets.h" #include "Util.h" #include "VMapFactory.h" #include "Vehicle.h" @@ -4222,7 +4223,14 @@ void Spell::finish(bool ok) Unit::ProcSkillsAndAuras(unitCaster, nullptr, PROC_FLAG_CAST_ENDED, PROC_FLAG_NONE, PROC_SPELL_TYPE_MASK_ALL, PROC_SPELL_PHASE_NONE, PROC_HIT_NONE, this, nullptr, nullptr); if (!ok) + { + // on failure (or manual cancel) send TraitConfigCommitFailed to revert talent UI saved config selection + if (m_caster->IsPlayer() && m_spellInfo->HasEffect(SPELL_EFFECT_CHANGE_ACTIVE_COMBAT_TRAIT_CONFIG)) + if (WorldPackets::Traits::TraitConfig const* traitConfig = std::any_cast(&m_customArg)) + m_caster->ToPlayer()->SendDirectMessage(WorldPackets::Traits::TraitConfigCommitFailed(traitConfig->ID).Write()); + return; + } if (unitCaster->GetTypeId() == TYPEID_UNIT && unitCaster->IsSummon()) { -- cgit v1.2.3