FindGroupN()
************


FUNKTION
========

   object*FindGroupN(object pl,int who,int n);


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

   /std/spellbook.c


ARGUMENTE
=========

   pl
     Lebewesen, von welchem die Freunde oder Feinde in der Umgebung
     gefunden werden sollen.
   who
     Flag, welches anzeigt, ob Freunde oder Feinde gefunden werden
     sollen (Konstanten definiert in '/sys/new_skills.h'):
       FG_ENEMIES - (Wert -1) Feinde sollen gefunden werden
       FG_FRIENDS - (Wert  1) Freunde sollen gefunden werden
       FG_ALL     - (Wert  0) alle Lebewesen sollen gefunden werden
   n
     Anzahl der Lebewesen, die zurueckgegeben werden sollen.
     Hierbei geht vorher noch das Skillattribute SA_EXTENSION ein!
     Es wird mindestens 1 Lebewesen zurueckgeliefert (sofern gefunden).


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

   Array mit gefundenen Lebewesen


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

   Ausgesucht werden die Lebewesen genauso wie bei FindGroup(), nur
   dass zum Schluss die Anzahl noch begrenzt wird.


BEISPIELE
=========

   Man moechte maximal 5 Feinde finden, die man gleichzeitig mit einem
   Spell belegen kann:
     enemyList=FindGroupN(caster,FG_ENEMIES,5);
   Dies gilt jedoch nur bei SA_EXTENSION==100, sonst wird
   dementsprechend mehr oder weniger zurueckgegeben.
    (also bei SA_EXTENSION==200 doppelt so viele -> 10 Lebewesen)
   Das Skillattribute SA_EXTENSION kann auch durch SA_QUALITY
   veraendert worden sein; das sollte beachtet werden.


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

   FindGroup(), FindGroupP(), P_FRIEND, P_NO_GLOBAL_ATTACK

Last modified: Mon Jan 25 15:04:31 1999 by Patryn
