Guides Tradeskillmaster

TSM – Guide und Anwendungsbeispiel der Check-Funktion

TSM Check Funktion

Ein Bekannter von mir fragte mich vor zwei Wochen, wie ich mit astronomisch hohen bzw manipulierten Preisen bei der Berechnung meiner Auktionspreise umgehe.
Auf die Frage was genau er damit meinte, zeigte er mir Anhand der Preise einer Verzauberung – Handschuhe – Bedrohung – wie einige Spieler versucht haben, den Preis zu manipulieren.

Das Problem

Über Wochen und Monate stellten sie diese Verzauberung aus der The Burning Crusade-Expansion für astronomische Preise von bis zu 8 Millionen Gold ein.
Dabei steht völlig außer Frage, das niemand dieses Item zu diesem Preis kaufen wird – ich sehe zumindest in Legion kaum Verwendung dafür, zumal die Verzauberung eine Itemlevel-Begrenzung hat.

Nun ist bei den meisten Leuten Tradeskillmaster so eingestellt dass es den Verkaufswert anhand des aktuellen Marktwertes einstellt, was im ersten Moment ja logisch erscheint und kein Problem darstellt.
Allerdings ist diese Berechnung oft anfällig für diese Manipulationen – und bei hunderten von Items einzeln die Preise nachzuchecken und ggf. manuell einzustellen, ist sehr mühseelig.

Wir suchten also nach einer Möglichkeit Manipulationen des Marktpreises zu erkennen – und darauf zu reagieren, bestenfalls automatisch.

Die Lösung: Die Check-Funktion

In einer Diskussion auf Reddit im WoWEconomy-Subreddit kamen wir dann auf die Lösung – die Nutzung der Check-Funktion bei der Preisberechnung.
In der Grundformal sieht diese Funktion so aus:

check(Parameter 1, Parameter 2, Parameter 3)
Das bedeutet: Trifft Parameter 1 zu, wird Parameter 2 ausgegeben, falls nicht wird Parameter 3 ausgegeben.

Dabei handelt es sich um eine Funktion der benutzerdefinierten Preisberechnung von TradeSkillMaster.

Die Berechnung zum Normalpreis der Verzauberungs-Auktionen sah bis dahin so aus:

max(350% crafting, 150% avg(dbmarket, dbhistorical, dbregionmarketavg))

Entschlüsselt bedeutet das:

Nehme den Maximalwert von 350% der Herstellungskosten und 150% des Durchschnittswertes von Marktpreis, historischem Marktpreis und durchschnittlichem Regionsmarktpreises – und setze ihn als Normalpreis für das Item.

Mithilfe der Check-Funktion wurde dann daraus folgendes:
check(dbregionmarketavg * 3 - dbmarket, (max(350% crafting, 150% avg(dbmarket, dbhistorical, dbregionmarketavg))), (max(350% crafting, 150% avg(DBGlobalMarketAvg, dbregionmarketavg))))

Entschlüsselt bedeutet das folgendes:

Prüfe ob der Marktpreis höher ist als der durchschnittlichem Regionsmarktpreis x 3.
Falls nicht benutze den Maximalwert von 350% der Herstellungskosten und 150% des Durchschnittswertes von Marktpreis, historischem Marktpreis und durchschnittlichem Regionsmarktpreises – und setze ihn als Normalpreis für das Item.

Falls doch, benutze den Maximalwert von 350% der Herstellungskosten und 150% des Durchschnittswertes des globalen Durchschnitts-Marktpreises und des durchschnittlichen Regionsmarktpreises und setze ihn als Normalpreis für das Item.

Hinweis: Damit die Formel funktioniert wie gewünscht, darf in den Auktions-Operationen nicht eingestellt sein dass Auktionen über dem Maximalpreis eingestellt werden, sollten welche verfügbar sein. Ansonsten wird zwar abgefragt, aber dennoch zu überhöhten Preisen gepostet.

Ergebnis nach ausgiebigen Tests

Nachdem wir die Ergebnisse nun circa 2 Wochen getestet haben, bin ich zu guten Ergebnissen gekommen. Die Formel funktioniert genau wie gewünscht und fängt manipulierte Preise direkt ab.
Besonders für Nischenmärkte und ältere Märkte mit weniger Konkurrenz, die sich leicht manipulieren lassen, ist sie sehr hilfreich.

Solltet ihr also auch einmal mit astronomisch hohen und/oder manipulierten Preisen in euren Märkten konfrontiert werden, denkt doch mal über die Verwendung der Check-Funktion nach!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert