Rottenbeer / ItemRack

ItemRack working for WoW Classic
41 stars 44 forks source link

switching gear from bank doesnt work on SoD current patch (p5) #281

Open jomysan opened 1 month ago

jomysan commented 1 month ago

Hello, as title says.

Exporting from bugsack

93x ItemRack/ItemRack.lua:34: bad argument #1 to 'IsInventorySlotEngravable' (outside of expected range 0 to 4294967295 - Usage: local result = C_Engraving.IsInventorySlotEngravable(containerIndex, slotIndex))

[string "=[C]"]: in function IsInventorySlotEngravable' [string "@ItemRack/ItemRack.lua"]:34: in functionAppendRuneID' [string "@ItemRack/ItemRack.lua"]:700: in function getid' [string "@ItemRack/ItemRack.lua"]:813: in functionFindInBank' [string "@ItemRack/ItemRack.lua"]:2177: in function MissingItems' [string "@ItemRack/ItemRack.lua"]:1255: in functionBuildMenu' [string "@ItemRack/ItemRack.lua"]:1917: in function `OnClick'

trying-to-function commented 1 month ago

Copying my comment from closed issue #266:

Did further research and found https://github.com/arkayenro/arkinventory/issues/2019. I am not sure this is the correct fix, but I changed line 36 of ItemRack.lua to return C_Engraving and blizzard_id ~= nil and C_Engraving.IsEngravingEnabled() and it seems to work.

See also: https://us.forums.blizzard.com/en/wow/t/sod-engraved-items-in-the-bank-isinventoryslotengravable-bug/1964618

You can look at the git changes arkayenro did to fix the issue: ArkInventory-3.11.01-alpha-7-with-git-changes-from-6.zip

jomysan commented 1 month ago

it works! very fixed atm with no lua error popping! saved my raid day! tyvm!

(ill posto on curse as well giving u full credits)

Anonomit commented 1 month ago

That just makes the addon think it's running in Era instead of Season of Discovery. A more appropriate fix would be to add a line in ItemRack.AppendRuneID to check for bad parameters.

Add a new line after line 41, and paste in: if bag < 0 then return "" end

So it should look like this starting at line 41:

        function ItemRack.AppendRuneID(bag, slot)
            if bag < 0 then return "" end
            if slot then

That seems to get it working with runes.