diff options
author | Nay <dnpd.dd@gmail.com> | 2012-08-04 01:39:18 +0100 |
---|---|---|
committer | Nay <dnpd.dd@gmail.com> | 2012-08-04 01:39:18 +0100 |
commit | 48db4b2b7da984258fede9cfa13ea8c0ea2dc788 (patch) | |
tree | 241b9bea8a3f8f5eeea4ba5d9dfadb354ebff0c7 | |
parent | 12307c7d06011b3d64271af4bd4dfc08c348d7d2 (diff) |
Core/PacketIO: Fix and enable SMSG_MESSAGECHAT
TODO: - Send addon prefix in this packet when language is Addon
- Cleanup uses of SMSG_MESSAGECHAT (17 different "handlers" for it is not okay) (long term)
- Missing a CMSG_MESSAGECHAT_ADDON_x or two
-rwxr-xr-x | src/server/game/Battlegrounds/Battleground.cpp | 2 | ||||
-rwxr-xr-x | src/server/game/Chat/Chat.cpp | 7 | ||||
-rwxr-xr-x | src/server/game/Entities/Object/Object.cpp | 2 | ||||
-rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 2 | ||||
-rwxr-xr-x | src/server/game/Handlers/ItemHandler.cpp | 11 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 2 |
6 files changed, 19 insertions, 7 deletions
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index b8f4d7de3c0..4444f1860e4 100755 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -1721,6 +1721,8 @@ void Battleground::SendWarningToAll(int32 entry, ...) data << (uint32)(msg.length() + 1); data << msg.c_str(); data << (uint8)0; + data << (float)0.0f; // added in 4.2.0, unk + data << (uint8)0; // added in 4.2.0, unk for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr) if (Player* player = ObjectAccessor::FindPlayer(MAKE_NEW_GUID(itr->first, 0, HIGHGUID_PLAYER))) if (player->GetSession()) diff --git a/src/server/game/Chat/Chat.cpp b/src/server/game/Chat/Chat.cpp index 65cdca70aba..8a6b668b7f2 100755 --- a/src/server/game/Chat/Chat.cpp +++ b/src/server/game/Chat/Chat.cpp @@ -801,6 +801,13 @@ void ChatHandler::FillMessageData(WorldPacket* data, WorldSession* session, uint *data << uint32(messageLength); *data << message; *data << uint8(0); + + if (type == CHAT_MSG_RAID_BOSS_WHISPER || type == CHAT_MSG_RAID_BOSS_EMOTE) + { + *data << float(0.0f); // Added in 4.2.0, unk + *data << uint8(0); // Added in 4.2.0, unk + } + return; } default: diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 9f386a54246..0baec0c2e95 100755 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -2279,6 +2279,8 @@ void WorldObject::BuildMonsterChat(WorldPacket* data, uint8 msgtype, char const* *data << (uint32)(strlen(text)+1); *data << text; *data << (uint8)0; // ChatTag + *data << (float)0.0f; // added in 4.2.0, unk + *data << (uint8)0; // added in 4.2.0, unk } void Unit::BuildHeartBeatMsg(WorldPacket* data) const diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index f729fe1502f..2b08ffb38d8 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -20051,7 +20051,7 @@ inline void Player::BuildPlayerChat(WorldPacket* data, uint8 msgtype, const std: *data << uint8(msgtype); *data << uint32(language); *data << uint64(GetGUID()); - *data << uint32(language); //language 2.1.0 ? + *data << uint32(0); // constant unknown time *data << uint64(GetGUID()); *data << uint32(text.length() + 1); *data << text; diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp index 18859e766d1..ce5729a7b40 100755 --- a/src/server/game/Handlers/ItemHandler.cpp +++ b/src/server/game/Handlers/ItemHandler.cpp @@ -1619,13 +1619,14 @@ void WorldSession::HandleTransmogrifyItems(WorldPacket& recvData) cost += itemTransmogrified->GetTransmogrifyCost(); } - - // trusting the client, if it got here it has to have enough money - // ... unless client was modified - if (cost) // 0 cost if reverting look - player->ModifyMoney(-cost); } + // trusting the client, if it got here it has to have enough money + // ... unless client was modified + if (cost) // 0 cost if reverting look + player->ModifyMoney(-cost); + + delete[] itemGuids; delete[] newEntries; delete[] slots; diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index b280a59d1b4..3173142c96a 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1099,7 +1099,7 @@ void InitOpcodes() //DEFINE_OPCODE_HANDLER(SMSG_MAIL_LIST_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_MEETINGSTONE_MEMBER_ADDED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_MEETINGSTONE_SETQUEUE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //DEFINE_OPCODE_HANDLER(SMSG_MESSAGECHAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + DEFINE_OPCODE_HANDLER(SMSG_MESSAGECHAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_MINIGAME_MOVE_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_MINIGAME_SETUP, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_MINIGAME_STATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); |