WoW API: GetItemStats

Revision as of 15:10, 24 January 2020 by 80.101.54.12 (talk) (→‎Example)

WoW API < GetItemStats

Returns a table of stats for an item.

stats = GetItemStats(itemLink, [statTable])

Arguments

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

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

Example

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

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)