blob: 93049080125311a17fcda93f3e735954721b03a5 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001AddReadDetail()
Zesstra953f9972017-02-18 15:37:36 +01002***************
MG Mud User88f12472016-06-24 23:31:02 +02003
MG Mud User88f12472016-06-24 23:31:02 +02004
Zesstra953f9972017-02-18 15:37:36 +01005FUNKTION
6========
MG Mud User88f12472016-06-24 23:31:02 +02007
Zesstra953f9972017-02-18 15:37:36 +01008 void AddReadDetail(string|string*keys,
9 string|string*|mapping|closure desc);
MG Mud User88f12472016-06-24 23:31:02 +020010
MG Mud User88f12472016-06-24 23:31:02 +020011
Zesstra953f9972017-02-18 15:37:36 +010012DEFINIERT IN
13============
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015 /std/thing/description.c
MG Mud User88f12472016-06-24 23:31:02 +020016
MG Mud User88f12472016-06-24 23:31:02 +020017
Zesstra953f9972017-02-18 15:37:36 +010018ARGUMENTE
19=========
MG Mud User88f12472016-06-24 23:31:02 +020020
Zesstra953f9972017-02-18 15:37:36 +010021 keys
22 String oder Array von Strings mit den Namen der Details.
23 desc
24 String, Mapping, String-Array oder Closure mit/zur Beschreibung.
MG Mud User88f12472016-06-24 23:31:02 +020025
MG Mud User88f12472016-06-24 23:31:02 +020026
Zesstra953f9972017-02-18 15:37:36 +010027BESCHREIBUNG
28============
MG Mud User88f12472016-06-24 23:31:02 +020029
Zesstra953f9972017-02-18 15:37:36 +010030 Die Beschreibung der Details <keys> wird gesetzt. Wie die Details
31 beim Lesen ausgegeben werden, haengt im wesentlichen vom Typ der
32 Beschreibung <desc> ab:
33 <desc> ist ein String.
34 Beim Lesen wird dieser String zurueckgegeben.
35 <desc> ist ein String-Array.
36 Beim Lesen wird zufaellig einer der Strings zurueckgegeben.
37 <desc> ist ein Mapping.
38 Das Mapping muss folgenden Aufbau haben:
39 ([0: "Defaulttext",
40 "rasse1": "r1text", ...]).
MG Mud User88f12472016-06-24 23:31:02 +020041
Zesstra953f9972017-02-18 15:37:36 +010042 Falls fuer die Rasse des das Detail untersuchenden Spielers ein
43 Eintrag im Mapping existiert, wird der entsprechende Text
44 zurueckgegeben, ansonsten der Defaulttext. Auf diese Weise sind
45 rassenabhaengige Texte moeglich.
46 <desc> ist eine Closure.
47 In diesem Fall wird die Closure ausgefuehrt und das Ergebnis
48 zurueckgegeben. Die Closure bekommt dabei den Namen des Details
49 als Parameter uebergeben.
50
51 Fuer lesbare Details koennen Forscherpunkte eingetragen werden.
52
53 Will man ein lesbares Detail an einem Objekt haben, welches der Spieler
54 mit "lies <id>" (<id> ist eine ID des Objekts) bekommt, muss man ein
55 Detail SENSE_DEFAULT hinzufuegen.
56 (Ein Detail "<id>" hinzuzufuegen, hat einen ganz anderes Effekt! Dieses
57 wuerde vom Spieler mit "lies <id> an <id>" gelesen werden und ist
58 meistens nicht das, was gewuenscht wird.)
59
60
61BEMERKUNGEN
62===========
63
64 (1) Auf die 'desc' wird kein process_string() mehr angewendet.
65 Bitte stattdessen lfun closures bzw. 'inline closures'
66 verwenden.
67
68 (2) Im Gegensatz zum Verhalten von AddTouchDetail(), AddSmells() und
69 AddSounds() wirkt ein SENSE_DEFAULT-Detail in einem Raum nicht.
70 Ein einfaches "lies" bleibt dann ohne Rueckgabewert.
71
72
73BEISPIELE
74=========
75
76 AddReadDetail( ({ "schild" }),
77 "BETRETEN STRENGSTENS VERBOTEN!\n" );
78
79 AddReadDetail("inschrift",
80 ([0: "Dort steht: Ein Ring sie zu binden. ....\n",
81 "elf": "Alles in dir straeubt sich, DAS DA zu lesen.\n"]));
82
83 AddReadDetail("regeln",
84 function string() {
85 this_player()->More("/etc/WIZRULES", 1);
86 return "";
87 });
88
89
90SIEHE AUCH
91==========
92
93 Setzen: AddDetail(), AddSmells(), AddSounds(),
94 AddTouchDetail()
95 Loeschen: RemoveDetail(), RemoveReadDetail(), RemoveSmells(),
96 RemoveSounds(), RemoveTouchDetail()
97 Daten: P_DETAILS, P_READ_DETAILS, P_SMELLS, P_SOUNDS, P_TOUCH_DETAILS
98 Veraltet: AddSpecialDetail(), RemoveSpecialDetail(), P_READ_MSG
99 Sonstiges: GetDetail(), break_string()
MG Mud User88f12472016-06-24 23:31:02 +0200100
10120.01.2015, Zesstra