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