diff --git a/server/gameserver/skill.cc b/server/gameserver/skill.cc index 033fcf62..284bd6b0 100644 --- a/server/gameserver/skill.cc +++ b/server/gameserver/skill.cc @@ -348,7 +348,7 @@ void Skill::ProcJSHX() [this] (const std::vector& params) { if (!owner->dead) { - float add_hp = SkillHelper::GetJshxHp(meta); + float add_hp = SkillHelper::GetJshxHp(owner, meta); owner->AddHp(add_hp); } } diff --git a/server/gameserver/skillhelper.cc b/server/gameserver/skillhelper.cc index ec211f81..bd43c717 100644 --- a/server/gameserver/skillhelper.cc +++ b/server/gameserver/skillhelper.cc @@ -168,9 +168,13 @@ int SkillHelper::GetCmxdDistance(const MetaData::Skill* skill_meta) return 0; } -int SkillHelper::GetJshxHp(const MetaData::Skill* skill_meta) +int SkillHelper::GetJshxHp(Creature* c, const MetaData::Skill* skill_meta) { - return 0; + float hp = + (skill_meta->number_meta->float_ratio + + skill_meta->number_meta->float_ratio2 * c->GetBattleContext()->GetHeroTotalAtk()) * + (1 + c->GetBattleContext()->GetExtRecoverHp()); + return hp; } int SkillHelper::GetSwzbRadius(const MetaData::Skill* skill_meta) @@ -316,7 +320,7 @@ int SkillHelper::GetYlzRecoverHp(Creature* sender, Creature* target, const MetaD { float hp = (skill_meta->number_meta->float_ratio + - skill_meta->number_meta->float_ratio * sender->GetBattleContext()->GetHeroTotalAtk()) * + skill_meta->number_meta->float_ratio2 * sender->GetBattleContext()->GetHeroTotalAtk()) * (1 + target->GetBattleContext()->GetExtRecoverHp()); return hp; } diff --git a/server/gameserver/skillhelper.h b/server/gameserver/skillhelper.h index fa8e583d..ae668762 100644 --- a/server/gameserver/skillhelper.h +++ b/server/gameserver/skillhelper.h @@ -24,7 +24,7 @@ class SkillHelper static int GetCmxdDmg(const MetaData::Skill* skill_meta); static int GetCmxdDistance(const MetaData::Skill* skill_meta); //击杀回血 - static int GetJshxHp(const MetaData::Skill* skill_meta); + static int GetJshxHp(Creature* c, const MetaData::Skill* skill_meta); //死亡自爆 static int GetSwzbRadius(const MetaData::Skill* skill_meta); static int GetSwzbDmg(const MetaData::Skill* skill_meta);