
SelectEnemy()
*************


FUNKTION
========

   varargs object SelectEnemy(object*here);


DEFINIERT IN
============

   /std/living/combat.c


ARGUMENTE
=========

   here
     Gegner, aus welchen ausgewaehlt werden soll (optional!)


RUeCKGABEWERT
=============

   Ausgewaehlter Gegner, der angegriffen werden soll.


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

   Diese Funktion waehlt einen Gegner aus, der angegriffen werden soll.
   Werden keine Gegner im Parameter <here> angegeben, so wird der
   Rueckgabewert der Funktion PresentEnemies() verwandt, welche die
   aktuell anwesenden Gegner im Raum liefert.
   Sind keine Gegner anwesend, so wird 0 zurueckgeliefert.
   Danach wird geschaut, ob Gegner bevorzugt ausgewaehlt werden sollen.
   Dies geschieht mittels der Funktion QueryPreferedEnemy().
   Auch dieser bevorzugte Gegner muss im selben Raum sein! Wenn nicht,
   wird doch irgendein anderer Gegner ausgewaehlt und zurueckgegeben.


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

   PresentEnemies(), QueryPreferedEnemy(), P_PREFERED_ENEMY,
   InsertEnemy(), StopHuntFor()

Last modified: Thu May 27 15:01:48 1999 by Patryn
