1
This commit is contained in:
parent
1f6c7e7996
commit
3377c1021e
@ -1768,6 +1768,41 @@ void Player::_CMSetRevivePosition(f8::MsgHdr& hdr, const cs::CMSetRevivePosition
|
|||||||
|
|
||||||
void Player::_CMGetSettlementTeamList(f8::MsgHdr& hdr, const cs::CMGetSettlementTeamList& msg)
|
void Player::_CMGetSettlementTeamList(f8::MsgHdr& hdr, const cs::CMGetSettlementTeamList& msg)
|
||||||
{
|
{
|
||||||
cs::CMGetSettlementTeamList rspmsg;
|
cs::SMGetSettlementTeamList rspmsg;
|
||||||
|
std::vector<Team*> sorted_teams;
|
||||||
|
room->TraverseTeams
|
||||||
|
(
|
||||||
|
[&sorted_teams] (Team* team) -> bool
|
||||||
|
{
|
||||||
|
sorted_teams.push_back(team);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
std::sort(sorted_teams.begin(), sorted_teams.end(),
|
||||||
|
[] (Team* a, Team *b) -> bool
|
||||||
|
{
|
||||||
|
if (a->team_rank == 0 && b->team_rank == 0) {
|
||||||
|
return a->GetTeamId() < b->GetTeamId();
|
||||||
|
}
|
||||||
|
return a->team_rank < b->team_rank;
|
||||||
|
});
|
||||||
|
int team_rank = 1;
|
||||||
|
for (auto& team : sorted_teams) {
|
||||||
|
auto p = rspmsg.add_team_list();
|
||||||
|
p->set_team_id(team->GetTeamId());
|
||||||
|
p->set_team_rank(team_rank);
|
||||||
|
team->TraverseMembers
|
||||||
|
(
|
||||||
|
[p] (Human* hum) -> bool
|
||||||
|
{
|
||||||
|
auto m = p->add_members();
|
||||||
|
m->set_obj_uniid(hum->GetUniId());
|
||||||
|
m->set_account_id(hum->account_id);
|
||||||
|
m->set_name(hum->name);
|
||||||
|
m->set_hero_id(hum->meta->id());
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
++team_rank;
|
||||||
|
}
|
||||||
SendNotifyMsg(rspmsg);
|
SendNotifyMsg(rspmsg);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user