1
This commit is contained in:
parent
b104312a63
commit
a12cddfe49
@ -911,6 +911,7 @@ void Human::UpdateMove()
|
||||
Creature::UpdateMove();
|
||||
}
|
||||
|
||||
#if 0
|
||||
void Human::GenBattleReportData(a8::MutableXObject* params)
|
||||
{
|
||||
params->SetVal("room_mode", room->GetRoomMode());
|
||||
@ -1162,7 +1163,7 @@ void Human::GenBattleReportData(a8::MutableXObject* params)
|
||||
params->SetVal("__POST", post_data->ToJsonStr());
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
void Human::DeadDrop()
|
||||
{
|
||||
if (room->IsMobaModeRoom()) {
|
||||
|
@ -318,7 +318,6 @@ protected:
|
||||
void DropWeapon(int weapon_idx, int num);
|
||||
|
||||
private:
|
||||
void GenBattleReportData(a8::MutableXObject* params);
|
||||
void FillSMGameOver(cs::SMGameOver& msg);
|
||||
void SendBattleSettlement();
|
||||
void SendPersonalBattleReport();
|
||||
|
@ -1131,203 +1131,14 @@ void Human::FillSMGameOver(cs::SMGameOver& msg)
|
||||
msg.mutable_settlement_new()->set_box_payload(custom_data);
|
||||
}
|
||||
if (room->IsAlreadyRoomReportBattle()) {
|
||||
msg.mutable_settlement_new()->set_settlement_status(1);
|
||||
auto p = msg.mutable_settlement_new();
|
||||
p->set_version(20230321);
|
||||
p->set_team_id(GetTeam()->GetTeamId());
|
||||
p->set_room_uuid(a8::XValue(room->GetRoomUuid()).GetString());
|
||||
p->set_room_mode(room->GetReportRoomMode());
|
||||
p->set_team_mode(1);
|
||||
p->set_game_over(room->IsGameOver() ? 1 : 0);
|
||||
p->set_victory(stats->victory ? 1 : 0);
|
||||
p->set_watchable(false);
|
||||
p->set_map_mode_id(room->GetMapModeMeta()->id());
|
||||
p->set_map_mode(room->GetReportMapMode());
|
||||
p->set_map_id(room->GetMapMeta()->map_id());
|
||||
p->set_battle_uuid(GetTeam()->GetBattleUuid());
|
||||
|
||||
if (room->IsPveRoom()) {
|
||||
p->set_pve_settlement_color(stats->settlement_color);
|
||||
p->set_pve_wave(room->pve_data.GetPassedWave());
|
||||
p->set_pve_max_wave(room->pve_data.max_wave);
|
||||
p->set_pve_instance_id(room->pve_instance->gemini_id());
|
||||
} else if (room->IsMobaModeRoom()) {
|
||||
p->set_moba_my_team_kills(GetTeam()->GetKillCount());
|
||||
if (room->GetMobaTeamA() == GetTeam()) {
|
||||
p->set_moba_enemy_team_kills(room->GetMobaTeamB()->GetKillCount());
|
||||
} else {
|
||||
p->set_moba_enemy_team_kills(room->GetMobaTeamA()->GetKillCount());
|
||||
}
|
||||
} else {
|
||||
p->set_pvp_settlement_type(stats->pvp_settlement_type);
|
||||
p->set_pvp_settlement_color(stats->settlement_color);
|
||||
p->set_pvp_team_rank(GetTeam()->team_rank);
|
||||
p->set_pvp_total_human_num(room->GetHumanNum());
|
||||
p->set_pvp_alive_human_num(room->AliveCount());
|
||||
p->set_pvp_total_team_num(room->GetTeamNum());
|
||||
p->set_pvp_match_mode(room->GetPvpMatchMode());
|
||||
}
|
||||
GetTeam()->FillMFSettlementNew(msg.mutable_settlement_new());
|
||||
return;
|
||||
} else {
|
||||
msg.mutable_settlement_new()->set_settlement_status(0);
|
||||
auto p = msg.mutable_settlement_new();
|
||||
p->set_version(20230321);
|
||||
p->set_team_id(GetTeam()->GetTeamId());
|
||||
p->set_room_uuid(a8::XValue(room->GetRoomUuid()).GetString());
|
||||
p->set_room_mode(room->GetReportRoomMode());
|
||||
p->set_team_mode(1);
|
||||
p->set_game_over(room->IsGameOver() ? 1 : 0);
|
||||
p->set_victory(stats->victory ? 1 : 0);
|
||||
{
|
||||
int alive_team_num = room->GetAliveTeamNum();
|
||||
|
||||
if (stats->victory) {
|
||||
p->set_watchable(false);
|
||||
} else {
|
||||
if (room->GetAliveTeamNum() > 1) {
|
||||
p->set_watchable(true);
|
||||
} else {
|
||||
if (room->IsPveRoom()) {
|
||||
p->set_watchable(!room->IsGameOver());
|
||||
} else {
|
||||
p->set_watchable(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
p->set_map_mode_id(room->GetMapModeMeta()->id());
|
||||
p->set_map_mode(room->GetReportMapMode());
|
||||
p->set_map_id(room->GetMapMeta()->map_id());
|
||||
p->set_battle_uuid(GetTeam()->GetBattleUuid());
|
||||
|
||||
if (room->IsPveRoom()) {
|
||||
p->set_pve_settlement_color(stats->settlement_color);
|
||||
p->set_pve_wave(room->pve_data.GetPassedWave());
|
||||
p->set_pve_max_wave(room->pve_data.max_wave);
|
||||
p->set_pve_instance_id(room->pve_instance->gemini_id());
|
||||
} else if (room->IsMobaModeRoom()) {
|
||||
p->set_moba_my_team_kills(GetTeam()->GetKillCount());
|
||||
if (room->GetMobaTeamA() == GetTeam()) {
|
||||
p->set_moba_enemy_team_kills(room->GetMobaTeamB()->GetKillCount());
|
||||
} else {
|
||||
p->set_moba_enemy_team_kills(room->GetMobaTeamA()->GetKillCount());
|
||||
}
|
||||
} else {
|
||||
p->set_pvp_settlement_type(stats->pvp_settlement_type);
|
||||
p->set_pvp_settlement_color(stats->settlement_color);
|
||||
p->set_pvp_team_rank(GetTeam()->team_rank);
|
||||
p->set_pvp_total_human_num(room->GetHumanNum());
|
||||
p->set_pvp_alive_human_num(room->AliveCount());
|
||||
p->set_pvp_total_team_num(room->GetTeamNum());
|
||||
p->set_pvp_match_mode(room->GetPvpMatchMode());
|
||||
}
|
||||
GetTeam()->FillMFSettlementNew(msg.mutable_settlement_new());
|
||||
return;
|
||||
}
|
||||
int alive_team_num = room->GetAliveTeamNum();
|
||||
|
||||
if (stats->victory) {
|
||||
msg.set_watchable(false);
|
||||
} else {
|
||||
if (room->GetAliveTeamNum() > 1) {
|
||||
msg.set_watchable(true);
|
||||
} else {
|
||||
if (room->IsPveRoom()) {
|
||||
msg.set_watchable(!room->IsGameOver());
|
||||
} else {
|
||||
msg.set_watchable(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
msg.set_map_id(room->GetMapMeta()->map_id());
|
||||
msg.set_team_id(team_id);
|
||||
msg.set_team_rank(GetTeam()->team_rank);
|
||||
msg.set_personal_rank(stats->rank);
|
||||
if (room->IsPveRoom()) {
|
||||
msg.set_game_over(room->IsGameOver());
|
||||
} else {
|
||||
msg.set_game_over(room->IsGameOver() || (alive_team_num == 1));
|
||||
}
|
||||
msg.set_victory(stats->victory);
|
||||
msg.set_room_uuid(a8::XValue(room->GetRoomUuid()));
|
||||
msg.set_total_human_num(room->GetHumanNum());
|
||||
msg.set_alive_human_num(room->AliveCount());
|
||||
if (GetTeam()) {
|
||||
GetTeam()->TraverseMembers
|
||||
(
|
||||
[this, &msg] (Human* member) -> bool
|
||||
{
|
||||
{
|
||||
member->FillMFTeamData(this, msg.add_team_data(), true);
|
||||
cs::MFPlayerStats* p = msg.add_player_stats();
|
||||
member->FillMFPlayerStats(p);
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
{
|
||||
msg.set_total_team_num(room->GetTeamNum());
|
||||
if (room->IsPveRoom()) {
|
||||
msg.set_pve_wave(room->pve_data.GetPassedWave());
|
||||
msg.set_pve_max_wave(room->pve_data.max_wave);
|
||||
msg.set_pve_instance_id(room->pve_instance->gemini_id());
|
||||
msg.set_pve_boss_killed(room->pve_data.boss_state == 2 ? 1 : 0);
|
||||
}
|
||||
}
|
||||
TypeConvert::ToPb(stats->over_reward, msg.mutable_reward());
|
||||
{
|
||||
if (!stats->over_reward.total_ceg.empty()) {
|
||||
auto p = msg.add_spoils_items();
|
||||
p->add_values("10001");
|
||||
p->add_values(stats->over_reward.total_ceg);
|
||||
}
|
||||
for (auto& tuple : stats->over_reward.items) {
|
||||
auto p = msg.add_spoils_items();
|
||||
p->add_values(a8::XValue(std::get<0>(tuple)).GetString());
|
||||
p->add_values(std::get<1>(tuple));
|
||||
}
|
||||
}
|
||||
{
|
||||
if (room->IsPveRoom()) {
|
||||
msg.set_mode(GetTeam()->GetMemberNum() <= 1 ? 1 : 2);
|
||||
msg.set_my_rank(room->pve_data.GetPassedWave());
|
||||
msg.set_max_rank(room->pve_data.max_wave);
|
||||
} else {
|
||||
if (GetTeam()->GetMemberNum() <= 1) {
|
||||
msg.set_mode(1);
|
||||
msg.set_my_rank(stats->rank);
|
||||
msg.set_max_rank(room->GetHumanNum());
|
||||
} else {
|
||||
if (GetTeam()->team_rank <= 0) {
|
||||
msg.set_mode(1);
|
||||
msg.set_my_rank(stats->rank);
|
||||
msg.set_max_rank(room->GetHumanNum());
|
||||
} else {
|
||||
msg.set_mode(2);
|
||||
msg.set_my_rank(GetTeam()->team_rank);
|
||||
msg.set_max_rank(room->GetTeamNum());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#if 1
|
||||
if (room->GetBattleStartFrameNo() <= 0 &&
|
||||
dead_frameno) {
|
||||
msg.set_team_rank(0);
|
||||
msg.set_personal_rank(0);
|
||||
msg.set_my_rank(0);
|
||||
}
|
||||
#endif
|
||||
if (IsPlayer()) {
|
||||
Player* p = (Player*)this;
|
||||
if (!p->settlement) {
|
||||
p->settlement = std::make_shared<cs::MFSettlement>();
|
||||
FillMFSettlement(&msg, p->settlement.get());
|
||||
}
|
||||
*msg.mutable_settlement() = *p->settlement;
|
||||
}
|
||||
}
|
||||
|
||||
void Human::FillMFActivePlayerData(cs::MFActivePlayerData* player_data)
|
||||
@ -2507,6 +2318,7 @@ void GGListener::_SS_WSP_SocketDisconnect(f8::MsgHdr* hdr, const ss::SS_WSP_Sock
|
||||
void Team::FillMFSettlementNew(cs::MFSettlementNew* p)
|
||||
{
|
||||
if (room->IsAlreadyRoomReportBattle()) {
|
||||
p->set_settlement_status(1);
|
||||
p->set_version(20230321);
|
||||
p->set_team_id(GetTeamId());
|
||||
p->set_room_uuid(a8::XValue(room->GetRoomUuid()).GetString());
|
||||
@ -2514,6 +2326,11 @@ void Team::FillMFSettlementNew(cs::MFSettlementNew* p)
|
||||
p->set_team_mode(1);
|
||||
p->set_game_over(room->IsGameOver() ? 1 : 0);
|
||||
//p->set_victory(stats->victory ? 1 : 0);
|
||||
if (room->IsPveRoom()) {
|
||||
p->set_victory(room->pve_data.pve_kill_boss == 1 ? 1 : 0);
|
||||
} else {
|
||||
p->set_victory(team_rank == 1 ? 1 : 0);
|
||||
}
|
||||
p->set_watchable(false);
|
||||
p->set_map_mode_id(room->GetMapModeMeta()->id());
|
||||
p->set_map_mode(room->GetReportMapMode());
|
||||
@ -2526,7 +2343,7 @@ void Team::FillMFSettlementNew(cs::MFSettlementNew* p)
|
||||
p->set_pve_max_wave(room->pve_data.max_wave);
|
||||
p->set_pve_instance_id(room->pve_instance->gemini_id());
|
||||
} else if (room->IsMobaModeRoom()) {
|
||||
//p->set_moba_my_team_kills(GetTeam()->GetKillCount());
|
||||
p->set_moba_my_team_kills(GetKillCount());
|
||||
if (room->GetMobaTeamA() == this) {
|
||||
p->set_moba_enemy_team_kills(room->GetMobaTeamB()->GetKillCount());
|
||||
} else {
|
||||
@ -2542,6 +2359,7 @@ void Team::FillMFSettlementNew(cs::MFSettlementNew* p)
|
||||
p->set_pvp_match_mode(room->GetPvpMatchMode());
|
||||
}
|
||||
} else {
|
||||
p->set_settlement_status(0);
|
||||
p->set_version(20230321);
|
||||
p->set_team_id(GetTeamId());
|
||||
p->set_room_uuid(a8::XValue(room->GetRoomUuid()).GetString());
|
||||
|
Loading…
x
Reference in New Issue
Block a user