blob: a73288aa3243602a0f29a77083ef44b011f23f7e [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001NotifyDestruct()
Zesstra953f9972017-02-18 15:37:36 +01002****************
MG Mud User88f12472016-06-24 23:31:02 +02003
MG Mud User88f12472016-06-24 23:31:02 +02004
Zesstra953f9972017-02-18 15:37:36 +01005FUNKTION
6========
MG Mud User88f12472016-06-24 23:31:02 +02007
Zesstra953f9972017-02-18 15:37:36 +01008 public int|string NotifyRemove(object zerstoerer);
MG Mud User88f12472016-06-24 23:31:02 +02009
MG Mud User88f12472016-06-24 23:31:02 +020010
Zesstra953f9972017-02-18 15:37:36 +010011ARGUMENTE
12=========
MG Mud User88f12472016-06-24 23:31:02 +020013
Zesstra953f9972017-02-18 15:37:36 +010014 zerstoerer
15 Das Objekt, welches destruct() auf dieses Objekt anwendet.
MG Mud User88f12472016-06-24 23:31:02 +020016
MG Mud User88f12472016-06-24 23:31:02 +020017
Zesstra953f9972017-02-18 15:37:36 +010018BESCHREIBUNG
19============
20
21 Diese Funktion wird vom Master der Mudlib in jedem Objekt gerufen,
22 welches zerstoert wird, um Objekten eine letzte Chance zu geben, sich
23 aufzuraeumen.
24 Wenn ihr diese Funktion selber definiert, achtet bittet darauf, dass sie
25 in keinem Fall Fehler ausloesen sollte, d.h. testet entsprechend
26 gruendlich.
27 Wenn ihr aus /std/ erbt und diese Funktion ueberschreibt,, _muesst_ ihr
28 die geerbte NotifyDestruct() aufrufen, da sonst das Lichtsystem nicht
29 aktualisiert wird.
30
31 Privilegierte Objekte (z.B. Root-Objekte, spezielle Ausnahmen wie der
32 Netztotenraum, Armageddon) koennen die Zerstoerung in letzter Sekunde
33 verhindern, indem sie hier einen Wert != 0 zurueckliefern. Wird ein
34 string zurueckgeliefert, wird dieser die Fehlermeldung des
35 prepare_destruct() im Master sein.
36 Bei nicht-privilegierten Objekten (also fast alle) ist an dieser Stelle
37 _kein_ Abbruch der Zerstoerung moeglich!
38
39
40RUeCKGABEWERT
41=============
42
43 Der Rueckgabewert muss ein string oder ein int sein. Allerdings wird der
44 Master den Rueckgabewert nur fuer privilegierte Objekte auswerten.
45
46
47BEMERKUNGEN
48===========
49
50 Wie gesagt, bitte keine Fehler ausloesen (auch wenn der Master
51 grundsaetzlich damit klar kommt). Speziell ist ein raise_error() zur
52 Verhinderung eines destructs nutzlos.
53 Bitte macht in dieser Funkion nur das, was _unbedingt_ notwendig ist.
54 Wenn jemand ein destruct() anwendet statt ein remove() zu rufen, hat das
55 in der Regel einen Grund (z.B. um buggende remove() zu umgehen). Insb.
56 ist ein save_object() in remove() und NotifyDestruct() vollstaendig
57 ueberfluessig.
58
59
60SIEHE AUCH
61==========
62
63 NotifyLeave(), NotifyInsert(), NotifyRemove()
64
MG Mud User88f12472016-06-24 23:31:02 +020065Last modified: 25.02.2009, Zesstra