blob: 4d5a5186c4cd62ff90b39aab68998c24b5867e2a [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001
Zesstra953f9972017-02-18 15:37:36 +01002QuerySellValue()
3****************
MG Mud User88f12472016-06-24 23:31:02 +02004
MG Mud User88f12472016-06-24 23:31:02 +02005
Zesstra953f9972017-02-18 15:37:36 +01006FUNKTION
7========
MG Mud User88f12472016-06-24 23:31:02 +02008
Zesstra953f9972017-02-18 15:37:36 +01009 varargs int QuerySellValue(object ob, object client);
MG Mud User88f12472016-06-24 23:31:02 +020010
MG Mud User88f12472016-06-24 23:31:02 +020011
Zesstra953f9972017-02-18 15:37:36 +010012DEFINIERT IN
13============
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015 /std/trading_price.c
MG Mud User88f12472016-06-24 23:31:02 +020016
MG Mud User88f12472016-06-24 23:31:02 +020017
Zesstra953f9972017-02-18 15:37:36 +010018BESCHREIBUNG
19============
MG Mud User88f12472016-06-24 23:31:02 +020020
Zesstra953f9972017-02-18 15:37:36 +010021 Diese Funktion kann dazu genutzt werden, den Verkaufspreis in einem
22 Laden global zu veraendern. Sofern dies zugunsten der Spieler geschieht,
23 muss dafuer die Zustimmung des zustaendigen Regionsmagiers und der
24 Balance eingeholt werden. Zudem sollte es nicht in jedem x-beliebigen
25 Laden genutzt werden, sondern nur in recht abgelegenen Gebieten, in
26 die man nicht einfach skripten kann.
MG Mud User88f12472016-06-24 23:31:02 +020027
Zesstra953f9972017-02-18 15:37:36 +010028 Ein Beispiel ist der Laden auf dem Kutter in Port Vain, der nur in
29 laengeren Intervallen mal zugaenglich ist.
MG Mud User88f12472016-06-24 23:31:02 +020030
MG Mud User88f12472016-06-24 23:31:02 +020031
Zesstra953f9972017-02-18 15:37:36 +010032BEISPIEL
33========
34
35 Ein Laden zahlt 10% ueber dem normalen Verkaufspreis:
36
37 private int sell_factor = 110;
38
39 varargs int QuerySellValue(object ob, object client) {
40 // Es wird nicht naeher geprueft, ob <ob> ein gueltiger Objektpointer
41 // ist, da der Laden selbst sicherstellt, dass das so ist. Wenn
42 // das doch einmal nicht der Fall sein sollte, liegt der Fehler
43 // woanders. Einen Bug auszuloesen ist dann sinnvoll.
44
45 // Basispreis ermitteln
46 int preis = ::QuerySellValue(ob, client);
47 // und den Bonus aufschlagen.
48 preis = (sell_factor * preis)/100;
49
50 // Nicht mehr auszahlen, als das Objekt an sich wert ist.
51 return min(preis, ob->QueryProp(P_VALUE));
52 }
53
MG Mud User88f12472016-06-24 23:31:02 +020054LETZTE AENDERUNG: 18-Jun-2015, Arathorn