diff options
author | Shauren <shauren.trinity@gmail.com> | 2016-03-18 23:53:29 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2016-03-18 23:53:29 +0100 |
commit | 8f80b3e0ec05356a12056ef8a178f11a8d3dad48 (patch) | |
tree | 27a73e3297a9950c083e6d58102706dc4fa00e9e /src/server/game/Spells/SpellEffects.cpp | |
parent | ca4e8c6ff8543ce6b5bbd57cf82f4eb4be4b6119 (diff) |
Core/PacketIO: Updated and enabled SMSG_DISPEL_FAILED
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 48 |
1 files changed, 18 insertions, 30 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 59428220bea..0c2fc2e5d91 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -2307,9 +2307,12 @@ void Spell::EffectDispel(SpellEffIndex effIndex) return; // Ok if exist some buffs for dispel try dispel it - uint32 failCount = 0; DispelChargesList success_list; - WorldPacket dataFail(SMSG_DISPEL_FAILED, 8+8+4+4+damage*4); + WorldPackets::Spells::DispelFailed dispelFailed; + dispelFailed.CasterGUID = m_caster->GetGUID(); + dispelFailed.VictimGUID = unitTarget->GetGUID(); + dispelFailed.SpellID = m_spellInfo->Id; + // dispel N = damage buffs (or while exist buffs for dispel) for (int32 count = 0; count < damage && !dispel_list.empty();) { @@ -2344,23 +2347,14 @@ void Spell::EffectDispel(SpellEffIndex effIndex) dispel_list.erase(itr); } else - { - if (!failCount) - { - // Failed to dispell - dataFail << m_caster->GetGUID(); // Caster GUID - dataFail << unitTarget->GetGUID(); // Victim GUID - dataFail << uint32(m_spellInfo->Id); // dispel spell id - } - ++failCount; - dataFail << uint32(itr->first->GetId()); // Spell Id - } + dispelFailed.FailedSpells.push_back(int32(itr->first->GetId())); + ++count; } } - if (failCount) - m_caster->SendMessageToSet(&dataFail, true); + if (!dispelFailed.FailedSpells.empty()) + m_caster->SendMessageToSet(dispelFailed.Write(), true); if (success_list.empty()) return; @@ -5163,9 +5157,12 @@ void Spell::EffectStealBeneficialBuff(SpellEffIndex /*effIndex*/) return; // Ok if exist some buffs for dispel try dispel it - uint32 failCount = 0; DispelList success_list; - WorldPacket dataFail(SMSG_DISPEL_FAILED, 8+8+4+4+damage*4); + WorldPackets::Spells::DispelFailed dispelFailed; + dispelFailed.CasterGUID = m_caster->GetGUID(); + dispelFailed.VictimGUID = unitTarget->GetGUID(); + dispelFailed.SpellID = m_spellInfo->Id; + // dispel N = damage buffs (or while exist buffs for dispel) for (int32 count = 0; count < damage && !steal_list.empty();) { @@ -5190,23 +5187,14 @@ void Spell::EffectStealBeneficialBuff(SpellEffIndex /*effIndex*/) steal_list.erase(itr); } else - { - if (!failCount) - { - // Failed to dispell - dataFail << m_caster->GetGUID(); // Caster GUID - dataFail << unitTarget->GetGUID(); // Victim GUID - dataFail << uint32(m_spellInfo->Id); // dispel spell id - } - ++failCount; - dataFail << uint32(itr->first->GetId()); // Spell Id - } + dispelFailed.FailedSpells.push_back(int32(itr->first->GetId())); + ++count; } } - if (failCount) - m_caster->SendMessageToSet(&dataFail, true); + if (!dispelFailed.FailedSpells.empty()) + m_caster->SendMessageToSet(dispelFailed.Write(), true); if (success_list.empty()) return; |