
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 "synxtaxhilfe <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
