blob: 1b0b90303595f0d9439a007698f2a0dda3f264eb [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001AddMoney()
2**********
3
4
MG Mud User88f12472016-06-24 23:31:02 +02005AddMoney(L)
Zesstra953f9972017-02-18 15:37:36 +01006===========
MG Mud User88f12472016-06-24 23:31:02 +02007
MG Mud User88f12472016-06-24 23:31:02 +02008
Zesstra953f9972017-02-18 15:37:36 +01009FUNKTION
10========
MG Mud User88f12472016-06-24 23:31:02 +020011
Zesstra953f9972017-02-18 15:37:36 +010012 public int AddMoney(int amount);
MG Mud User88f12472016-06-24 23:31:02 +020013
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015DEFINIERT IN
16============
MG Mud User88f12472016-06-24 23:31:02 +020017
Arathornae6dbc92020-07-27 23:36:15 +020018 /std/container/moneyhandler.c /std/living/moneyhandler.c
Zesstra953f9972017-02-18 15:37:36 +010019 /std/player/moneyhandler.c
MG Mud User88f12472016-06-24 23:31:02 +020020
MG Mud User88f12472016-06-24 23:31:02 +020021
Zesstra953f9972017-02-18 15:37:36 +010022ARGUMENTE
23=========
MG Mud User88f12472016-06-24 23:31:02 +020024
Zesstra953f9972017-02-18 15:37:36 +010025 int amount
Arathornae6dbc92020-07-27 23:36:15 +020026 Die zufuehrende oder abziehende Geldmenge
MG Mud User88f12472016-06-24 23:31:02 +020027
Zesstra953f9972017-02-18 15:37:36 +010028
29BESCHREIBUNG
30============
31
Arathornae6dbc92020-07-27 23:36:15 +020032 Dem Spieler wird die in <amount> festgelegte Geldmenge abgezogen
33 oder zugefuehrt.
Zesstra953f9972017-02-18 15:37:36 +010034
35
36RUeCKGABEWERT
37=============
38
39 Technisch gesehen wird Geld mit entsprechendem <amount> erzeugt
Arathornae6dbc92020-07-27 23:36:15 +020040 ("/items/money.c") und mittels "move" in den Spieler bewegt. Das
41 Ergebnis dieses "move"-Aufrufes wird hier uebergeben, z.B. 1 fuer
42 OK. Die moeglichen Fehler-Konstanten sind in /sys/moving.h
43 definiert, siehe auch Dokumentation zu "move".
Zesstra953f9972017-02-18 15:37:36 +010044
45
46BEMERKUNGEN
47===========
48
Arathornae6dbc92020-07-27 23:36:15 +020049 <amount> kann sowohl positiv als auch negativ sein. Welche
50 Auswirkungen beide Faelle haben, sollte klar sein. Doch sollte bei
51 einem negativen <amount> vorher mittels QueryMoney() abgefragt
52 werden, ob der Spieler auch ueber ausreichend Geld verfuegt. Wird
53 dem Spieler Geld abgezogen, ist darauf zu achten, dieses in der
54 Zentralbank einzuzahlen (s.a.:PayIn() ). Verschafft man dem Spieler
55 Geld aus dem Nichts, muss es vorher bei der Zentralbank abgebucht
56 (WithDraw()) werden.
Zesstra953f9972017-02-18 15:37:36 +010057
58 Achtung: Kann der Spieler die in <amount> angebene Geldmenge nicht
Arathornae6dbc92020-07-27 23:36:15 +020059 tragen, werden ihm keine Muenzen in sein Inventar bewegt. Die
60 Fehlermeldung erkennt man an dem Rueckgabewert ME_TOO_HEAVY.
Zesstra953f9972017-02-18 15:37:36 +010061
Arathornae6dbc92020-07-27 23:36:15 +020062 Im Gegensatz zu Spielern haben alle anderen Objekte (Raeume, NPC,
63 etc.) standardmaessig keinen Moneyhandler. In diesem Fall muss in
64 Lebewesen "/std/living/moneyhandler" und in nicht-Lebewesen
65 "/std/container/moneyhandler" geerbt werden.
Zesstra953f9972017-02-18 15:37:36 +010066
67
68BEISPIELE
69=========
70
Arathorn41004de2020-10-18 22:03:28 +020071 #include <bank.h>
Arathornf1fdf632020-05-01 22:41:25 +020072
Zesstra953f9972017-02-18 15:37:36 +010073 // gib ihm Geld
Arathorn41004de2020-10-18 22:03:28 +020074 int money = ZENTRALBANK->WithDraw(50);
Arathornf1fdf632020-05-01 22:41:25 +020075 this_player()->AddMoney(money);
Zesstra953f9972017-02-18 15:37:36 +010076
77 // nimm ihm Geld
78 if(this_player()->AddMoney(-50)==1)
Arathornf1fdf632020-05-01 22:41:25 +020079 {
80 write("Der Ork beklaut dich!\n");
81 ZENTRALBANK->PayIn(50);
82 }
Zesstra953f9972017-02-18 15:37:36 +010083
84
85SIEHE AUCH
86==========
87
Arathorn41004de2020-10-18 22:03:28 +020088 Geldhandling: QueryMoney(L)
89 Zentralbank: PayIn(L), WithDraw(L)
90 Sonstiges: move(L),
91 /items/money.c
92 /sys/moving.h, /std/container/moneyhandler.c
93 /sys/money.h, /sys/bank.h
MG Mud User88f12472016-06-24 23:31:02 +020094
9518.02.2013, Zesstra