From f0fb944f7e0cbf582fa2ab1fec658cb302582ead Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 21 Aug 2024 10:30:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=98=9F=E5=8F=8B=E5=85=A8?= =?UTF-8?q?=E6=AD=BB=E5=90=8E=E4=B8=8D=E5=8F=91GameOver=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/commands.cc | 15 +++++++++++++++ server/gameserver/human.cc | 3 +++ server/gameserver/pbutils.cc | 6 +++++- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/server/gameserver/commands.cc b/server/gameserver/commands.cc index 7589f8ed..2e3a0a56 100644 --- a/server/gameserver/commands.cc +++ b/server/gameserver/commands.cc @@ -252,6 +252,21 @@ void Player::_CMExecCommand(f8::MsgHdr* hdr, const cs::CMExecCommand& msg) room->grid_service->MoveCreature(hum); return true; }); + } else if (cmd == "dead_teammate") { + GetTeam()->TraverseMembers + ( + [this] (Human* hum) -> bool + { + if (hum != this && !hum->dead) { + hum->BeKill(VP_Gas, + TEXT("battle_server_killer_gas", "毒圈"), + VW_Gas, + VP_Gas, + TEXT("battle_server_killer_gas", "毒圈")); + return false; + } + return true; + }); } else if (cmd == "total_lucky") { SendDebugMsg(a8::Format("total_lucky:%f", {GetNetData()->GetTotalLucky()})); } else if (cmd == "randomobj" && cmds.size() >= 2) { diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 79341851..07231b03 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -1281,6 +1281,9 @@ void Human::OnDie() return true; }); } + if (IsPlayer()) { + int i = 0; + } if (real_dead) { std::set over_humans; if (!leave_) { diff --git a/server/gameserver/pbutils.cc b/server/gameserver/pbutils.cc index e98d5908..17c76a41 100644 --- a/server/gameserver/pbutils.cc +++ b/server/gameserver/pbutils.cc @@ -1539,6 +1539,9 @@ void Human::SendUpdateMsg() void Human::SendGameOver() { + if (IsPlayer()){ + int i = 0; + } CalcStats(); if (stats->abandon_battle == 1 || (GetTeam()->HasPlayer()) || GetTeam()->MemberHasOb()) { if (room->IsAlreadyRoomReportBattle()) { @@ -1565,7 +1568,8 @@ void Human::SendGameOver() sent_personal_report_ = true; } if (GetTeam()->team_rank && GetTeam()->HasPlayer() && !GetTeam()->IsViewTeam() && - stats->abandon_battle != 1 && !room->IsMobaModeRoom()) { + stats->abandon_battle != 1 && !room->IsMobaModeRoom() && + !GetTeam()->IsAlreadyReportBattle()) { GetTeam()->TrySendTeamBattleReport(this); } else { cs::SMGameOver msg;