diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 062ac72c..b0773d00 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -2975,12 +2975,17 @@ void Human::ProcAddItemDto(AddItemDTO& dto) { ProcNormalItem(dto); } - break; + break; case EQUIP_TYPE_GIFT_PACKAGE: { ProcGiftPackage(dto); } break; + case EQUIP_TYPE_GEMSTONE: + { + ProcGemStoneItem(dto); + } + break; default: { ProcLootSpecItem(dto); @@ -3462,3 +3467,16 @@ void Human::SyncVolume(int slot_id) room->frame_event.AddPropChgEx(GetWeakPtrRef(), kPropVolume, slot_id, GetInventory(slot_id), volume_[slot_id], 0, true); } } + +void Human::ProcGemStoneItem(AddItemDTO& dto) +{ + gemstone += 1; + room->frame_event.AddPropChg + ( + GetWeakPtrRef(), + kPropGemstone, + gemstone, + 0, + false); + dto.handled = true; +} diff --git a/server/gameserver/human.h b/server/gameserver/human.h index cf2b1aa6..ff54adce 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -406,6 +406,7 @@ protected: void ProcLootProtection(AddItemDTO& dto); void ProcGiftPackage(AddItemDTO& dto); void ProcLootSpecItem(AddItemDTO& dto); + void ProcGemStoneItem(AddItemDTO& dto); void CancelRevive(); Weapon* TakeonWeapon(const mt::Equip* equip_meta); void LootInteraction(Loot* entity);