From 286e5831eb41b386a40861b57ca9b1d6e385cae4 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 8 Oct 2019 17:12:46 +0800 Subject: [PATCH] 1 --- server/gameserver/handlermgr.cc | 1 + server/gameserver/human.cc | 3 ++- server/gameserver/room.cc | 6 +++--- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/server/gameserver/handlermgr.cc b/server/gameserver/handlermgr.cc index cba54bb..9e5e6db 100644 --- a/server/gameserver/handlermgr.cc +++ b/server/gameserver/handlermgr.cc @@ -90,6 +90,7 @@ void HandlerMgr::RegisterNetMsgHandlers() RegisterNetMsgHandler(&ggmsghandler, &Player::_CMGameOver); RegisterNetMsgHandler(&ggmsghandler, &Player::_CMWatchWar); RegisterNetMsgHandler(&ggmsghandler, &Player::_CMLeave); + RegisterNetMsgHandler(&ggmsghandler, &Player::_CMRevive); } void HandlerMgr::ProcGMMsg(unsigned long saddr, int sockhandle, diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index cd1f7d8..efb4c14 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -2353,7 +2353,7 @@ void Human::OnDie() if (member == this) { member->SendGameOver(); } else { - if (member->dead) { + if (member->real_dead) { member->SendGameOver(); } else if (member->downed) { a8::XParams* timer_param = room->xtimer.MutableParams(member->downed_timer); @@ -2361,6 +2361,7 @@ void Human::OnDie() member->stats.killer_name = timer_param->param2.GetString(); member->stats.weapon_id = timer_param->param2; member->dead = true; + member->real_dead = true; member->health = 0.0f; member->dead_frameno = room->frame_no; member->room->OnHumanDie(this); diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index c65581d..e21f380 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -709,7 +709,7 @@ int Room::GetAliveTeamNum() int num = 0; for (auto& pair : team_hash_) { for (Human* hum : pair.second) { - if (!hum->dead) { + if (!hum->real_dead) { ++num; break; } @@ -833,7 +833,7 @@ std::set* Room::GetAliveTeam() { for (auto& pair : team_hash_) { for (Human* hum : pair.second) { - if (!hum->dead) { + if (!hum->real_dead) { return &pair.second; } } @@ -914,7 +914,7 @@ void Room::UpdateGas() OnGameOver(); } for (auto& pair : human_hash_) { - if (pair.second->dead) { + if (pair.second->real_dead) { continue; } bool b1 = a8::CircleContainCircle(gas_data.pos_old,