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
