blob: 5e8027298f5fa4d1324e0a798ac2ad259c0b34c4 [file] [log] [blame]
********************* OBSOLETE LFUN ***********************************
* Diese Efun bitte nicht mehr benutzen, sondern stattdessen die *
* Hooks (s. /doc/std/hooks). *
***********************************************************************
AddInsertHook()
FUNKTION:
void AddInsertHook(object ob);
DEFINIERT IN:
/std/player/restrictions.c
ARGUMENTE:
ob - Das Objekt, das informiert werden soll, wenn ein Objekt dem
Spielerinventar hinzugefuegt wurde.
BESCHREIBUNG:
(Diese Funktionalitaet wurde ersetzt durch den allgemeinen Hook
H_HOOK_INSERT und ist nur noch aus Gruenden der Kompatibilitaet
vorhanden.)
Diese Funktion wird im Spielerobjekt aufgerufen, um das Objekt ob als
Hook-Listener anzumelden. Auf diese Weise eingetragene Listener
werden informiert, wenn ein Objekt ins Spielerinventar bewegt wurde.
Technisch wird die Bewegung ueber NotifyInsert() im Spielerobjekt
detektiert, und im Listener-Objekt wird die Funktion InsertNotify()
gerufen, die als Parameter das neu ins Spielerinventar bewegte Objekt
uebergeben bekommt.
RUeCKGABEWERT:
keiner
BEMERKUNGEN:
Das Listener-Objekt muss sich ebenfalls im Spielerinventar befinden,
ansonsten wird der eingetragene Hook wieder geloescht.
BEISPIEL:
a) Objekt "ob" wird im Spieler als Listener angemeldet:
this_player()->AddInsertHook(ob);
b) Objekt "new" wird ins Spielerinventar bewegt, das Spielerobjekt
informiert "ob" darueber:
ob->InsertNotify(new);
c) Das Listener-Objekt "ob" reagiert darauf, z.B. indem es die Fackel
loescht, sofern sie vorher brannte:
void InsertNotify(object new) {
if ( objectp(new) && new->id("\nfackel") &&
new->QueryProp(P_LIGHTED) )
new->unlight();
return;
}
SIEHE AUCH:
NotifyInsert(), RemoveInsertHook(), QueryInsertHooks()
----------------------------------------------------------------------------
Last modified: 14.04.2010, Arathorn