RemoveInsertHook()
==================

********************* OBSOLETE LFUN ***********************************
* Diese Efun bitte nicht mehr benutzen, sondern stattdessen die       *
* Hooks (s. /doc/std/hooks).                                          *
***********************************************************************
RemoveInsertHook()

FUNKTION
--------
::

     void RemoveInsertHook(object ob);

DEFINIERT IN
------------
::

     /std/player/restrictions.c

ARGUMENTE
---------
::

     ob - Das Objekt, das als Listener aus der Liste ausgetragen werden soll

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 ein als Listener
     eingetragenes Hook-Objekt ob wieder auszutragen.

RUeCKGABEWERT
-------------
::

     keiner

SIEHE AUCH
----------
::

    NotifyInsert(), AddInsertHook(), QueryInsertHooks()


Last modified: 14.04.2010, Arathorn

