- 14dc6d929f226b86745d7dd0a134f9a866d7f790
- src/game/Player.cpp | 17 +++++++++++------
- 1 file changed, 11 insertions(+), 6 deletions(-)
- diff --git a/src/game/Player.cpp b/src/game/Player.cpp
- index 445a8ea..bd59146 100644
- --- a/src/game/Player.cpp
- +++ b/src/game/Player.cpp
- @@ -19909,6 +19909,12 @@ void Player::AddSpellMod(Aura* aura, bool apply)
- Modifier const* mod = aura->GetModifier();
- uint16 Opcode= (mod->m_auraname == SPELL_AURA_ADD_FLAT_MODIFIER) ? SMSG_SET_FLAT_SPELL_MODIFIER : SMSG_SET_PCT_SPELL_MODIFIER;
- + uint32 modTypeCount = 0; // count of mods per one mod->op
- + WorldPacket data(Opcode, 4 + 4 + 1 + 1 + 4);
- + data << uint32(1); // count of different mod->op's in packet
- + size_t writePos = data.wpos();
- + data << uint32(modTypeCount);
- + data << uint8(mod->m_miscvalue);
- for(int eff = 0; eff < 96; ++eff)
- {
- uint64 _mask = 0;
- @@ -19928,15 +19934,14 @@ void Player::AddSpellMod(Aura* aura, bool apply)
- val += (*itr)->GetModifier()->m_amount;
- }
- val += apply ? mod->m_amount : -(mod->m_amount);
- - WorldPacket data(Opcode, 4 + 4 + 1 + 1 + 4);
- - data << uint32(1);
- - data << uint32(1);
- - data << uint8(mod->m_miscvalue);
- +
- data << uint8(eff);
- - data << int32(val);
- - SendDirectMessage(&data);
- + data << float(val);
- + ++modTypeCount;
- }
- }
- + data.put<uint32>(writePos, modTypeCount);
- + SendDirectMessage(&data);
- if (apply)
- m_spellMods[mod->m_miscvalue].push_back(aura);