GetReturnValues

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 = (order, functionCall)


 * Note: the efficiency of this approach is questioned. See the page.

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 = (1368, GetItemInfo(16846)); message(sName..","..iRarity..","..sType..","..iStackCount);

Result:1

 * 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 = (61, GetAddOnInfo("Uber Addon")); if reason then _ERRORMESSAGE(name.." didn't load.\nReason code: "..reason.."."); end

Result:2

 * 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 (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