diff options
author | Nay <dnpd.dd@gmail.com> | 2011-12-22 21:21:41 +0000 |
---|---|---|
committer | Nay <dnpd.dd@gmail.com> | 2011-12-22 21:21:41 +0000 |
commit | 94e85c34d3187de243984e46e1cc6d9ef3361529 (patch) | |
tree | 440b2be3de18034baa216991a6f5de0e9e9e81d7 /src | |
parent | 090bb5a45e4b7608b57577c525a16416986a0b3e (diff) |
Core/Spell: Enable and 'fix' SMSG_SET_PCT/FLAG_SPELL_MODIFIER
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 12 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 4 | ||||
-rwxr-xr-x | src/server/game/Server/Protocol/Opcodes.h | 4 |
3 files changed, 10 insertions, 10 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 67c301977fc..e1494a094c4 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -19730,29 +19730,29 @@ bool Player::IsAffectedBySpellmod(SpellInfo const* spellInfo, SpellModifier* mod void Player::AddSpellMod(SpellModifier* mod, bool apply) { sLog->outDebug(LOG_FILTER_SPELLS_AURAS, "Player::AddSpellMod %d", mod->spellId); - uint16 Opcode = (mod->type == SPELLMOD_FLAT) ? SMSG_SET_FLAT_SPELL_MODIFIER : SMSG_SET_PCT_SPELL_MODIFIER; + uint16 opcode = (mod->type == SPELLMOD_FLAT) ? SMSG_SET_FLAT_SPELL_MODIFIER : SMSG_SET_PCT_SPELL_MODIFIER; int i = 0; flag96 _mask = 0; for (int eff = 0; eff < 96; ++eff) { - if (eff != 0 && eff%32 == 0) + if (eff != 0 && eff % 32 == 0) _mask[i++] = 0; - _mask[i] = uint32(1) << (eff-(32*i)); + _mask[i] = uint32(1) << (eff - (32 * i)); if (mod->mask & _mask) { int32 val = 0; for (SpellModList::iterator itr = m_spellMods[mod->op].begin(); itr != m_spellMods[mod->op].end(); ++itr) - { if ((*itr)->type == mod->type && (*itr)->mask & _mask) val += (*itr)->value; - } val += apply ? mod->value : -(mod->value); - WorldPacket data(Opcodes(Opcode), (1+1+4)); + WorldPacket data(Opcodes(opcode), (1+1+4)); data << uint8(eff); data << uint8(mod->op); data << int32(val); + if (opcode == SMSG_SET_PCT_SPELL_MODIFIER) + data << uint8(0); // 4.x unk SendDirectMessage(&data); } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 323901dc494..4bac2be777a 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -676,8 +676,8 @@ void InitOpcodes() //DEFINE_OPCODE_HANDLER(SMSG_SPELLORDAMAGE_IMMUNE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); DEFINE_OPCODE_HANDLER(CMSG_AUCTION_LIST_BIDDER_ITEMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionListBidderItems ); //DEFINE_OPCODE_HANDLER(SMSG_AUCTION_BIDDER_LIST_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //DEFINE_OPCODE_HANDLER(SMSG_SET_FLAT_SPELL_MODIFIER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //DEFINE_OPCODE_HANDLER(SMSG_SET_PCT_SPELL_MODIFIER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + DEFINE_OPCODE_HANDLER(SMSG_SET_FLAT_SPELL_MODIFIER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + DEFINE_OPCODE_HANDLER(SMSG_SET_PCT_SPELL_MODIFIER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_CORPSE_RECLAIM_DELAY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(CMSG_SET_ACTIVE_MOVER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetActiveMoverOpcode ); //DEFINE_OPCODE_HANDLER(CMSG_PET_CANCEL_AURA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetCancelAuraOpcode ); diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h index e7f8f26d471..d986eae76d6 100755 --- a/src/server/game/Server/Protocol/Opcodes.h +++ b/src/server/game/Server/Protocol/Opcodes.h @@ -943,9 +943,9 @@ enum Opcodes SMSG_SET_FACTION_ATWAR = 0x00, SMSG_SET_FACTION_STANDING = 0x00, SMSG_SET_FACTION_VISIBLE = 0x00, - SMSG_SET_FLAT_SPELL_MODIFIER = 0x00, + SMSG_SET_FLAT_SPELL_MODIFIER = 0x88D3, SMSG_SET_FORCED_REACTIONS = 0x00, - SMSG_SET_PCT_SPELL_MODIFIER = 0x00, + SMSG_SET_PCT_SPELL_MODIFIER = 0x98FE, SMSG_SET_PHASE_SHIFT = 0x204C, SMSG_SET_PLAYER_DECLINED_NAMES_RESULT = 0x0E67, SMSG_SET_PROFICIENCY = 0x00, |