ESOUI

ESOUI (https://www.esoui.com/forums/index.php)
-   General Authoring Discussion (https://www.esoui.com/forums/forumdisplay.php?f=174)
-   -   SellInventoryItem() doesn't sell some items (https://www.esoui.com/forums/showthread.php?t=10679)

schorse 08/27/23 04:36 AM

SellInventoryItem() doesn't sell some items
 
Hi,

I was trying to sell my whole inventory and the function SellInventoryItem() fails to do so in most cases.

My inventory consists of:
1 x Platinum Necklace (Ornate)
1 x Common Repair Kit
20 x Grand Repair Kit
1 x Recipe: Fredas Night Infusion
34 x Soul Gem (Empty)
1 x Superb Glyph of Health Recovery
1 x Rubedo Leather Jack (Intricate)

While interacting with a merchant i run the following code:
Code:

        SLASH_COMMANDS["/sellall"] = function()
                local bagCache = SHARED_INVENTORY:GenerateFullSlotData(nil,BAG_BACKPACK)
               
                for bagSlot in pairs(bagCache) do
                        SellInventoryItem(BAG_BACKPACK, bagSlot, bagCache[bagSlot].stackCount)
                end
        end

After that only the Common Repair kit and the Recipe are sold. If I split the the Grand Repair Kits to 19 - 1 it works somehow for the 1 Kit. Does someone have experience with autoselling and knows what I am doing wrong here?

Thanks for answers!

Baertram 08/28/23 02:10 AM

I guess the function SellInventoryItem will stop to work if you try to pass in a non-sellable one?

GenerateFullSlotData returns a table bagCache and you should check which items are in there, I guess all inventoty items as you did not specify any filterunction as 1st param!

So maybe you need to stay with using GenerateFullSlotData BUT specify a filterfunction as 1st param which filters non-sellable items.
There should exist a function which returns that info, by checking item's price == 0 e.g.
According to ZOs all non sellable ones will be 0 gold cost meanwhile (current patch notes).

Check if you can use this function:
CanSellItem(inventorySlot)

I hope the inventorySlot is the data (see below) table here.



Edit:
After checking my code I'm using

Code:

for _, data in pairs(bagCache) do
local bagId = data.bagId
local slotIndex = data.slotIndex

instead of using the _ as bagSlot (slotIndex) like in your code above.
Maybe they are the same though so might not have any impact, can be used either way?

schorse 08/29/23 12:33 AM

Hey thanks for the answer. The items in my inventory at that time were all sellable. I was able to do it manually and buy them back.

After trying another day everything works how I want it to. Maybe because of restarting ESO? It's a little unsatisfying but I'll take it.


All times are GMT -6. The time now is 07:02 AM.

vBulletin © 2024, Jelsoft Enterprises Ltd
© 2014 - 2022 MMOUI