From 206e04d796660ab0e66ce6ad7cb8208974d6903d Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 10 Dec 2020 11:21:25 +0800 Subject: [PATCH] 1 --- server/imserver/chatmgr.cc | 51 +++++++++++++++++++++++++++++++------- server/imserver/chatmgr.h | 1 + 2 files changed, 43 insertions(+), 9 deletions(-) diff --git a/server/imserver/chatmgr.cc b/server/imserver/chatmgr.cc index 6fbabf0..0566a61 100644 --- a/server/imserver/chatmgr.cc +++ b/server/imserver/chatmgr.cc @@ -146,10 +146,10 @@ void ChatMgr::ProcGuildChat(Player* hum, const cs::CMSendChatMsg& msg) void ChatMgr::ProcTeamChat(Player* hum, const cs::CMSendChatMsg& msg) { - ++world_msg_id_; + ++temp_msg_id_; cs::MFChatMsg* p = new cs::MFChatMsg(); - p->set_msg_uuid(world_msg_id_); + p->set_msg_uuid(temp_msg_id_); hum->FillMFUserInfo(p->mutable_sender()); //p->set_receiver(world_msg_id_); p->set_chat_channel(msg.chat_channel()); @@ -157,15 +157,12 @@ void ChatMgr::ProcTeamChat(Player* hum, const cs::CMSendChatMsg& msg) p->set_msg_body(msg.msg_body()); p->set_send_time(time(nullptr)); - world_msgrec_.curr_id = world_msg_id_; cs::SMChatMsgNotify notifymsg; *notifymsg.add_msg_list() = *p; - if (notifymsg.msg_list().size() > 0) { - for (auto& member_id : msg.members()) { - Player* hum = PlayerMgr::Instance()->GetPlayerByAccountId(member_id); - if (hum) { - hum->SendMsg(notifymsg); - } + for (auto& member_id : msg.members()) { + Player* hum = PlayerMgr::Instance()->GetPlayerByAccountId(member_id); + if (hum) { + hum->SendMsg(notifymsg); } } delete p; @@ -173,12 +170,48 @@ void ChatMgr::ProcTeamChat(Player* hum, const cs::CMSendChatMsg& msg) void ChatMgr::ProcBigHornChat(Player* hum, const cs::CMSendChatMsg& msg) { + ++temp_msg_id_; + cs::MFChatMsg* p = new cs::MFChatMsg(); + p->set_msg_uuid(temp_msg_id_); + hum->FillMFUserInfo(p->mutable_sender()); + //p->set_receiver(world_msg_id_); + p->set_chat_channel(msg.chat_channel()); + p->set_msg_type(msg.msg_type()); + p->set_msg_body(msg.msg_body()); + p->set_send_time(time(nullptr)); + + cs::SMChatMsgNotify notifymsg; + *notifymsg.add_msg_list() = *p; + PlayerMgr::Instance()->TraversePlayer + ([¬ifymsg](Player* hum) + { + hum->SendMsg(notifymsg); + }); + delete p; } void ChatMgr::ProcLoopMsgChat(Player* hum, const cs::CMSendChatMsg& msg) { + ++temp_msg_id_; + cs::MFChatMsg* p = new cs::MFChatMsg(); + p->set_msg_uuid(temp_msg_id_); + hum->FillMFUserInfo(p->mutable_sender()); + //p->set_receiver(world_msg_id_); + p->set_chat_channel(msg.chat_channel()); + p->set_msg_type(msg.msg_type()); + p->set_msg_body(msg.msg_body()); + p->set_send_time(time(nullptr)); + + cs::SMChatMsgNotify notifymsg; + *notifymsg.add_msg_list() = *p; + PlayerMgr::Instance()->TraversePlayer + ([¬ifymsg](Player* hum) + { + hum->SendMsg(notifymsg); + }); + delete p; } ChatedUserRec* ChatMgr::GetChatedUser(const std::string& account_id) diff --git a/server/imserver/chatmgr.h b/server/imserver/chatmgr.h index 29008e6..bdea0c8 100644 --- a/server/imserver/chatmgr.h +++ b/server/imserver/chatmgr.h @@ -67,6 +67,7 @@ class ChatMgr : public a8::Singleton long long private_msg_id_ = 1000; long long world_msg_id_ = 1000; long long guild_msg_id_ = 1000; + long long temp_msg_id_ = 1000; ChatMsgRec world_msgrec_; std::map guild_msgrec_; std::map private_msg_hash_;