
cmd_shoot()
***********


FUNKTION
========

   static int cmd_shoot(string str)


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

   /std/ranged_weapon.c


ARGUMENTE
=========

   string str    - Schusssyntax


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

   Kommandofunktion der Fernwaffe. Enthaelt die Vorbereitung und den Schuss.


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

   Ist in der Fernwaffe mit AddCmd( ({"schiess", "schiesse"}), "cmd_shoot");
   angebunden. Will man eine andere Syntax haben, kann man mit
   AddCmd/RemoveCmd diese umsetzen.


BEISPIELE
=========

   RemoveCmd(({"schiess", "schiesse"})); // entferne Default-Kommando
   AddCmd(({"schleuder", "schleudere"}), #'cmd_shoot);


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

   Generell:  P_AMMUNITION, P_SHOOTING_WC, P_STRETCH_TIME
   Methoden:  shoot_dam(L), cmd_shoot(L)
   Kommandos: AddCmd(L), RemoveCmd(L)
   Syntax:    _unparsed_args(L)
   Sonstiges: fernwaffen

28.Jul 2014 Gloinson
