diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 60fde21..41176d1 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -3148,6 +3148,23 @@ void Human::ProcUseItemAction() need_sync_active_player = true; } break; + case IS_SHEN_BAO: + { + if (!dead) { + if (downed) { + ability.hp = MetaMgr::Instance()->GetSysParamAsInt("downed_relive_recover_hp"); + downed = false; + if (downed_timer) { + room->xtimer.DeleteTimer(downed_timer); + downed_timer = nullptr; + } + } + AddHp(item_meta->i->heal()); + } + DecInventory(item_meta->i->_inventory_slot(), 1); + need_sync_active_player = true; + } + break; default: { } diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index fb1bbad..9a019c3 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -342,6 +342,19 @@ void Player::UpdateUseItemIdx() } } break; + case IS_SHEN_BAO: + { + MetaData::Equip* item_meta = MetaMgr::Instance()->GetEquipBySlotId(use_item_idx); + if (item_meta) { + StartAction( + AT_UseItem, + item_meta->i->use_time(), + use_item_idx, + 0 + ); + } + } + break; default: {