diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 946520c3..63af3afc 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -4600,4 +4600,36 @@ void Human::FillMFSettlement(cs::SMGameOver* msg, cs::MFSettlement* s) } *s->mutable_reward() = msg->reward(); + + for (auto item : msg->player_stats()) { + auto p = s->add_members_stats(); + p->set_id(item.player_id()); + p->set_account_id(item.account_id()); + p->set_name(item.nickname()); + p->set_head(a8::XValue(avatar_url)); + p->set_head_frame(item.head_frame()); + p->set_sex(item.sex()); + p->set_hero_id(item.charid()); + p->set_dead(item.dead() ? 1 : 0); + p->set_is_myself(item.account_id() == account_id ? 1 : 0); + // + p->set_is_mvp(0); + + if (room->IsPveRoom()) { + p->set_pve_order(0); + p->set_pve_score(item.score()); + // + p->set_pve_star(0); + p->set_pve_damage(item.damage_amount()); + p->set_pve_round(item.pve_wave()); + p->set_pve_revive(item.revive()); + } else { + p->set_pvp_kill(item.kills()); + p->set_pvp_damage(item.damage_amount()); + p->set_pvp_assist(item.assist()); + p->set_pvp_survia_time(item.time_alive()); + p->set_pvp_recover(item.heal_amount()); + p->set_pvp_rescue(item.rescue()); + } + } }