DisplayID icon name

Hello, back in the day we had AoWoW project, which represented Web Interfaces for database. In order to display icons for the items, we had table which had displayID name for each particular display ID (icon as well as appearance itself).

So for example we are looking @ Cowl of Fright, upon clicking on icon, wowhead will give us string which represents icon name for this particular id, in this case it is inv_leather_raiddemonhuntermythic_q_02helm.

On Wiki it says that all of that data is stored in the ItemDisplayInfo.dbc (it is db2 now and there is no such thing as icon name), my question is, where did they’ve moved the string value names for the display id in legion?

Well… it seems that game uses some what related to indexing of the items, which is again, only known by the game. They’ve removed ‘indexed’ file in 7.0.1, so here is my solution:

[li]Create PHP script to get all the items from DB2[/li]
[li]Populate Database[/li]
[li]Create PHP script to request all the icons from the wowhead (yes, 1 request per item, total around 100k requests)[/li]

Few hours and thousands lines of code later,


I guess topic can be closed. I am just making thousands requests to wowhead, and creating my own item_template for legion

FYI you could just use the FileDataID directly

  1. Obtain FileDataID for the icon (a number)

  2. Extract the icon from client using number from step 1 (just name the file using the number)

  3. … wait there is no step 3, you already have all that you need to display an icon for a given item, the only difference being that your filenames are hex numbers instead of human readable strings

And yes, the library we use to extract maps from the clients is able to read CASC by FileDataID, just like the client does https://github.com/ladislav-zezula/CascLib

And this is how you need to format the pseudoname for it to work https://github.com/TrinityCore/TrinityCore/blob/master/src/tools/vmap4_extractor/gameobject_extract.cpp#L131

@Shauren really appreciate your response on this topic. However icons is not the only problem why i had to query wowhead around 300k times in past day (thanks god they still haven’t banned my IP for 200 requests a second).

I started by getting the icons (as the topic title says, and now i can actually use your approach to extract them), but then, i tried to find the data about the damage weapon can do (the damage numbers are also retrieved from the wowhead). The weirdest part here tho, is the ItemStatDistribution field. For some reason, most of the items have the same values in these fields, but when you look for DB2’s which may contain the scaling for each class/spec (i guess this is what the field is), there are like 5 files for each type of combat style (melee, ranged, ranged caster, melee caster, or something like that).

And sure, i had no problem getting the icons from the client, i used the CascExplorer software to just dump them all from the client to the folder which will be used for parsing BLP’s to Jpeg’s ang Gif’s. After they are dumped, i just convert them using PHP script (works pretty fine since i last made tools update for AoWoW fork, well, about 2 years ago), problem is to link each item to icon (I cant use C++ for PHP app… Well i can, but it will require more problems setting it up rather than just blindly getting icons relation to item from the wowhead).

But anyways, thank you for your response!

P.S. I made slight changes to the script which is getting the icons for items, it is now taking 10-20 minutes instead of 8 and a half hours, so this is not a bad way after all.

You can always read TC code, we have everything that you might want to use - getting displayId for item (so getting icon too as both values are in ItemAppearance.db2) and calculating stats, you just need to convert these to your app (and maybe convert db2s into db table)

Yahhh i’m doing the exact same thing for about 6 weeks now but in c#. however instead of using FileDataID (since it’s disappear on 7.X +)

i’m building the data using (Item) File names !

however i didin’t manage to get a fast query. so 2 minutes of coding = 2 days of waiting. (sorting more than 700k File Name)