Hallo Smaresh.
Als Entwickler unterstütze ich dein Vorhaben natürlich gerne. Was du vorhast ist sehr Ambitioniert und erforder einiges an Wissen im Bereich WoW, Web-Entwicklung und wie du schon festgstellt hast natürlich Mathematik. Wenn du diese Kompetenzen noch nicht hast, hast du dir auf jeden Fall ein schönes Projekt ausgesucht um dich mit diesen zu befassen und dich damit auseinander zu setzen.
Da aller Anfang schwer ist, werde ich dir mal ein paar nützliche Seiten für dich mit an die Hand geben.
Der WoW Client hat eine vielzahl an Daten in sogenannten DBC-Dateien. Diese stellen lokale Datenbanken für den Client da in denen alle wichten Informationen referenziert sind. Von Model-Namen bis hin zu Zaubereigenschaften damit der Client weiß welche Effekte er abspielen muss und ähnliches. Jede DBC Datei ist von der Dateistruktur an sich gleich aufgebaut, enthält aber unterschiedliche Daten. Das heißt Spaltenanzahl und Wertetypen für die jeweiligen Spalten können sich durchaus unterscheiden.
Alle wichtigen Informationen zu der Struktur der unterschiedlichen DBC-Dateien und anderen WoW-Dateien findest du auf: https://wowdev.wiki/.
Für dein Problem mit den Items um von der ItemID auf das Icon zu gelangen müsstest du dich über zwei DBC-Dateien hangeln.
Die Iitem.DBC
Hier. Dort findest du im Feld ItemDisplayInfo eine Referenz auf die ItemDisplayInfo.dbc
Hier. Dabei ist die Struktur Version 0.5.3.3368 von belangen. In der Spalte m_inventoryIcon findest du dann den Namen des Icons für dieses Item, das auch in den Javascript-Teilen bzw im HTML referenziert wird.
Da ab Patch 2.3 alle Item-Icons Clientseitig festgelegt worden sind um den Traffic zwischen Client und Server zu reduzieren und auch, meiner Meinung, den Custom Items auf Privatserver einen Strich durch die Rechnung zu machen. Hierdurch erhalten Spieler das "Fragezeichen" Icon in ihren Taschen wenn das Item in den lokalen DBC-Dateien nicht vorhanden ist. Hast du einen großen Vorteil und kannst für jedes Item das in der Item.dbc referenziert ist dir den Icon-Namen ermitteln und in einer dir leicht zugängichen Datenbank verwalten. MySql, Firebase - welchen Dienst du hier auch nutzen magst.
Ein Projekt von mir, in dem ich von der Mangos SQL Datenbank Items extrahiere um sie - ähnliche wie du - in einem Theory-Crafting Tool namens Rawr zu nutzen habe ich dir hier mal hochgeladen.
WoWItemParser
Dies ist lediglich eine Art "Dataprovider" und wird von mir dann in Rawr genutzt um die notwendigen Daten abzufragen. Funktioniert gut aber ist nicht perfekt. Effekte wie Zauberschaden und Angriffskraft etc werden aus den Spell.dbc Dateien ausgelesen. Trinketeffekte dürften Gemittelt werden wenn sie AP oder Zaubermacht geben. Spezielle Effekte müssten natürlich gesondert gehandhabt werden.
Allgemein kann ich dir das Tool Rawr nur ans Herz legen wenn du einen kleinen Einblick erhalten möchtest wie die Werte der einzelnen Klassen sammt Grundwerten zusammen spielen. Welche Werte additiv, welche multiplikativ stacken usw.
Nun aber zur eigentlichen Frage, wie gelangst du nun an die DBC Dateien.
Teilen kann ich sie dir hier leider nicht, da sie Eigentum vom Blizzard sind und Teil des Clients. Jedoch kannst du sie dir selbst aus deinem Client extrahieren.
Mangos Extractor. Dort findest du die Extraktoren die von MaNGOS (Privat Server) zur Zeit genutzt werden. Für uns wichtig ist nur die ad.exe.
- Lade die die ad.exe runter
- Öffne eine Eingabeaufforderung. (Win + R, cmd.exe eingeben und Ausführen drücken.)
- Navigiere in den Ordner in den du die ad.exe geladen hast. (Über cd .. gelangst du einen Ordner höher und über cd OrdnerName in einen Ordner)
- Tippe folgendes in die Konsole. ad.exe -i "PfadZudeinemWow"
- Beispiel: ad.exe -i "D:\Spiele\World of Warcraft TBC\"
Nun sollte ein Ordner in deinem WoW oder im aktuellen Verzeichniss erstellt werden (gerade nicht sicher). Dieser heißt DBC und enhtält alle aktuellen DBC Dateien deines Clients.
Viel Erfolg,
Nanoware!