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

