blob: 66094fef2620490912f23e31897af7353caa3380 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001AddSmells()
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 AddSmells(string|string* keys, string|string*|mapping|closure desc);
MG Mud User88f12472016-06-24 23:31:02 +02009
MG Mud User88f12472016-06-24 23:31:02 +020010
Zesstra953f9972017-02-18 15:37:36 +010011DEFINIERT IN
12============
MG Mud User88f12472016-06-24 23:31:02 +020013
Zesstra953f9972017-02-18 15:37:36 +010014 /std/thing/description.c
MG Mud User88f12472016-06-24 23:31:02 +020015
MG Mud User88f12472016-06-24 23:31:02 +020016
Zesstra953f9972017-02-18 15:37:36 +010017ARGUMENTE
18=========
MG Mud User88f12472016-06-24 23:31:02 +020019
Zesstra953f9972017-02-18 15:37:36 +010020 keys
21 String oder Array von Strings mit den Namen der Details.
22 desc
23 String, Mapping, String-Array oder Closure mit/zur Beschreibung.
24
25
26BESCHREIBUNG
27============
28
29 Diese Funktion entspricht dem AddDetail() fuer Standarddetails, nur
30 koennen hiermit Gerueche realisiert werden:
31 Die Beschreibung der Details <keys> wird gesetzt. Wie die Details
32 bei der Untersuchung aussehen, haengt im wesentlichen vom Typ der
33 Beschreibung <desc> ab:
34 <desc> ist ein String.
35 Beim Untersuchen wird dieser String zurueckgegeben.
36 <desc> ist ein String-Array.
37 Beim Untersuchen wird zufaellig einer der Strings zurueckgegeben.
38 <desc> ist ein Mapping.
39 Das Mapping muss folgenden Aufbau haben:
40 ([0: "Defaulttext",
41 "rasse1": "r1text", ...]).
42
43 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 Details moeglich. Siehe auch die Beispiele.
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 Geruchsdetails koennen Forscherpunkte eingetragen werden.
53
54 Gerueche koennen allgemein einen Raum oder Objekt zugeordnet werden:
55 dafuer muss man als <key> SENSE_DEFAULT uebergeben.
56
57
58
59 Spielerkommandos: "riech", "rieche", "schnupper", "schnuppere"
60
61
62BEISPIELE
63=========
64
65 Ein kleines Beispiel fuer rassenabhaengige Gerueche mit Closures:
66 string strafe(string key);
67 ...
68 AddSmells(SENSE_DEFAULT,
69 "Der Geruch von Knoblauch ist ueberwaeltigend!\n");
70 AddSmells(({"knoblauch","geruch"}),
71 ([0: "Puhh, das stinkt!\n",
72 "vampir": #'strafe]));
73 ...
74 string strafe(string key) {
75 this_player()->reduce_hit_points(100);
76 return "Der Knoblauch schmerzt dich furchtbar!\n";
77 }
78
79
80SIEHE AUCH
81==========
82
83 Setzen: AddDetail(), AddReadDetail(), AddSounds(),
84 AddTouchDetail()
85 Loeschen: RemoveDetail(), RemoveReadDetail(), RemoveSmells(),
86 RemoveSounds(), RemoveTouchDetail()
87 Daten: P_DETAILS, P_READ_DETAILS, P_SMELLS, P_SOUNDS, P_TOUCH_DETAILS
88 Veraltet: AddSpecialDetail(), RemoveSpecialDetail(), P_READ_MSG
89 Sonstiges: GetDetail(), break_string()
MG Mud User88f12472016-06-24 23:31:02 +020090
9120.01.2015, Zesstra