From 15bd01600e6efe896f4cb4a1f8eed17d74c81a14 Mon Sep 17 00:00:00 2001 From: Antz Date: Thu, 26 Mar 2015 09:32:53 +0000 Subject: [PATCH] Implement player rank in defensive channels Based on (c2613) by @Laizerox --- src/game/WorldHandlers/Channel.cpp | 5 +++-- src/game/WorldHandlers/Chat.cpp | 4 ++-- src/game/WorldHandlers/Chat.h | 3 ++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/game/WorldHandlers/Channel.cpp b/src/game/WorldHandlers/Channel.cpp index 89292809..093e4aea 100644 --- a/src/game/WorldHandlers/Channel.cpp +++ b/src/game/WorldHandlers/Channel.cpp @@ -106,6 +106,7 @@ void Channel::Join(Player* player, const char* password) MakeYouJoined(&data); SendToOne(&data, guid); + JoinNotify(guid); // if no owner first logged will become @@ -151,7 +152,7 @@ void Channel::Leave(Player* player, bool send) SendToAll(&data); } - LeaveNotify(guid); + LeaveNotify(guid); if (changeowner) { @@ -612,7 +613,7 @@ void Channel::Say(Player* player, const char* text, uint32 lang) if (sWorld.getConfig(CONFIG_BOOL_ALLOW_TWO_SIDE_INTERACTION_CHANNEL)) lang = LANG_UNIVERSAL; WorldPacket data; - ChatHandler::BuildChatPacket(data, CHAT_MSG_CHANNEL, text, Language(lang), player->GetChatTag(), guid, player->GetName(), ObjectGuid(), "", m_name.c_str()); + ChatHandler::BuildChatPacket(data, CHAT_MSG_CHANNEL, text, Language(lang), player->GetChatTag(), guid, player->GetName(), ObjectGuid(), "", m_name.c_str(), player->GetHonorRankInfo().rank); SendToAll(&data, !m_players[guid].IsModerator() ? guid : ObjectGuid()); } diff --git a/src/game/WorldHandlers/Chat.cpp b/src/game/WorldHandlers/Chat.cpp index 808bcd7b..ed6ee7f7 100644 --- a/src/game/WorldHandlers/Chat.cpp +++ b/src/game/WorldHandlers/Chat.cpp @@ -3342,7 +3342,7 @@ void ChatHandler::LogCommand(char const* fullcmd) void ChatHandler::BuildChatPacket(WorldPacket& data, ChatMsg msgtype, char const* message, Language language /*= LANG_UNIVERSAL*/, ChatTagFlags chatTag /*= CHAT_TAG_NONE*/, ObjectGuid const& senderGuid /*= ObjectGuid()*/, char const* senderName /*= NULL*/, ObjectGuid const& targetGuid /*= ObjectGuid()*/, char const* targetName /*= NULL*/, - char const* channelName /*= NULL*/) + char const* channelName /*= NULL*/, uint8 playerRank /*= 0*/) { data.Initialize(SMSG_MESSAGECHAT); data << uint8(msgtype); @@ -3379,7 +3379,7 @@ void ChatHandler::BuildChatPacket(WorldPacket& data, ChatMsg msgtype, char const case CHAT_MSG_CHANNEL: MANGOS_ASSERT(channelName); data << channelName; - data << uint32(0); + data << uint32(playerRank); data << ObjectGuid(senderGuid); break; diff --git a/src/game/WorldHandlers/Chat.h b/src/game/WorldHandlers/Chat.h index ff1ce3ca..ce34cc08 100644 --- a/src/game/WorldHandlers/Chat.h +++ b/src/game/WorldHandlers/Chat.h @@ -118,12 +118,13 @@ class ChatHandler * \param ObjectGuid const& targetGuid : Often null, but needed for type *MONSTER* or *BATTLENET or *BATTLEGROUND* or *ACHIEVEMENT * \param char const* targetName : Often null, but needed for type *MONSTER* or *BATTLENET or *BATTLEGROUND* * \param char const* channelName : Required only for CHAT_MSG_CHANNEL + * \param uint8 playerRank : Used only for Defensive Channels (Value over 0 will show rank name before character name in channel) **/ static void BuildChatPacket( WorldPacket& data, ChatMsg msgtype, char const* message, Language language = LANG_UNIVERSAL, ChatTagFlags chatTag = CHAT_TAG_NONE, ObjectGuid const& senderGuid = ObjectGuid(), char const* senderName = NULL, ObjectGuid const& targetGuid = ObjectGuid(), char const* targetName = NULL, - char const* channelName = NULL); + char const* channelName = NULL, uint8 playerRank = 0); protected: explicit ChatHandler() : m_session(NULL) {} // for CLI subclass