修复合并问题

This commit is contained in:
aozhiwei 2020-03-31 14:05:55 +08:00
parent 0670c384d8
commit 56655f41fb

View File

@ -1212,7 +1212,9 @@ void Room::CombineTeam()
for (auto& pair : team_hash_) {
for (Human* hum : pair.second) {
if (hum->auto_fill && !hum->team_uuid.empty()) {
first_team_id = pair.first;
if (first_team_id == 0) {
first_team_id = pair.first;
}
need_combine_teams[pair.first] = pair.second.size();
total_count += pair.second.size();
break;
@ -1266,6 +1268,7 @@ void Room::CombineTeam()
}
if (team_id1 != team_id2) {
if (pair1.second + pair2.second <= MAX_TEAM_NUM) {
int new_team_num = pair1.second + pair2.second;
{
std::set<Human*>& team1_members = team_hash_[team_id1];
std::set<Human*>& team2_members = team_hash_[team_id2];
@ -1290,6 +1293,8 @@ void Room::CombineTeam()
if (pair1.second + pair2.second >= first_team_num) {
need_combine_teams.erase(team_id1);
need_combine_teams_copy.erase(team_id1);
} else {
pair1.second = new_team_num;
}
need_combine_teams.erase(team_id2);
need_combine_teams_copy.erase(team_id2);
@ -1300,6 +1305,8 @@ void Room::CombineTeam()
if (pair1.second + pair2.second >= MAX_TEAM_NUM) {
need_combine_teams.erase(team_id1);
need_combine_teams_copy.erase(team_id1);
} else {
pair1.second = new_team_num;
}
} else {
need_combine_teams.erase(team_id1);
@ -1307,6 +1314,8 @@ void Room::CombineTeam()
if (pair1.second + pair2.second >= MAX_TEAM_NUM) {
need_combine_teams.erase(team_id2);
need_combine_teams_copy.erase(team_id2);
} else {
pair2.second = new_team_num;
}
}
}