MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | NotifyDestruct() |
| 2 | |
| 3 | FUNKTION: |
| 4 | public int|string NotifyRemove(object zerstoerer); |
| 5 | |
| 6 | ARGUMENTE: |
| 7 | zerstoerer |
| 8 | Das Objekt, welches destruct() auf dieses Objekt anwendet. |
| 9 | |
| 10 | BESCHREIBUNG: |
| 11 | Diese Funktion wird vom Master der Mudlib in jedem Objekt gerufen, |
| 12 | welches zerstoert wird, um Objekten eine letzte Chance zu geben, sich |
| 13 | aufzuraeumen. |
| 14 | Wenn ihr diese Funktion selber definiert, achtet bittet darauf, dass sie |
| 15 | in keinem Fall Fehler ausloesen sollte, d.h. testet entsprechend |
| 16 | gruendlich. |
| 17 | Wenn ihr aus /std/ erbt und diese Funktion ueberschreibt,, _muesst_ ihr |
| 18 | die geerbte NotifyDestruct() aufrufen, da sonst das Lichtsystem nicht |
| 19 | aktualisiert wird. |
| 20 | |
| 21 | Privilegierte Objekte (z.B. Root-Objekte, spezielle Ausnahmen wie der |
| 22 | Netztotenraum, Armageddon) koennen die Zerstoerung in letzter Sekunde |
| 23 | verhindern, indem sie hier einen Wert != 0 zurueckliefern. Wird ein |
| 24 | string zurueckgeliefert, wird dieser die Fehlermeldung des |
| 25 | prepare_destruct() im Master sein. |
| 26 | Bei nicht-privilegierten Objekten (also fast alle) ist an dieser Stelle |
| 27 | _kein_ Abbruch der Zerstoerung moeglich! |
| 28 | |
| 29 | RUeCKGABEWERT: |
| 30 | Der Rueckgabewert muss ein string oder ein int sein. Allerdings wird der |
| 31 | Master den Rueckgabewert nur fuer privilegierte Objekte auswerten. |
| 32 | |
| 33 | BEMERKUNGEN: |
| 34 | Wie gesagt, bitte keine Fehler ausloesen (auch wenn der Master |
| 35 | grundsaetzlich damit klar kommt). Speziell ist ein raise_error() zur |
| 36 | Verhinderung eines destructs nutzlos. |
| 37 | Bitte macht in dieser Funkion nur das, was _unbedingt_ notwendig ist. |
| 38 | Wenn jemand ein destruct() anwendet statt ein remove() zu rufen, hat das |
| 39 | in der Regel einen Grund (z.B. um buggende remove() zu umgehen). Insb. |
| 40 | ist ein save_object() in remove() und NotifyDestruct() vollstaendig |
| 41 | ueberfluessig. |
| 42 | |
| 43 | SIEHE AUCH: |
| 44 | NotifyLeave(), NotifyInsert(), NotifyRemove() |
| 45 | |
| 46 | ---------------------------------------------------------------------------- |
| 47 | Last modified: 25.02.2009, Zesstra |