From 7dcc460ea2f42211aef5f56680389a22a0d3eaa5 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 26 Aug 2022 11:40:21 +0800 Subject: [PATCH] 1 --- server/gameserver/human.cc | 43 ++++++++++++++++++++++++++++++++++++++ server/gameserver/room.cc | 5 +++++ server/gameserver/room.h | 1 + 3 files changed, 49 insertions(+) diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 89b65341..1d76452d 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -951,6 +951,7 @@ void Human::FillSMGameOver(cs::SMGameOver& msg) } msg.set_team_id(team_id); msg.set_team_rank(stats.rank); + msg.set_personal_rank(stats.rank); msg.set_team_allcnt(1); msg.set_game_over(room->IsGameOver() || (alive_team_num == 1)); msg.set_victory(!dead); @@ -974,12 +975,54 @@ void Human::FillSMGameOver(cs::SMGameOver& msg) cs::MFPlayerStats* p = msg.add_player_stats(); FillMFPlayerStats(p); } + { + msg.set_total_team_num(room->GetTeamNum()); + if (room->IsPveRoom()) { + msg.set_pve_wave(room->pve_data.wave); + msg.set_pve_max_wave(room->pve_data.max_wave); + msg.set_pve_instance_id(room->pve_instance->pb->gemini_id()); + } + } { for (auto& pair : spoils_items) { auto p = msg.add_spoils_items(); p->add_values(pair.first); p->add_values(pair.second); } +#ifdef DEBUG + { + { + auto p = msg.add_spoils_items(); + p->add_values(10001); + p->add_values(1000); + } + { + int items[] = { + 110101, + 110111, + 110121, + 110131, + 110141, + 110151, + 110161, + 110171, + 110181, + 110201, + 110211, + 110221, + 110231, + 110241, + 110251, + 110261, + 110271, + 110281 + }; + auto p = msg.add_spoils_items(); + p->add_values(10001); + p->add_values(1000); + } + } +#endif } stats.CalcReward(this, stats.rank, stats.kills); TypeConvert::ToPb(stats.over_reward, msg.mutable_reward()); diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 43721fca..5e4a1b3f 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -949,6 +949,11 @@ int Room::GetAliveTeamNum() return num; } +int Room::GetTeamNum() +{ + return team_hash_.size(); +} + bool Room::CanJoin(const std::string& accountid, RoomType_e self_room_type, RoomMode_e self_room_mode, diff --git a/server/gameserver/room.h b/server/gameserver/room.h index 58ded463..0d4a9c3e 100644 --- a/server/gameserver/room.h +++ b/server/gameserver/room.h @@ -188,6 +188,7 @@ public: bool OverBorder(const a8::Vec2& pos, ColliderComponent* collider); Human* GetWatchWarTarget(Human* hum); bool BattleStarted(); + int GetTeamNum(); int GetAliveTeamNum(); Team* GetAliveTeam(); bool CanJoin(const std::string& accountid,