From a30996efd1ac6db736aa20b8de04528221cbebf6 Mon Sep 17 00:00:00 2001 From: Emagi Date: Sat, 16 Aug 2025 18:46:23 -0400 Subject: [PATCH] Fix having the item unique id for food/drink set BEFORE consuming item as it could be deleted after due to no more count --- source/WorldServer/Player.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/source/WorldServer/Player.cpp b/source/WorldServer/Player.cpp index 4f7f6d5..824d5e3 100644 --- a/source/WorldServer/Player.cpp +++ b/source/WorldServer/Player.cpp @@ -2078,19 +2078,21 @@ vector Player::EquipItem(int16 index, int16 version, int8 appearance if(slot < 255) { if (slot == EQ2_FOOD_SLOT && item->IsFoodFood() && get_character_flag(CF_FOOD_AUTO_CONSUME)) { Item* item = GetEquipmentList()->GetItem(EQ2_FOOD_SLOT); - if(item && GetClient() && GetClient()->CheckConsumptionAllowed(slot, false)) - GetClient()->ConsumeFoodDrink(item, EQ2_FOOD_SLOT); if(item) SetActiveFoodUniqueID(item->details.unique_id); + + if(item && GetClient() && GetClient()->CheckConsumptionAllowed(slot, false)) + GetClient()->ConsumeFoodDrink(item, EQ2_FOOD_SLOT); } else if (slot == EQ2_DRINK_SLOT && item->IsFoodDrink() && get_character_flag(CF_DRINK_AUTO_CONSUME)) { Item* item = GetEquipmentList()->GetItem(EQ2_DRINK_SLOT); - if(item && GetClient() && GetClient()->CheckConsumptionAllowed(slot, false)) - GetClient()->ConsumeFoodDrink(item, EQ2_DRINK_SLOT); if(item) SetActiveDrinkUniqueID(item->details.unique_id); + + if(item && GetClient() && GetClient()->CheckConsumptionAllowed(slot, false)) + GetClient()->ConsumeFoodDrink(item, EQ2_DRINK_SLOT); } }