"Besseres Item"-Berechnung und Items mit Edelsteinslot (z.B. beim Kaufen von Items oder Einsetzen von Items)
Ich zitiere mich einfach mal selbst: viewtopic.php?f=7&t=1292#p6829
-Berechnen der theoretischen Verbesserung bei Edelsteinslots:Der Bot müsste den durchschnittlichen Edelsteinwert für jedes (Haupt-)Attribut ausrechnen (glaube, dass ich da mal eine Formel gesehen hatte) und dann, wenn der Einsatz eines Edelsteines mit dem Attribut in das Item plus die "normalen" Attribute eine Verbesserung hat, die höher als der minimale Wert ist, dann wird das Item gekauft.
Liegt die Summe der Attribute auf dem Item und dem durchschnittlichen Edelsteinwert unter der minimalen Verbesserung, dann wird es nicht gekauft.
Ich konnte leider nicht herausfinden, wie wahrscheinlich die Elemente und Steingrößen jeweils sind.
Bei den Steingrößen gehe ich aber davon aus, dass wie bei den Questzeiten und Früchte (http://forum.sfgame.de/showthread.php?t=74552) diese so verlaufen, dass kleine Steine zwar häufiger vorkommen, aber eben kleiner und daher schlechter sind und große Steine kommen weniger vor aber dafür sind die größer und besser, damit ein Gleichgewicht existiert.
Wenn jmd etwas dazu weiß wäre es toll, wenn er es ergänzen könnte.
Daher hier die vorläufige Berechnung:
Steinfaktor:
klein: 0,18
mittel: 0,26
groß: 0,36
Steinfaktor-Durchschnitt = unbekannt (ca. 0,24-0,26)
Durch-Steinwert = CharLevel * Steinfaktor-Durchschnitt * (1+0,15*(Minenlevel-1)) + Ritterhalle/3
(Die +-15% Schwankung wird logischerweise für den Durchschnitt ignoriert.)
Hauptsächlich wird in Items nur das Hauptattribut oder Ausdauer eingesetzt.
Um weitere Komplexität zu vermeiden (und Edelsteine mit höheren Steinwerten als der durchschnittlichen Stein auszugleichen), wird ein Item mit Edelsteinslot so behandelt bei der Berechnung als wäre ein Hauptattribut-Edelstein mit dem durchschnittlichen Steinwert eingesetzt.
Vielleicht fällt mir irgendwann noch einen bessere Berücksichtigung von Edelsteinen, die besser als der Durchschnitt sind, ein, dann würde ich dies hier editieren.
Einsetzen von Edelsteinen bzw. Verkaufen von schlechteren Edelsteinen:
Für alle existierenden Edelsteine im Inventar:
Für alle ausgerüsteten Items mit Edelsteinslot:
Elemente von eingesetztem Edelstein und Edelstein im Inventar gleich? (kein Edelstein eingesetzt zählt als ungleich)
Ja: Differenz zw. Wert vom eingesetztem Edelstein und Edelstein im Inventar
->Eingetzter Edelstein höher: Edelstein im Inventar schlechter, keine Berechnung der Verbesserung nötig
->Edelstein im Inventar höher: Berechnung nötig um Höhe der Verbesserung zu bestimmen [Item-Verbesserung: Item mit eingesetzten Edelstein oder Item so wie es jetzt ist (egal ob Edelstein drin ist oder nicht)]
Nein:
Item-Verbesserung: Item mit eingesetzten Edelstein oder Item so wie es jetzt ist (egal ob Edelstein drin ist oder nicht)
Wird schon bei dem ersten Durchlaufen der Routine festgestellt, dass ein Edelstein nur verschlechtert, wird dieser direkt verkauft, um weiteren unnötigen Berechnungen auszuweichen.
Die Item-Edelstein-Kombination, die die höchste Verbesserung hat, wird ausgeführt. (solange sie eine Verbesserung ist und keine Verschlechterung)
Danach wird dies so lange wiederholt bis es nur noch Verschlechterungen gibt. (Oder keine Edelsteine) (Bestenfalls nur 1 mal, wenn es nur einen Edelstein gibt)
(Das ganze wird so umständlich gemacht statt einfach bei einer Verbesserung den Edelstein einsetzen, da sonst viele Edelsteine eingesetzt werden und man das Gold für diese verliert)
(Arenasimulation muss genutzt werden, da Differenzberechnung bei verschiedenen Elementen nicht funktionieren würde)
Um sinnloses Einsetzen der Edelsteine (Verlieren von Gold) und sinnlose Berechnungen auszuschließen, können auch Edelsteinsorten direkt für den Verkauf in den Einstellungen festgelegt werden (z.B. Nebenattribute oder Glück).
Das ganze wird nur bei Login/Botstart und beim Erhalten von Edelsteinen durchgeführt.