WoW API: GetItemStats

From AddOn Studio
Revision as of 04:46, 15 August 2023 by Move page script (talk | contribs) (Move page script moved page API GetItemStats to API GetItemStats without leaving a redirect)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

WoW API < GetItemStats

Returns a table of stats for an item.

stats = GetItemStats(itemLink, [statTable])

Arguments[edit]

itemLink
String - An item link for which to get stats.
statTable
Table - An optional, empty table that will be filled with stats and returned. If this parameter is omitted, a new table is returned.

Returns[edit]

stats
Table - A table of item stats. If statTable was supplied, it will also be returned.

Example[edit]

The key for each entry in the hashtable is the name of a constant in Interface\FrameXML\GlobalStrings.lua. For example, an item that has 10 Stamina and no other stats would return { "ITEM_MOD_STAMINA_SHORT" = 10 }.

stats = GetItemStats(GetInventoryItemLink("player", 16))
DEFAULT_CHAT_FRAME:AddMessage("Your main hand item has " .. 
    tostring(stats["ITEM_MOD_STAMINA_SHORT"] or 0) .. " " .. ITEM_MOD_STAMINA_SHORT .. ".")

would return something like

Your main hand item has 10 Stamina.

The stat table contains the stats for the "base" version of an item, without any enchantments or gems. There is no way to get the stats for the gemmed and enchanted version of an item.

Details[edit]

If statTable is supplied, it should be empty. GetItemStats will add the stats of the item to this table without clearing it first. Stats left over from a previous call to GetItemStats will be overwritten if present on the new item. For example, if the table already contains 10 Strength and 20 Stamina and GetItemStats is called on an item with 30 Intellect and 30 Stamina, the new table will contain 10 Strength, 30 Intellect, and 30 Stamina, not 50 Stamina.

var stats = {}
GetItemStats("item:41002", stats)
table.wipe(stats)
GetItemStats("item:41003", stats)