Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc//wiz/teamkampf

Teamkampf im MorgenGrauen
=========================

Zum Teamkampf im MG gehoeren zwei Objekte: Das Lebewesen, das im Team ist,
sowie das Teamobjekt. Ersteres erbt seine Funktionalitaet aus

/std/living/team.c

das Teamobjekt ist ein clone von

/obj/team.c

Allerdings sollte man immer das #define fuer diesen Pfad nutzen, welches
in /sys/living/team.h definiert ist: TEAM_OBJECT

Darueberhinaus gibt es in diesem Verzeichnis noch den Teammaster.


Alle relevanten Funktionen und Properties sind im Teammitglied abrufbar und
liefern Informationen ueber den Teamkampf.


UEBERSICHT ueber die Properties und Funktionen des Teamkampfs
=============================================================

Properties des Teammitglieds:
----------------------------
P_TEAM                 - Teamobjekt
P_TEAM_NEWMEMBER       - Spieler moechte ins Team hiervon aufgenommen werden.
P_TEAM_ATTACK_CMD      - Angriffsbefehl des Spielers, nicht setzbar.
P_TEAM_AUTOFOLLOW      - Folgewunsch des Spielers, nicht setzbar.
P_TEAM_WANTED_ROW      - Gewuenschte Reihe des Spielers.
P_TEAM_WIMPY_ROW       - Fluchtreihe des Spielers.
P_TEAM_LEADER          - Spieler ist Anfuehrer dieses Teams.
P_TEAM_ASSOC_MEMBERS   - Alle zugeordneten NPCs bzw. der Spieler dem dieser
                         NPC zugeordnet ist.
P_TEAM_COLORS          - Grenzwerte fuer farbige Anzeige.

Funktionen des Teammitglieds:
----------------------------
TeamPrefix()           - "[Team Teamname] " falls Teammitglied, "" sonst.
IsTeamLeader()         - Test ob Spieler Anfuehrer eines Teams ist.
IsTeamMove()           - Test ob Angriffsbewegung gerade ausgefuehrt wird.
TeamMembers()          - Teammitglieder.
PresentPosition()      - Aktuelle Reihennummer des Spielers.
PresentTeamPositions() - Reihennummern aller anwesenden Teammitglieder.
PresentTeamRows()      - Reihen aller anwesenden Teammitglieder.
PresentEnemyRows()     - Reihen aller anwesenden Feindteams zusammen.
SelectNearEnemy()      - Waehlt direkt angreifbaren Feind aus.
SelectFarEnemy()       - Waehlt Feind aus hinteren Reihen aus.
InsertEnemyTeam()      - Macht alle Mitglieder von Team des Feindes zu
                         Feinden aller Mitglieder des eigenen Teams.
AssocMember()          - Assoziiert einen HilfsNPC mit einem Spieler.
DeAssocMember()        - Hebt Assoziation zwischen NPC und Spieler auf.
TeamFlee()             - Spieler wird veranlasst in Fluchtreihe zu wechseln.

Funktionen des Teamobjekts:
--------------------------
SwapRows()             - Spieler tauschen die Reihen


BEISPIEL:
  Man moechte von einem Spieler, welcher sich in einem Team befindet, alle
  Teammitglieder sowie deren Anzahl ermitteln, die VOR diesem Spieler stehen.

  Im abfragenden Objekt muss man zunaechst die Headerdatei des Teamkampfs
  includen:

  #include "/sys/living/team.h"


  void fun( object pl )
  {
   int act_row,all;
   mixed *rows;
   object team,*team_members;

   team=pl->QueryProp(P_TEAM);           // liefert das Teamobjekt

   act_row=pl->PresentPosition();        // aktuelle Position ermitteln

   team_members=({});

   if ( objectp(team) && (act_row > 1) )
    {
     rows=team->PresentRows(ENV(pl));    // die Reihen werden als mixed-array
                                         // uebergeben

     foreach ( int i : act_row )
      team_members+=rows[i];             // die Reihen werden komplett ins
                                         // neue Array uebertragen
    }

   all=sizeof(team_members);             // Anzahl der Teammitglieder, die
                                         // vor dem Spieler stehen
  }


SIEHE AUCH:
        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, PresentRows, PresentEnemyRows,
                    PresentTeamPosition, SwapRows
        Sonstiges:  TeamPrefix, teamkampf_intern


---------------------------------------------------------------------------- Last modified: 16-08-2010, Gabylon


zurück zur Übersicht

YOUTUBE | FACEBOOK | TWITTER | DISCORD | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2023 © MorgenGrauen.