Ich arbeite derzeit an ein paar Economy Anpassungen für den M2 Markt, also Shops und die in den Shops enthaltenen Items.
Da sind mehrere Sachen geplant, in Arbeit oder fertig. Die jeweiligen "Systeme" update ich dann hier wenn irgendwas noch mal überarbeitet wurde oder neu dazu kommt.
Grundkonzept:
Alle Items (in den NPC Shops) haben einen Kaufpreis und Verkaufspreis. Das Thema sollte jeder kennen, beispielsweise um auf neuen Servern zu testen ob es irgendwo einen Yang Bug gibt.
Zusätzlich zu den jeweiligen Preisen habe ich jetzt ein ganz simples "Nachfrage-Prinzip" hinzugefügt, welches die Einkaufs- sowie Verkaufspreise anpasst.
Bitte melden Sie sich an, um diesen Anhang zu sehen.
Wie funktioniert der ganze Kram?
Bitte melden Sie sich an, um diesen Link zu sehen.
Wird ein Item aus dem Shop gekauft steigt die Nachfrage im Einkauf, was dann dafür sorgt dass der Einkaufspreis nach unten korrigiert wird. Gleichzeitig sinkt die Nachfrage im Verkauf, was dafür sorgt dass der Verkaufspreis nach oben korrigiert wird.
Wird ein Item verkauft dreht sich die Logik einmal um, der Einkaufspreis steigt und der Verkaufspreis sinkt.
Bitte melden Sie sich an, um diesen Anhang zu sehen.
Das Prinzip ist nicht nur auf die Items aus dem Shop begrenzt. Wenn bei einem Shop ein Gegenstand verkauft wird der nicht zu dem Sortiment gehört, dann wird der Gegenstand an den entsprechenden Shop "angeheftet" und der Preis, für den die Spieler das Item bei dem NPC Shop verkaufen können, mit jedem Verkauf angepasst.
Bitte melden Sie sich an, um diesen Anhang zu sehen.
Bitte melden Sie sich an, um diesen Anhang zu sehen.
Sonst noch was?
Joa, Preis- sowie Nachfrageänderungen werden live an alle Spieler synchronisiert während sie im Shop sind.
Steuerung vom Nachfrage Impact
Über die Config vom jeweiligen Core können die Impacts auf die Einkaufs- bzw. Verkaufspreise gesteuert werden. Zusätzlich dazu ab wann die Anpassungen an den Preisen (positiv als auch negativ) unterbunden werden sollen.
Config Token | Datentyp | Default | Wirkung |
MAX_DEMAND_PURCH_CHANGE | float | 1,50 | Pro Einkauf beim Shop wird zwischen 0,00 und dem angegeben Wert die Nachfrage verändert. |
MAX_DEMAND_SALES_CHANGE | float | 3,00 | Pro Verkauf beim Shop wird zwischen 0,00 und dem angegeben Wert die Nachfrage verändert. |
PURCHASE_FLOOR_PCT | float | 10,00 | Um wie viel % kann der standard Einkaufspreis ("price" aus item_proto) angepasst werden. |
SALES_ROOF_PCT | float | 20,00 | Um wie viel % kann der standard Verkaufspreis ("shopBuyPrice" aus item_proto) angepasst werden. |
SALES_ROOF_ABSOLUTE | long | 1 | Was ist der absolute Mindestverkaufspreis? |
Code
Grundkonzept
Der fahrende Händler von den 2. Reichsmaps ist eher lame, daher habe ich mir folgendes überlegt.
Einem NPC wird ein Shop zugeordnet, welcher "zufällige" Items beinhaltet. Die Idee ist, dass die Items des Shops aus einem verfügbaren Pool gezogen werden. Der Pool könnte wie Truheninhalte oder Mob Drops definiert werden, das ist erstmal mein Plan.
Die Items in dem Shop können nicht wahllos von jedem Spieler in jeder Menge gekauft werden, sie bekommen einen gewissen Lagerbestand. Mit jedem Kauf von dem Shop verringert sich die Menge.
Der Shop existiert auch nicht über die gesamte Lebensdauer des game Prozesses. Nach einer Zeitspanne X, z.B. 30 Minuten, oder wenn der Shop leer gekauft ist verschwindet der NPC mit seinem Shop wieder und spawnt dann irgendwann mit anderen Items an einer anderen Position oder auch Map wieder.
Zusätzlich habe ich vor es zu ermöglichen dem Shop-NPC eine Route zum Laufen auf den Maps zu geben. Über eine Liste von Koordinaten kann dann der Laufweg bestimmt werden.
Wenn ihr hier noch Vorschläge habt gerne her damit, das Projekt existiert erstmal nur in meinem Kopf und hier als Beschreibung.
Sollte es hier noch Anregungen oder Vorschläge geben immer her damit.