This commit is contained in:
aozhiwei 2023-03-21 20:19:21 +08:00
parent 137d1ab873
commit 0c5927d3a0
5 changed files with 35 additions and 0 deletions

View File

@ -1705,9 +1705,13 @@ void Human::SendBattleReport()
if (ok) { if (ok) {
hum->sending_battlereport_ = false; hum->sending_battlereport_ = false;
hum->already_report_battle_ = true; hum->already_report_battle_ = true;
#if 0
hum->stats.ParseReward(hum, *rsp_obj); hum->stats.ParseReward(hum, *rsp_obj);
#endif
hum->SendGameOver(); hum->SendGameOver();
#if 0
hum->SendBattleSettlement(); hum->SendBattleSettlement();
#endif
} else { } else {
hum->sending_battlereport_ = false; hum->sending_battlereport_ = false;
} }
@ -3564,3 +3568,8 @@ void Human::ProcGemStoneItem(AddItemDTO& dto)
} }
dto.handled = true; dto.handled = true;
} }
void Human::SendTeamBattleReport()
{
}

View File

@ -419,6 +419,7 @@ private:
void FillSMGameOver(cs::SMGameOver& msg); void FillSMGameOver(cs::SMGameOver& msg);
void SendBattleSettlement(); void SendBattleSettlement();
void SendBattleReport(); void SendBattleReport();
void SendTeamBattleReport();
void Revive(); void Revive();
void AdjustDecHp(float old_health, float& new_health); void AdjustDecHp(float old_health, float& new_health);
void ClearPartObjects(); void ClearPartObjects();

View File

@ -1336,6 +1336,17 @@ void Human::SendUpdateMsg()
void Human::SendGameOver() void Human::SendGameOver()
{ {
#if 1
if (GetTeam()->HasPlayer()) {
SendTeamBattleReport();
}
if (IsEntitySubType(EST_Player)) {
if (!is_game_end_) {
GameLog::Instance()->GameEnd((Player*)this);
is_game_end_ = true;
}
}
#else
if (IsEntitySubType(EST_Player)) { if (IsEntitySubType(EST_Player)) {
if (already_report_battle_) { if (already_report_battle_) {
cs::SMGameOver msg; cs::SMGameOver msg;
@ -1357,6 +1368,7 @@ void Human::SendGameOver()
} }
} }
} }
#endif
} }
void Human::SendDebugMsg(const std::string& debug_msg) void Human::SendDebugMsg(const std::string& debug_msg)

View File

@ -164,3 +164,13 @@ bool Team::IsFreeTeam()
} }
return false; return false;
} }
bool Team::HasPlayer()
{
for (Human* member : members_) {
if (member->IsPlayer()) {
return true;
}
}
return false;
}

View File

@ -8,6 +8,8 @@ class Team
Room* room = nullptr; Room* room = nullptr;
int team_rank = 0; int team_rank = 0;
std::map<int, glm::vec3> target_pos; std::map<int, glm::vec3> target_pos;
bool sending_battlereport = false;
bool already_report_battle = false;
void SetInitTeamMemberNum(int init_num) { init_team_member_num_ = init_num; }; void SetInitTeamMemberNum(int init_num) { init_team_member_num_ = init_num; };
void SetAutoFill(bool auto_fill) { auto_fill_ = auto_fill; }; void SetAutoFill(bool auto_fill) { auto_fill_ = auto_fill; };
@ -30,6 +32,7 @@ class Team
int GetInitTeamMemberNum() { return init_team_member_num_; }; int GetInitTeamMemberNum() { return init_team_member_num_; };
bool HasReviveCoin(Human* member); bool HasReviveCoin(Human* member);
bool IsFreeTeam(); bool IsFreeTeam();
bool HasPlayer();
private: private:
int team_id_ = 0; int team_id_ = 0;