SelectNearEnemy()
=================

FUNKTION
--------
::

        varargs object SelectNearEnemy(object *here, int forcefrom)

DEFINIERT IN
------------
::

        /std/living/team.c

ARGUMENTE
---------
::

        here      - Rueckgabewert von PresentEnemies()
        forcefrom - Gegner MUSS aus uebergebenem Array ausgewaehlt werden

BESCHREIBUNG
------------
::

        Waehlt einen im Nahkampf erreichbaren Feind aus

RUECKGABEWERT
-------------
::

        Der Auserwaehlte :-)

BEMERKUNGEN
-----------
::

        1. Falls der Spieler in einem Team ist und in einer hinteren Reihe
           steht, wird kein Feind ausgewaehlt, es sei denn, der Spieler hat
           einen Kampf mit einem Teammitglied angefangen.
        2. Wenn ein bevorzugter Feind in einer der hinteren Reihen eines
           Teams steht, wird solange das Team bevorzugt.
        3. Auch Feinde in den hinteren Reihen koennen im Nahkampf erreichbar
           sein, wenn die vorderen Reihen nicht genuegend Deckung bieten.
        4. ACHTUNG: Der Auserwaehlte kommt nicht notwendigerweise aus dem
           uebergebenen Array, wenn forcefrom=0 ist. Normalerweise ist dieses
           Verhalten beabsichtigt, damit jemand, der sich in der Reihe vor
           einen Gegner stellt, angegriffen wird, auch wenn er noch nicht
           Feind 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,
                    SelectFarEnemy
        Positionen: PresentPosition, PresentRows, PresentEnemyRows,
                    PresentTeamPosition, SwapRows
        Sonstiges:  TeamPrefix, teamkampf_intern


Last modified: 16-08-2010, Gabylon

