1
This commit is contained in:
parent
b8f94585a1
commit
92b7dd8a15
@ -4576,12 +4576,14 @@ void Human::FillMFSettlement(cs::SMGameOver* msg, cs::MFSettlement* s)
|
||||
s->set_temmate_all_dead(1);
|
||||
|
||||
s->set_map_id(room->GetMapMeta()->i->map_id());
|
||||
s->set_map_name("");
|
||||
s->set_map_name(room->GetMapMeta()->i->map_name());
|
||||
s->set_rank_chg(0);
|
||||
for (auto item : msg->spoils_items()) {
|
||||
auto p = s->add_spoils_items();
|
||||
p->set_item_id(a8::XValue(item.values(0)));
|
||||
p->set_item_num(a8::XValue(item.values(1)));
|
||||
if (a8::XValue(item.values(1)).GetInt() > 0) {
|
||||
auto p = s->add_spoils_items();
|
||||
p->set_item_id(a8::XValue(item.values(0)));
|
||||
p->set_item_num(a8::XValue(item.values(1)));
|
||||
}
|
||||
}
|
||||
|
||||
if (room->IsPveRoom()) {
|
||||
@ -4600,36 +4602,56 @@ void Human::FillMFSettlement(cs::SMGameOver* msg, cs::MFSettlement* s)
|
||||
}
|
||||
|
||||
*s->mutable_reward() = msg->reward();
|
||||
std::vector<const cs::MFPlayerStats*> stats;
|
||||
{
|
||||
for (auto& item : msg->player_stats()) {
|
||||
stats.push_back(&item);
|
||||
}
|
||||
if (room->IsPveRoom()) {
|
||||
std::sort(stats.begin(), stats.end(),
|
||||
[] (const cs::MFPlayerStats* a, const cs::MFPlayerStats *b) -> bool
|
||||
{
|
||||
if (a->score() > b->score()) {
|
||||
return true;
|
||||
}
|
||||
if (a->score() < b->score()) {
|
||||
return false;
|
||||
}
|
||||
return a->player_id() < b->player_id();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
for (auto item : msg->player_stats()) {
|
||||
int i = 0;
|
||||
for (auto item : stats) {
|
||||
++i;
|
||||
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_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_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());
|
||||
p->set_pve_order(i);
|
||||
p->set_pve_score(item->score());
|
||||
p->set_pve_star(room->pve_mode_meta->CalcStar(item->score()));
|
||||
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());
|
||||
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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1747,6 +1747,19 @@ namespace MetaData
|
||||
}
|
||||
}
|
||||
|
||||
int PveGeminiMode::CalcStar(int score)
|
||||
{
|
||||
int star = 0;
|
||||
for (int i = 0; i < score_reward.size(); ++i) {
|
||||
if (score >= score_reward[i]) {
|
||||
star = i + 1;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return star;
|
||||
}
|
||||
|
||||
void SkillNumber::Init()
|
||||
{
|
||||
int_ratio = a8::XValue(pb->ratio());
|
||||
|
@ -479,6 +479,7 @@ namespace MetaData
|
||||
std::vector<a8::Vec2> next_door;
|
||||
|
||||
void Init();
|
||||
int CalcStar(int score);
|
||||
};
|
||||
|
||||
struct RankRoom
|
||||
|
Loading…
x
Reference in New Issue
Block a user