diff --git a/server/gameserver/skill.cc b/server/gameserver/skill.cc index 548cce67..b42502cf 100644 --- a/server/gameserver/skill.cc +++ b/server/gameserver/skill.cc @@ -420,15 +420,17 @@ void Skill::ProcJSHX() { if (!owner->dead) { float add_hp = SkillHelper::GetJshxHp(owner, meta); + float real_add_hp = std::max(0.0f, std::min(owner->GetMaxHP() - owner->GetHP(), add_hp)); owner->AddHp(add_hp); #ifdef DEBUG { std::string dbg_msg = a8::Format ( - "skill_id:%d 击杀回血 rnd:%d add_hp:%f ratio:%f ratio:%f human.atk:%f human.extRecoverHp:%f", + "skill_id:%d 击杀回血 add_hp:%f real_add_hp:%f ratio:%f ratio2:%f human.atk:%f human.extRecoverHp:%f", { meta->i->skill_id(), add_hp, + real_add_hp, meta->number_meta->float_ratio, meta->number_meta->float_ratio2, owner->GetBattleContext()->GetHeroTotalAtk(),