blob: 99059c6e99bb23a10bb7b2a7deb6639f5c6a0fab [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001QuerySellValue()
2****************
MG Mud User88f12472016-06-24 23:31:02 +02003
MG Mud User88f12472016-06-24 23:31:02 +02004
Zesstra953f9972017-02-18 15:37:36 +01005FUNKTION
6========
MG Mud User88f12472016-06-24 23:31:02 +02007
Zesstra953f9972017-02-18 15:37:36 +01008 varargs int QuerySellValue(object ob, object client);
MG Mud User88f12472016-06-24 23:31:02 +02009
MG Mud User88f12472016-06-24 23:31:02 +020010
Zesstra953f9972017-02-18 15:37:36 +010011DEFINIERT IN
12============
MG Mud User88f12472016-06-24 23:31:02 +020013
Zesstra953f9972017-02-18 15:37:36 +010014 /std/trading_price.c
MG Mud User88f12472016-06-24 23:31:02 +020015
MG Mud User88f12472016-06-24 23:31:02 +020016
Zesstra953f9972017-02-18 15:37:36 +010017BESCHREIBUNG
18============
MG Mud User88f12472016-06-24 23:31:02 +020019
Zesstra953f9972017-02-18 15:37:36 +010020 Diese Funktion kann dazu genutzt werden, den Verkaufspreis in einem
21 Laden global zu veraendern. Sofern dies zugunsten der Spieler geschieht,
22 muss dafuer die Zustimmung des zustaendigen Regionsmagiers und der
23 Balance eingeholt werden. Zudem sollte es nicht in jedem x-beliebigen
24 Laden genutzt werden, sondern nur in recht abgelegenen Gebieten, in
25 die man nicht einfach skripten kann.
MG Mud User88f12472016-06-24 23:31:02 +020026
Zesstra953f9972017-02-18 15:37:36 +010027 Ein Beispiel ist der Laden auf dem Kutter in Port Vain, der nur in
28 laengeren Intervallen mal zugaenglich ist.
MG Mud User88f12472016-06-24 23:31:02 +020029
MG Mud User88f12472016-06-24 23:31:02 +020030
Zesstra953f9972017-02-18 15:37:36 +010031BEISPIEL
32========
33
34 Ein Laden zahlt 10% ueber dem normalen Verkaufspreis:
35
36 private int sell_factor = 110;
37
38 varargs int QuerySellValue(object ob, object client) {
39 // Es wird nicht naeher geprueft, ob <ob> ein gueltiger Objektpointer
40 // ist, da der Laden selbst sicherstellt, dass das so ist. Wenn
41 // das doch einmal nicht der Fall sein sollte, liegt der Fehler
42 // woanders. Einen Bug auszuloesen ist dann sinnvoll.
43
44 // Basispreis ermitteln
45 int preis = ::QuerySellValue(ob, client);
46 // und den Bonus aufschlagen.
47 preis = (sell_factor * preis)/100;
48
49 // Nicht mehr auszahlen, als das Objekt an sich wert ist.
50 return min(preis, ob->QueryProp(P_VALUE));
51 }
52
MG Mud User88f12472016-06-24 23:31:02 +020053LETZTE AENDERUNG: 18-Jun-2015, Arathorn