diff --git a/server/gameserver/matchmgr.cc b/server/gameserver/matchmgr.cc index ba846df8..6a6112bb 100644 --- a/server/gameserver/matchmgr.cc +++ b/server/gameserver/matchmgr.cc @@ -120,9 +120,17 @@ bool MatchMgr::NeedMatch(const cs::CMJoin& msg) msg.team_slot_num() < MAX_TEAM_NUM && msg.team_members().size() == msg.team_slot_num(); if (need) { - MatchTeam* team = GetTeam(msg.team_uuid()); - if (team && !team->IsValidMember(msg)) { - need = false; + bool found = false; + for (int i = 0; i < msg.team_members().size(); ++i) { + if (msg.account_id() == msg.team_members(i).account_id()) { + found = true; + } + } + if (found) { + MatchTeam* team = GetTeam(msg.team_uuid()); + if (team && !team->IsValidMember(msg)) { + need = false; + } } } return need; diff --git a/server/gameserver/matchteam.cc b/server/gameserver/matchteam.cc index 7d004ea1..30369566 100644 --- a/server/gameserver/matchteam.cc +++ b/server/gameserver/matchteam.cc @@ -213,9 +213,6 @@ bool MatchTeam::IsRawMember(const std::string &account_id) bool MatchTeam::IsValidMember(const cs::CMJoin& msg) { - if (msg.team_members().size() <= 0) { - return false; - } if (first_member_->msg->team_uuid() != msg.team_uuid()) { return false; }