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