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

