From cc2da015098ba918212ecb15888b32152d85a91c Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 27 Dec 2023 19:13:51 +0800 Subject: [PATCH] 1 --- server/gameserver/mobabattle.cc | 5 +++++ server/gameserver/mobabattle.h | 1 + server/gameserver/roommgr.cc | 10 ++++++++++ 3 files changed, 16 insertions(+) diff --git a/server/gameserver/mobabattle.cc b/server/gameserver/mobabattle.cc index 36fa7476..2ec3c83b 100644 --- a/server/gameserver/mobabattle.cc +++ b/server/gameserver/mobabattle.cc @@ -35,6 +35,11 @@ int MobaBattle::GetMemberNum() return member_id_hash_.size(); } +int MobaBattle::GetTeamNum() +{ + return uuid_hash_.size(); +} + void MobaBattle::TraverseMemberList(std::function func) { for (auto& pair : member_id_hash_) { diff --git a/server/gameserver/mobabattle.h b/server/gameserver/mobabattle.h index 3c22e63e..e6e36850 100644 --- a/server/gameserver/mobabattle.h +++ b/server/gameserver/mobabattle.h @@ -26,6 +26,7 @@ class MobaBattle std::shared_ptr GetTeamByTeamUuid(const std::string& team_uuid); bool AllIsJoined(); int GetMemberNum(); + int GetTeamNum(); void TraverseMemberList(std::function func); private: diff --git a/server/gameserver/roommgr.cc b/server/gameserver/roommgr.cc index 99f35c16..e5f63e22 100644 --- a/server/gameserver/roommgr.cc +++ b/server/gameserver/roommgr.cc @@ -1170,6 +1170,16 @@ void RoomMgr::_CMJoinMoba(f8::MsgHdr* hdr, const cs::CMJoin& msg) if (!member) { return; } + if (p->GetTeamNum() < 0 || + p->GetTeamNum() > 2) { + return; + } + p->TraverseMemberList + ( + [] (MobaMember* m) -> bool + { + return true; + }); }; SendGetMobaBattleData(join_msg, cb); }