
P_DISABLE_COMMANDS
******************


NAME
====

   P_DISABLE_COMMANDS             "p_lib_disablecommands"


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

   /sys/player/command.h


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

   Mit dieser Prop kann man verhindern, dass Kommandos eines Spielers
   verarbeitet werden. Dies ist z.B. in Sequenzen nuetzlich, wo der Spieler
   rein passiv konsumieren soll.
   In diese Property muss ein Array mit 2 oder 3 Elementen geschrieben
   werden:
      1) Endzeitpunkt in Sekunden seit 1.1.1970 (int)
      2) Meldung (String oder Closure)
      3) (optional) Array von trotzdem erlaubten Verben (string*)
        (nur ausgewertet, wenn die Meldung ein String ist)



   Ist die Meldung ein String, wird dieser einfach bei jedem Kommando so wie
   er ist an den Spieler ausgegeben und das Kommando abgebrochen.
   Ist die Meldung eine Closure wird diese bei jedem Kommando aufgerufen und
   das Kommando abgebrochen, wenn sie einen Rueckgabewert != 0 zurueckgibt.
   In diesem Fall ist die gerufene Funktion dafuer verantwortlich, geeignete
   Meldungen an den Spieler auszugeben!
   Der Funktion wird der vom Spieler eingebene Befehl (string) als erstes
   Argument uebergeben. Zu diesem Zeitpunkt wurde alle Aliase schon
   ausgewertet. Die Funktion kann den Kommandogeber via this_player()
   ermitteln.
   Fuer weitere Informationen steht auch command_stack() zur Verfuegung,
   allerdings ist dort die Alias-Ersetzung nicht beruecksichtigt.

   Die Ausnahmeliste wird nur fuer simple Strings als Meldung ausgewertet,
   wird eine Closure verwendet, kann diese besser selber die Ausnahmen
   bestimmen.



   Fragt man diese Prop ab, erhaelt man ein Array mit 4 Elementen: setzendes
   Objekt (object), Ablaufzeit (int), Meldung (String oder Closure) und
   Liste von Ausnahmen (string*).


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

   1. Die Prop wird fuer Magier mit eingeschaltetem P_WANTS_TO_LEARN
      ignoriert.
   2. Wenn das Objekt zerstoert wird, was die Prop gesetzt hat, wird der
      Eintrag unwirksam.
   3. Wenn diese Prop gesetzt und nicht abgelaufen ist, kann nur das gleiche
      Objekt sie mit neuen Daten ueberschreiben. Alle anderen Objekte koennen
      die Prop nur loeschen. Dies soll verhindern, dass Magier unabsichtlich
      einfach anderer Leute Eintraege ueberschreiben. Dementsprechend: Lasst
      die Finger davon, wenn die schon gesetzt ist. ;-)
   4. Diese Prop darf _ausschliesslich_ mit SetProp() und QueryProp() benutzt
      werden, Set() und Query() funktionieren _nicht_.
   5. Es gibt einige Verben, die NIE blockiert werden. Zur Zeit sind dies
      "mrufe", "mschau", "bug", "idee", "typo" und "detail".
   6. Bitte nicht missbrauchen, speziell nicht dazu, die Kommandos von
      Spieler zu ueberwachen/mitzuschreiben. Das Setzen dieser Prop wird
      geloggt.


BEISPIEL
========

   In einem Raum startet eine Sequenz, in der der Spieler nichts machen soll:

   if (!pl->QueryProp(P_DISABLE_COMMANDS))
      pl->SetProp(P_DISABLE_COMMANDS,
            ({ time() + 120, "Du bist tief in Deinem Traum gefangen!\n" }) );
   else // ... Fehlerbehandlung, falls Prop schon gesetzt ...



   Soll die Prop aus irgendeinem Grund (vorzeitig) geloescht werden:
   pl->SetProp(P_DISABLE_COMMANDS, 0);


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

   command(), query_command(), command_stack(), modify_command(),
   this_player()

01.12.2012, Zesstra
