blob: 143efc9dbe44d05d3b49458ff50f25f2a7f0ab7f [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001AddInsertHook()
2===============
3
4********************* OBSOLETE LFUN ***********************************
5* Diese Efun bitte nicht mehr benutzen, sondern stattdessen die *
6* Hooks (s. /doc/std/hooks). *
7***********************************************************************
8AddInsertHook()
9
10FUNKTION
11--------
12::
13
14 void AddInsertHook(object ob);
15
16DEFINIERT IN
17------------
18::
19
20 /std/player/restrictions.c
21
22ARGUMENTE
23---------
24::
25
26 ob - Das Objekt, das informiert werden soll, wenn ein Objekt dem
27 Spielerinventar hinzugefuegt wurde.
28
29BESCHREIBUNG
30------------
31::
32
33 (Diese Funktionalitaet wurde ersetzt durch den allgemeinen Hook
34 H_HOOK_INSERT und ist nur noch aus Gruenden der Kompatibilitaet
35 vorhanden.)
36
37 Diese Funktion wird im Spielerobjekt aufgerufen, um das Objekt ob als
38 Hook-Listener anzumelden. Auf diese Weise eingetragene Listener
39 werden informiert, wenn ein Objekt ins Spielerinventar bewegt wurde.
40 Technisch wird die Bewegung ueber NotifyInsert() im Spielerobjekt
41 detektiert, und im Listener-Objekt wird die Funktion InsertNotify()
42 gerufen, die als Parameter das neu ins Spielerinventar bewegte Objekt
43 uebergeben bekommt.
44
45RUeCKGABEWERT
46-------------
47::
48
49 keiner
50
51BEMERKUNGEN
52-----------
53::
54
55 Das Listener-Objekt muss sich ebenfalls im Spielerinventar befinden,
56 ansonsten wird der eingetragene Hook wieder geloescht.
57
58BEISPIEL
59--------
60::
61
62
63
64 a) Objekt "ob" wird im Spieler als Listener angemeldet:
65 this_player()->AddInsertHook(ob);
66
67 b) Objekt "new" wird ins Spielerinventar bewegt, das Spielerobjekt
68 informiert "ob" darueber:
69 ob->InsertNotify(new);
70
71 c) Das Listener-Objekt "ob" reagiert darauf, z.B. indem es die Fackel
72 loescht, sofern sie vorher brannte:
73 void InsertNotify(object new) {
74 if ( objectp(new) && new->id("\nfackel") &&
75 new->QueryProp(P_LIGHTED) )
76 new->unlight();
77 return;
78 }
79
80SIEHE AUCH
81----------
82::
83
84 NotifyInsert(), RemoveInsertHook(), QueryInsertHooks()
85
86
87Last modified: 14.04.2010, Arathorn
88