Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc/lfun/AddReadDetail

AddReadDetail()
***************


FUNKTION
========

   void AddReadDetail(string|string*keys,
                      string|string*|mapping|closure desc);


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

   /std/thing/description.c


ARGUMENTE
=========

   keys
     String oder Array von Strings mit den Namen der Details.
   desc
     String, Mapping, String-Array oder Closure mit/zur Beschreibung.


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

   Die Beschreibung der Details  wird gesetzt. Wie die Details
   beim Lesen ausgegeben werden, haengt im wesentlichen vom Typ der
   Beschreibung  ab:
      ist ein String.
      Beim Lesen wird dieser String zurueckgegeben.
      ist ein String-Array.
      Beim Lesen wird zufaellig einer der Strings zurueckgegeben.
      ist ein Mapping.
       Das Mapping muss folgenden Aufbau haben:
         ([0:        "Defaulttext",
           "rasse1": "r1text", ...]).

       Falls fuer die Rasse des das Detail untersuchenden Spielers ein
       Eintrag im Mapping existiert, wird der entsprechende Text
       zurueckgegeben, ansonsten der Defaulttext. Auf diese Weise sind
       rassenabhaengige Texte moeglich.
      ist eine Closure.
       In diesem Fall wird die Closure ausgefuehrt und das Ergebnis
       zurueckgegeben. Die Closure bekommt dabei den Namen des Details
       als Parameter uebergeben.

   Fuer lesbare Details koennen Forscherpunkte eingetragen werden.

   Will man ein lesbares Detail an einem Objekt haben, welches der Spieler
   mit "lies " ( ist eine ID des Objekts) bekommt, muss man ein
   Detail SENSE_DEFAULT hinzufuegen.
   (Ein Detail "" hinzuzufuegen, hat einen ganz anderes Effekt! Dieses
    wuerde vom Spieler mit "lies  an " gelesen werden und ist
    meistens nicht das, was gewuenscht wird.)


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

   (1) Auf die 'desc' wird kein process_string() mehr angewendet.
       Bitte stattdessen lfun closures bzw. 'inline closures'
       verwenden.

   (2) Im Gegensatz zum Verhalten von AddTouchDetail(), AddSmells() und
       AddSounds() wirkt ein SENSE_DEFAULT-Detail in einem Raum nicht.
       Ein einfaches "lies" bleibt dann ohne Rueckgabewert.


BEISPIELE
=========

   AddReadDetail( ({ "schild" }),
     "BETRETEN STRENGSTENS VERBOTEN!\n" );

   AddReadDetail("inschrift",
                 ([0: "Dort steht: Ein Ring sie zu binden. ....\n",
                   "elf": "Alles in dir straeubt sich, DAS DA zu lesen.\n"]));

   AddReadDetail("regeln",
     function string() {
       this_player()->More("/etc/WIZRULES", 1);
       return "";
     });


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


Setzen: AddDetail(), AddSmells(), AddSounds(), AddTouchDetail() Loeschen: RemoveDetail(), RemoveReadDetail(), RemoveSmells(), RemoveSounds(), RemoveTouchDetail() Daten: P_DETAILS, P_READ_DETAILS, P_SMELLS, P_SOUNDS, P_TOUCH_DETAILS Veraltet: AddSpecialDetail(), RemoveSpecialDetail(), P_READ_MSG Sonstiges: GetDetail(), break_string()

20.01.2015, Zesstra


zurück zur Übersicht

YOUTUBE | FACEBOOK | TWITTER | DISCORD | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2023 © MorgenGrauen.