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