diff --git a/FFXIVClassic Map Server/WorldManager.cs b/FFXIVClassic Map Server/WorldManager.cs index 91ae73af..3dc8dab6 100644 --- a/FFXIVClassic Map Server/WorldManager.cs +++ b/FFXIVClassic Map Server/WorldManager.cs @@ -1085,11 +1085,14 @@ namespace FFXIVClassic_Map_Server if (reward.GetBazaarMode() == InventoryItem.TYPE_SEEK_ITEM) { + InventoryItem seekBazaar = bazaar.GetItemPackage(Inventory.BAZAAR).GetItemAttachedTo(reward); bazaar.RemoveItem(reward, rewardQuantity); - buyer.RemoveItem(seek, seekQuantity); + bazaar.RemoveItem(seekBazaar, seekQuantity); + bazaar.AddItem(seekBazaar); + bazaar.AddItem(seek.itemId, seekQuantity, seek.quality); - bazaar.AddItem(seek); - bazaar.AddItem(reward); + buyer.RemoveItem(seek, seekQuantity); + buyer.AddItem(reward); } Database.ClearBazaarEntry(bazaar, reward); diff --git a/FFXIVClassic Map Server/actors/chara/player/Player.cs b/FFXIVClassic Map Server/actors/chara/player/Player.cs index eb20fefa..d66db97d 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Player.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Player.cs @@ -1104,7 +1104,7 @@ namespace FFXIVClassic_Map_Server.Actors if (item.GetBazaarMode() == InventoryItem.TYPE_SEEK_REPAIR) isRepairing = true; if (item.GetBazaarMode() == InventoryItem.TYPE_SEEK_ITEM) - seekingItem = true; + isDealing = true; if (isDealing && isRepairing && seekingItem) break; @@ -1113,7 +1113,7 @@ namespace FFXIVClassic_Map_Server.Actors bool doUpdate = false; - ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("charaWork/bazaar", this); + ActorPropertyPacketUtil propPacketUtil = new ActorPropertyPacketUtil("charaWork/bazaar", this); if (charaWork.eventTemp.bazaarRetail != isDealing) { charaWork.eventTemp.bazaarRetail = isDealing;