P_SYNTAX_HELP
*************


NAME
====

   P_SYNTAX_HELP                        "lib_p_syntax_help"


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

   /sys/thing/commands.h


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

   In dieser Property kann man fuer Spieler eine ausfuehrliche
   Syntaxhilfe zu den Kommandos eines Objektes ablegen. Diese wird
   angezeigt, wenn der Spieler das Kommando "syntaxhilfe <objekt>"
   eingibt. Die Property kann verschiedene Datenstrukturen enthalten:

   1. ein String:

   Der String wird angezeigt, hierbei ggf. umgebrochen, vorhandene
   Zeilenumbrueche werden beibehalten.

   2. ein Array: ({hilfetext, bedingungen})

   <hilfetext>:

      * ein string: Der String wird angezeigt, hierbei ggf.
        umgebrochen, vorhandene Zeilenumbrueche werden beibehalten.

      * eine lfun-closure: Diese erhaelt beim Aufruf das betreffende
        Objekt als Argument. Wenn diese dann einen String
        zurueckliefert, wird dieser dem Spieler angezeigt. Hierbei
        wird ggf. umgebrochen, vorhandene Zeilenumbrueche werden
        beibehalten.

   <bedingungen>, welche erfuellt sein muessen, damit dem Spieler die
   Hilfe angezeigt wird. Die Bedingungen sind entweder:

      * ein Mapping fuer check_restriction()

      * eine lfun-closure Diese erhaelt beim Aufruf das betreffende
        Objekt als Argument und darf eine 0 fuer 'erlaubt', 1 fuer
        'nicht erlaubt (mit Standardtext)' oder einen string fuer
        'nicht erlaubt mit individuellem Text' sein.


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

   Hat ein Objekt keine Syntaxhilfe, wird das Kommando "syntaxhilfe"
   aus dem Objekt wieder entfernt (d.h. die Property muss gesetzt
   sein, bevor der erste Spieler das Kommando eingibt).


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

   AddCmd()
