Du bist nicht eingeloggt.

B2B-Realm Status

Social Networks

B2B auf Twitter
B2B auf Facebook

Bugtracker

1

Dienstag, 18. Oktober 2016, 13:18

Equip Portal mit Stat, Buffs, etc [php] [scripting] [wow-math]

Hallo zusammen,
ich baue gerade ein Portal auf dem es möglich sein wird ein komplettes Equip mit allen Rüstungsslots einzustellen, und dann die Werte anzuzeigen und weitere Berechnungen, wie z.B. Reg, Crit, etc vorzumehmen. Später folgen dann noch VZs, Buffs und noch später Proccs.
Das Ganze wird dann für andere Leute über einen Link zugänglich gemacht (ähnlich wie bei den Talentplanern). Da ich nicht die gesammte WoW-TBC-Datenbank zur Verfügung habe, und mir auch noch nicht sicher bin ob ich das Rechtlich überhaupt dürfte, werde ich z.B. die Bilder der Gegenstände nur verlinken. Da ich wenig Lust habe 25000 Gegenstände und die dazu passenden Werte abzutippen, habe ich mir n kleines Tool gebastelt, das die passenden Werte aus unserer Rising-Gods-DB zieht. Der User soll dann später die Gegenstände auswählen können und so sein Equip anlegen. Falls ein Gegenstand noch nicht gelistet wurde, kann er das selbst über eingabe der ID von der rising-gods-DB selber einfügen. (für die, dies nicht wissen: die ID ist die bis zu 5-stellige Nummer in der Adressleiste der Datenbank, bei "https://tbcdb.rising-gods.de/?item=28514" ist es die "28514").

Hier kommen wir auch schon zu meinem aktuellen Problem.
Ich bekomme schon jetzt größtenteils alle relevanten Werte, das Bild macht mir aber größere Umstände als es mir lieb ist. Ich will wie oben bereits geschrieben, nicht das Bild downloaden und bei mir hosten, sondern lediglich den Bildpfad auslesen und hinterlegen. Leider wird das Bild andscheinend erst beim Seitenladen per Javascript nachgeladen, und da laufen herkömmliche Seitenausleseverfahren auf php Basis leider ins Leere. Falls Jemand ne Möglichkeit hat die Bildpfade über die DB-ID auszulesen, lasst es mich wissen, denn ich denke erst mit Bildchen wird das Ganze Portal anständig.

Desweiteren werde ich dann zu einem späteren Zeitpunkt Hilfe von WoW-Mathe-Profis benötigen, um an die Formeln zur Berechnung von Stats, wie z.B. Crit, Blockwertung, Def, etc brauchen. Mich würde auch interessieren ob die Berechnungen z.B. Klassenabhängig sind.

Hier der Link zum vorläufigen DB-Scrap-Tool:
Portal Stats

Sagt mir auf jedenfall Bescheid, falls jemand ne Möglichkeit hat an die Bilder ranzukommen und gebt mir Bescheid, was Ihr von der Idee haltet. (Ich plane nicht damit Geld durch Werbung, etc zu bekommen, mache es eigentlich nur aus Lust und weil ich immer Lust habe verschiedene Equips auszutesten.

*edit: die Bilder werde ich nicht mehr Hotlinken^^ *

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »smaresh« (21. Oktober 2016, 23:38)


Es hat sich bereits 1 registrierter Benutzer bedankt.

Benutzer die sich bedankten:

papajul

Betagan

Wandelnde Legende

Beiträge: 1 698

Registrierungsdatum: 22.08.2010

Wohnort: Kiel

Hauptcharakter: Betagan

Gilde: Bloodline

  • Private Nachricht

2

Mittwoch, 19. Oktober 2016, 16:40

Das was du da planst nennt sich hotlinking und ist u.U. nicht gern gesehen bei den Betreibern der Quellseiten. Viele Seiten sperren solche Versuche bei bekanntwerden. Du laedst damit im Prinzip Traffic fuer deine Seite auf deren Server um. Zum Weiterlesen> http://www.webweaver.nu/html-tips/hotlinking.shtml

Es kann natürlich sein, dass RG dies zulässt/erlaubt, aber das solltest du eventuell vorher anfragen.

Zu deiner eigentlichen Frage:
in dem Seitenquelltext steht, welches Icon es ist. Daraus kannst du den Path selber konstruieren. In deinem Beispiel findet sich folgendes javascript:

var _ = g_items;
_[28514]={icon: 'INV_Bracer_15'};_[22450]={icon: 'INV_Enchant_VoidCrystal'};

daraus wird der image-link "images/icons/large/inv_bracer_15.jpg" generiert. Wenn du das fuer andere items ausprobierst, wirst du schnell feststellen, dass der Wert von Icon im Javascript immer der dateiname + die Endung.jpg ist. So kannst du also aus dem Javascript den richtigen Image-Pfad konsturieren..

edit: Einfacher wäre es, die entsprechenden Infos aus einem Dump der DBC-Dateien des Clients zu laden, aber das wäre etwas zum einarbeiten...



3

Donnerstag, 20. Oktober 2016, 09:20

Danke erst mal für die Infos, kannst du (oder jemand Anderes) mir Links zum Dumpen von WoW-DBs schicken, dann werd ich mich da mal einlesen. Denke das ist die bessere Möglichkeit.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »smaresh« (20. Oktober 2016, 10:52)


Nanoware

Fachmann

Beiträge: 343

Registrierungsdatum: 08.01.2014

  • Private Nachricht

4

Donnerstag, 20. Oktober 2016, 23:50

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.
  1. Lade die die ad.exe runter
  2. Öffne eine Eingabeaufforderung. (Win + R, cmd.exe eingeben und Ausführen drücken.)
  3. 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)
  4. Tippe folgendes in die Konsole. ad.exe -i "PfadZudeinemWow"
  5. 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!

Quellcode

1
2
3
4
5
6
7
8
9
10
11
function Develop(var code)
    do
        var hasError = false
        try
            Execute(code)
        catch
            hasError = true
            Change(code)
        end try
    while(hasError)
end function

5

Freitag, 21. Oktober 2016, 23:32

soo, die Bilder sind aus dem Dumb geladen und prinzipiell einsatzbereit. Es geht weiter.

6

Donnerstag, 3. August 2017, 11:14

Kurzes Update:

  • ~18000 Equip-Teile größtenteils fehlerfrei eingelesen (Alle Ausrüstungsgegenstände, keine Questitems - Materialien - Tränke/Elexiere, Verzauberungen noch! nicht.)
  • ~750 davon benötigen noch semi-manuelles Tweaking (Exotischere Sachen)
  • Sockelung der Equip-Teile zu 60% fertig
  • Web-Oberfläche rudimentär (sehr wenig Layout, Teile für kommende Features noch nicht implementiert)


Features die vor Release fertig gestellt werden:
  • Virtuelles Anlegen jeglicher Equip Teile und zusammenrechnen sämtlicher Stats (Procs/ ChanceOnHit noch! nicht.)
  • Suche nach Equip mit Bedingungen (Level, Qualität, ArmorSlot, Klasse, etc)
  • Verzauberungen suchen und auf Equip hinzufügen
  • Sockeln des Equips
  • Hinzufügen von Buffs, Flasks, Pots im Raid
  • Item Report-Feature falls ein Item Fehler enthält, so dass es korrigiert werden kann.
  • Suche nach Equip bezüglich ArmorSlot und Stat/ Statpriority
    z.B: Gib mir die Items auf dem "Gürtel"-Slot mit der höchsten Stärke/ Crit (Priorität: 1/ 1.8)


Features nach Release:
  • Klasse + Talente und Level des Spielers wählbar (in Statberechnung miteinfliessen lassen)


Mögliche Features:
  • filter Equip nach ItemQuality (gib mir das best mögliche Weiße|Grüne|Blaue Equip für Warri) für Sachen wie White Challange: DK nh


Zeitfresser - oder was ich noch benötige:
  • Formeln/ Tabellen/ Links zur Statberechnung Aller Art z.B. Wie wird die Base-Stamina von einem Tauren Hunter auf Stufe 34 berechnet, Hitcap bei Meeles, Combined Avoidance bei Tanks, etc.
  • Werte z.B Base Stats der Rassen, StaminaGrothPerLevel, etc.


Manche Sachen sind relativ einfach zu finden, andere sind durch Änderungen danach oder Rauspatchen nur schwer nachlesbar. Wichtig: alles Stand - BC 2.4.3
Falls jemand was hat einfach an mich per Nachricht oder hier einfach darunter packen.

CodeRaider

Fachmann

Beiträge: 389

Registrierungsdatum: 10.03.2015

  • Private Nachricht

7

Donnerstag, 3. August 2017, 11:49

Zeitfresser - oder was ich noch benötige:
  • Formeln/ Tabellen/ Links zur Statberechnung Aller Art z.B. Wie wird die Base-Stamina von einem Tauren Hunter auf Stufe 34 berechnet, Hitcap bei Meeles, Combined Avoidance bei Tanks, etc.
  • Werte z.B Base Stats der Rassen, StaminaGrothPerLevel, etc.


Manche Sachen sind relativ einfach zu finden, andere sind durch Änderungen danach oder Rauspatchen nur schwer nachlesbar. Wichtig: alles Stand - BC 2.4.3
Falls jemand was hat einfach an mich per Nachricht oder hier einfach darunter packen.


Also die meisten Dinge dieser Art sind Seiten wie wowwiki sehr praktisch, da man einfach die Versionsgeschichte durchschauen kann. Für Hit findet sich z.B. relativ schnell diese Seite hier: http://wowwiki.wikia.com/wiki/Hit?oldid=1432912
oder für Avoidance die hier: http://wowwiki.wikia.com/wiki/Attack_table?oldid=1704937
und für die Base Stats gibts hier zwei Tabellen mit denen man die ausrechnen kann: http://wowwiki.wikia.com/wiki/Race?oldid=1284887
Heal - BiS, Retri - BiS, Prot - T6
Enhancer - T6
CoH - T6
Prot - T5/T6, Frost-, Natur-, Feuerresi
Fire - Spellfire/T6
Balance - T6

8

Donnerstag, 3. August 2017, 14:07

Danke erstemal hab aber noch die Frage:
Wie komm ich denn im Wiki immer auf die älteren Patchstände von z.B.:

http://wowwiki.wikia.com/wiki/Attack_power
oder
http://wowwiki.wikia.com/wiki/Attribute#Strength

Entweder ich bin blind oder die habens gut versteckt. :)

CodeRaider

Fachmann

Beiträge: 389

Registrierungsdatum: 10.03.2015

  • Private Nachricht

9

Donnerstag, 3. August 2017, 14:17

Danke erstemal hab aber noch die Frage:
Wie komm ich denn im Wiki immer auf die älteren Patchstände [...]

Dafür gehst du mit der Maus über den Pfeil neben dem 'Edit' Button oben rechts und wählst da 'History' aus. Da kommst du dann zu einer Liste aller Versionen der Seite.
Heal - BiS, Retri - BiS, Prot - T6
Enhancer - T6
CoH - T6
Prot - T5/T6, Frost-, Natur-, Feuerresi
Fire - Spellfire/T6
Balance - T6