blob: 0868e51c1d8c1c91845c1967aa6c24b6aed984a9 [file] [log] [blame]
AddMoney()
==========
AddMoney(L)
-----------
FUNKTION
--------
public int AddMoney(int amount);
DEFINIERT IN
------------
/std/container/moneyhandler.c
/std/living/moneyhandler.c
/std/player/moneyhandler.c
ARGUMENTE
---------
int amount
Die zufuehrende oder abziehende Geldmenge
BESCHREIBUNG
------------
Dem Spieler wird die in <amount> festgelegte Geldmenge abgezogen oder
zugefuehrt.
RUeCKGABEWERT
-------------
Technisch gesehen wird Geld mit entsprechendem <amount> erzeugt
("/items/money.c") und mittels "move" in den Spieler bewegt. Das Ergebnis
dieses "move"-Aufrufes wird hier uebergeben, z.B. 1 fuer OK.
Die moeglichen Fehler-Konstanten sind in /sys/moving.h definiert, siehe
auch Dokumentation zu "move".
BEMERKUNGEN
-----------
<amount> kann sowohl positiv als auch negativ sein. Welche Auswirkungen
beide Faelle haben, sollte klar sein. Doch sollte bei einem negativen
<amount> vorher mittels QueryMoney() abgefragt werden, ob der Spieler
auch ueber ausreichend Geld verfuegt.
Wird dem Spieler Geld abgezogen, ist darauf zu achten, dieses in der
Zentralbank einzuzahlen (s.a.:PayIn() ).
Verschafft man dem Spieler Geld aus dem Nichts, muss es vorher bei der
Zentralbank abgebucht (WithDraw()) werden.
Achtung: Kann der Spieler die in <amount> angebene Geldmenge nicht
tragen, werden ihm keine Muenzen in sein Inventar bewegt. Die
Fehlermeldung erkennt man an dem Rueckgabewert ME_TOO_HEAVY.
Im Gegensatz zu Spielern haben alle anderen Objekte (Raeume, NPC, etc.)
standardmaessig keinen Moneyhandler. In diesem Fall muss in Lebewesen
"/std/living/moneyhandler"
und in nicht-Lebewesen
"/std/container/moneyhandler"
geerbt werden.
BEISPIELE
---------
.. code-block:: pike
#include <bank.h>
// gib ihm Geld
int money = ZENTRALBANK->WithDraw(50);
this_player()->AddMoney(money);
// nimm ihm Geld
if(this_player()->AddMoney(-50)==1)
{
write("Der Ork beklaut dich!\n");
ZENTRALBANK->PayIn(50);
}
SIEHE AUCH
----------
::
Geldhandling: QueryMoney(L)
Zentralbank: PayIn(L), WithDraw(L)
Sonstiges: move(L),
/items/money.c
/sys/moving.h, /std/container/moneyhandler.c
/sys/money.h, /sys/bank.h
18.02.2013, Zesstra