
AssocMember()
*************


FUNKTION
========

   int AssocMember(object npc)


DEFINIERT IN
============

   /std/living/team.c


ARGUMENTE
=========

   Der zuzuordnende NPC.


BESCHREIBUNG
============

   Ordnet einen NPC einem Spieler zu. Dieser ist dann
   immer im Team des Spielers, moeglichst in der gleichen Reihe.


RUECKGABEWERT
=============

   1, falls Zuordnung erfolgreich, sonst 0.


BEISPIEL
========

   void fun(object pl)
   {
     if ( pl && pl->AssocMember(this_object()) )
       tell_object(pl,break_string(
         "Ich kaempfe nun auf Deiner Seite!\n",78,"Ein Feuerteufel "
         "teilt Dir mit:");
    ...
   }


BEMERKUNGEN
===========

   1. Kann nur von Gilden, Spellbooks, vom Objekt selber und vom
      zuzuordnenden NPC aufgerufen werden.
   2. Einem NPC, der selber einem Spieler zugeordnet ist, kann kein
      NPC zugeordnet werden.


SIEHE AUCH
==========

   Uebersicht: teamkampf
   Properties: P_TEAM, P_TEAM_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:      DeAssocMember, InsertEnemyTeam, SelectNearEnemy,
               SelectFarEnemy
   Positionen: PresentPosition, PresentRows, PresentEnemyRows,
               PresentTeamPosition, SwapRows
   Sonstiges:  TeamPrefix, teamkampf_intern

Last modified: 04.10.2011, Zesstra
