
exit()
******


FUNKTION
========

   varargs void exit(object liv, object dest);


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

   /std/room/description.c


ARGUMENTE
=========

   liv - (object) Das bewegte Lebewesen.
   dest - (object) Das Environment, in welches bewegt wird.


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

   Diese Funktion wird immer dann aufgerufen, wenn ein Lebewesen den
   Raum verlaesst. Standardmaessig werden hier ggf. die Raummeldungen
   abgestellt, man kann aber auch eigene Checks einhaengen. In dem Fall MUSS
   man aber das geerbte exit() auf jeden Fall aufrufen.


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

   keiner


BEMERKUNG
=========

   Man beachte, dass this_player() 0 sein kann, wenn z.B. ein netztoter Spieler
   Spieler den Raum verlaesst.
   Man beachte ausserdem, dass this_player() nicht unbedingt das bewegte Living
   sein muss. Wenn z.B. jemand ein Lebewesen bewegt, ist TP der, der die
   Bewegung durchfuehrt, nicht das Lebewesen.


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

   init(), this_player(), previous_object(), caller_stack(),
   NotfiyLeave(), NotifyRemove(), NotifyDestruct()

Last modified: 25.02.2009, Zesstra
