D3: DPS Calculator / Vergleichsskript

      D3: DPS Calculator / Vergleichsskript

      Juhu,

      wie ihr ja (teilweise) wisst, arbeite ich an einem Skript, um Gegenstände miteinander zu vergleichen. Ingame bietet das ja der Game Client an, Items aus dem Auktionshaus kann man aber momentan nicht vergleichen. Die erste Version, vorerst nur für Zauberer, ist jetzt soweit fertig und online (die anderen Klassen folgen).

      Hier geht's zum Skript (ist komplett auch Englisch am Rande)

      diablo3dps.net/

      Was müsst ihr tun:

      - Das erste mal die sechs Schadenswerte aller Items eintragen, die Werte werden in einem Cookie gespeichert
      - Auswählen, welches Item ihr vergleichen wollt (links) und die Werte des potentiellen, neuen Items eintragen
      - "Calculate" drücken

      Was müsst ihr beachten:

      - Begleiter fließen z.Z. noch nicht ein (3% Crit com Scoundrel bzw. 3% Attack Speed von der Enchantress), soonish to come
      - Euch können, sofern ihr unsinnigen scheiß eingebt, fiese Fehlermeldungen um die Ohren fliegen; solltet ihr auf Teufel komm raus nicht mehr an das Skript kommen -> Cookies löschen (das Skript ist also nicht Apple-Nutzer-tauglich, da man Gehirn braucht)

      Unsinniger Scheiß wäre (z.B.):
      - Eine off hand als main hand tragen wollen (Wär das blöd)
      - Als Zauberin eine 2 Hand Mighty Weapon tragen wollen (Idioten)
      - Keine Ahnung, was passiert, wenn man eine momentane 2 Hand mit einer Offhand vergleichen will. Wäre ja auch doof nech ;)

      - Das Skript ist englisch, 1,5 ist also 1.5 (wenn ihr die Crit Chance oder APS eingeben wollt können Kommazahlen vorkommen, statt des Komma einen Punkt benutzen)
      - Was bisher nicht geht: Eine 2 Hand tragen und mit einer 1 Hand + Off Hand vergleichen. Man könnte aber Trick 17 benutzen, die 1H + OH als momentane Waffe eintragen und mit der 2 Hand vergleichen, das Ergebnis dreht sich dadurch natürlich
      - Funktioniert nur bei Level 60 Chars, alles drunter ist mir zu blöd und auch überhaupt nicht beachtungswürdig
      - Alle Angaben sind wie immer ohne Gewähr


      Schreibt ihr doch mal rein, wenn euch Fehler auffallen bzw. was ihr sonst noch so für Ideen habt.
      Übersetzungen:

      Helm - Helm
      Shoulders - Schultern
      Amulet - Katzenklo
      Gloves - Handschuhe
      Chest Armor - Brüste
      Bracers - Armschienen
      Left/Right Ring - Linker/Rechter Ring :uglythumbs:
      Belt - Gürtel
      Pants - Büchsen
      Boots - Stiefel
      Main-Hand - Main Hand, also die linke Waffe
      Off-Hand - Off-Hand, also die Rechte Waffe
      Changelog

      21. Juli
      - Option für Begleiter hinzugefügt

      19. Juli
      - Das Item Rating wird nun als Grafik gerendert.

      17. Juli
      - Ein Fehler wurde behoben, aus denen bei ungerade Crit Chancen bei dem zu vergleichendem Item gerade wurden (es wurde immer abgerundet).

      16. Juli 2012
      - Steady Aim für Demon Hunter hinzugefügt
      - Es wurde ein Fehler behoben, durch den der Dual Wielded Attack Speed Bonus bei Demonenjägern nicht in der angezeigten APS zu sehen war; in der Berechnung war er bereits berücksichtigt
      - Die generierten Links sind nun kürzer, leere Felder (Null) wurden entfernt
      - Es wurde ein Feld für +% Damage auf Waffen hinzugefügt, eine exakte Berechnung ist bei diesen Waffen allerdings nicht möglich, da Blizzard intern (scheinbar) keine natürlichen Basiszahlen für Waffenschaden heranzieht (bei Waffen APS sind die Regeln z.B. bekannt). Im Durchschnitt sollten die Ergebnisse nun aber präziser sein.

      14. Juli 2012
      - Es wurde ein Fehler behoben, bei den es bei Mönchen beim Vergleichen einer Off-Hand zu einer an das GUI durchgereichten Exception kommen konnte

      13. Juli 2012
      - Ein Fehler wurde behoben, bei dem die "Attacks per Second" der Off Hand nicht mehr ausgeblendet wurde, wenn man zuerst eine 2 Hand Polearm ausgewählt hat
      - Neues Feature "Link Generator" hinzugefügt
      - Dem Link Generator hinzugefügt, automatisch Tiny URLs zu generieren
      - Der Algorithmus, um die Items zu bewerten wurde verändert. Der Schaden, den das Item verursacht in jetzt etwas höher gewichtet als zuvor, sodass das Verhältnis von Attribut Umfang zu Attribut Möglichkeiten etwas weniger Einfluss hat

      12. Juli 2012
      - Anzeigefehler im Internet Explorer behoben
      - Feature "Item Rating" hinzugefügt
      - Ein Fehler wurde behoben, durch den die ursprüngliche Angriffsgeschwindigkeit von Polearms falsch berechnet wurde
      - Detailliertere Erklärung beim Eintragen von Waffen hinzugefügt
      Ach und noch was - um Barbarian, Witch Doctor und Demon Hunter zu implementieren brauche ich eure Hilfe (da ich einen Level 60 Char dafür brauche). Zwar werde ich die Klassen soweit fertig machen, aber im Detail die Abstimmungen zu machen und zu testen brauch ich dann mal den einen oder anderen im TS.
      "Patchnotes" again (haha again)

      Die restlichen Klassen; Barbar, Demon Hunter und Witch Doctor also, sind jetzt auch online.

      Allerdings völlig ungetestet und blind in die Mathematik dahinter geschossen.

      Sobald ihr mit euren Klassen mal online seid, können wir da mal genauer testen. Besonders die Weapons Master (Barbar) und Archery (Demon Hunter) Mechanik könnte durchaus buggy sein, verlasst euch also im Moment nicht darauf, was da steht (es sei denn ihr testet, und seht dass es passt).
      Patchnotes again

      Das Skript hat jetzt eine Plausibilitätskontrolle verpasst bekommen. Es sollte also nicht mehr möglich sein, Blödsinn zu konfigurieren; wie z.B.

      - Eine Zweihand in die Off-Hand
      - Die Momentane Off-Hand mit einer Zweihand zu vergleichen
      - Ein Off-Hand Item in die Main Hand zu legen
      - usw.

      Sollte euch doch noch was sinnloses auffallen, schreibt es rein :uglythumbs:

      /edit: Das einzige, dass immernoch geht, ist irgendwo -43 Int oder dergleichen einzutragen. Kümmer ich mich nicht drum ;)

      /edit 2: Okay, hab's nu doch eingefügt; ich trau' euch Idioten nicht :P
      Ich hab' die drei letzten Klassen mal ein wenig getestet

      - Beim Witch Doctor ist der vom Skript angezeigte Schaden etwas niedriger, als der ingame angezeigte Schaden. Laut den Foren ist der vom Skript angezeigte Wert aber der richtige.

      - Beim Demon Hunter scheint der Schaden (grob) zu passen, da Archery, Sharpshooter und Steady Aim etwas seltsam mit der Anzeige interagieren. Mini DPS anzeige (wenn er offline ist) zeigt knappe 83k DPS, real sind es allerdings nur knapp 30k

      - Beim Barbaren bin ich mir einfach nicht sicher, ob es stimmt. Ich hab' Greenys Profil zum Vergleich genommen, aber keine Ahnung, woher die Differenz kommt. Das müsste ich nochmal testen, wenn Greeny mal wieder on ist ;)
      Neues Feature "Item Rating"

      juhuu,

      ich hab' mal ein Item Rating Algorithmus mit eingeschweißt - der berechnet, relativ zu euren Werten und was das Item an Stats tragen könnte, wie gut oder schlecht jedes Item ist. Das letzte in der Liste gibt dann einen dezenten Hinweis darauf, welches Item ihr als nächsten Upgraden solltet. Geil
      Neues Feature "Link Generator"

      Juhuuu,

      es gab' mal wieder ein neues Feature: Den Link Generator. Ihr könnt im Skript nun einen Link generieren, um euer Gear und eure Werte anders wo zu posten. Dazu müsst ihr im Skript nur oben links auf "Generate Link" klicken, direkt darunter taucht dann ein Link auf -> Rechts klick drauf -> Adresse des Links kopieren und anders wo posten. Eure gespeicherten Werte (die ihr im Browser habt) werden dadurch nicht überschrieben oder verändert. Um zu zeigen, was ich meine: Hier meine momentane Zauberin

      Klick
      dps? geht das denn nur für waffen?
      mal so als idee:
      list mit wichten stats pro item:
      z.b. Hanschuhe: ias, main attribute, crit chance/dmg, vita, resi
      dazu dann immer kann min-max haben und dann preis = kann/hat*kann/hat*kann/hat*kann/hat

      so in der art, dann kann man auch ne empfehlen machen, beim calc, wie, kauf dir handschuhe mit mehr ias, da ias dir am meisten bringt, und die formal sagt, deine handschuhe haben gar kein ias, selbst min wert ias auf handschuhe wären besser als deine 100 main attribute und kosten im verhältniss wohl am wengistens

      so, hope u understand me :)
      Ehm, nicht ganz: Zur Erklärung

      - Die Variable "dps" stellt die momentane Gesamt DPS dar
      - Die Variable dpsi stellt den Schaden dar, den das Item verursacht (nicht nur für Waffen)
      -> dps - dpsi entspricht also dem Schaden, den Du im Charakterfenster siehst, wenn Du das entsprechende Item ausziehst

      Sagen wir also, Du machst z.B. 10.000 ,0 DPS
      Jetzt ziehst Du Deine Handschuhe aus, und machst noch 9000 DPS, dann gilt:

      Basispunkte = 1000 * e ^(1,5 + (10000/9000)) = 1000*e^(1,5 + 1,11) = 1000*e^(2,61) = 13614 Punkte

      Das sind die Basispunkte für das Item, das in diesem Fall 10% (1000 DPS) unterschied machen

      Jetzt ziehst Du Dein linken Ring aus (Handschuhe wieder angelegt) und machst noch 8000 DPS, dann gilt

      Basispunkte = 1000 * e ^(1,5 + (10000/8000)) = 1000*e^(1,5 + 1,25) = 1000*e^(2,75) = 15643 Punkte

      Beim rechten Ring hast Du sogar nur noch 7000 DPS, dann kommt man auf eine Punktzahle von

      Basispunkte = 18700

      Der Verlauf dieser Kurve ist nicht linear (e Funktion halt), je mehr Schaden das Item in deinem Gear ausmacht, je höher die Basispunkte, der unterschied von Item 1 (1000 DPS) zu Item zwei (2000 DPS) sind etwa 2000 Punkte, der Unterschied von Item 2 zu drei sind aber schon 3000 Punkte, obwohl sowohl Item 1 und 2 1000 DPS Unterschied haben, als auch Item 2 und 3.

      Das ist der erste Teil der Formel, die Basispunkte

      Hinzu kommt Teil zwei, der berücksichtigt, was das Item könnte und was es tatsächlich kann

      die Variable stats_can ist vom Slot abhängig und beinhaltet nichts anderes, als die Anzahl der Schadenswerte, die der Slot haben kann:
      - Schultern können nur Int/Dex/Strength haben, also: 1
      - Ein Helm kann den Main Stat (int/dex/str) haben, und crit, also: 2
      - Ein Ring z.B. kann alle Stats haben (min/max Schaden, Crit, Crit Damage, main Stat, Haste), also: 6

      die Variable stats_has beinhaltet, wieviele der Stats auf dem Item auch tatsächlich vorhanden sind
      - Trägst Du Schulter mit deinem Main Stat also:
      (1 - 0,01 + 0,01) = 1

      - Trägst Du z.B. einen Kopf mit main stat und crit:
      (1 - 0,02 + 0,02) = 1
      - Trägst Du aber einen Helm, der nur dein Main Stat hat:
      (1 - 0,02 + 0,01) = 0,99

      Diese Zahl wird mit den Basispunkte multipliziert, hat also Dein Helm z.B. 15.000 Basispunkte, aber kein Crit bekommt einen 1% "Strafabzug"
      15000 * (1 - 0,02 + 0,01) = 15.000 * 0,99 = 14850 Punkte insgesamt


      Jetzt zur Idee dahinter:

      Sagen wir mal, Du hast einen Ring, auf dem 100 Int ist, Du hast ein Paar Schultern, auf denen auch 100 Int ist und einen Kopf auf dem 100 Int sind. Alle drei haben dann die selben Basispunkte, sagen wir als Beispiel wieder 15.000 (die Basispunkte hängen ja vom Gesamtschaden ab).
      Jetzt wissen wir beide, dass ein Ring, auf dem nur Int/Dex/Str ist, nicht so dolle ist. Und deshalb fließt das jetzt auch in die Punkte ein:
      Es gilt:
      Schultern: 15000 * (1 - 0,01 + 0,01) ) = 15000 * 1 = 15000 Punkte für die Schultern
      Helm: 15000 * (1 - 0,02 + 0,01) ) = 15000 * 0,99 = 14850 Punkte für den Helm
      Ring: 15000 * (1 - 0,06 + 0,01) ) = 15000 * 0,95 = 14250 Punkte für den Ring

      Das Skript würde Dir also sagen, dass der Ring aus der Reihe das schlechteste ist, was ja auch der Fall ist. Hoffe jetzt ist klar, wie das ganze arbeitet :wacko:

      /edit

      Jetzt noch ein Gegenbeispiel: Es gibt legedäres Zeug, dass Stats hat, die eigentlich garnicht drauf' sein können. Sagen wir z.B. Du hast ein Paar Legendäre Schultern, auf denen auch Attack Speed ist, dann gilt:
      (1 - 0,01 + 0,02) = 1,01

      In diesem Fall gäbe es also einen Punkte Bonus für das Item, da es überdurchschnittlich viele Stats trägt...
      Nochmal ein kleines Update:

      Wenn ihr nun auf "Generate Link" klickt, erstellt das Programm automatisch eine TinyURL. Es öffnet sich also ein neues Fenster, in dem ihr die recht lange URL seht. Etwas weiter unten steht dann der eigentlich Link. Gerade getestet, die TinyURL zu meiner Zauberin ist jetzt also:

      tinyurl.com/cl4gqpp

      So ist es doch angenehmer zu benutzen ;)
      An sich feine sache, pass aber auf, GET ist beschränkt, nicht das da Daten verloren gehen bei zuvielen Werten.

      PS: Nochmal zu dem Rating. Gefällt mir recht gut, würde aber noch die die güte der stats mit einberechnen und bei meheren guten Stats mehr mit den Punkten schwanken, da items mit vielen guten Stats ja unverhältnismäßig teurer sind. Des weiteren müsste man noch auf pre/post fixes achten, da manchen Werte ja nur mit mehrfachen stats zusammen können können und wenn man schon dabei ist, evtl. auch noch einen Rating-Break bei über 4 Attributen, da es ja 4er,5er und 6er stats gibts. Bzw. bei 4 Atts drauf achten, dass dann nur kleinere Werte z.b. für Dex raus kommen können und keine Werte über 200 oder so.Eine andere Sache noch, ist euch auch schon aufgefallen, dass manche Items viel häufiger mit gewissen Atts droppen. z.b. Gürtel, da sind 200 str kein problem, aber 200dex? Super teuer, wenn überhaupt voranden im AH.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „s0urce“ ()

      - Steady Aim für Demon Hunter hinzugefügt
      - Es wurde ein Fehler behoben, durch den der Dual Wielded Attack Speed Bonus bei Demonenjägern nicht in der angezeigten APS zu sehen war; in der Berechnung war er bereits berücksichtigt
      - Die generierten Links sind nun kürzer, leere Felder (Null) wurden entfernt
      - Es wurde ein Feld für +% Damage auf Waffen hinzugefügt, eine exakte Berechnung ist bei diesen Waffen allerdings nicht möglich, da Blizzard intern (scheinbar) keine natürlichen Basiszahlen für Waffenschaden heranzieht (bei Waffen APS sind die Regeln z.B. bekannt). Im Durchschnitt sollten die Ergebnisse nun aber präziser sein