From 462b02cab72a65571d686797438dc8585a761f35 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 16 Aug 2021 16:47:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8C=81=E7=BB=AD=E6=8E=89?= =?UTF-8?q?=E8=A1=80=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/creature.cc | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 5269fb9..04bb651 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -2522,12 +2522,23 @@ void Creature::ProcOnceChgAttrBuff(MetaData::Buff* buff_meta) { if (buff_meta->int_param2 == 1) { //绝对值 - ability.hp += buff_meta->param3; - ability.hp = std::min(ability.max_hp, ability.hp); + if (buff_meta->param3 > 0) { + AddHp(buff_meta->param3); + } else if (buff_meta->param3 < 0) { + #if 01 + DecHP(std::abs(buff_meta->param3), 1, "", 1); + #endif + } } else if (buff_meta->int_param2 == 2) { //百分比 - ability.hp *= 1 + buff_meta->param3; - ability.hp = std::min(ability.max_hp, ability.hp); + float chg_hp = ability.hp * buff_meta->param3; + if (chg_hp > 0.0001f) { + AddHp(chg_hp); + } else if (chg_hp < 0.0001f){ + #if 1 + DecHP(std::abs(chg_hp), 1, "", 1); + #endif + } } SyncAroundPlayers(__FILE__, __LINE__, __func__); }