blob: 37e3ab89581046c53fde2d6f2f1edcdeaee16b94 [file] [log] [blame]
PresentRows()
*************
FUNKTION
========
mixed *PresentRows(object env);
DEFINIERT IN
============
TEAM_OBJECT (s. <living/team.h>)
ARGUMENTE
=========
object env
Das Environment des gewuenschten Objektes.
BESCHREIBUNG
============
Mit dieser Funktion bekommt man die aktuellen Teamreihen, die im Argument
env anwesend sind, des Teams zurueckgegeben. Ist env kein Objekt, so
wird environment(this_player()) als solches angenommen.
RUECKGABEWERT
=============
Es wird ein mixed-Array zurueckgegeben, dabei sind die einzelnen Reihen
selbst wiederum Arrays mit den Spielerobjekten.
BEISPIEL
========
Ein NPC im Kampf laesst eine Feuerwalze auf ein Team los, welche aber nur
Spieler in der ersten und zweiten Teamreihe Schaden zufuegen soll.
void Attack( object enemy )
{
...
object team = enemy->QueryProp(P_TEAM);
if ( objectp(team) )
{
mixed teamrows = team->PresentRows(enemy);
// Inhalt von "teamrows" zu diesem Zeitpunkt:
// ({ ({[/dwarf:hauweg]}),({}),({[/elf:spitzohr]}),({}),({}),({}) })
// In der Umgebung von Zwerg Hauweg steht also noch Elf Spitzohr, und
zwar // in der dritten Teamreihe (der hat Glueck gehabt). // Wenn
dem Team noch mehr Spieler angehoeren, befinden sie sich gerade //
nicht in der Umgebung (sprich im selben Raum) wie Hauweg.
foreach ( i : 2 )
{
foreach ( object pl : teamrows[i] )
{
tell_object(pl,"Der Feuerteufel laesst eine
Feuerwalze auf Dich "
"und Dein Team los.n");
pl->Defend(200+random(200),({DT_FIRE}),([SP_S
HOW_DAMAGE:1]),TO);
}
}
}
else
{
tell_object(enemy,"Der Feuerteufel laesst eine Feuerwalze
auf Dich "
"los.n");
enemy->Defend(200+random(200),({DT_FIRE}),([SP_SHOW_DAMAG
E:1]),TO);
}
...
}
BEMERKUNG
=========
Man beachte, dass das erste Argument (also Argument 0) die erste
Teamreihe ist.
SIEHE AUCH
==========
Uebersicht: teamkampf
Properties: P_TEAM, P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD,
P_TEAM_AUTOFOLLOW, P_TEAM_COLORS, P_TEAM_LEADER,
P_TEAM_NEWMEMBER, P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
Bewegung: IsTeamMove, TeamFlee
Mitglieder: IsTeamLeader, TeamMembers
Kampf: AssocMember, DeAssocMember, InsertEnemyTeam,
SelectNearEnemy, SelectFarEnemy
Positionen: PresentPosition, PresentEnemyRows, PresentTeamPosition,
SwapRows
Sonstiges: TeamPrefix, teamkampf_intern
Last modified: 16-08-2010, Gabylon