AddPursuer()
************


FUNKTION
========

   void AddPursuer(object pursuer)


ARGUMENTE
=========

   pursuer: Objekt, das demjenigen folgen soll, in dem AddPursuer
            aufgerufen wurde.


FUNKTION
========

   Durch den Aufruf von AddPursuer in einem Objekt, welches living() ist,
   wird das Object, welches als Argument uebergeben wurde, in die Liste
   der Verfolger eingetragen. Alle Objekte, die in der Verfolgerliste stehen,
   werden bei Bewegungen des Verfolgten in dasselbe Environment bewegt.


RUECKGABEWERT
=============

   keiner


BEMERKUNG
=========

   Im Verfolger wird PreventFollow mit dem Zielobjekt, in das der Verfolgte
   bewegt wird, aufgerufen. Dadurch kann der raeumliche Bereich, in dem
   verfolgt wird, eingeschraenkt werden.


BEISPIELE
=========

   find_player("jof")->AddPursuer(find_player("kirk"))
   Danach wird Jof von Kirk verfolgt.


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

   * Lfuns:       RemovePursuer(), PreventFollow()

   * Properties:  P_PURSUERS
