
QueryMoney()
************


FUNKTION
========

   int QueryMoney()


DEFINIERT IN
============

   /std/player/moneyhandler.c
   /std/container/moneyhandler.c


BESCHREIBUNG
============

   Gibt den Geldbetrag zurueck, den ein Spieler, Gegenstand, Raum oder NPC
   besitzt.


RUECKGABEWERT
=============

   Geldmenge im Besitz des abgefragten Spielers (Integer).


HINWEIS
=======

   Bei Spielern (bzw. allgemein Objekten, die /std/player/moneyhandler
   erben) beruecksichtigt die Funktion auch das Guthaben auf der
   Seherkarte.

   Nicht-Spieler-Objekte sollten /std/container/moneyhandler erben.

   Zur Ermittlung des Geldobjekts, des Geldboersenobjekts oder des
   Seherkartenobjekts z.B. mittels present() oder present_clone() stehen in
   <money.h> einige Defines zur Verfuegung, die hierfuer bevorzugt zu
   benutzen sind.


BEISPIELE
=========

   int i = 50+random(10);
   int money = this_player()->QueryMoney();
   if(!money)
     write("Du besitzt keine Muenzen!\n");
   else if(money < i)
     write("Du besitzt nicht die erforderlichen "+i+" Muenzen.\n");


SIEHE AUCH
==========

   Geldhandling: AddMoney()

   Zentralbank:  PayIn(), WithDraw(), _query_current_money()

   Sonstiges:    /items/money.c

Last modified: 2021-02-28, Arathorn
