HowTo Wie bearbeite ich Händler

DTKSA

Anomalieversteher
Staff member
Ein Artikel von Djahn aus dem alten Onlinewelten-Forum

Da anscheinend immer noch eine ganze Menge Menschen es nicht verstanden haben, wie man die Trader bearbeitet, will ich hier kurz eine kleine FAQ dazu anbieten:

Die verschiedenen Händler findet ihr in der Regel im Ordner

gamedata/configs/misc/trade

Der Händler auf dem Schiff heißt beispielsweise

trade_zat_b30_stalker_trader.ltx

Um diese Datei bearbeiten zu können, muss man zunächst verstehen, wie sie aufgebaut ist. In der Regel fängt die Datei mit speziellen Konditionen an, ab wann der Händler was teurer/günstiger (ver-)kauft, oder ob und wann.
Wer keinerlei Ahnung von Scriptsprache hat, kann diesen Teil erstmal getrost ignorieren. Der Rest sollte selbst wissen, was er da verändern will, wenn er es denn überhaupt muss.

Nun folgt die wichtige Einteilung, die ich hier kurz speziell für den Händler auf dem Schiff zusammenfasse:

[trade_generic_buy]
[buy_tier_2]:trade_generic_buy


[trade_generic_sell]
[sell_tier_2]:trade_generic_sell


[supplies_scientific]
[supplies_generic]

[sci_supplies_generic]:supplies_generic, supplies_scientific
[supplies_bandit_tier_1]:supplies_generic
[sci_supplies_bandit_tier_1]:supplies_bandit_tier_1, supplies_scientific
[supplies_stalker_tier_1]:supplies_generic
[sci_supplies_stalker_tier_1]:supplies_stalker_tier_1, supplies_scientific
[supplies_stalker_bandit_tier]:supplies_generic
[sci_supplies_stalker_bandit_tier]:supplies_stalker_bandit_tier, supplies_scientific
[supplies_bandit_tier_2]:supplies_bandit_tier_1
[sci_supplies_bandit_tier_2]:supplies_bandit_tier_2, supplies_scientific
[supplies_stalker_tier_2]:supplies_stalker_tier_1
[sci_supplies_stalker_tier_2]:supplies_stalker_tier_2, supplies_scientific
[supplies_stalker_wealthy_tier_2]:supplies_stalker_tier_2
[sci_supplies_stalker_wealthy_tier_2]:supplies_stalker_wealthy_tier_2, supplies_scientific
[supplies_bandit_wealthy_tier_2]:supplies_bandit_tier_2
[sci_supplies_bandit_wealthy_tier_2]:supplies_bandit_wealthy_tier_2, supplies_scientific


Wie hat man die Einteilung zu verstehen?
Alles was in eckige Klammern [...] geschrieben ist leitet einen Bereich ein.
Die rot markierten sagen, was der Händler zu welchen Konditionen kauft
Die grün markierten, was er dir zu welchen Konditionen verkauft
Die orange markierten, was er im Angebot hat
Die gelb markierten, was er speziell im Angebot hat, wenn bestimmte Konditionen erfüllt sind

Wie hat man das zu verstehen?
Unter den buy Bedingungen wird festgelegt, was dir der Händler alles abkauft.
Unter den sell Bedingungen, was er dir verkaufen würde, wenn er es hat.
Unter den orange/gelben supplies Bedingungen, was er hat.
Dies ist wichtig, denn genau das verstehen viele nicht. Trägt man beispielsweise bei den sell Bedingungen ein, dass er ein Gaussgewehr verkaufen soll, vergisst aber es in den Bestand des Händlers unten bei den supplies einzutragen, verkauft er auch kein Gaussgewehr! Er würde, wenn er könnte, aber da er keins hat, kann er auch nicht verkaufen.

Nun habt ihr schon bemerkt, dass es mehrere buy, sell und supplies Kategorien gibt. Warum? Nun das hängt damit zusammen, dass wenn ihr im Spiel fortgeschrittener seit, euch auch bessere Ware zu eventuell günstigeren Preisen Angeboten wird und dies hängt widerum von euren Erfolgen ab. Und genau das wird in den verschiednen Bedingungen festgelegt. Sehen wir uns hierzu mal diese beiden an:

[trade_generic_buy]
[buy_tier_2]:trade_generic_buy

Euch fällt auf, dass hinter [buy_tier_2] noch folgendes steht
:trade_generic_buy

Was bedeutet das? Ganz einfach: In [trade_generic_buy] wird erstmal ganz normal festgelegt, welche Dinge der Händler alles kauft oder nicht. Hier sind in der Regel so gut wie alle kaufbaren Gegenstände aufgelistet.
Wird nun im Spiel die Kondition [buy_tier_2] erreicht, werden absofort alle Gegenstände, die unter [buy_tier_2] aufgelistet sind, zu den Konditionen verkauft die dort stehen. Der Rest wird weiterhin zu den Konditionen verkauft, die unter [trade_generic_buy] stehen. Daher der Anhang :trade_generic_buy.
Gleiches gilt bei den sells und den supplies.

So nun geht es endlich zum Eingemachten: WAS BEDEUTEN DIE GANZEN WERTE?
Ihr habt euch schon bestimmt gewundert, warum bei all den Dingen, die da stehen, immer zwei Zahlen stehen. Dies hat gute und weniger gute Gründe. Zum einen hat GSC sich da ein System ausgedacht, was etwas verwirrend ist und zum anderen eins, was logisch erscheint. Sehen wir uns das erste an:
Faustformel zum (Ver-)kauf
(WERT 1) + (WERT 2) = X
X / 2 = (Ver-)Kaufsfaktor

Diese Formel gilt sowohl für die buy, als auch für die sell Geschichte.

Hier ein Beispiel aus der [trade_generic_buy]

Code:
wpn_vintorez			= 0.25,	0.15

Nach der Rechnung oben, wird also 0.25 + 0.15 = 0.4
0.4 / 2 = 0.2 gerechnet. Was bedeutet nun 0.2?
Dies ist der Umrechnungsfaktor für den Wert der Waffe. Wenn die Waffe beispielsweise 10.000 Rubel wert ist, wären 10.000 * 0.2 = 2000 Rubel.
0.2 entspricht also 20% des Wertes der Waffe.
Also würde der Händler euch nur maximal 2000 Rubel für eine Waffe im perfekten Zustand geben. Kaputte geben bekanntlich weniger, aber das wird in den scripts festgelegt und würde zu weit führen.

Gleiches Beispiel aus der [trade_generic_sell]

Code:
wpn_vintorez			= 1, 2.2

1 + 2.2 = 3.2
3.2 / 2 = 1.6

Auf gut deutsch: der Händler würde, wenn die Waffe einen Wert von 10.000 hätte, sie euch für 16.000 Rubel verkaufen.

Wenn ihr also einen bestimmten Prozentsatz anstrebt, reicht es in der Regel, zweimal den gleichen Wert einzutragen, beispielsweise

wpn_vintorez = 0.5, 0.5

in der sell würde den Händler die Vintorez nur noch zum halben Preis verkaufen lassen.

Was bedeuten die beiden Werte bei den supplies?
Hier verhält es sich ein wenig anders. Zunächst ein Beispiel:

Code:
wpn_vintorez 			= 1, 	0.6

Die erste Zahl bei den supplies gibt an, wie viel der Händler von diesem Objekt MAXIMAL anbietet.
Der zweite Wert gibt die Wahrscheinlichkeit für jedes einzelne Objekt an

In dem Beispiel oben hätte der Händler also zu 60%-tiger Wahrscheinlichkeit eine Vintorez im Angebot. Die Wahrscheinlichkeit ist also relativ hoch, dass er sie anbietet, aber es kann passieren, dass sie nicht im Inventar erscheint.
Würde dort folgendes stehen:
Code:
wpn_vintorez 			= 5, 	0.6
hieße dies, dass der Händler maximal 5 Vintorez anbietet, aber jede nur mit einer Wahrscheinlichkeit von 60%. Es kann also passieren, dass er nur 2 oder 3 anbietet, jedoch maximal 5.
Soll er immer eine anbieten, so sollte der zweite Wert auf 1 (100%) gesetzt werden.

Nun gibt es bei den buy und sell noch folgendes

;NO TRADE

Sagt, wie der Name schon sagt, dass er das Item nicht (ver-)kauft.

Was muss ich also tun, damit der Händler alles zu jeder Zeit anbietet?

1. Alle Gegenstände bei den buy Dingen zum Kauf einstellen, damit man alles verkaufen kann
2. Bei den sell Dingen jeweils alle Gegenstände zum Verkauf einstellen, damit sie verkauft werden können
3. Bei den supplies, jeweils alle Gegenstände eintragen und zwar bei jeder supplie Stufe!

Ist viel Arbeit und viel Kopiergedönze, aber schließlich will man ja auch alles haben.

Ich hoffe diese Einführung hat viele Fragen beantwortet und geklärt.
MFG
Djahn

UPDATE
Der etwas schnellere Weg, Geld zu sparen:
GSC denk sogar manchmal mit. Wollte das schon des öfteren hier aktualisieren. Also, wer ganz schnell seine Waffen zu Lidl oder Aldi Discountpreisen kaufen will, der kann auf die Discountfunktion in CoP zurückgreifen:
Code:
[discount_1]
buy =  1
sell = 0.90

[discount_2]
buy =  1
sell = 0.85

[discount_3]
buy =  1
sell = 0.80
Werden bestimmte Bedingungen erfüllt, werden die Waffen beispielsweise unter Discount_3 angeboten. Hier steht bei sell 0.80, was bedeutet, dass der Spieler nur 80% dessen Zahlen müsste, was er sonst zahlen würde.
Will man nun gar nichts zahlen und dies von Anfang an, setzt man ziemlich weit oben in folgender Zeile, das hier ein:
Code:
discounts = [COLOR="red"]discount_0,[/COLOR] {+zat_b7_actor_really_helped_bandits +zat_b30_barmen_under_sultan =information_dealer_functor} discount_3, ...
(Bitte die Zeile nicht kopieren, da ich sie abgekürzt habe, einfach das rot-markierte kopieren und einsetzen)
Da keine Bedingung vor discount_0 steht, gilt dieser Tarif sofort. Da aber noch kein discount_0 existiert, erstellen wir ihn einfach:
Code:
[COLOR="red"][discount_0]
buy =  1
sell = 0.0[/COLOR]

[discount_1]
buy =  1
sell = 0.90

[discount_2]
buy =  1
sell = 0.85

[discount_3]
buy =  1
sell = 0.80

Schon werden alle angebotenen Waren beim Händler für nur 1 Rubel verkauft (0, also verschenken geht leider nicht ;))
Wer immer nur einen Rubel zahlen möchte, muss einfach bei den anderen discounts den sell Wert auf 0.0 stellen.
 
Back
Top