blob: e6d3f5e350382eb4d9059d0876977b1ca8f23561 [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001PresentRows()
2=============
3
4FUNKTION
5--------
6::
7
8 mixed *PresentRows(object env);
9
10DEFINIERT IN
11------------
12::
13
14 TEAM_OBJECT (s. <living/team.h>)
15
16ARGUMENTE
17---------
18::
19
20 object env
21 Das Environment des gewuenschten Objektes.
22
23BESCHREIBUNG
24------------
25::
26
27 Mit dieser Funktion bekommt man die aktuellen Teamreihen, die im Argument
28 env anwesend sind, des Teams zurueckgegeben. Ist env kein Objekt, so
29 wird environment(this_player()) als solches angenommen.
30
31RUECKGABEWERT
32-------------
33::
34
35 Es wird ein mixed-Array zurueckgegeben, dabei sind die einzelnen Reihen
36 selbst wiederum Arrays mit den Spielerobjekten.
37
38BEISPIEL
39--------
40::
41
42 Ein NPC im Kampf laesst eine Feuerwalze auf ein Team los, welche aber nur
43 Spieler in der ersten und zweiten Teamreihe Schaden zufuegen soll.
44
45 void Attack( object enemy )
46 {
47 ...
48
49 object team = enemy->QueryProp(P_TEAM);
50
51 if ( objectp(team) )
52 {
53 mixed teamrows = team->PresentRows(enemy);
54
55// Inhalt von "teamrows" zu diesem Zeitpunkt:
56
57// ({ ({[/dwarf:hauweg]}),({}),({[/elf:spitzohr]}),({}),({}),({}) })
58
59// In der Umgebung von Zwerg Hauweg steht also noch Elf Spitzohr, und zwar
60// in der dritten Teamreihe (der hat Glueck gehabt).
61// Wenn dem Team noch mehr Spieler angehoeren, befinden sie sich gerade
62// nicht in der Umgebung (sprich im selben Raum) wie Hauweg.
63
64 foreach ( i : 2 )
65 {
66 foreach ( object pl : teamrows[i] )
67 {
68 tell_object(pl,"Der Feuerteufel laesst eine Feuerwalze auf Dich "
69 "und Dein Team los.\n");
70
71 pl->Defend(200+random(200),({DT_FIRE}),([SP_SHOW_DAMAGE:1]),TO);
72 }
73 }
74 }
75 else
76 {
77 tell_object(enemy,"Der Feuerteufel laesst eine Feuerwalze auf Dich "
78 "los.\n");
79
80 enemy->Defend(200+random(200),({DT_FIRE}),([SP_SHOW_DAMAGE:1]),TO);
81 }
82
83 ...
84 }
85
86BEMERKUNG
87---------
88::
89
90 Man beachte, dass das erste Argument (also Argument 0) die erste
91 Teamreihe ist.
92
93SIEHE AUCH
94----------
95::
96
97 Uebersicht: teamkampf
98 Properties: P_TEAM, P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD,
99 P_TEAM_AUTOFOLLOW, P_TEAM_COLORS, P_TEAM_LEADER,
100 P_TEAM_NEWMEMBER, P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
101 Bewegung: IsTeamMove, TeamFlee
102 Mitglieder: IsTeamLeader, TeamMembers
103 Kampf: AssocMember, DeAssocMember, InsertEnemyTeam,
104 SelectNearEnemy, SelectFarEnemy
105 Positionen: PresentPosition, PresentEnemyRows, PresentTeamPosition,
106 SwapRows
107 Sonstiges: TeamPrefix, teamkampf_intern
108
109
110Last modified: 16-08-2010, Gabylon
111