GESCHUETZT
SYNOPSIS
        int command(string str)
        int command(string str, object ob)

BESCHREIBUNG
        Wertet <str> wie ein Kommando aus, das direkt von einem interaktiven
        Benutzer gegeben wurde. Das Kommando wird auf das aktuelle Objekt
        angewendet oder, falls angegeben, auf das Objekt <obj>.

        Der Rueckgabewert ist 0 bei Fehlschlag. Bei Erfolg wird ein
        numerischer Wert zurueckgegeben, der die Eval Kosten darstellt. Ein
        hoeherer Rueckgabewert bedeutet hoehere Kosten. Die Eval Kosten
        entsprechen ungefaehr der Anzahl ausgefuehrter LPC Maschinencode
        Instruktionen.

        Wenn command() auf auf ein anderes Objekt angewedet wird, koennen auf
        diesem Wege keine "static" deklarierten Funktionen aufgerufen werden,
        um etwas Schutz vor unerlaubten Aufrufen zu geben.

        Kommandos werden gestapelt, das heisst, nach der Ausfuehrung von <str>
        werden die alten Werte fuer this_player(), query_verb() etc. wieder
        hergestellt.

GESCHICHTE
        Bis 3.2.6 im Native-Modus konnten Kommandos nur auf das aktuelle 
            Objekt angewendet werden.
        Seit 3.2.7 werden Kommandos gestapelt.

SIEHE AUCH
        command_stack(E), notify_fail(E), enable_commands(E), get_eval_cost(E)
