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