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