FindRangedTarget()

FUNKTION:
    static string FindRangedTarget(string str, mapping shoot)

DEFINIERT IN:
    /std/ranged_weapon.c

ARGUMENTE:
    string str    - Schusssyntax
    mapping shoot - Schussdaten

BESCHREIBUNG:
    Erhaelt von /std/ranged_weapon::cmd_shoot() die Schussdaten und eine
    eventuell bereits modifizierte Syntax und versucht einen passenden Gegner
    im Raum oder im Gebiet (P_SHOOTING_AREA) zu finden.
    Dieser wird in SI_ENEMY im Mapping 'shoot' eingetragen und ein Wert != 0
    zurueckgegeben.

RUECKGABEWERT:
    0     bei Fehlschlag
    != 0  bei gueltigem SI_ENEMY in 'shoot'

BEMERKUNGEN:
    'shoot' enthaelt normalerweise folgende Eintraege:
    * Key P_WEAPON:       die Schusswaffe
    * Key P_WEAPON_TYPE:  P_AMMUNITION, also die Munitions-ID
    * Key P_STRETCH_TIME: P_STRETCH_TIME der Waffe
    * Key P_WC:           P_SHOOTING_WC der Waffe

SIEHE AUCH:
    Generell:  P_AMMUNITION, P_SHOOTING_WC, P_STRETCH_TIME
    Methoden:  shoot_dam(L), cmd_shoot(L)
    Gebiet:    P_RANGE, P_SHOOTING_AREA, P_TARGET_AREA
    Team:      PresentPosition(L)
    Suche:     present, SelectFarEnemy(L)
    Syntax:    _unparsed_args(L)
    Sonstiges: fernwaffen

28.Jul 2014 Gloinson