InMathITrust
New member
- Registriert
- 23 Juni 2012
- Beiträge
- 12
- Punkte Reaktionen
- 0
Gem Crafting - Daten,Algorithmen,Optimierung
1) Einleitung
Der folgende Guide soll zur Auflösung solcher Fragen beitragen und die grundlegenden Werkzeuge dazu bereit stellen.
Auf die Upgradekosten des Juweliers bzw. den Kauf fehlender Pläne für höhere Stufen werde ich nicht eingehen, die entsprechende Goldgrundlage muss sich jeder selbst farmen, z.B. mit diesem Guide.
Wer jetzt schon müde vom Lesen ist, hier befindet sich ein Programm mit allen hier vorgestellten Ideen. Die AH-Preise müsst ihr aber noch selber eingeben .
Viel Spaß !
2) Script
Download: Anhang anzeigen 18849
Bsp.: Topas am 05.07.2012
Als weitere kleine Motivation:
Am 05.07.12 war es möglich bei Rubinen per 100 Mio. Gold Einsatz 7 Mio. Gewinn zu erzielen.
Das Programm beinhaltet alle hier vorgestellten Ideen.
Es liegt gezippt als .hml-Datei vor, welche ein Java Script enthält und kann direkt im Browser ausgeführt werden.
Wer niemandem außer sich selbst vertraut, hier befindet sich der Source Code. Dann Copy&Paste in .txt-Datei und als .html abspeichern.
Ein Gem ist im AH nicht vorhanden?
Kein Problem! Einfach das Feld leer lassen oder 0 eingeben und der minimale Craft-Preis wird vom Programm berechnet und als AH-Preis eingetragen. Dafür muss mindestens der Wert für lädiert bekannt sein.
Falls nur Gems ab z.B. makellos gelistet sind, gib die vorhandenen Preise ein und setze den Preis für lädiert einfach auf 999. Das Programm macht den Rest. Mögliche Lücken nach (in diesem Bsp. ) makellos werden automatisch mit den richtigen Werten gefüllt.
Ein Angebot für sternf. Amethyst gesehen und du willst wissen ob du diesen Preis beim selber craften unterbieten kannst?
Kein Problem! Einfach unter Kurzcheck die gewünschte Gem Stufe angeben, den Angebotspreis eintippen und auf das Feld darunter tippen. Beachte dass die Preise aus dem AH vorhanden sein müssen.
Nutzungshinweise:
Falls du nur an der Lösung des Problems interessiert bist, so reicht es bis hierhin zu lesen und das Script einfach zu nutzen.
Wenn dich auch der Lösungsweg interessiert, viel Spaß beim Weiterlesen!
3) Daten
Benötigte Materialien
Gem(Name)|Stufe|Foliant(Anzahl)|Foliant(Stufe)|Gem(Anzahl)|Gem(Stufe)|Gold
lädiert|0|0|1|1|0|0
fehlerhaft|1|0|1|2|0|10
normal|2|0|1|2|1|25
makellos|3|0|1|2|2|40
perfekt|4|1|1|2|3|55
glänzend|5|1|1|2|4|70
quadratisch|6|1|2|2|5|85
makellos quadratisch|7|1|2|2|6|100
perfekt quadratisch|8|3|3|3|7|30000
glänzend quadratisch|9|6|3|3|8|50000
sternförmig|10|9|3|3|9|80000
makellos sternförmig|11|12|3|3|10|100000
perfekt sternförmig|12|15|3|3|11|200000
glänzend sternförmig|13|20|3|3|12|400000
Die Tabelle ist wie folgt zu lesen:
Um den Gem lädiert herzustellen-mit dem die Stufe 0 assoziiert wird ( wichtig für den späteren Algorithmus )- benötigt man 0 Folianten der Stufe 1 und 1 Gem der Stufe 0 sowie 0 Gold.
Ein Foliant der Stufe 0 ist eine Seite eines Juwelenschmiedelehrwerks, analog ergeben sich die anderen Stufen.
4) Algorithmen
Kombiniert man obige Tabelle mit den entsprechenden Preisen für den Kauf der Folianten / Gems hat man alle benötigten Daten zur Verfügung.
4.1) Algorithmus für die Herstellung eines Gems der Stufe m, beginnend bei Stufe s
Variablenlegende
4.2) Algorithmus für die Berechnung der Anzahl der benötigten Gems der Startstufe für n Gems der Endstufe
Variablenlegende
4.3) Algorithmus für die Berechnung der Anzahl der benötigten Folianten aller Stufen für n Gems der Endstufe
Variablenlegende
5) Optimierung
Einer der Gründe warum die Gems der unteren Stufen sowie die der "mittleren" verhältnismäßig teuer sind, ist die hohe Nachfrage bzw. das geringe Angebot ( wer hätte es gedacht ).
Der hohe Bedarf an diesen Stufen liegt daran, dass viele Spieler immer noch entweder mit einem Gem-Calculator der nur das Herstellen von Stufe 0 bis n beherrscht die Kosten berechnen bzw. maximal 2 Stufen selbst zurück rechnen.
Somit können sie nur die Kosten für das Herstellen ab 0 bzw. 1,2 Stufen unter ihrer Wunschstufe einigermaßen abschätzen und benötigen somit diese Stufen als Ausgangsbasis. Das sich gerade die "mittleren" Gems als 2. Plateau herausgebildet haben, resultiert aus dem mittleren Spielfortschritt aller Diablo 3 Spieler (Fortschritt der Juwelierausblidung/Vorhandensein entsprechender Pläne).
Obige Probleme ergeben sich mit den angeführten Algorithmen nicht, man kann von jeder beliebigen Stufe aus herstellen. Da wir natürlich die niedrigsten Herstellungskosten aller möglichen Kombinationen haben wollen, bietet sich folgendes an:
Es werden alle möglichen Kosten ermittelt um einen Gem der Stufe n herzustellen, d.h. nicht nur wie bei 1) von 0 ... n sondern auch von 1 ... n usw. bis n ... n. Das Minimum wird dann als optimaler Herstellungspreis gewertet.
Von 3 ... n bedeutet das die Anzahl der benötigten Gems der Stufe 3 zum AH-Preis gekauft werden und dann wird bis zur Stufe n nur noch selbst "gecraftet".
Die Basisstufe auf der die Gems gekauft werden, muss nicht nochmal optimiert werden, da falls der Craft-Preis für diese Startstufe geringer wäre als der AH-Preis die Vorgehensweise schon die Basisstufe des nochmaligen Herstellens ergeben hätte.
Wenn das AH keine Gems der Basisstufe vorrätig hat, bietet es sich an, obige Überlegungen zur Optimierung für die benötigte Basisstufe anzuwenden und den ermittelten Preis als AH-Preis zu interpretieren.
Am Ende wird derjenige Gem empfohlen, bei dem
maximal wird.
6) Schlusswort(e)
Ich hoffe, ihr habt bis hierhin durchgehalten und konntet in irgendeiner Weise einen Nutzen daraus ziehen.
Bei Fehlern bzw. anderen Ergebnissen bitte alle verwendeten Zahlen angeben, damit der Fehler reproduziert werden kann und die richtige Rechnung beifügen.
Wer auf Grundlage dieses Guides / des Source Codes nun alles was er selber für die Entwicklung einer internetbasierten Version braucht erhalten hat und ein eigenes Programm entwickelt, den bitte ich um eine Verlinkung auf den Guide bzw. eine Nickname-Nennung im Stile der CC-Lizenzen. Falls derjenige dies nicht für nötig hält, kann ich es natürlich auch nicht ändern.
Wer in unendlicher Dankbarkeit mehr Leute auf den Guide / das Script aufmerksam machen will / möchte, so würde ich mich über einen Beitrag im Blizzard-Forum freuen, der hierher verlinkt, am besten mit dem gleichen Titel wie der Thread und 1-2 Sätzen hierzu.
Ich würde dies auch selber machen, aber da man mit seinem BNet Account die Beitrage verfassen muss, würde ich das umgehen wollen. Bei einem anderem Spiel habe ich nach einem Guide permanent Ingame-Nachrichten von DAU's bekommen a´la "Kannst du hacken?","Kannst du den Itempreis von xy auf 3 setzen","Kannst du mir ein Gold Script schreiben" u.s.w. ... .
Wer sich also dazu bereit erklären möchte, könnte ja parallel dazu schreiben, dass er den Threadersteller persönlich nicht kennt / seine BNet-Kontaktdaten. Damit solltet ihr auch auf der sicheren Seite sein .
Somit bleibt nur noch mit den Worten eines großen Mannes zu sagen:
1) Einleitung
Man könnte sich nun die Frage stellen, ob der Autor des obiges Zitats ein Menschenfreund ist bzw. wie er bei den engen Gewinnspannen die sich zwischen dem AH-Preis und den Werten die man über übliche Gem-Calculator erhält, überhaupt noch Gewinn machen will. Oder handelt es sich möglicherweise um einen Anfänger der die Preise noch nicht verinnerlicht hat und deshalb ohne es zu wissen unter Wert verkauft?John Doe schrieb:vk sternförmiger Topas für x Gold, 20% billiger als im AH
Der folgende Guide soll zur Auflösung solcher Fragen beitragen und die grundlegenden Werkzeuge dazu bereit stellen.
Auf die Upgradekosten des Juweliers bzw. den Kauf fehlender Pläne für höhere Stufen werde ich nicht eingehen, die entsprechende Goldgrundlage muss sich jeder selbst farmen, z.B. mit diesem Guide.
Wer jetzt schon müde vom Lesen ist, hier befindet sich ein Programm mit allen hier vorgestellten Ideen. Die AH-Preise müsst ihr aber noch selber eingeben .
Viel Spaß !
2) Script
Download: Anhang anzeigen 18849
Bsp.: Topas am 05.07.2012
Als weitere kleine Motivation:
Am 05.07.12 war es möglich bei Rubinen per 100 Mio. Gold Einsatz 7 Mio. Gewinn zu erzielen.
Das Programm beinhaltet alle hier vorgestellten Ideen.
Es liegt gezippt als .hml-Datei vor, welche ein Java Script enthält und kann direkt im Browser ausgeführt werden.
Wer niemandem außer sich selbst vertraut, hier befindet sich der Source Code. Dann Copy&Paste in .txt-Datei und als .html abspeichern.
Ein Gem ist im AH nicht vorhanden?
Kein Problem! Einfach das Feld leer lassen oder 0 eingeben und der minimale Craft-Preis wird vom Programm berechnet und als AH-Preis eingetragen. Dafür muss mindestens der Wert für lädiert bekannt sein.
Falls nur Gems ab z.B. makellos gelistet sind, gib die vorhandenen Preise ein und setze den Preis für lädiert einfach auf 999. Das Programm macht den Rest. Mögliche Lücken nach (in diesem Bsp. ) makellos werden automatisch mit den richtigen Werten gefüllt.
Ein Angebot für sternf. Amethyst gesehen und du willst wissen ob du diesen Preis beim selber craften unterbieten kannst?
Kein Problem! Einfach unter Kurzcheck die gewünschte Gem Stufe angeben, den Angebotspreis eintippen und auf das Feld darunter tippen. Beachte dass die Preise aus dem AH vorhanden sein müssen.
Nutzungshinweise:
- Zahlen ohne jegliche Trennzeichen eingeben ( Punkt, Komma etc. ).
- Ein Gewinn der Form 50.000 ist als 50 und nicht 50'000 zu interpretieren.
- Wird 0 als AH-Preis eingetragen, wird der minimale Herstellungspreis berechnet und als AH-Preis eingetragen. Dazu muss der Preis für lädiert vorhanden sein.
- Die 15% Blizzard Gebühr wurde schon mit einberechnet, es wird der reine Gewinn angezeigt.
- Da man um die manuelle Eingabe der Preise nicht herum kommt, hier nochmal der Hinweis, dass über Esc->Optionen->Anzeige->Fenstermodus der Fenstermodus von Diablo 3 erreicht werden kann.
Falls du nur an der Lösung des Problems interessiert bist, so reicht es bis hierhin zu lesen und das Script einfach zu nutzen.
Wenn dich auch der Lösungsweg interessiert, viel Spaß beim Weiterlesen!
3) Daten
Benötigte Materialien
lädiert|0|0|1|1|0|0
fehlerhaft|1|0|1|2|0|10
normal|2|0|1|2|1|25
makellos|3|0|1|2|2|40
perfekt|4|1|1|2|3|55
glänzend|5|1|1|2|4|70
quadratisch|6|1|2|2|5|85
makellos quadratisch|7|1|2|2|6|100
perfekt quadratisch|8|3|3|3|7|30000
glänzend quadratisch|9|6|3|3|8|50000
sternförmig|10|9|3|3|9|80000
makellos sternförmig|11|12|3|3|10|100000
perfekt sternförmig|12|15|3|3|11|200000
glänzend sternförmig|13|20|3|3|12|400000
Die Tabelle ist wie folgt zu lesen:
Um den Gem lädiert herzustellen-mit dem die Stufe 0 assoziiert wird ( wichtig für den späteren Algorithmus )- benötigt man 0 Folianten der Stufe 1 und 1 Gem der Stufe 0 sowie 0 Gold.
Ein Foliant der Stufe 0 ist eine Seite eines Juwelenschmiedelehrwerks, analog ergeben sich die anderen Stufen.
4) Algorithmen
Kombiniert man obige Tabelle mit den entsprechenden Preisen für den Kauf der Folianten / Gems hat man alle benötigten Daten zur Verfügung.
4.1) Algorithmus für die Herstellung eines Gems der Stufe m, beginnend bei Stufe s
Code:
int cost(int m,gem *allgems,int s)
{
if (m==s) { return allgems[s].gprice; }
return cost(m-1,allgems,s)*allgems[m].gnum+allgems[m].gold+allgems[m].fnum*allgems[m].fprice;
}
m = Endstufe
s = Startstufe
allgems = struct mit allen benötigten Informationen
allgems = an dieser Stelle werden alle Daten des Gems der Stufe s gespeichert
gprice = der per Hand eingebene AH-Preis des Gems
gnum = Vgl. Tabelle Gem(Anzahl)
gold = Vgl. Tabelle Gold
fnum = Vgl. Tabelle Foliant(Anzahl)
fprice = per Hand eingegebener Preis des Folianten
s = Startstufe
allgems = struct mit allen benötigten Informationen
allgems
gprice = der per Hand eingebene AH-Preis des Gems
gnum = Vgl. Tabelle Gem(Anzahl)
gold = Vgl. Tabelle Gold
fnum = Vgl. Tabelle Foliant(Anzahl)
fprice = per Hand eingegebener Preis des Folianten
4.2) Algorithmus für die Berechnung der Anzahl der benötigten Gems der Startstufe für n Gems der Endstufe
Code:
int gems(int n,int m,int s,gem *allgems)
{
int count;
count=n;
for(int i=m-1;i>=s;i--) { count*=allgems[i+1].gnum; }
return count;
}
m = Endstufe
s = Startstufe
allgems = struct mit allen benötigten Informationen
allgems = an dieser Stelle werden alle Daten des Gems der Stufe i gespeichert
gnum = Vgl. Tabelle Gem(Anzahl)
count = gesuchte Anzahl der Gems der Startstufe
n = Anzahl der herzustellenden Gems der Stufe m
s = Startstufe
allgems = struct mit allen benötigten Informationen
allgems = an dieser Stelle werden alle Daten des Gems der Stufe i gespeichert
gnum = Vgl. Tabelle Gem(Anzahl)
count = gesuchte Anzahl der Gems der Startstufe
n = Anzahl der herzustellenden Gems der Stufe m
4.3) Algorithmus für die Berechnung der Anzahl der benötigten Folianten aller Stufen für n Gems der Endstufe
Code:
for(int i=v;i>start;i--)
{
tomes[allgems[i].flvl-1]+=gems(gold/allgems[v].cheap,v,i,allgems)*allgems[i].fnum;
}
m = Endstufe
s = Startstufe
tomes = Foliant der Stufe i+1
allgems.flvl = Foliantstufe des Gems der Stufe i
gem(n,m,i) = Anzahl der Gems auf Stufe i wenn ab Stufe m hergestellt wird und n Gems der Stufe m erstellt werden sollen
// für nähere Informationen zur Funktion gems siehe Punkt 3.2
fnum = Vgl. Tabelle Foliant(Anzahl)
s = Startstufe
tomes = Foliant der Stufe i+1
allgems.flvl = Foliantstufe des Gems der Stufe i
gem(n,m,i) = Anzahl der Gems auf Stufe i wenn ab Stufe m hergestellt wird und n Gems der Stufe m erstellt werden sollen
// für nähere Informationen zur Funktion gems siehe Punkt 3.2
fnum = Vgl. Tabelle Foliant(Anzahl)
5) Optimierung
Einer der Gründe warum die Gems der unteren Stufen sowie die der "mittleren" verhältnismäßig teuer sind, ist die hohe Nachfrage bzw. das geringe Angebot ( wer hätte es gedacht ).
Der hohe Bedarf an diesen Stufen liegt daran, dass viele Spieler immer noch entweder mit einem Gem-Calculator der nur das Herstellen von Stufe 0 bis n beherrscht die Kosten berechnen bzw. maximal 2 Stufen selbst zurück rechnen.
Somit können sie nur die Kosten für das Herstellen ab 0 bzw. 1,2 Stufen unter ihrer Wunschstufe einigermaßen abschätzen und benötigen somit diese Stufen als Ausgangsbasis. Das sich gerade die "mittleren" Gems als 2. Plateau herausgebildet haben, resultiert aus dem mittleren Spielfortschritt aller Diablo 3 Spieler (Fortschritt der Juwelierausblidung/Vorhandensein entsprechender Pläne).
Obige Probleme ergeben sich mit den angeführten Algorithmen nicht, man kann von jeder beliebigen Stufe aus herstellen. Da wir natürlich die niedrigsten Herstellungskosten aller möglichen Kombinationen haben wollen, bietet sich folgendes an:
Es werden alle möglichen Kosten ermittelt um einen Gem der Stufe n herzustellen, d.h. nicht nur wie bei 1) von 0 ... n sondern auch von 1 ... n usw. bis n ... n. Das Minimum wird dann als optimaler Herstellungspreis gewertet.
Von 3 ... n bedeutet das die Anzahl der benötigten Gems der Stufe 3 zum AH-Preis gekauft werden und dann wird bis zur Stufe n nur noch selbst "gecraftet".
Die Basisstufe auf der die Gems gekauft werden, muss nicht nochmal optimiert werden, da falls der Craft-Preis für diese Startstufe geringer wäre als der AH-Preis die Vorgehensweise schon die Basisstufe des nochmaligen Herstellens ergeben hätte.
Wenn das AH keine Gems der Basisstufe vorrätig hat, bietet es sich an, obige Überlegungen zur Optimierung für die benötigte Basisstufe anzuwenden und den ermittelten Preis als AH-Preis zu interpretieren.
Am Ende wird derjenige Gem empfohlen, bei dem
Code:
(gold / min_craft_kosten ) * gewinn_pro_gem
6) Schlusswort(e)
Ich hoffe, ihr habt bis hierhin durchgehalten und konntet in irgendeiner Weise einen Nutzen daraus ziehen.
Bei Fehlern bzw. anderen Ergebnissen bitte alle verwendeten Zahlen angeben, damit der Fehler reproduziert werden kann und die richtige Rechnung beifügen.
Wer auf Grundlage dieses Guides / des Source Codes nun alles was er selber für die Entwicklung einer internetbasierten Version braucht erhalten hat und ein eigenes Programm entwickelt, den bitte ich um eine Verlinkung auf den Guide bzw. eine Nickname-Nennung im Stile der CC-Lizenzen. Falls derjenige dies nicht für nötig hält, kann ich es natürlich auch nicht ändern.
Wer in unendlicher Dankbarkeit mehr Leute auf den Guide / das Script aufmerksam machen will / möchte, so würde ich mich über einen Beitrag im Blizzard-Forum freuen, der hierher verlinkt, am besten mit dem gleichen Titel wie der Thread und 1-2 Sätzen hierzu.
Ich würde dies auch selber machen, aber da man mit seinem BNet Account die Beitrage verfassen muss, würde ich das umgehen wollen. Bei einem anderem Spiel habe ich nach einem Guide permanent Ingame-Nachrichten von DAU's bekommen a´la "Kannst du hacken?","Kannst du den Itempreis von xy auf 3 setzen","Kannst du mir ein Gold Script schreiben" u.s.w. ... .
Wer sich also dazu bereit erklären möchte, könnte ja parallel dazu schreiben, dass er den Threadersteller persönlich nicht kennt / seine BNet-Kontaktdaten. Damit solltet ihr auch auf der sicheren Seite sein .
Somit bleibt nur noch mit den Worten eines großen Mannes zu sagen:
John Doe schrieb:Für Hinweise, Ideen und Kritik am Guide / Programm wäre ich dankbar.
Zuletzt bearbeitet: