| 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 |