enable_commands()
=================

SYNOPSIS
--------
::

        void enable_commands();

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

        Erlaubt dem Objekt, Kommandos zu verwenden, die normalerweise Usern
        zugaenglich sind. Der Aufruf markiert das Objekt als "living". Dies
        wird fuer Spieler und alle von /std/npc abgeleiteten Objekte
        bereits von der Mudlib erledigt und sollte nicht nochmals gemacht
        werden.

        Diese Funktion darf nicht ausserhalb von create() (oder reset(0) im
        Compat-Modus) aufgerufen werden, weil der Kommandogeber auf dieses
        Objekt gesetzt wird.

BEISPIEL
--------
::

        void create()
        {
            enable_commands();
            ...
        }

        Dies markiert das Objekt als "living".

SIEHE AUCH
----------
::

        command(E), living(E), disable_commands(E), native(C), hooks(C)
        set_living_name(E)

