blob: c4cef69bcef5381dff17b8c25428f76c6dbbe69e [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001NotifyMove()
2============
3
4FUNKTION
5--------
6::
7
8 protected void NotifyMove(object dest, object oldenv, int method);
9
10DEFINIERT IN
11------------
12::
13
14 /std/thing/moving.c
15 /std/living/moving.c
16 /std/player/moving.c
17
18ARGUMENTE
19---------
20::
21
22 dest
23 Das Ziel des Moves bzw. das jetzt aktuelle Environment
24 oldenv
25 Das alte Environment des Objekts
26 method
27 Die Move-Methode(n), mit der/denen bewegt wurde.
28
29BESCHREIBUNG
30------------
31::
32
33 Diese Funktion wird vom move() im Objekt gerufen, sobald die Bewegung im
34 wesentlichen abgeschlossen ist. Sie soll einerseits das Objekt ueber eine
35 stattgefundene Bewegung informieren, aber auch einige Dinge erledigen,
36 die bei der Bewegung stattfinden muessen (bei Livings z.B. das Team
37 nachholen).
38
39RUeCKGABEWERT
40-------------
41::
42
43 keiner
44
45BEMERKUNGEN
46-----------
47::
48
49 Diese Funktion kann ueberschrieben werden, damit das Objekt Bewegungen
50 mitgekommt, ohne das move() selber zu ueberschreiben oder einen Move-Hook
51 zu setzen. Dabei aber bitte unbedingt beachten:
52 Das geerbte NotifyMove() _MUSS IN JEDEM FALL_ mit aufgerufen werden!
53 Solltet ihr das vergessen, werden eure Objekte buggen. ;-)
54 Die Funktion darf nur objektintern verwendet werden. Beim Ueberschreiben
55 das 'protected' nicht vergessen!
56
57BEISPIELE
58---------
59::
60
61 Eine Bombe, die in Seherhaustruhen explodiert:
62
63 protected void NotifyMove(object dest, object oldenv, int method) {
64 ::NotifyMove(dest, oldenv, method); // WICHTIG!
65 if (objectp(dest) &&
66 load_name(dest) == "/d/seher/haeuser/truhe") {
67 if (find_call_out("explodiere")==-1)
68 call_out("explodiere",900);
69 }
70 else
71 remove_call_out("explodiere");
72 }
73
74SIEHE AUCH
75----------
76::
77
78 PreventLeave(), NotifyInsert(), NotifyLeave(), MayAddObject(),
79 PreventInsertLiving(), PreventLeaveLiving(), NotifyMove(),
80 PreventMove(), MayAddWeight(), move(), /std/container/restrictions.c
81
82
83Last modified: 04.08.2007, Zesstra
84