blob: 6d4e5ed4c93558ad134380f69f6d083827fd0e0b [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001GetDetail()
2===========
3
4FUNKTION
5--------
6::
7
8 varargs string GetDetail(string key, string race, int sense)
9
10DEFINIERT IN
11------------
12::
13
14 /std/thing/description.c
15
16ARGUMENTE
17---------
18::
19
20 key
21 Das zu ermittelnde Detail.
22 race
23 Rasse des ermittelnden Objektes (falls es ein Lebewesen ist).
24 sense
25 Die Art des zu untersuchenden Details:
26 Untersuchen, Riechen, Hoeren, Tasten.
27
28BESCHREIBUNG
29------------
30::
31
32 Die Beschreibung des gewuenschten Details wird ermittelt. Dabei
33 werden rassenspezifische Details beruecksichtigt. Es gibt hierbei
34 verschiedene Detailarten, deren Typ man in <sense> angibt:
35 SENSE_VIEW - Fuer Defaultdetails zum Untersuchen.
36 SENSE_SMELL - Fuer Details, die man riechen kann.
37 SENSE_SOUND - Fuer Details, die man hoeren kann.
38 SENSE_TOUCH - Fuer Details, die man abtasten kann.
39 SENSE_READ - Fuer Details, die man lesen kann.
40
41 Dabei ist 0 == SENSE_VIEW.
42
43RUeCKGABEWERT
44-------------
45::
46
47 Die Beschreibung des Details oder 0, wenn es dieses Detail nicht
48 gibt.
49
Arathorn4575fbe2021-02-28 14:44:30 +010050HINWEIS
51-------
52::
53
54 Fuer SENSE_VIEW und SENSE_READ wird die Funktion gar nicht erst
55 aufgerufen, wenn der Spieler nichts sehen kann. Das gleiche gilt fuer
56 SENSE_SOUND, wenn der Spieler taub ist.
57
Zesstra18626972017-01-31 10:38:27 +010058BEISPIEL
59--------
60::
61
62 Im folgenden wird ein kleines Testdetail generiert:
63 AddDetail("test","Das ist ein Test!\n");
Arathorn4575fbe2021-02-28 14:44:30 +010064
Zesstra18626972017-01-31 10:38:27 +010065 Im folgenden wird das Detail entfernt, wenn es existiert. Dies ist
66 eigentlich nicht noetig, da RemoveDetail() damit zurechtkommt, aber
67 eventuell sind ja noch weitere Aktionen noetig.
Arathorn4575fbe2021-02-28 14:44:30 +010068 if(GetDetail("test")) {
69 RemoveDetail("test");
Zesstra18626972017-01-31 10:38:27 +010070 ...
71 }
Arathorn4575fbe2021-02-28 14:44:30 +010072
73 Einen Geruch kann man folgendermassen erzeugen:
Zesstra18626972017-01-31 10:38:27 +010074 AddSmells("gold",
75 ([0 :"Gold kann man nicht riechen!\n",
76 "zwerg":"Deine trainierte Nase riecht es muehelos!\n"]));
77 Die Abfrage des Details gestaltet sich recht einfach:
78 GetDetail("gold","zwerg",SENSE_SMELL);
79 Die Funktion liefert das Detail fuer den Zwerg.
80 GetDetail("gold",0,SENSE_SMELL);
81 Die Funktion liefert das Detail fuer die restlichen Rassen.
82 GetDetail("gold",0,SENSE_SOUND);
83 Ein Sounddetail mit dem Namen "gold" existiert nicht, die Funktion
84 liefert 0 zurueck.
85
86SIEHE AUCH
87----------
88::
89
90 Setzen: AddDetail(), AddReadDetail(), AddSmells(), AddSounds(),
91 AddTouchDetail()
92 Loeschen: RemoveReadDetail(), RemoveSmells(), RemoveDetail(),
93 RemoveSounds(), RemoveTouchDetail()
94 Daten: P_DETAILS, P_READ_DETAILS, P_SMELLS, P_SOUNDS,
95 P_TOUCH_DETAILS, P_SPECIAL_DETAILS
96 Veraltet: AddSpecialDetail(), RemoveSpecialDetail(), P_READ_MSG
97 Sonstiges: break_string()
98
9927. Jan 2013 Gloinson
100