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