WoW:API EquipmentManager UnpackLocation: Difference between revisions

From AddOn Studio
Jump to navigation Jump to search
mNo edit summary
m (Move page script moved page API EquipmentManager UnpackLocation to API EquipmentManager UnpackLocation without leaving a redirect)
 
(No difference)

Latest revision as of 04:45, 15 August 2023

WoW API < EquipmentManager:UnpackLocation

"I" iconThis function is implemented in Lua here FrameXML/EquipmentManager.lua.

Takes an integer location value as returned by GetEquipmentSetLocations and returns unpacked location info.

player, bank, bags, slot, bag = EquipmentManager_UnpackLocation(location)

Arguments[edit]

location
integer - This is the integer returned for a specific slot by GetEquipmentSetLocations

Returns[edit]

player, bank, bags, slot, bag
player
boolean - Is the item currently available to the player (either equipped, or in the player's bags)
bank
boolean - Is the item in the bank (only true if the item is in the bank, and the player has the bank frame open)
bags
boolean - Is the item in a bag (if bank is also true, then it is in a bank bag)
slot
integer - Which slot number is the item in, may be an inventory slot or bag slot (see notes)
bag
integer - Which bag is the item in (nil if bags is false)


Notes[edit]

If player or bank is true and bags is false, then slot is an inventory location - i.e. the item is either equipped in the given inventory slot or in the given bank slot.

If bags is true, then bag is a bag number and slot is the slot number of that bag where the item is located.


Example[edit]

local array = {}; -- It is always a good idea to use a reusable array if calling GetEquipmentSetLocations multiple times.
function FindMainHand(eqset) -- let eqset be a string equal to the name of a valid equipment set

    GetEquipmentSetLocations(eqset, array);
    local player, bank, bags, slot, bag = EquipmentManager_UnpackLocation(array[16]); -- 16 is the Main Hand weapon slot

    if (player and not bags) then
        print("The Main Hand is equipped in slot #", slot);

    elseif (player and bags) then
        print("The Main Hand is in bag #", bag, "in slot #", slot);

    elseif (bank and not bags) then
        print("The Main Hand is in bank slot #", slot);

    elseif (bank and bags) then
        print("The Main Hand is in bank bag #", bag, "in slot #", slot);

    else
        print("The Main Hand could not be found.");
    end
end