MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 1 | GetDetail() |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 2 | *********** |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 3 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 4 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 5 | FUNKTION |
| 6 | ======== |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 7 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 8 | varargs string GetDetail(string key, string race, int sense) |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 9 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 10 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 11 | DEFINIERT IN |
| 12 | ============ |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 13 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 14 | /std/thing/description.c |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 15 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 16 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 17 | ARGUMENTE |
| 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 | |
| 28 | |
| 29 | BESCHREIBUNG |
| 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 | |
| 43 | |
| 44 | RUeCKGABEWERT |
| 45 | ============= |
| 46 | |
| 47 | Die Beschreibung des Details oder 0, wenn es dieses Detail nicht |
| 48 | gibt. |
| 49 | |
| 50 | |
Arathorn | 4575fbe | 2021-02-28 14:44:30 +0100 | [diff] [blame] | 51 | HINWEIS |
| 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 | |
| 58 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 59 | BEISPIEL |
| 60 | ======== |
| 61 | |
| 62 | Im folgenden wird ein kleines Testdetail generiert: |
| 63 | AddDetail("test","Das ist ein Test!\n"); |
Arathorn | 4575fbe | 2021-02-28 14:44:30 +0100 | [diff] [blame] | 64 | |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 65 | 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. |
Arathorn | 4575fbe | 2021-02-28 14:44:30 +0100 | [diff] [blame] | 68 | if(GetDetail("test")) { |
| 69 | RemoveDetail("test"); |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 70 | ... |
| 71 | } |
Arathorn | 4575fbe | 2021-02-28 14:44:30 +0100 | [diff] [blame] | 72 | |
| 73 | Einen Geruch kann man folgendermassen erzeugen: |
Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 74 | 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 | |
| 86 | |
| 87 | SIEHE AUCH |
| 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() |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 98 | |
| 99 | 27. Jan 2013 Gloinson |