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