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