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

#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