• 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.

Berechnung der Gegenstandskosten

Dosbis

Guest
Hi

Da recht wenig hierüber bekannt zu sein scheint und es durchaus passieren kann, daß ich die Daten zum Thema, zwecks Ordnung und Übersichtlichkeit, eines Tages löschen werde, habe ich mich entschlossen mir bekannte Informationen und eigene Tests vorher doch einmal zusammenzutragen.
Die Kostenberechnung ist von vielen Einflußfaktoren abhängig, daher erhebt diese Ansammlung absolut keinen Anspruch auf Vollständigkeit.

Obwohl schon etwas älter und mit nicht mehr funktionierenden Links, soll folgendes nicht unerwähnt bleiben:
http://phrozenkeep.it-point.com/for...12&sid=41f8064b59871a48f1e979e36d027ea4#25112

Einiges ist dort zwar nicht (mehr?) ganz korrekt, aber ich finde es ist eigentlich ganz gut erklärt. Ich hoffe, daß Ungültiges erkenntlich wird.


----prinzipielle Formeln:

---Kaufpreis:

Der Wert eines Gegenstandes wird also durch seine Basiskosten und seine Modifikatoren (modifier) bestimmt.
Zuerst wird ein Wert für jeden Modifikator errechnet:

[(base_cost * eff * mult) / 1024] + add = modX

Wenn hier "base_cost * eff" 65536 oder mehr beträgt, wird erst durch 1024 geteilt und dann mit "mult" multipliziert!
Also bei base_cost * eff >= 65536 gilt:

[(base_cost * eff) / 1024] * mult + add = modX

Die Ergebnisse werden dann zusammengezählt und am Ende wird base_cost addiert.
Also:

mod1 + mod2 + ... + base_cost = cost

Cost ist nun schon der Wert des Gegenstandes, aber das Ergebnis wird noch in Abhängigkeit von den NPCs modifiziert. Dies geschieht anhand der entsprechenden "mult"-Einträge in der npc.txt:

--NPC-Modifikation (NPC-Mod.):

(cost * npc_mult) / 1024 = fin_cost

Wenn cost >= 65536 gilt hier:

[cost / 1024] * npc_mult = fin_cost

Bei gelöster Rabattquest nochmal "(cost * npc_questmult) / 1024" oder eben "[cost / 1024] * npc_questmult" hinterher.



---Verkaufspreis:

Der Verkaufspreis wird eigentlich genau wie der Kaufpreis berechnet. Bei der Berechnung der einzelnen Werte für die Modifikatoren ist aber zu beachten, daß bei Skill-Modifikatoren (z.B. skillonattack oder charged_skill) durch 4096 statt 1024 geteilt wird. Außerdem werden charakterspezifische Gegenstände vor der NPC-Mod. durch 4 geteilt. Der Rest ist aber gleich und npc_mult ist hier stets 512.



---Reparatur:

Hier wird der "cost"-Wert des Kaufpreises genommen, dann wird folgendermaßen berechnet:

[(cost * (max_dur - dur)) / max_dur] = r_cost

Danach noch NPC-Mod.; npc_mult ist hier stets 128.



base_cost = cost-Eintrag in weapons.txt, armor.txt oder misc.txt; wenn es sich um einen Rüstungsgegenstand handelt, ist base_cost = (armor.txt-Eintrag * ac) / maxac
ac = aktuelle Basisverteidigung des Gegenstandes (modifiziert durch z.B. "ätherisch", nicht aber durch ed% [xx% verbesserte Verteidigung])
maxac = maxac-Eintrag in armor.txt
mult = multiply-Eintrag in itemstatcost.txt oder auch skills.txt
add = add-Eintrag in itemstatcost.txt oder auch skills.txt
eff = die "Effektivität" des Modifikators (z.B. bei "Feuer-Widerstand +6%" wäre eff=6)
modX(mod1, mod2...) = errechnete Werte für die Modifikatoren (Zwischenwerte)
cost = Zwischenwert
npc_mult = entsprechender Eintrag in npc.txt (hierbei ist zu beachten, daß die Einträge aus der Sicht der NPCs sind; "buy_mult" wird also z.B. für den Verkaufspreis benötigt)
fin_cost = endgültige Kosten
dur = aktuelle Haltbarkeit
max_dur = maximale Haltbarkeit
r_cost = Zwischenwert


--weitere Einflüsse/Erklärungen:

-Modifikatoren, die bereits "natürlich" auf Gegenständen vorkommen (wie z.B. "50% Schaden an Untoten" auf einigen Waffen) haben keinen Einfluß auf die Kosten
-Sockel sind ebenfalls "umsonst" (in jedem Fall gilt dies für "graue" Gegenstände; ich habe es zwar nicht getestet, aber für "Sockel-Affixe" scheint es auch zu gelten)
-Automodifikatoren sind auf normalen (und grauen) Gegenständen auch ohne Bedeutung für die Kosten; auf "guten", magischen oder auch seltenen Gegenständen müssen sie aber als normale Modifikatoren mitberechnet werden
-gesockelte Edelsteine oder Runen erhöhen den errechneten "cost"-Wert um die Hälfte ihres eigenen Wertes (weitestgehend ungetestet aus dem Link übernommen)
-gesockelte Juwelen erhöhen den errechneten "cost"-Wert um 500 (weitestgehend ungetestet aus dem Link übernommen)
-Gegenstände schlechter Qualität werden vor der NPC-Mod. durch 2 geteilt (den Wert ausnahmsweise aufrunden)
-ätherische Gegenstände werden vor der NPC-Mod. durch 4 geteilt
-bei Unique- und Setgegenständen werden nicht die einzelnen Modifikatoren berechnet; diese Gegenstände haben ihre eigenen mult/add-Einträge in der uniqueitems.txt bzw. in der setitems.txt, mit denen die Kosten ermittelt werden


Manches verlangt nun noch nach einer Sonderbehandlung, wie "füllt die Menge auf", welches wohl in Reparaturkosten von 1 resultiert. Da wollen auch die "staffmods" nicht nachstehen und haben eine etwas veränderte Formel bekommen. Ich werde jetzt versuchen ohne größere Erklärungen auszukommen und hoffe, daß es, vor dem Hintergrund der bisherigen Ausführungen, verständlich bleibt.

----Staffmods:

---Staffmods alleine (nur normale [und graue] Gegenstände):

--Kaufpreis:

1. ([(base_cost * mult) / 1024] + add) * (eff + eff - 1) = sk_modX

Wenn hier base_cost >= 65536 dann:

([mult / 1024] * base_cost + add) * (eff + eff - 1) = sk_modX

2. sk_mod1 + sk_mod2 + sk_mod3 + base_cost = cost

Danach noch NPC-Mod.


--Verkaufspreis:

Jeweils durch 4096 statt 1024 dividieren, sonst wie der staffmod-Kaufpreis.


--Reparatur:

cost vom staffmod-Kaufpreis, dann normale Rep.-Formel.



---"gute" Gegenstände mit staffmods:

--Kaufpreis:

1. ([(base_cost * mult) / 1024] + add) * (eff + eff - 1) = sk_modX

Wenn hier base_cost >= 65536 dann:

([mult / 1024] * base_cost + add) * (eff + eff - 1) = sk_modX

2. sk_mod1 + sk_mod2 + sk_mod3 + base_cost = cost_a

3. [(cost_a * eff * mult) / 1024] + add = modX

Wenn hier cost_a * eff >= 65536 dann:

[(cost_a * eff) / 1024] * mult + add = modX

4. mod1 + mod2 + ... + cost_a = cost

Danach noch NPC-Mod.


--Verkaufspreis:

Ähnlich wie der Kaufpreis von "guten Gegenständen mit staffmods", nur bei 1. wird jeweils durch 4096 statt 1024 geteilt und bei 3. wird für alle Skill-Modifikatoren durch 4096 statt 1024 geteilt (alle anderen Modifikatoren bleiben bei 1024).


--Reparatur:

cost vom Kaufpreis von "guten Gegenständen mit staffmods", dann normale Rep.-Formel.



---magische Gegenstände mit staffmods:

--Kaufpreis:

1. [(base_cost * eff * mult) / 1024] + add = modX

Wenn hier base_cost * eff >= 65536 dann:

[(base_cost * eff) / 1024] * mult + add = modX

2. mod1 + mod2 + ... + base_cost = cost_a

3. ([(cost_a * mult) / 1024] + add) * (eff + eff - 1) = sk_modX

Wenn hier cost_a >= 65536 dann:

([mult / 1024] * cost_a + add) * (eff + eff - 1) = sk_modX

4. sk_mod1 + sk_mod2 + sk_mod3 + cost_a = cost

Danach noch NPC-Mod.


--Verkaufspreis:

Ähnlich wie der Kaufpreis von "magischen Gegenständen mit staffmods", nur bei 1. wird für alle Skill-Modifikatoren durch 4096 statt 1024 geteilt und bei 3. wird stets durch 4096 statt 1024 geteilt.


--Reparatur:

cost vom Kaufpreis von "magischen Gegenständen mit staffmods", dann normale Rep.-Formel.



sk_modX (sk_mod1, ...) = Zwischenwerte, die nur mit den staffmods berechnet werden (nicht mit anderen Modifikatoren!)
cost_a = Zwischenwert



Folgendes habe ich nur flüchtig angeschaut, es ist also mit einer gewissen Vorsicht zu genießen:

----Ladungen:

Ladungen sind in Bezug auf Kauf- und Verkaufspreis als normale Modifikatoren anzusehen. eff ist dabei das Skill-Level der Ladungen, mult und add kommen aus der skills.txt. Bei der Reparatur werden aber zum normalen Reparaturpreis noch verbrauchte Ladungen addiert. Der Wert dieser errechnet sich wohl folgendermaßen:

(([((slvl + id_add * 2 + 2) * 10000 * mult) / 1024] + add) * (max_stack - stack)) / max_stack

oder wenn (slvl + id_add * 2 + 2) * 10000 >= 65536 dann:

(([((slvl + id_add * 2 + 2) * 10000) / 1024] * mult + add) * (max_stack - stack)) / max_stack


slvl = Skill-Level
id_add = wohl ein Wert, der in Abhängigkeit von der skill-id in der skills.txt festgelegt wird; vermutlich so: die 5 Skills einer jeden Charakterklasse, die die jeweils niedrigsten ids haben, bekommen id_add = 0, bei den nächsten 5 ist id_add = 1, bei den nächsten ist es 2, usw.; id_add ist also ein Wert von 0 bis 5
max_stack = maximale Anzahl Ladungen (Menge Wurfwaffen)
stack = verbleibende Anzahl Ladungen (Menge Wurfwaffen)



----Wurfwaffen:

--Kaufpreis:

Zunächst werden ganz normal die Werte für die Modifikatoren bestimmt, danach kommt folgendes:

[(mod1 + mod2 + ...) / max_stack] + base_cost = cost

jetzt kommt NPC-Mod., das Ergebnis dann * max_stack = fin_cost


--Verkaufspreis:

Im Prinzip wie Kaufpreis (evtl. abweichende Modifikatoren-Berechnung und ähnliches beachten). Von "fin_cost" wird aber noch der "Verbrauch" abgezogen:

fin_cost - [(cost * 128) / 1024] * (max_stack - stack)

oder eben bei cost >= 65536:

fin_cost - [cost / 1024] * 128 * (max_stack - stack)


--Reparatur:

Der Subtrahend kann wohl auch als Reparaturformel angesehen werden, wobei "cost" wahrscheinlich vom Kaufpreis übernommen wird:

[(cost * 128) / 1024] * (max_stack - stack) = r_cost

oder bei cost >= 65536:

[cost / 1024] * 128 * (max_stack - stack) = r_cost



Bleibt noch zu sagen, daß sich die Angaben auf die normale (unveränderte) Version 1.10 beziehen, obwohl sie (teilweise?) auch für andere Patches gelten könnten.
Im übrigen ist das Beispiel im Link wenigstens für 1.10 falsch, die angegebenen modifier basieren wiederum auf "mindamage" bzw. "maxdamage", deren mult/add-Werte sind 25/122 bzw. 16/94.
Vielleicht bestand ja doch Interesse...


MfG
 
Ey krass, danke :kiss:

Auf sowas wart ich seit Patchrelease :eek:
 
oh je, da muss ich mich erst mal einarbeiten, aber trotzdem danke ;)
 
tiefe verbeugung :)

sobald mein promille wert unter 2 ist, werde ich anfangen mich einzulesen ... danke :)
 
:top: :eek:
Sehr informativ, wenn auch etwas formellastig und so früh am Morgen von nem Studenten nicht ganz leicht nachzuvollziehen :D
 
Fehlt nur noch das einer einen Calc daraus macht :D

mfg Dana
 
hübsche arbeit :):top:

wobei ich persönlich so ellenlange formeln nicht mag ...
 
Was mir fehlt, ist irgendwo ein Fazit, welches selbst "Otto-Normal-Schlaue" Leute verstehen können ohne 3 Stunden die Formeln nachzuvollziehen....


Folgendes Beispiel:

Fortidude in Heiliger superior Rüstung gesockelt...

Die Reparaturkosten betragen pro Reparaturpunkt ~40.000, absolut inakzetabel aus Nahkampfchar (meine Meinung, es gibt sicher geteile Auffassungen dazu...).

Wie ist es möglich die Kosten zu minimieren ohne auf Fortitude zu verzichen?


1. Bringt es kostentechnich Vorteile, leichtere Rüstungen zu verwenden (z.B. Dämmerschleier statt Heiliger)?

2. Welchen Faktor machen bei der Berechnung ca. die 15% ED 15% Dura auf dem Rohling aus? Um wieviel würden die Kosten sinken, wenn man keinen superior Rohling nimmt?
 
<<< Wie ist es möglich die Kosten zu minimieren ohne auf Fortitude zu verzichen?

warten bis die rüstung ganz knapp vor 0 ist und dann mit einer ral (glaube die rune wars) reparieren.
bis die auf <3 ist hast du auch sicher eine ral gefunden ;)
 
Vielen Dank für die Mühe die Du Dir bei der Berechnung gemacht hast.

Deine Darstellung ist sehr einfach (und noobfreundlich ^^) und für mich daher sehr leicht nachvollziehbar, nun habe auch ich die Problematik verstanden. :)
 
Hi :hy:

hab mir wegen des exakt gleichen problems wie redehag mall diesen thread zu gemüte geführt.

wenn ichs nun richtig verstanden habe dann gilt zunächst folgendes :

1. reparatur-grundwerte der rüstungen ("weisser/grauer Gegenstand") und die ihrer eigenschaften werden grundsätzlich getrennt voneinander berechnet und dann addiert.
2. die formel

-- Quote --
Hier wird der "cost"-Wert des Kaufpreises genommen, dann wird folgendermaßen berechnet:

[(cost * (max_dur - dur)) / max_dur] = r_cost
-- Quote --

müsste bedeuten :
wenn cost nun die gesamtreparaturkosten sind ist es besser einen gegenstand mit hoher haltbarkeit zu verwenden. (jedenfalls dann wenn die eigenschaften der rüstung ganz erheblich teurer sind als der rohling). wenn ich beispielsweise eine archon-fortitude nehme und 20 reparaturpunkte repariere sind das ca. 33%. bei einem dämmerschleier wären es 100%.
Also kämen die 20 Punkte im dämmerschleier insgesamt teurer.
Ist das so?

:edit:
in der archon (rohling mit +12% haltbarkeit und 507def) sinds übrigens ca. 27000 pro punkt ohne gheeds. man kann zur not natürlich auch noch mit dem runenwort schneide im 2. waffenslot rumlaufen :D
 
Hi

>>>1. reparatur-grundwerte der rüstungen ("weisser/grauer Gegenstand") und die ihrer eigenschaften werden grundsätzlich getrennt voneinander berechnet und dann addiert.
2. die formel

-- Quote --
Hier wird der "cost"-Wert des Kaufpreises genommen, dann wird folgendermaßen berechnet:

[(cost * (max_dur - dur)) / max_dur] = r_cost
-- Quote --


Ich bin mir nicht ganz sicher, was Du bei Punkt 1 genau meinst. Wenn ich jetzt also irgendwie vorbeirede, einfach nochmal ansprechen.

>>>Hier wird der "cost"-Wert des Kaufpreises genommen, dann wird folgendermaßen berechnet

Der Satz bedeutet eigentlich nur, daß zunächst ein "cost"-Wert errechnet wird. Dieser wird durch die Kaufpreisformeln ermittelt. Die Werte der einzelnen Modifikatoren werden stets durch die Grundkosten (base_cost) beeinflußt.
Der "cost"-Wert wird dann einfach in die Reparaturformel eingesetzt.


>>>wenn cost nun die gesamtreparaturkosten sind ist es besser einen gegenstand mit hoher haltbarkeit zu verwenden. (jedenfalls dann wenn die eigenschaften der rüstung ganz erheblich teurer sind als der rohling). wenn ich beispielsweise eine archon-fortitude nehme und 20 reparaturpunkte repariere sind das ca. 33%. bei einem dämmerschleier wären es 100%.
Also kämen die 20 Punkte im dämmerschleier insgesamt teurer.
Ist das so?


Im Prinzip ja. Wenn Du zwei sehr ähnliche Gegenstände hast, die sich nach Möglichkeit nur bei der Haltbarkeit unterscheiden, dann verursacht der Gegenstand mit der geringeren maximalen Haltbarkeit höhere Reparaturkosten (bei gleichem Haltbarkeitsverlust).
Ich denke aber man sollte das nicht grundsätzlich behaupten, da es unter bestimmten Umständen nicht zutreffen mag (geringe Werte, verschiedene Grundkosten, verschiedene Berechnungsarten [z.B. Vergleich normale/superior Runenwort-Rüstung], ...).



Hier mal ein Beispiel für die Allgemeinheit, vielleicht erleichtert es das Verständnis:
Also was kostet eine magische Keule mit 270% erhöhtem Schaden?
Folgendes wird benötigt:

-mindam-maxdam: 1-6 (aus weapons.txt)
-eff: inkl. der 270% ed hat die Keule einen Schaden von 3-22; abzüglich der 1-6, die schon auf der Waffe sind, macht das eine Erhöhung um 2-16;
damit ist mindamage eff = 2, maxdamage eff = 16
-base_cost: 32 (Spalte cost in weapons.txt)
-mindamage: mult: 25; add: 122 (aus itemstatcost.txt)
-maxdamage: mult: 16; add: 94 (aus itemstatcost.txt)

Erhöhter Schaden (ed%) besteht grundsätzlich aus zwei Modifikatoren: item_maxdamage_percent und item_mindamage_percent. Auf Waffen wird der Schaden jedoch direkt erhöht, deshalb beruhen diese Modifikatoren hier wiederum auf mindamage bzw. maxdamage.
Die "50% Schaden an Untoten" werden nicht mitberechnet, da der Grundgegenstand diesen Modifikator "von Natur aus" mitbringt.

Nun einfach die richtige Formeln suchen und einsetzen:
[(base_cost * eff * mult) / 1024] + add = modX
[(32 * 2 * 25) / 1024] + 122 = 123 (mod1)
[(32 * 16 * 16) / 1024] + 94 = 102 (mod2)

dann
mod1 + mod2 + ... + base_cost = cost
123 + 102 + 32 = 257

dann NPC-Mod.; angenommen Akara bietet uns die Waffe mit bereits gelöster Rabattquest an:

-npc_mult: 1024 (Spalte "sell mult" in Npc.txt):

(cost * npc_mult) / 1024 = fin_cost
(257 * 1024) / 1024 = 257

Bei gelöster Rabattquest nochmal "(cost * npc_questmult) / 1024" oder eben "[cost / 1024] * npc_questmult" hinterher.
-npc_questmult: 922 (Spalte "questsellmult A" in Npc.txt):

(cost * npc_questmult) / 1024 = fin_cost
(257 * 922) / 1024 = 231

231 also.


MfG
 
also eigentlich macht es eher für runenworte sinn weil man die dinger ja selbst zusammenbaut. falls es überhaupt noch so abartige reperaturkosten wie bei fortitude gibt. z.b. bei waffen mit geringer haltbarkeit...
bei unis sind die kosten eh immer vertretbar und bei rares, die man (im gegensatz zu runenwort-items) einfach findet, normalerweise auch...
schade dass ich die rare 414ed/40ias-mit-maxdmg-picke, die ich vertradet hab, nicht mal dahingehend getestet hatte :D
 
schoen gemacht dosbis. nur leider bin ich was solch zahlen wirrwarr angeht etwas zu verstrahlt :confused:

also nochmal fuer mich bitte (einfaches ja / nein ) reicht schon :D

Ketten der Ehre fuer meinen Wolf
Rohling normale HeiligeRuestung

ergebnis: Bezahlbare Gegenstandskosten ( also so in richtung des fortii bsp weiter oben um die 1k gold pro statuspunkt) ??!
 
Zurück
Oben