From 96232241ddc1a4d64df2ba507f603d8e6d2c23d5 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 23 Oct 2023 14:36:13 +0800 Subject: [PATCH] 1 --- server/gameserver/creature.cc | 5 +++++ server/gameserver/human.cc | 10 ++++++++++ server/gameserver/player.cc | 5 +++++ server/gameserver/shot.cc | 5 +++++ 4 files changed, 25 insertions(+) diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index ae6c385a..5b0c24c6 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -937,6 +937,11 @@ void Creature::DoSkill(int skill_id, a8::XPrintf("DoSkill minor_type:%d\n", {skill->GetMinorType()}); #endif RemoveBuffByEffectId(kBET_Hide); + if (!nature_recover_hp_idle_timer.expired()) { + room->xtimer.ModifyTime + (nature_recover_hp_idle_timer, + SERVER_FRAME_RATE * mt::Param::s().nature_recover_hp_idletime); + } if (skill->GetMinorType()) { SetAttackDir(skill_dir); skill->DoMinorMode(); diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index f6353c2d..c19bd79b 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -2304,6 +2304,11 @@ void Human::OnBulletHit(IBullet* bullet) RemoveBuffByEffectId(kBET_PeaceMode); RemoveBuffByEffectId(kBET_Hide); + if (!nature_recover_hp_idle_timer.expired()) { + room->xtimer.ModifyTime + (nature_recover_hp_idle_timer, + SERVER_FRAME_RATE * mt::Param::s().nature_recover_hp_idletime); + } GetTrigger()->Attacked(bullet->GetSender().Get()); if (!dead && (bullet->IsBomb() || bullet->GetSender().Get()->team_id != team_id)) { float finaly_dmg = 0; @@ -2452,6 +2457,11 @@ void Human::OnExplosionHit(Explosion* e) RemoveBuffByEffectId(kBET_PeaceMode); RemoveBuffByEffectId(kBET_Hide); + if (!nature_recover_hp_idle_timer.expired()) { + room->xtimer.ModifyTime + (nature_recover_hp_idle_timer, + SERVER_FRAME_RATE * mt::Param::s().nature_recover_hp_idletime); + } float finaly_dmg = GetBattleContext()->CalcDmg(e); #if 1 { diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index edfeb438..80ad4dc0 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -1709,6 +1709,11 @@ void Player::UpdateThrowBomb() if (HasBuffEffect(kBET_Hide)) { RemoveBuffByEffectId(kBET_Hide); } + if (!nature_recover_hp_idle_timer.expired()) { + room->xtimer.ModifyTime + (nature_recover_hp_idle_timer, + SERVER_FRAME_RATE * mt::Param::s().nature_recover_hp_idletime); + } --weapon.ammo; room->frame_event.AddPropChgEx ( diff --git a/server/gameserver/shot.cc b/server/gameserver/shot.cc index 29aed8d3..f1d833cc 100644 --- a/server/gameserver/shot.cc +++ b/server/gameserver/shot.cc @@ -586,6 +586,11 @@ void InternalShot(Creature* c, if (trace_target_uniid) { c->LockAttackDir(1000); } + if (!c->nature_recover_hp_idle_timer.expired()) { + c->room->xtimer.ModifyTime + (c->nature_recover_hp_idle_timer, + SERVER_FRAME_RATE * mt::Param::s().nature_recover_hp_idletime); + } if (c->aiming) { c->aiming = false; c->aiming_frameno = 0;