From 7def2e3d829747e653eeba6596e265c5ed8eddbb Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 27 Oct 2022 10:14:59 +0800 Subject: [PATCH] 1 --- server/gameserver/roomobstacle.cc | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/server/gameserver/roomobstacle.cc b/server/gameserver/roomobstacle.cc index 1ac22589..a3590b06 100644 --- a/server/gameserver/roomobstacle.cc +++ b/server/gameserver/roomobstacle.cc @@ -244,12 +244,9 @@ void RoomObstacle::SpecExplosion(int delay_time) if (!target_list.empty()) { for (Creature* c : target_list) { for (int buff_id : meta->buff_list) { - MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(buff_id); - if (buff_meta) { - c->AddBuff(master.Get(), - buff_meta - ); - } + c->TryAddBuff(master.Get(), + buff_id + ); } } } @@ -901,15 +898,13 @@ void RoomObstacle::ActiveMedicalStation() float add_hp = SkillHelper::GetYlzRecoverHp(obstacle->master.Get(), c, obstacle->skill_meta); + float old_hp = c->GetHP(); c->AddHp(add_hp); - if (obstacle->master.Get()) { + if (std::abs(c->GetHP() - old_hp) > 0.0001f && obstacle->master.Get()) { for (int buff_id : obstacle->meta->buff_list) { - MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(buff_id); - if (buff_meta && c->GetBuffById(buff_id)) { - c->AddBuff(obstacle->master.Get(), - buff_meta - ); - } + c->TryAddBuff(obstacle->master.Get(), + buff_id + ); } } #ifdef DEBUG