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