From bcaa24b0953ca9d2875172f37afc0596d0e3e116 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 11 Sep 2024 17:25:45 +0800 Subject: [PATCH 1/2] 1 --- server/gameserver/buff/hide.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/server/gameserver/buff/hide.cc b/server/gameserver/buff/hide.cc index d5aeeae5..e50a85ba 100644 --- a/server/gameserver/buff/hide.cc +++ b/server/gameserver/buff/hide.cc @@ -68,6 +68,13 @@ void HideBuff::Deactivate() if (meta->_int_buff_param6 > 0) { owner->GetAbility()->DecSwitch(kHideBuffAimingShow); } + if (!owner->nature_recover_hp_idle_timer.expired()) { + owner->room->xtimer.FireEvent + ( + owner->nature_recover_hp_idle_timer, + kRemoveNatureRecoverTimerEvent, + nullptr); + } } void HideBuff::AddInRangeObject(Creature* target) From 5d63784212e8517d1f2f61f86277009b9bc981db Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 13 Sep 2024 14:54:32 +0800 Subject: [PATCH 2/2] 1 --- server/gameserver/buff/hide.cc | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/server/gameserver/buff/hide.cc b/server/gameserver/buff/hide.cc index e50a85ba..dd752d67 100644 --- a/server/gameserver/buff/hide.cc +++ b/server/gameserver/buff/hide.cc @@ -68,12 +68,25 @@ void HideBuff::Deactivate() if (meta->_int_buff_param6 > 0) { owner->GetAbility()->DecSwitch(kHideBuffAimingShow); } - if (!owner->nature_recover_hp_idle_timer.expired()) { - owner->room->xtimer.FireEvent + if (!owner->room->IsDestorying() && !owner->room->IsGameOver()) { + owner->room->xtimer.SetTimeoutWpEx ( - owner->nature_recover_hp_idle_timer, - kRemoveNatureRecoverTimerEvent, - nullptr); + SERVER_FRAME_RATE, + [owner = owner] + (int event, const a8::Args* args) mutable + { + if (a8::TIMER_EXEC_EVENT == event) { + if (!owner->nature_recover_hp_idle_timer.expired()) { + owner->room->xtimer.FireEvent + ( + owner->nature_recover_hp_idle_timer, + kRemoveNatureRecoverTimerEvent, + nullptr); + } + } + }, + &owner->xtimer_attacher + ); } }