
WithDraw()
**********


FUNKTION
========

   int WithDraw(int amount);


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

   /p/daemon/zentralbank.c


ARGUMENTE
=========

   int amount - angeforderte Geldmenge


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

   Damit wird bei der Zentralbank eine bestimmte Menge Geld angefordert.
   Der Rueckgabewert haengt vom Kassenstand der Zentralbank ab und ist
   entweder amount oder amount/3.


RUeCKGABEWERT
=============

   Menge des bei der Zentralbank "abgehobenen" Geldes.


BEISPIELE
=========

   #include <bank.h>
   ...
   if(ZENTRALBANK->WithDraw(50000)<50000)
    write(break_string(
     "Leider koennen wir ihnen keinen vollen Zuschuss zu ihrem Hotelbau "
     "geben!",
     "Der Beamte sagt: ",78));
    say(break_string(
     "Leider koennen wir ihnen keinen vollen Zuschuss zu ihrem Hotelbau "
     "geben!",
     "Der Beamte sagt zu "+this_player()->name(WEM)+": ",78));
    ...


BEMERKUNGEN
===========

   Unsere Zentralbank ist korrupt, vor allem dadurch, dass in Laeden und
   an anderen Stellen Geld erzeugt wird.


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

   Geldhandling:      AddMoney(L), QueryMoney(L)
   Zentralbank:       PayIn(L), _query_current_money(L)
   Sonstiges:         /items/money.c, /sys/bank.h

27. Apr 2004 Gloinson
