aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNay <dnpd.dd@gmail.com>2012-08-04 01:39:18 +0100
committerNay <dnpd.dd@gmail.com>2012-08-04 01:39:18 +0100
commit48db4b2b7da984258fede9cfa13ea8c0ea2dc788 (patch)
tree241b9bea8a3f8f5eeea4ba5d9dfadb354ebff0c7
parent12307c7d06011b3d64271af4bd4dfc08c348d7d2 (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-xsrc/server/game/Battlegrounds/Battleground.cpp2
-rwxr-xr-xsrc/server/game/Chat/Chat.cpp7
-rwxr-xr-xsrc/server/game/Entities/Object/Object.cpp2
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp2
-rwxr-xr-xsrc/server/game/Handlers/ItemHandler.cpp11
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
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 );