From 0697a62bebc4b6958470f35d3f8f938c3e82bedb Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 31 Mar 2020 16:56:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=09=E7=BB=93=E7=AE=97?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/human.cc | 12 ++++++++++++ server/gameserver/human.h | 1 + server/gameserver/player.cc | 10 ++-------- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 0cb550a..fbebcc0 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -2957,3 +2957,15 @@ void Human::AutoChgWeapon() curr_weapon = &weapons[0]; } } + +void Human::CancelRevive() +{ + if (dead && revive_timer && !real_dead) { + dead = true; + real_dead = true; + downed = false; + FreeDownedTimer(); + OnDie(); + FreeReviveTimer(); + } +} diff --git a/server/gameserver/human.h b/server/gameserver/human.h index e103685..65a758a 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -250,6 +250,7 @@ protected: Buff* GetBuffById(int buff_id); void ProcSkillPhase(MetaData::SkillPhase* phase); void AutoChgWeapon(); + void CancelRevive(); private: void ClearFrameData(); diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 27de264..efba3c8 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -1103,6 +1103,7 @@ void Player::_CMVoice(f8::MsgHdr& hdr, const cs::CMVoice& msg) void Player::_CMGameOver(f8::MsgHdr& hdr, const cs::CMGameOver& msg) { + CancelRevive(); SendGameOver(); } @@ -1161,12 +1162,5 @@ void Player::_CMRevive(f8::MsgHdr& hdr, const cs::CMRevive& msg) void Player::_CMCancelRevive(f8::MsgHdr& hdr, const cs::CMCancelRevive& msg) { - if (dead && revive_timer && !real_dead) { - dead = true; - real_dead = true; - downed = false; - FreeDownedTimer(); - OnDie(); - FreeReviveTimer(); - } + CancelRevive(); }