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