NotifyDestruct()
****************


FUNKTION
========

   public int|string NotifyRemove(object zerstoerer);


ARGUMENTE
=========

   zerstoerer
        Das Objekt, welches destruct() auf dieses Objekt anwendet.


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

   Diese Funktion wird vom Master der Mudlib in jedem Objekt gerufen,
   welches zerstoert wird, um Objekten eine letzte Chance zu geben, sich
   aufzuraeumen.
   Wenn ihr diese Funktion selber definiert, achtet bittet darauf, dass sie
   in keinem Fall Fehler ausloesen sollte, d.h. testet entsprechend
   gruendlich.
   Wenn ihr aus /std/ erbt und diese Funktion ueberschreibt,, _muesst_ ihr
   die geerbte NotifyDestruct() aufrufen, da sonst das Lichtsystem nicht
   aktualisiert wird.

   Privilegierte Objekte (z.B. Root-Objekte, spezielle Ausnahmen wie der
   Netztotenraum, Armageddon) koennen die Zerstoerung in letzter Sekunde
   verhindern, indem sie hier einen Wert != 0 zurueckliefern. Wird ein
   string zurueckgeliefert, wird dieser die Fehlermeldung des
   prepare_destruct() im Master sein.
   Bei nicht-privilegierten Objekten (also fast alle) ist an dieser Stelle
   _kein_ Abbruch der Zerstoerung moeglich!


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

   Der Rueckgabewert muss ein string oder ein int sein. Allerdings wird der
   Master den Rueckgabewert nur fuer privilegierte Objekte auswerten.


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

   Wie gesagt, bitte keine Fehler ausloesen (auch wenn der Master
   grundsaetzlich damit klar kommt). Speziell ist ein raise_error() zur
   Verhinderung eines destructs nutzlos.
   Bitte macht in dieser Funkion nur das, was _unbedingt_ notwendig ist.
   Wenn jemand ein destruct() anwendet statt ein remove() zu rufen, hat das
   in der Regel einen Grund (z.B. um buggende remove() zu umgehen). Insb.
   ist ein save_object() in remove() und NotifyDestruct() vollstaendig
   ueberfluessig.


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

   NotifyLeave(), NotifyInsert(), NotifyRemove()

Last modified: 25.02.2009, Zesstra
