From 45b58339cbf4c06008bd9909e35ad5f9c8c88733 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sun, 17 Mar 2024 10:52:10 +0800 Subject: [PATCH] 1 --- server/gameserver/roommgr.cc | 56 ++++++++++++++++++++++-------------- server/gameserver/roommgr.h | 6 ++++ 2 files changed, 41 insertions(+), 21 deletions(-) diff --git a/server/gameserver/roommgr.cc b/server/gameserver/roommgr.cc index 4b9342c6..a865312c 100644 --- a/server/gameserver/roommgr.cc +++ b/server/gameserver/roommgr.cc @@ -334,6 +334,16 @@ std::shared_ptr RoomMgr::GetJoinableRoom(const cs::CMJoin& msg, nullptr); } +std::shared_ptr RoomMgr::GetJoinableRoom(std::shared_ptr custom_battle, + const RoomType_e self_room_type, + int game_times, + int creator_register_time, + int proto_version, + int channel) +{ + return nullptr; +} + std::shared_ptr RoomMgr::GetRoomByUuid(const std::string& room_uuid) { auto itr = room_hash_.find(room_uuid); @@ -1015,29 +1025,33 @@ void RoomMgr::_CMJoinCustomBattle(f8::MsgHdr* hdr, const cs::CMJoin& msg, int cu int proto_version = msg.proto_version(); int channel = f8::ExtractChannelIdFromAccountId(msg.account_id()); std::shared_ptr room = nullptr; - if (p->IsPvp()) { - room = RoomMgr::Instance()->CreateRoom - (*join_msg, - self_room_type, - game_times, - register_time, - join_msg->proto_version(), - channel, - msg.mapid(), - p); + if (p->IsNormalMode()) { + } else { - room = RoomMgr::Instance()->CreateRoom - (*join_msg, - self_room_type, - game_times, - register_time, - join_msg->proto_version(), - channel, - msg.mapid(), - nullptr); + if (p->IsPvp()) { + room = RoomMgr::Instance()->CreateRoom + (*join_msg, + self_room_type, + game_times, + register_time, + join_msg->proto_version(), + channel, + msg.mapid(), + p); + } else { + room = RoomMgr::Instance()->CreateRoom + (*join_msg, + self_room_type, + game_times, + register_time, + join_msg->proto_version(), + channel, + msg.mapid(), + nullptr); + } + p->SetRoom(room.get()); + room->InitWithCustomBattle(ip_saddr, socket_handle, join_msg, p); } - p->SetRoom(room.get()); - room->InitWithCustomBattle(ip_saddr, socket_handle, join_msg, p); }; SendGetCustomBattleData(join_msg, cb, custom_room_type); } diff --git a/server/gameserver/roommgr.h b/server/gameserver/roommgr.h index 96964850..12cfa015 100644 --- a/server/gameserver/roommgr.h +++ b/server/gameserver/roommgr.h @@ -96,6 +96,12 @@ class RoomMgr : public a8::Singleton int creator_register_time, int proto_version, int channel); + std::shared_ptr GetJoinableRoom(std::shared_ptr custom_battle, + const RoomType_e self_room_type, + int game_times, + int creator_register_time, + int proto_version, + int channel); void ReportServerState(int instance_id, const std::string& host, int port); void FreeOverRoom(const std::string& room_uuid); bool IsLimitJoin();