blob: 0090c3c2dcc0758bfbf81a16e36847ce15dbfae4 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001NotifyMove()
2************
MG Mud User88f12472016-06-24 23:31:02 +02003
4
Zesstra953f9972017-02-18 15:37:36 +01005FUNKTION
6========
MG Mud User88f12472016-06-24 23:31:02 +02007
Zesstra953f9972017-02-18 15:37:36 +01008 protected void NotifyMove(object dest, object oldenv, int method);
9
10
11DEFINIERT IN
12============
13
14 /std/thing/moving.c
15 /std/living/moving.c
16 /std/player/moving.c
17
18
19ARGUMENTE
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
29
30BESCHREIBUNG
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
39
40RUeCKGABEWERT
41=============
42
43 keiner
44
45
46BEMERKUNGEN
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
57
58BEISPIELE
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
74
75SIEHE AUCH
76==========
77
78 PreventLeave(), NotifyInsert(), NotifyLeave(), MayAddObject(),
79 PreventInsertLiving(), PreventLeaveLiving(), NotifyMove(),
80 PreventMove(), MayAddWeight(), move(), /std/container/restrictions.c
81
MG Mud User88f12472016-06-24 23:31:02 +020082Last modified: 04.08.2007, Zesstra