blob: eb81f3511d8ff31b0d3dac89f90bb8df4a47b675 [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001FindDistantGroups()
2===================
3
4FUNKTION
5--------
6::
7
8 varargs mixed FindDistantGroups(object pl, int dist, int dy, int dx)
9
10DEFINIERT IN
11------------
12::
13
14 /std/spellbook.c
15
16ARGUMENTE
17---------
18::
19
20 pl - Caster
21 dist - Entfernung
22 dy - Tiefe (default 100)
23 dx - Breite (default 100*MAX_TEAM_ROWLEN)
24
25BESCHREIBUNG
26------------
27::
28
29 Ermitteld feindliche (bei Spielern NPCs, bei NPCs Spieler) und
30 freundliche (bei Spielern Spieler, bei NPCs NPCs) Lebewesen,
31 die sich in Entfernung <dist> in einem Bereich der Breite <dx>
32 und Tiefe <dy> befinden.
33
34RUECKGABEWERT
35-------------
36::
37
38 Array mit zwei Arrays als Inhalt:
39 ({ feindliche Lebewesen, freundliche Lebewesen })
40
41BEMERKUNGEN
42-----------
43::
44
45 Die Entfernungsangaben sind als cm. zu verstehen.
46 Jedes Lebewesen belegt 50cm x 50cm mit Abstand 50cm
47 zum naechsten Lebewesen in jeder Richtung.
48 Die Breitenangabe wirkt sich nur in der Anzahl der
49 Lebewesen aus, die zufaellig pro Reihe ausgewaehlt werden.
50 Die Skillattribute SA_RANGE und SA_EXTENSION werden beruecksichtigt.
51
52BEISPIEL
53--------
54::
55
56 dist=200, dy=200, dx=200, ein Punkt = 50cm x 50cm
57 . . . . . . . . . . . . .
58 3. . . . . . . G . . . . . .
59 . . . . . . . . . . . . .
60 2. . . . . . G . G . . . . .dist+dy/2-+
61 . . . . . . . . . . . . . |
62 1. . . . . G . G . G . . . . dist +-+ (Gegner G)
63 ---.-.-.-.-.-.-.-.-.-.-.-.-. | |
64 1. . . . . F . F . F . . . .dist-dy/2-+ | (Freunde F)
65 . . . . . . . . . . . . . |
66 2. . . . . . F . S . . . . .------------+ (Reihe des Spielers S)
67 . . . . . . . . . . . . .
68 3. . . . . . . F . . . . . .
69 . . . . . . . . . . . . .
70 Abgedeckter Bereich: 100cm bis 300cm
71 Reihe 3: 375cm..425cm 375>300 -> nicht erwischt
72 Reihe 2: 275cm..325cm 275<300 -> erwischt
73 Gegner Reihe 1: 175cm..225cm 100<175,225<300 -> erwischt
74 Freunde Reihe 1: 75cm..125cm 100<125 -> erwischt
75 Reihe 2: -25cm...25cm 100> 25 -> nicht erwischt
76 Reihe 3: -125cm..-75cm 100>-75 -> nicht erwischt
77 Ergebnis: ({({G,G,G,G}),({F,F})})
78 (Maximal 2 Lebewesen pro Reihe bei Breite 200).
79
80SIEHE AUCH
81----------
82::
83
84 teams, FindDistantGroup
85