This is a user-defined function that you can copy and paste into your addon.
Returns a list of values in whatever order you specify in order and only those you specify in order. Mostly useful for functions that return multiple values.
ret1, ret2, ... retN = GetReturnValues(order, functionCall)
- Note: the efficiency of this approach is questioned. See the Discussion page.
Function Parameters[]
Arguments[]
- (order, functionCall)
- order
- number or numeric string
- e.g. 17 or "17"
- functionCall
- a function call that returns a list of values.
- e.g GetItemInfo(itemLink)
Returns[]
- the number of and order of return values depend on the number specified in order and on the function passed to functionCall
Example:1[]
local sName, iRarity, sType, iStackCount = GetReturnValues(1368, GetItemInfo(16846)); message(sName..","..iRarity..","..sType..","..iStackCount);
Result:1[]
- GetReturnValues will return the first, third, sixth, and eighth return values (in that order) from GetItemInfo(16846)
- A message box will pop-up with -
Giantstalker's Helmet,4,Armor,1.
Example:2[]
local reason, name = GetReturnValues(61, GetAddOnInfo("Uber Addon")); if reason then _ERRORMESSAGE(name.." didn't load.\nReason code: "..reason.."."); end
Result:2[]
- GetReturnValues will return the sixth and first return values (in that order) from GetAddOnInfo("Uber Addon")
- A error message box will pop-up with -
Uber Addon didn't load. Reason code: MISSING
Code[]
local output = {} function GetReturnValues(order, ...) output = wipe(output) order = tostring(order) for i=1, strlen(order) do local value = select(tonumber(strsub(order, i, i)), ...) if value ~= nil then table.insert(output, value) end end return unpack(output) end