drop()
******


FUNKTION
========

   public varargs int drop(object o, mixed msg);


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

   /std/living/put_and_get.c


ARGUMENTE
=========

   object o
       Das Objekt, das fallengelassen werden soll.
   mixed msg
       Eine optionale Meldung, die anstelle von P_DROP_MSG oder der
       Standardmeldung verwendet wird, oder -1, um die Meldung zu
       unterdruecken.


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

   Der Spieler oder NPC laesst das Objekt fallen. Gibt o->move() keinen
   positiven Wert zurueck, beispielsweise weil das Objekt verflucht ist,
   bekommt er eine entsprechende Fehlermeldung.


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

   Wenn das Fallenlassen geklappt hat, 1, ansonsten 0.


BEMERKUNG
=========

   Diese Funktion ist dann sinnvoll, wenn man den Spieler ein Objekt
   fallenlassen lassen und sich nicht selbst um die Fehlerbehandlung kuemmern
   moechte - und da unzaehlige verschiedene Dinge schiefgehen koennen und
   manche Objekte eigene Fehlermeldungen definieren, eigentlich immer.

   Die Funktion prueft nicht, ob der Spieler/NPC das Objekt ueberhaupt hat,
   das muss man ggf. selbst ermitteln.


BEISPIEL
========

   if (this_player()->drop(obj, ({
           "Du wirfst @WEN2 in den Saeureteich.\n",
           "@WER1 wirft @WENU2 in den Saeureteich.\n" })))
       obj->remove();


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

   move(L), P_DROP_MSG, drop_objects(L), P_NOINSERT_MSG, P_NOLEAVE_MSG,
   P_TOO_MANY_MSG, P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_NODROP

Last modified: Thu Aug 28 22:20:37 2008 by Amynthor
