• Herzlich Willkommen!

    Nach der Schließung von inDiablo.de wurden die Inhalte und eure Accounts in dieses Forum konvertiert. Ihr könnt euch hier mit eurem alten Account weiterhin einloggen, müsst euch dafür allerdings über die "Passwort vergessen" Funktion ein neues Passwort setzen lassen.

    Solltet ihr keinen Zugriff mehr auf die mit eurem Account verknüpfte Emailadresse haben, so könnt ihr euch unter Angabe eures Accountnamens, eurer alten Emailadresse sowie eurer gewünschten neuen Emailadresse an einen Administrator wenden.

Exp-Calc und -Infos sind falsch

Registriert
24 Januar 2001
Beiträge
234
Punkte Reaktionen
0
Der Exp-Calc ist fehlerhaft.

Es dürften einerseits die falschen mlvls von d2wissen verwendet werden (die richtigen findet man hier).

Anderseits stimmt auch bei Diablo (das mlvl von 90 ist hier richtig) die errechnete Erfahrung nicht mit meinen experimentell bestimmten Werten überein:

Code:
Level Party       Exp      Exp-Calc

 90    1/1       50309      119594
 90    1/2       75464      179340
 91    1/2       56907      135240
Möglicherweise nur um einen konstanten Faktor von ~2,377 falsch. Ob auch die LoD-Variante fehlerhaft ist, entzieht sich meiner Kenntnis.


Eine kleine Diskrepanz gibt es auch beim Partybonus:
Code:
               1      2      3      4      5      6      7      8

[URL="http://planetdiablo.eu/tips/exp-guide-lod.php"]Exp-Guide[/URL]     1,00   1,35   1,70   2,04   2,39   2,74   3,09   3,43
[URL="http://d2wissen.d2chars.de/exp/110/index.html"]d2wissen[/URL]      1,00   1,35   1,70   2,05   2,40   2,75   3,10   3,45
Im Rechenbeispiel des Exp-Guides wird zudem mit 3,31 statt den zuvor behaupteten 3,43 gerechnet.

:irre:
 
Zuletzt bearbeitet:
Beim Partybonus sind die D2Wissen-Infos veraltet, er beträgt keine 35%, sondern 356/1024, das sind ca. 34,8% bzw. bei 7 Spielern dann ein Faktor von 3,433. Im Calc hatte ich das mal angepasst, im Rechenbeispiel wohl übersehen.

Diablos Werte muss ich mir anschauen. Das Problem ist, dass man hier sehr leicht in Bereiche von XP-Überläufen kommt, bei denen D2 ganz merkwürdig rechnet. Aus dem Grund bringt Diablo auch mit einer vollen Party keine Erfahrung.

Arealevel: Ist eben doof, dass sich die Monster nicht so fest an die Arealevel halten. Mal schauen.
 
Spieler/Party: Die Werte stammen aus 1/1 bzw. 1/2 Spielen (steht dabei ;)). Ich habe ohnehin noch vor, alle 1/1 - 1/8 Werte für lvl 90 und lvl 91 herauszufinden. Die werde ich dann posten. (Auch alle FF und CS Monster!)

Alles bezieht sich auf bnet Ladder. SP siele ich nicht, kann's daher auch nicht testen.

356/1025 oder 356/1024? Ersteres ergibt nämlich 34,7% ;)

edit: Auf welche Werte von d2wissen kann man sich eigentlich noch verlassen? :( Das gute hier ist, dass die Sachen noch gepflegt und korrigiert werde (Dropcalc etc..) :)
 
Zuletzt bearbeitet:
>> (steht dabei ;))
Hatte ich erst nicht als Partygröße interpretiert, dann aber verstanden und meine Frage rauseditiert, aber da warst du wohl schon am Tippen.

>> 356/1025 oder 356/1024? Ersteres ergibt nämlich 34,7%
1024, vertippt. 2^10 eben.

Zur XP-Berechnung in Classic muss ich mich erstmal schlau machen (morgen dann), der Calc passt zu den D2Wissen-Infos ;). Atair pflegt die Seite afaik schon länger nicht mehr, entsprechend sind eben manche Infos mittlerweile veraltet. Die 35% Partybonus sind ja auch sehr nah am realen Wert, vermutlich stammen sie aus alten Tests mit niedrigeren Erfahrungswerten, sodass man die Ungenauigkeit nicht bemerken konnte. Und hätte nicht eine andere Quelle 33% angegeben, wären die 35% wohl immer noch unkorrigiert.
 
Hier erstmal meine experimentell bestimmten Werten (Hölle, classic ladder 1.12):

edit: Tabellen gibt's jetzt hier

Ausgehend davon wollte ich eigentlich eine exakte Exp-Formel herausfinden, aber das ist nicht ganz so einfach, wie ich am Anfang dachte. Die annähernd richtige Formel lautet ja:

Code:
[COLOR="Red"][I][B]exp[/B][/I][/COLOR] = [COLOR="Orange"][I][B]mexp[/B][/I][/COLOR] * [COLOR="Orange"][I][B]mqual[/B][/I][/COLOR] * [COLOR="Orange"][I][B]playerbonus[/B][/I][/COLOR] * [COLOR="Orange"][I][B]partyfactor[/B][/I][/COLOR] * [COLOR="Orange"][I][B]difflvlmalus[/B][/I][/COLOR] * [COLOR="Orange"][I][B]lvlmalus[/B][/I][/COLOR] * [COLOR="Orange"][I][B]expbonus[/B][/I][/COLOR]

wobei

Code:
[COLOR="Orange"][I]playerbonus[/I][/COLOR] = ([I]players[/I] + 1) / 2

              [SIZE="1"]siehe [URL="http://planetdiablo.eu/tips/exp-guide-lod.php"]Exp-Guide[/URL], [URL="http://d2wissen.d2chars.de/exp/110/index.html"]d2wissen[/URL][/SIZE]
Code:
[COLOR="Orange"][I]partyfactor[/I][/COLOR] = (1 + [I]partyplayers[/I] * 89 / 256) * [I]clvl[/I] / [I]plvl[/I]

              [SIZE="1"]siehe [URL="http://planetdiablo.eu/forum/showthread.php?p=16853773#post16853773"]Strat-Forum 1[/URL], [URL="http://planetdiablo.eu/forum/showthread.php?t=1442728"]Stratforum 2[/URL], [URL="http://d2wissen.d2chars.de/exp/110/index.html"]d2wissen[/URL][/SIZE]
Code:
[COLOR="Orange"][I]difflvlmalus[/I][/COLOR] = Malus abhängig von [I]clvl[/I] und Leveldifferenz [I]clvl[/I] - [I]mlvl[/I]

               [SIZE="1"]siehe [URL="http://d2wissen.d2chars.de/exp/110/index.html"]d2wissen[/URL], [URL="http://phrozenkeep.hugelaser.com/forum/viewtopic.php?p=129152#p129152"]Phrozenkeep[/URL][/SIZE]
Code:
[COLOR="Orange"][I]lvlmalus[/I][/COLOR] = Malus abhängig von [I]clvl[/I]. [I]clvl[/I] < 70: 1024/1024
                                         = 70:  976/1024
                                         = 71:  928/1024
                                         ...
                                         = 90:   61/1024
                                         = 91:   46/1024
                                         ...

           [SIZE="1"]siehe [URL="http://d2wissen.d2chars.de/exp/110/index.html"]d2wissen[/URL], [URL="http://www.mannm.org/d2library/faqtoids/exp.html"]FAQtoids[/URL], experience.txt[/SIZE]

und

Code:
[COLOR="Orange"][I]mexp[/I][/COLOR] = Basiswert an Erfahrung des Monstergrundtyps
[COLOR="Orange"][I]mqual[/I][/COLOR] = exp-Qualitätsfaktor des Monsters (normal,spezial = 1, champion = 3, boss,minion = 5)
[COLOR="Orange"][I]expbonus[/I][/COLOR] = Bonus von exp-Shrine, anni, ondals

[I]players[/I] = Anzahl der Spieler im Spiel zum Zeitpunkt des Monsterspawn
[I]partyplayers[/I] = Anzahl der Spieler in Party und Exp-Nähe zum Zeitpunkt des Monsterkill
[I]clvl[/I] = Level des Charakters
[I]mlvl[/I] = Level des Monsters
[I]plvl[/I] = Summe der clvl in Party und Exp-Nähe zum Zeitpunkt des Monsterkill

Für eine exakte Formel ist das eine Problem zuerst einmal das Bestimmen der Basis-Erfahrungswerte der Monster (mexp). Für LoD lassen sich die Werte auf dem Arreat Summit nachschlagen. Für Classic gelange ich rechnerisch leider nur auf ungefähre Werte. Ich habe ein wenig recherchiert und die mexp-Werte sollten sich aus den MPQ-Dateien auslesen lassen: Exp/Exp(N)/Exp(H) aus monstats.txt (Prozentwert) multipliziert mit L-XP/L-XP(N)/L-XP(H) aus MonLvl.txt. Eigenartigerweise gibt es bei meinem 1.12-Classic- als auch beim 1.12-LoD-Install keine MonLvl.txt - die monstats.txt fand ich wie erwartet in patch_d2.mpq (ich verwende das Programm mpqview aus der Filebase). Ich habe mir dann aufgrund dieses Hinweises die sogenannten "fixed files" heruntergeladen, da war dann auch eine MonLvl.txt dabei. Für Diablo Hölle ist Exp(H)=3462% (monstats.txt) und L-XP(H)=57990 (MonLvl.txt) was multiplizert 2007613 (= Wert auf d2wissen, übrigens) und nicht die experimentell bestimmten ca. 844540 ergibt. Gilt dieses Verfahren nur für LoD? Sind die "fixed files" nur für LoD? Kann man auch für Classic die Werte aus den MPQ's auslesen? Kann man irgendwie anders einfach die mexp-Werte in Classic bestimmen?

Problem 2: Wenn einmal die mexp-Werte bekannt sind, beginnt der eigentliche Spaß. In welcher Reihenfolge werden die Faktoren aus obiger Formel angewandt und wann wird gerundet? Ich gehe einmal davon aus, dass das Spielintern gänzlich mit integern gerechnet wird. Gibt es tatsächlich einen mqual-Faktor oder sind auch die mexp-Werte von z.B. Champs irgendwo hinterlegt, die bloß ungefähr mexp*3 ergeben? In welcher Reihenfolge wird was gerechnet? Offensichtlich wird diese Reihenfolge aber auch verändert, je nachdem wie hoch das Zwischenresultat ist (wohl um Überläufe zu vermeiden); zudem gibt es Beschränkungen (maxexp) und Überläufe (8/8 Dia classic, Baal Welle 2, Uber Evils(?)). Ich werfe die Links diesbezüglich einfach mal in die Runde: lvlmalus-Rundung (d2wissen, ganz unten), Überläufe, 0x7FFFFF-Grenze (Strat-Forum), Phrozenkeep (speziell hier und hier). Das alles (und noch mehr!?) müsste man jetzt zu einer Grand Unified Exp Theory verwursten und anschließend experimentell bestätigen :ugly:

Problem 3: Wie soll man Problem 2 praktisch angehen? Ich habe die Exp-Werte aus den obigen Boxen in einem OOo-Sheet und auch ein paar mögliche Formel-Varianten mit verschiedenen Rundungen (ohne Erfolg) probiert - das ist allerdings alles etwas unhandlich und die Formeln werden sehr lang (nicht zuletzt auch wegen diverser Bedingungen) und beim Verdrehen diverser Faktoren ist das Chaos schnell perfekt (und solange Problem 1 nicht gelöst ist, ist es noch viel schwieriger). Für Vorschläge bin ich dankbar.

Radio :hy:

PS: Mir ist aufgefallen, dass vom aktuellen Exp-Guide auf einen eigenen Exp-Guide für Classic gelinkt wird. Der ist allerdings stark veraltet (1.09). Eigentlich braucht es auch gar keinen eigenen Classic-Guide. Unterschiede gibt es nur bei der Gebietsempfehlung und dem Abschnitt über Söldner(?). Im (LoD)-Exp-Guide habe ich außerdem einen kleinen Fehler entdeckt: bei clvl-mlvl<=-10 ist der Faktor seit Patch 1.10 5/256 ~ 2% und nicht mehr 13/256 ~ 5% (Quelle: d2wissen, Phrozenkeep).

PPS: Aus den obigen exp-Werten ist ersichtlich, was mucker hier schon anmerkte: Im Flammenfluss haben auch Teufelsmäuler ein höheres Level. Könnte das evtl. ein mod in debos Liste (+Archiv) ausbessern (77/80 -> 80/83)? :)

PPPS: Mittlerweile würde "Exakte Exp-Formel" als Topic (und Strat als Forum?) besser passen :clown:
 
Zuletzt bearbeitet:
Jo... das ist so in etwa der Punkt, an dem ich dann auch entschieden hatte, dass es erstmal wichtigere Dinge gibt *g*. Wobei ich die Classic-Dateien in der d2data.mpq gesucht habe, da finden sich allerdings unter anderem die Highlevel-Abzüge nicht.

Überläufe sollte es zumindest bei den normalen Monstern und Diablo bei niedrigen Spielerzahlen nicht geben, die machen das ganze dann noch komplizierter.

Deine Tabellen bestätigen zumindest mal die 50% Bonus pro zusätzlichem Spieler.


Ich habe leider keine Classic-Chars zum testen, aber folgende Tests sind geeignet, um den Fehler in den Berechnungen weiter einzugrenzen:

- Diablo im Solospiel (oder zumindest ohne Party) mit mehreren Chars mit Leveln von 85 bis 95 (letzteres eher utopisch) sowie mit Level 69 -> Test, ob die Verhältnisse des Highlevel-Malus stimmen (hier habe ich erhebliche Zweifel, ob die LoD-Werte auch für Classic gelten)
- Diablo mit gleichbleibendem Charlevel, aber steigender Zahl an Partymitgliedern -> Test, ob der Partybonus verstanden wurde (nur Kontrolle, sollte eigentlich passen)
- diverse Monster mit Level 6x-Chars killen. Diese haben keinen Highlevel-Malus, die Formel für die Leveldifferenz kann man überprüfen und die Basiserfahrung ausrechnen. Danach kann man für die Level90-Chars den Highlevel-Malus explizit ausrechnen.
 
Die Textdateien aus d2data.mpq sind die von v1.00 - in patch_d2.mpq stehen die aktuellen (habe ich irgendwo auf Phrozenkeep gelesen). ExpRatio in den MPQ's gibt's erst seit 1.10 (davor waren es nur 5 Stufen, was aber in d2game.dll implementiert war laut Phrozenkeep).

Weil du sagst "Classic-Dateien" aus den MPQ's: ich habe ein diff auf meinen d2c und d2x install gemacht, und das sind die Unterschiede. Die Textdateien aus beiden patch_d2.mpq unterscheiden sich nicht - und die Textdateien der Classic-patch_d2.mpq sind eine Obermenge der LoD-Version (!). Was immer das bedeuten mag...

Überläufe in Classic: Nachdem es bei 7/8 Dia keinen und 8/8 Dia schon einen gibt, denke ich auch, dass es daher sonst keine normalen Monster betreffen kann (evtl. noch Uber Diablo).

Alle meine experimentell bestimmten Werte stimmen ungefähr (= sehr genau) mit dem bekannten Exp-Mechanismus aus LoD überein - der Leveldifferenzmalus ist damit zwar nur in eine Richung (c-m>0), der Levelmalus ist nur für 2 Stellen (61/1024, 46/1024) und der partyfactor überhaupt nicht überprüft, aber ich wüsste jetzt auch nicht, wieso das grundsätzlich in Frage steht/stand ;)

Und um den Mini-Unterschieden auf den Grund zu gehen, wollte ich vorher die base-exp Werte für Classic in Erfahrung bringen, damit es ein bisschen einfacher wird :)
 
Hmm, wir hatten ein paar Werte genommen damals, da das kreuz und quer ging, bin ich in allen Richtungen etwas skeptisch. Aber gut, mal annehmen, dass nur die GrundXP-Werte falsch sind.

Dann hat der 90er einen Highlevel-Faktor von 61/1024 und der 91er einen von 46/1024.

Level90-Char:
Boss Ritter des Vergessens: Level 83, also 636/1024 Leveldiff-Faktor -> 206737 XP
Normaler Ritter des Vergessens: Level 80, also 52/1024 Leveldiff-Faktor -> 41322 XP
ca. das 5-fache, beim Boss etwas mehr, das war zu erwarten.

Level91-Char:
Boss Ritter des Vergessens: Level 83, also 440/1024 Leveldiff-Faktor -> 206737 XP
Normaler Ritter des Vergessens: -> die 294 XP sind offenbar ein Tippfehler, mit 94 passt der Wert auch

Passt also auch zusammen, gut.




Schön, dass Computer gleichbleibende Rechnungen so schnell durchführen können...
Grundxp-Werte für normale Monster, wobei ich mich nicht um Rundungen kümmere, die realen Werte müssen jeweils etwas darüber liegen. Ich habe (sofern verfügbar) die Bosse beim Level90-Char zur Berechnung verwendet, da dort die Rundungsfehler geringer ausfallen.

CS:
Ritter des Vergessens: 41321
Sturmrufer: 26579
Giftfürst: 24914
Ritter der Verdammnis: 18115
Diablo: 844531

Flaflu:
Urdar: 25596
Teufelsmaul: 27563 <-- Wert vom Boss
Teufelsmaul: 27555 <-- Wert vom Champion (bestätigt die Levelkorrektur auf 80/83)
Teufelsmaul: 27437 <-- Wert vom normalen Monster
Grotesker: 25595
Ritter des Abgrunds: 26776
Würger: 25850 (falls ihr Level höchstens 80 ist)
Blutwurm: 24594
Grubenfürst: 24168 <-- Champ-Wert
Hephaisto: 360324


Mal den Giftfürst genauer unter die Lupe genommen:
24914 XP im CS bei Level 83 (Bosswert)
24793 XP im CS bei Level 80 (normales Monster), ~1% Rundungsfehler

monlvl.txt aus den 1.11-fixedfiles, Spalte L-XP (H):
44400 für Level 80
48477 für Level 83 (~10% höher)
(49836 für Level 84)
Sollte der Giftfürst also die monstats.txt verwenden, geht da noch irgendwas mysteriöses ab, denn eigentlich sollte der Boss zur Berechnung von einem normalen Giftfürsten auf Level 83 ausgehen. 10% XP-Erhöhung sehe ich aber nicht.

Der Giftfürst nennt sich englisch VenomLord und ist dem Spiel besser bekannt als "megademon3". Als solcher steht er mit Level 84 in den MPQs (was nicht verwendet wird) und bekommt 130 (%) XP.


Ich kann nun etwas Zahlenmystik betreiben: 1,3*48477=63020
Teilt man den realen Wert durch diese Theorie, erhält man 24914/63020=0,3953
Teilt man den realen Wert von Dia von 844540 durch die Theorie von 2007613, erhält man 0,42066.

Sturmrufer (fingermage3) noch, weils so schön ist: 26579 XP als Level 83, 135 (%) XP, Theorie also 65444 XP, Faktor 0,406. Das ist überraschend nah am Faktor für die Sturmrufer, und 0,4 sind eine Division des Theoriewerts durch 5/2. Für die sehe ich zwar keine Quelle, aber schön wäre so ein konstanter Faktor auf jeden Fall ;). Allerdings passt der Diawert nicht dazu.


>> Gibt es tatsächlich einen mqual-Faktor
Meines Wissens nach ja. Wobei für das Nachschauen in der MonLvl.txt das höhere Level verwendet wird. Bei d2wissen sind die Rundungsreihenfolgen angegeben, hoffentlich sind sie auch korrekt (...).

Da debo schon länger nicht mehr hier war, habe ich die Teufelsmäuler mal korrigiert.
 
Ja stimmt, es sind 94 und nicht 294. Hab's ausgebessert und ein paar neue Werte hinzugefügt (hauptsächlich 1/1). Ich habe auch noch mit einem 67er einen Diakill gemacht: 628713 = 844540 * 67 / 90 * 1024 / 1024 was den Levelmalus damit bereits an 3 Stellen bestätigt.

Dein konstanter Faktor 5/2 erinnert mich an das Eingangsposting: 2,377 ;)

MonLvl.txt / MonStats.txt: Jo, sieht so aus, als ob das in Classic nicht verwendet wird bzw. nicht in der Form, dass der Boss eine andere Grundexp als der Normale hat - denn die Werte sind alle mit den mqual-Faktoren und Rundung erklärbar.. da ist kein Platz für eine andere mexp. Möglicherweise hängt das irgendwie mit dem auch nicht ohne weiteres erklärbaren mlvls in Classic zusammen (diese scheinen für ff/cs aus der original d2data.mpq-monstats.txt zu stimmen, aber nicht die exp...). Vielleicht sollte ich einfach mal die errechnete mexp (d2c-exp.ods), die aus d2data-MonStats.txt, die % aus patch_d2-MonStats.txt und 2 Varianten der MonLvl.txt-exp (mit lvls aus patch_d2-MonStats.txt und mit den tatsächlichen) in eine Tabelle schmeißen und schauen ob irgendwas korreliert?

Ich habe meine Tabellenkalkulation in obigem Post angehängt (direkt unterhalb Exp-Tabellen). Mit der Formel
Code:
exp = [ [ [ mexp * mqual * playerbonus ] * difflvlmalus ] * lvlmalus ]
inklusive Fallunterscheidung beim Levelmalus laut Snej@Phrozenkeep (auf d2wissen stehen übrigens nur die Fälle 1+2 ohne clvl-Abhängigkeit):
Code:
1.case: clvl <  70 && exp <  100000h -> exp = [(exp*1024)/1024] = exp
2.case: clvl <  70 && exp >= 100000h -> exp = [exp/1024]*1024
3.case: clvl >= 70 && exp <  200000h -> exp = [(exp*malus)/1024]
4.case: clvl >= 70 && exp >= 200000h -> exp = [exp/1024]*malus
aber ohne partyfactor und difflvlmalus-Fallunterscheidung (und auch ohne die in LoD vorkommende unterschiedliche mexp bei n/c/b's selben Monstertyps) komme ich mittlerweile auf erstaunlich gute Ergebnisse: bei 2 Werten ist's um 1 zu wenig, bei einem dritten um 1 zuviel. Sonst stimmen alle! (Anfangs hatte ich noch die wohl unvollständige bzw. für lvl 90/91 falsche d2wissen-Fallunterscheidung genommen - da hat es z.B. bei Diablo 90:1/3,1/4 nicht gepasst...)

Allerdings hat das zunächst einmal schöne Resultat noch den Haken, dass die mexp-Werte ja andere sein können als jene, die auf die derzeit in der Tabellenkalkulation befindliche (extrem lange, unübersichtliche und definitiv noch unvollständige) Formel optimiert sind.

Hoffentlich stimmt die Reihenfolge und mit etwas Glück führt das Nicht-Berücksichtigen von partyfactor und expbonus zu keinen Auswirkungen - was z.B. beim Levelmalus erstaunlicherweise nicht der Fall wäre (siehe zitierte Levelmalus-Fallunterscheidung Fall 2).

Was ich als nächstes vor habe:
- Tabellenkalkulation übersichtlicher, anpassbarer und erweiterbarer machen (-> Exp-Formel auf mehrere Tabellenblätter aufteilen)
- Leveldifferenz-Fallunterscheidung einbauen (Snej@Phrozenkeep, oben)
- Exp-Tabellen erweitern (falls ein stiller Mitleser Lust haben sollte, immer nur her mit den Daten... :))
 
Weiter getestet und gerechnet.

Zum einen XP-Werte aus dem Flammenfluss in LoD, wobei "normiert" 1/5 des Bosswerts ist. 1/1 Spieler, Level 73-Sorc:
Name normal boss/minion normiert
blood maggot 44653 215657 43131,4
maw fiend 50012 241540 48308

Nun rechne ich noch den Leveldiff-Faktor und den Highlevel-Malus zurück und erhalte 63992 XP für die Blutwürmer und 71672 XP für die Teufelsmäuler, sowohl von Bossen als auch von normalen Monstern - beides genau eins unter dem D2-Wissen wert.

Während das Leben also mit dem höheren Level in der monlvl.txt nachgeschaut wird, wird die Erfahrung mit dem niedrigeren nachgeschaut. D2-Berechnungen....


------------------------------

Die berechneten Lebenswerte mal mit der Theorie verglichen, und bewusst das Level mit in die Tabelle aufgenommen:

Code:
Name		level	xp exp	txt%	xp theo	Faktor
RdVerdam	74	18115	100	36246	0,499779286
RdAbgr		77	26776	140	56452	0,474312781
Blutwurm	77	24594	125	50404	0,487939885
Grubenfürst	77	24168	130	52420	0,461046282
Würger		77	25850	135	54436	0,474869135
Hephaisto	78	360324	339	141302	2,550027961
Giftfürst	80	24914	130	57720	0,431635482
RdVerg		80	41321	210	93240	0,443168168
Sturmrufer	80	26579	135	59940	0,44342676
Teufelsmaul	80	27563	140	62160	0,443420206
Grotesker	80	25595	130	57720	0,443433818
Urdar		82	25596	130	61253	0,417870681
Diablo		90	844531		2007613	0,420664242

Was fällt auf?
- Hephaisto gibt viel mehr XP als er sollte
- Monster mit ähnlichem Level besitzen ähnliche Faktoren zwischen Theorie und Experiment. Beim Würger habe ich 77 angenommen, ein höheres Level passt nicht zu den Daten und ein niedrigeres würde aus dem Rahmen fallen.
-- exakt gleich sind diese allerdings nicht. Afair taucht der niedrige Wert für normale Monster nirgendwo auf, ich sehe also keine offensichtliche Rundung als Quelle


Hast du einen Level70-Char, mit dem du XP-Werte aufnehmen kannst? Der Highlevel-Malus zusammen mit dem Leveldiff-Faktor macht die ganzen Werte so klein, dass man ständig auf Rundungen achten muss. Mit dem 70er kann man normale Monster killen, bekommt XP in der Gegend von 20.000 und hat eine Menge Komplikationen wegen Bossen und sonstigen Rechnungen nicht mehr.
Jeweils ein Wert im Solospiel reicht ja pro Monstertyp.

Interessant wären auch weitere Monster mit Level 77, wie sie in der Stadt der Verdammten massenhaft rumlaufen. Oder alternativ eine Runde 74er von den ersten beiden Gebieten in Akt 4.
 
>> Afair taucht der niedrige Wert für normale Monster nirgendwo auf, ich sehe also keine offensichtliche Rundung als Quelle
Versteh ich nicht.. welcher niedrige Wert?

Ich habe einen 67 bobarb und eine 80 ench :ugly: d.h. wäre recht mühsam, drum habe ich vorerst nur mit 90+91 Stadt der Verdammten gemacht (siehe oben Tabelle + Tabellenkalkulation).

Ich hoffe wir bekommen bald Unterstützung, was das Exp-Ermitteln betrifft: Items gegen Exp-Werte :D

Ich hätte auch noch jede Menge LoD-Stuff.. denkst du es bringt etwas, das gegen Classic-Norm-Exp-Werte zu vertraden (die LoDler können ja schwer nach Hölle)?
 
Hallo ihr zwei :)

Kaum zu glauben was ihr euch für Mühen macht - Respekt!
Ich habe die Thematik mal in das nWo-Gildenforum gesetzt. Mal sehen ob wir ein bisschen Unterstützung zusammenkratzen können. Versprechen kann und will ich nichts, denn die meisten befinden sich - nach der Ankündigung, dass sich der P1.13 verzögert - wieder im Dornröschenschlaf :)

Ich pers. bin z.Zt. im Prüfungsstress.. werde aber sehen was sich machen lässt.
Nette Idee btw. mit dem Anreiz-System in Form von schicken Items... auch wenn ich selbst nur cl sc spiele :D


Grüße!
Anoxx
 
Zuletzt bearbeitet:
Ich habe auf dem PTR eine Classic-Sorc bis zum CS Alp gerusht und dort sowie in Norm ein paar Erfahrungswerte gesammelt. Dazu habe ich bei allen beteiligten Monstern noch die MPQ-Werte zum Level rausgeschrieben, und damit zeichnet sich nun ein eindeutiges Muster ab.

Zum Berechnen der XP-Werte:
- nehme das eingetragene Level in der monstats.txt (NICHT das tatsächliche!)
- nehme den eingetragenen XP-Faktor in der monstats.txt
- schaue den Grund-XP-Wert in der monlevel.txt nach, nutze als Level den Wert von oben
- multipliziere den Grund-XP-Wert mit dem Faktor von oben
- dividiere den XP-Wert durch folgenden schwierigkeitsabhängigen Faktor:
* 1,00 für Norm
* 1,700 für Alptraum
* 2,600 für Hölle


Abweichend davon hat Hephaisto in Hölle genau das 5fache der Erfahrung, die bei dieser Berechnung herauskommt, in Norm und Alp habe ich es nicht überprüft. Vielleicht betrifft es sogar alle Superuniques.


Blutwurm und Grubenfürst hatte ich nicht nachgeschaut, daher dort keine Werte. XP calc beinhaltet den oben genannten Faktor noch nicht, daher ist "Faktor test" genau (im Rahmen der Rundungen) der Kehrwert davon. Im CS Alp sind drei Monstertypen noch fälschlicherweise mit Level 53 berechnet, diese haben aber Level 55 (d.h. kleiner Leveldifffaktor, weil ich mit Clvl 53 getestet habe) und passen damit zu Diablo und den 1,700

Code:
norm		exp	txt%	lvl	xp calc	Faktor test
Giftfürsten	1001	152	30	1001	0,998988366
Sturmrufer	856	130	30	856	0,999182911
RdVerdam	486	111	24	487	0,99825817
RdVerg Mage	863	131	30	863	0,999277956
Diablo		44901	3462	40	44902	0,999982035
					
					
					
alp		exp	txt%	lvl	xp calc	Faktor test
Giftfürsten	7400	130	57	13057	0,566737126
Sturmrufer	8146	135	58	14373	0,56673937
RdVerdam	5574	100	56	9477	0,58816081
RdVerg Mage	12672	210	58	22358	0,566759248
Diablo		273742	3462	62	465362	0,588234445
					
					
Hölle		exp	txt%	lvl	xp calc	Faktor test
Giftfürst	24914	130	84	64786	0,384553644
Sturmrufer	26579	135	85	69113	0,384571699
RdVerdam	18115	100	82	47118	0,384460291
RdVerg Mage	41321	210	85	107509	0,38434743
Diablo		844531	3462	94	2195808	0,384610564
					
Urdar		25596	130	85	66553	0,384592846
Teufelsmaul	27563	140	85	71673	0,384566015
Grotesker	25595	130	85	66553	0,384577821
RdAbgr		26776	140	84	69770	0,383773061
Würger		25850	135	84	67278	0,384223215
Blutwurm	24594	125			
Grubenfürst	24168	130			
Hephaisto	360324	339	88	187372	1,923039975


Edit:
Ich bin gerade dabei, das experimentell im XPcalc umzusetzen, für die CS-Monster liefert es die richtigen Werte. Den Alp/Hellfaktor wende ich ganz am Ende der GrundXP-Bestimmung an, sollte das die falsche Rundungsweise sein, so ist der Fehler zumindest äußerst gering.
Problem: Wie ermittle ich nun für alle Alp- und Hellmonster automatisch ihr Level im Spiel? Diese folgen weder zwingend dem Arealevel noch zwingend dem txt-Eintrag.

Hephaisto wird interessanterweise schon vom Calc richtig berechnet, offenbar wird da der Wert einfach so nochmal verfünffacht, weil er auch als Boss angesehen wird.


Noch ein Edit:

Diablos XP in Alptraum ist exakt 273742, getestet mit einem Level65-Char (also kein XP-Malus) im Solospiel.
Aus den MPQs erhält man zunächst den Wert 465362. Dividiert man diesen durch 1,7, erhält man 273742,35 und damit abgerundet genau den richtigen Wert. Ich kann damit auch einen Bereich angeben:
Sollte der Faktor nicht früher auftreten, liegt er zwischen 1,6999959 und 1,7000085. Sollte der XPWert mit einem Vielfachen von 1/1024 multipliziert werden, müsste dieses zwischen 602,3499 und 602,3544 liegen, was offensichtlich unsinnig ist.

Sollte der levelabhängige Faktor auf den Monlvl-Wert von 13442 wirken, kann man von 273742 durch den Faktor 34,62 teilen und erhält 7907,0479. Mit 7907 käme nach Abrunden ein zu kleiner Wert heraus, mit 7908 ein zu großer. So funktioniert es also auch nicht.

Damit steht schonmal (für Alptraum) fest, dass der Faktor nach der Berechnung der GrundXP angewendet wird, nicht auf 1/1024 basiert und mit einer sehr hohen Präzision 1,7 ist (Fehler unter 0,00001). Denkbar wäre noch, dass er auch nach den party/charabhängigen Faktoren angewendet wird, in dem Fall bräuchte man vermutlich relativ spezielle Testsetups, um das zu unterscheiden. 465362 ist in dem Fall die GrundXP.


Und munter weiter editieren:

Im wesentlichen sehe ich zwei wahrscheinliche Stellen für den Malus, entweder sind X oder Y der Faktor und der andere ist dann jeweils 1:
exp = [ [ [ [ [mexp*X] * mqual * playerbonus ] * difflvlmalus ] * lvlmalus ] *Y]

XP-Schrein hilft nicht:
X: 273742 -> mit XP-Schrein 273742*1,5=410613
Y: 465362 -> mit XP-Schrein 698043/1,7=410613

Level 70 hilft auch nicht:
X: 273742 -> multipliziert mit 976/1024 also 260910 XP
Y: 465362 -> nach Lvlmalus 443548, nach 1,7 dann 260910 XP

Level 71:
X: 200594 XP
Y: 465362 -> 376288 -> 341011 -> 200594
bah schon wieder.


Dafür mal den Hölle-Test vorweg nehmen:
Mit den Charleveln 43, 57, 58, 62, 67, 73, 75, 78, 81, 89, 94 und 96 gibt es im Solospiel eine Abweichung. Unter 25 habe ich nicht geschaut :ugly:.
Mag jemand mit einem solchen Char Dia killen? ;).
 
Für lvl67 -> Post #9

Es wäre sehr eigenartig, wenn der Classic-Malus an Postion Y verrechnet wird, weil das dann jedes mal gerechnet werden muss und nicht nur 1 Mal pro Monstertyp. Andererseits muss das nichts heißen :D

edit: hier ein paar neue Werte - hab sogar einen 94er "aufgetrieben" (ArgError) :)

edit2: Tabelle in anderen Thread gemult und weitere Dia-Werte für lvl 67 eingetragen
 
Zuletzt bearbeitet:
So, nachdem Radioactiveman und ich etwas weiter über die XP-Mechanik gegrübelt haben und er diverse Partywerte liefern konnte, ist der XP-Calc nun korrigiert. Bei bestimmten Partyzusammenstellungen ergeben sich durch Rundungsfehler Abweichungen von einem Erfahrungspunkt, eventuell auch etwas mehr als einen Punkt - der Fehler ist aber auf jeden Fall klein.

Die genaue Rundungsreihenfolge lässt sich durch Tests praktisch nicht ermitteln, diese müsste man direkt aus den Spieldateien auslesen. Für LoD ist das bekannt, für Classic ist die Berechnungsweise allerdings etwas anders, sodass sich die Erkenntnisse nicht 1:1 übertragen lassen.

Dazu lässt sich nun unabhängig von der Spielerzahl eine größere Party einstellen, da Monster durchaus mit niedrigeren Spielerzahlen aktiviert werden können als zum Zeitpunkt des Kills Spieler da sind.
 
Für LoD ist die Reihenfolge bekannt bzw. der Calc stimmt sogar exakt? Gibt's da eine Quelle dazu? :)

Im Calc bin ich auf 2 Bugs gestoßen:

  • Monster-"kinder" sollten immer 0 Exp geben: Stygische Hunde, Wurm-Nachwuchs.. gibt's sonst noch was? (gilt auch für den LoD-Calc)
  • bei Objekten gibt es keine champs/bosse: Radio-Button sollte wie bei SUs fixiert sein (gilt auch für den LoD-Calc)
  • evtl. ein dritter: bei Rittern der Verdammnis sind afaik keine Champs möglich: Äußere Steppe, Ebene der Verzweiflung, CS. Vielleicht gilt das aber nur dort, wo es auch VergessenRitter gibt, also im CS (gilt auch für den LoD-Calc? +InfernoGrube, WST3, Thron). So, ich sehe gerade, dass man das aus d2wissen auslesen kann - bei Steppe+Ebene ist auch Champ+Boss bei Rang-Dropliste möglich, bei CS nur normal+Diener. Das gilt auch für andere Monster, z.B. Fallen: im Blutmoor alles möglich, in Kalte Ebene nur normal+Diener (wohl wegen Schamanen), in der Höhle des Bösen sogar nur normale (weil offensichtlich außer Totenfeuer keine Bosse spawnen können). Die Kosten-Nutzen-Rechnung, das alles korrekt zu implementieren geht wohl nicht auf, denke ich ;)
 
>> Monster-"kinder" sollten immer 0 Exp geben: Stygische Hunde, Wurm-Nachwuchs.. gibt's sonst noch was? (gilt auch für den LoD-Calc)
Technisch gesehen geben sie ganz normal Erfahrung - sie kommen aber nie als normale Monster vor, sondern immer nur als von Monstern erschaffene, die keine XP geben. Ist daher auf 0 gesetzt bei allen Monstern dieser beiden Typen.


>> bei Objekten gibt es keine champs/bosse: Radio-Button sollte wie bei SUs fixiert sein (gilt auch für den LoD-Calc)
Ist umgesetzt (außer bei Blutfalkennestern, bei denen ist das selten, aber möglich). Gilt auch für die oben genannten erschaffenen Monster, aber da die eh keine XP geben, hab' ich das bei denen gelassen.


Dass es keine Champions von Monstern gibt, deren "Vorgesetzte" in einem Gebiet möglich sind, ist mir auch schon aufgefallen. Allerdings wäre es Aufwand, das zu integrieren. Letzlich besitzt der Calc hier auch nur Möglichkeiten, die im Spiel nicht umgesetzt sind. Insbesondere in Classic, wo die XP-Berechnung unabhängig von der Ebene ist...



Bei LoD nicht hundertprozentig gesichert ist die Rundung bei der Partyaufteilung, aber ansonsten sollte da alles bekannt sein. Die schwierigkeitsgradabhängige Division findet nicht statt.


ToDo: Den XP-Überlauf einbauen (Cl+LoD) <-- edit: Längst erledigt
 
Zurück
Oben