blob: e2d41396696e158587a02137f9c5bd9c3a4c0cea [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001AddMoney()
2==========
3
4AddMoney(L)
5-----------
6::
7
8FUNKTION
9--------
10::
11
12 public int AddMoney(int amount);
13
14DEFINIERT IN
15------------
16::
17
18 /std/container/moneyhandler.c
19 /std/living/moneyhandler.c
20 /std/player/moneyhandler.c
21
22ARGUMENTE
23---------
24::
25
26 int amount
27 Die zufuehrende oder abziehende Geldmenge
28
29BESCHREIBUNG
30------------
31::
32
33 Dem Spieler wird die in <amount> festgelegte Geldmenge abgezogen oder
34 zugefuehrt.
35
36RUeCKGABEWERT
37-------------
38::
39
40 Technisch gesehen wird Geld mit entsprechendem <amount> erzeugt
41 ("/items/money.c") und mittels "move" in den Spieler bewegt. Das Ergebnis
42 dieses "move"-Aufrufes wird hier uebergeben, z.B. 1 fuer OK.
43 Die moeglichen Fehler-Konstanten sind in /sys/moving.h definiert, siehe
44 auch Dokumentation zu "move".
45
46BEMERKUNGEN
47-----------
48::
49
50 <amount> kann sowohl positiv als auch negativ sein. Welche Auswirkungen
51 beide Faelle haben, sollte klar sein. Doch sollte bei einem negativen
52 <amount> vorher mittels QueryMoney() abgefragt werden, ob der Spieler
53 auch ueber ausreichend Geld verfuegt.
54 Wird dem Spieler Geld abgezogen, ist darauf zu achten, dieses in der
55 Zentralbank einzuzahlen (s.a.:PayIn() ).
56 Verschafft man dem Spieler Geld aus dem Nichts, muss es vorher bei der
57 Zentralbank abgebucht (WithDraw()) werden.
58
59 Achtung: Kann der Spieler die in <amount> angebene Geldmenge nicht
60 tragen, werden ihm keine Muenzen in sein Inventar bewegt. Die
61 Fehlermeldung erkennt man an dem Rueckgabewert ME_TOO_HEAVY.
62
63 Im Gegensatz zu Spielern haben alle anderen Objekte (Raeume, NPC, etc.)
64 standardmaessig keinen Moneyhandler. In diesem Fall muss in Lebewesen
65 "/std/living/moneyhandler"
66 und in nicht-Lebewesen
67 "/std/container/moneyhandler"
68 geerbt werden.
69
70BEISPIELE
71---------
72::
73
74 // gib ihm Geld
75 this_player()->AddMoney(50);
76
77 // nimm ihm Geld
78 if(this_player()->AddMoney(-50)==1)
79 write("Der Ork beklaut dich!\n");
80
81SIEHE AUCH
82----------
83::
84
85 Geldhandling: QueryMoney(L)
86 Zentralbank: PayIn(L), WithDraw(L)
87 Sonstiges: move(L),
88 /items/money.c, /sys/moving.h, /sys/money.h, /sys/bank.h
89 /std/container/moneyhandler.c
90
9118.02.2013, Zesstra
92