NotifyMove()¶
FUNKTION¶
protected void NotifyMove(object dest, object oldenv, int method);
DEFINIERT IN¶
/std/thing/moving.c
/std/living/moving.c
/std/player/moving.c
ARGUMENTE¶
dest
Das Ziel des Moves bzw. das jetzt aktuelle Environment
oldenv
Das alte Environment des Objekts
method
Die Move-Methode(n), mit der/denen bewegt wurde.
BESCHREIBUNG¶
Diese Funktion wird vom move() im Objekt gerufen, sobald die Bewegung im
wesentlichen abgeschlossen ist. Sie soll einerseits das Objekt ueber eine
stattgefundene Bewegung informieren, aber auch einige Dinge erledigen,
die bei der Bewegung stattfinden muessen (bei Livings z.B. das Team
nachholen).
RUeCKGABEWERT¶
keiner
BEMERKUNGEN¶
Diese Funktion kann ueberschrieben werden, damit das Objekt Bewegungen
mitgekommt, ohne das move() selber zu ueberschreiben oder einen Move-Hook
zu setzen. Dabei aber bitte unbedingt beachten:
Das geerbte NotifyMove() _MUSS IN JEDEM FALL_ mit aufgerufen werden!
Solltet ihr das vergessen, werden eure Objekte buggen. ;-)
Die Funktion darf nur objektintern verwendet werden. Beim Ueberschreiben
das 'protected' nicht vergessen!
BEISPIELE¶
Eine Bombe, die in Seherhaustruhen explodiert:
protected void NotifyMove(object dest, object oldenv, int method) {
::NotifyMove(dest, oldenv, method); // WICHTIG!
if (objectp(dest) &&
load_name(dest) == "/d/seher/haeuser/truhe") {
if (find_call_out("explodiere")==-1)
call_out("explodiere",900);
}
else
remove_call_out("explodiere");
}
SIEHE AUCH¶
PreventLeave(), NotifyInsert(), NotifyLeave(), MayAddObject(),
PreventInsertLiving(), PreventLeaveLiving(), NotifyMove(),
PreventMove(), MayAddWeight(), move(), /std/container/restrictions.c
Last modified: 04.08.2007, Zesstra