FindDistantGroups()
*******************


FUNKTION
========

   varargs mixed FindDistantGroups(object pl, int dist, int dy, int dx)


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

   /std/spellbook.c


ARGUMENTE
=========

   pl   - Caster
   dist - Entfernung
   dy   - Tiefe      (default 100)
   dx   - Breite     (default 100*MAX_TEAM_ROWLEN)


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

   Ermitteld feindliche (bei Spielern NPCs, bei NPCs Spieler) und
   freundliche (bei Spielern Spieler, bei NPCs NPCs) Lebewesen,
   die sich in Entfernung <dist> in einem Bereich der Breite <dx>
   und Tiefe <dy> befinden.


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

   Array mit zwei Arrays als Inhalt:
   ({ feindliche Lebewesen, freundliche Lebewesen })


BEMERKUNGEN
===========

   Die Entfernungsangaben sind als cm. zu verstehen.
   Jedes Lebewesen belegt 50cm x 50cm mit Abstand 50cm
   zum naechsten Lebewesen in jeder Richtung.
   Die Breitenangabe wirkt sich nur in der Anzahl der
   Lebewesen aus, die zufaellig pro Reihe ausgewaehlt werden.
   Die Skillattribute SA_RANGE und SA_EXTENSION werden beruecksichtigt.


BEISPIEL
========

   dist=200, dy=200, dx=200, ein Punkt = 50cm x 50cm
      . . . . . . . . . . . . .
   3. . . . . . . G . . . . . .
      . . . . . . . . . . . . .
   2. . . . . . G . G . . . . .dist+dy/2-+
      . . . . . . . . . . . . .          |
   1. . . . . G . G . G . . . .     dist +-+ (Gegner G)
   ---.-.-.-.-.-.-.-.-.-.-.-.-.          | |
   1. . . . . F . F . F . . . .dist-dy/2-+ | (Freunde F)
      . . . . . . . . . . . . .            |
   2. . . . . . F . S . . . . .------------+ (Reihe des Spielers S)
      . . . . . . . . . . . . .
   3. . . . . . . F . . . . . .
      . . . . . . . . . . . . .
   Abgedeckter Bereich:           100cm  bis  300cm
           Reihe 3:  375cm..425cm         375>300 -> nicht erwischt
           Reihe 2:  275cm..325cm         275<300 -> erwischt
   Gegner  Reihe 1:  175cm..225cm 100<175,225<300 -> erwischt
   Freunde Reihe 1:   75cm..125cm 100<125         -> erwischt
           Reihe 2:  -25cm...25cm 100> 25         -> nicht erwischt
           Reihe 3: -125cm..-75cm 100>-75         -> nicht erwischt
   Ergebnis: ({({G,G,G,G}),({F,F})})
   (Maximal 2 Lebewesen pro Reihe bei Breite 200).


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

   teams, FindDistantGroup
