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