Errors FindItemBank TLO cannot access Datatype:Item InvSlot
Reply
FindItemBank TLO cannot access Datatype:Item InvSlot
RoF2 MQ2 build.

Functionally, I'm looking to return the Bank Slot of an an item in the bank (Either alone in a slot or inside a container in the bank). However, even with the bank window open, ${FindItemBank[ItemName].InvSlot} returns null.

${FindItemBank[ItemName].ID} does return the correct Item ID.

I don't believe ItemSlot was implemented at the RoF stage so it is unavailable.

The main problem is that InvSlot TLO is no longer used. Accessing the Item datatype within the InvSlot TLO actually crashes MQ2 (${InvSlot[2015].Item}).

So I guess this is partly a bug/crash report and partly I'm looking for advice on accessing the slot information for items in a bank.

Thanks
Thu Jan 29, 2015 12:42 pm
${FindItemBank[ItemName].ItemSlot}
${FindItemBank[ItemName].ItemSlot2}

More info from the author...

ItemSlot is the bag it's in so 23 for example for the first bagslot in inventory
ItemSlot2 is the slot inside that bag so 1 for example.
If ItemSlot2 is -1 it means whatever is in ItemSlot is not a bag.


If that doesn't work, what will the info will be used for? Knowing that might make it easier to find a workaround.
Thu Jan 29, 2015 6:47 pm
Senior Project Member
ItemSlot and ItemSlot2 return the error "No such 'item' member 'ItemSlot(2)'

I believe those datatype were implemented (re-implemented?) in July 2013 on Live, so they do not appear available on the RoF2 build.

The intent is to identify which bag and which slot an item is in in the bank, and then be able to access it (Pick it up etc).
Thu Jan 29, 2015 6:53 pm
/itemnotify "name of item" leftclick|rightclick
/useitem "name of item"

/useitem may be an EQ command rather than an MQ2 command.

If that still doesn't work... a hideous workaround involves interacting with UI elements and reading the mouseover text bank slot by bank slot. If that works at all. Extensive use of the ${Window} TLO is required.
Thu Jan 29, 2015 8:06 pm
Senior Project Member
/itemnotify still requires a valid slot to work (And I can't find any slots with the current TLOs/datatypes as mentioned above).

/useitem is only for activating items on your person and thus wouldn't be able to be used to pick up items or find the slot of a bank item. Just a side note, /useitem works if your items never move, but otherwise there is no way to discover the placement of the item for use in /useitem since .ItemSlot and ItemSlot2 are not working on the RoF2 build. /useitem <slot> <subslot>. EG: /useitem 23 0 = Casting first item in your first bag.

I really hate working with the Window TLO. I've had to use it extensively for Barter/Bazaar macros and I'm really hoping I don't ever have to again.

What are the chances of ItemSlot/ItemSlot2 getting added? Or any other way to access slot information in the bank?
Fri Jan 30, 2015 11:51 am
I've managed to add in ItemSlot and ItemSlot2 to the RoF2 MQ2 build.

Now you can use /useitem without ever having to open a bag or use /itemnotify.

/useitem ${FindItem[ItemName].ItemSlot} ${FindItem[ItemName].ItemSlot2}

Of course this only works for items that you don't have to equip to use.
Tue Feb 10, 2015 11:09 pm
That's great news, thanks for sharing your work
Wed Feb 11, 2015 8:56 am
Project Lead
click from bag, nice!

i dont know the underlying mq code, but ${FindItemBankCount[${ItemToFind}]} was crashing clients on RoF2 gold build. not sure if its mq or the client or the emu server but painful regardless.

i tinkered around with the search routine that looks at all the slots individually and it looks like this is coming from the shared bank slots.

Macro
More +

/for i 1 to 24 
/varset itemName ${Me.Bank[${i}]}
/if (${itemName.Find[${ItemToFind}]}) /docommand ${ChatToggle} [${Me.Bank[${i}]}] -> (BankSlot${i})                    
/if (${Me.Bank[${i}].Container}) {
                /for e 1 to ${Me.Bank[${i}].Container}
                /varset itemName ${Me.Bank[${i}].Item[${e}]}
                /if (${itemName.Find[${ItemToFind}]}) /docommand ${ChatToggle} [${Me.Bank[${i}].Item[${e}]}] -> (${Me.Bank[${i}]}] -> BankSlot${i} -> PackSlot${e})
                /next e
}
/next i
Thu Feb 12, 2015 9:30 am
Errors FindItemBank TLO cannot access Datatype:Item InvSlot
Reply