
AddInsertHook()
***************


OBSOLETE LFUN
=============

   Diese Efun existiert nicht mehr. Bitte stattdessen den Hook
   H_HOOK_INSERT benutzen. (s. /doc/std/hooks)


FUNKTION
========

   void AddInsertHook(object ob);


ARGUMENTE
=========

   ob
      Das Objekt, das informiert werden soll, wenn ein Objekt dem
      Spielerinventar hinzugefuegt wurde.


BESCHREIBUNG
============

   Diese Funktion wurde 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.


SIEHE AUCH
==========

   NotifyInsert(), AddInsertHook(), QueryInsertHooks()

Last modified: 18.10.2019 Zesstra
