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;