WoWInterface

WoWInterface (https://www.wowinterface.com/forums/index.php)
-   Lua/XML Help (https://www.wowinterface.com/forums/forumdisplay.php?f=16)
-   -   ItemLink from itemID and itemLevel (https://www.wowinterface.com/forums/showthread.php?t=58033)

GreenCoyote 05-30-20 03:00 AM

ItemLink from itemID and itemLevel
 
Hello All!
I’m playing with C_AuctionHouse.GetBrowseResults().
It returns ItemKey whit itemID, itemLevel, itemSuffix, battlePetSpeciesID
I want to get ItemLink for returned items. I tried to get it by GetItemInfo(itemID) and it works fine for many items but for items with different item levels it shows incorrect link. For example, [Hiri'watha Greaves] which item level can be 104,110,116 etc, and it’s all different items.

So is there a good way to get item link from ItemKey or from itemID, itemLevel?
I tried to make itemString to give it to GetItemInfo(), but it does not contains itemLevel.

Ketho 05-30-20 06:19 AM

C_AuctionHouse.GetItemSearchResultInfo() returns the item link from a search result, e.g. when shift-clicking an item in the list

This (ugly example with timers) shows how you can get an item link from searching by item ID and level, while standing at the auction house
Lua Code:
  1. function PrintAuctionItemLink(itemID, itemLevel, itemSuffix)
  2.     if AuctionHouseFrame and AuctionHouseFrame:IsShown() then
  3.         local itemKey = C_AuctionHouse.MakeItemKey(itemID, itemLevel, itemSuffix)
  4.         C_AuctionHouse.SearchForItemKeys({itemKey}, {})
  5.  
  6.         C_Timer.After(0.5, function()
  7.             local firstResult = C_AuctionHouse.GetBrowseResults()[1]
  8.             AuctionHouseFrame:SelectBrowseResult(firstResult)
  9.         end)
  10.  
  11.         C_Timer.After(1, function()
  12.             local info = C_AuctionHouse.GetItemSearchResultInfo(itemKey, 1)
  13.             print(info.itemLink, (info.itemLink:gsub("|", "||")))
  14.         end)
  15.     end
  16. end
Code:

/run PrintAuctionItemLink(4711, 54) -- item level 54
> "[Glimmering Cloak]"
> "|cff1eff00|Hitem:4711::::::::120:258:512:53:1:4277:120:::|h[Glimmering Cloak]|h|r"

Code:

/run PrintAuctionItemLink(55582, 116) -- Hiri'watha Greaves, item level 116

As to how you would generate an item link straight from an item ID and level, I have no idea
There is a lot of magic involved, especially with item suffixes


All times are GMT -6. The time now is 02:48 AM.

vBulletin © 2024, Jelsoft Enterprises Ltd
© 2004 - 2022 MMOUI