diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 34ba55b7..dc775dfd 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -299,7 +299,8 @@ void Human::DecHP(float dec_hp, int killer_id, const std::string killer_name, in BeKill(killer_id, killer_name, weapon_id, real_killer_id, real_killer_name); SyncAroundPlayers(__FILE__, __LINE__, __func__); } else { - if (HasNoDownedTeammate() && !room->IsPveRoom()) { + if ((HasNoDownedTeammate() && !room->IsPveRoom()) || + GetInventory(IS_SHEN_BAO) > 0) { SetHP(GetMaxHP() * std::min(1.0f, (float)mt::Param::GetFloatParam("downed_recover_hp"))); downed = true;