MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | AUTOR MG, den 22.08.92, Don Rumata |
| 2 | This file is part of the Morgengrauen-Mudlib from Jof and Rumata |
| 3 | |
| 4 | VERSION 1.1 |
| 5 | |
| 6 | AKTUALISIERT: MG, den 14.10.93, Chris |
| 7 | UEBERARBEITET: am 24.08.94 von Viper |
| 8 | |
| 9 | THEMA BENENNUNG VON OBJEKTEN IM MorgenGrauen |
| 10 | |
| 11 | INHALT: |
| 12 | I. Einleitung |
| 13 | II. Funktionen, die alle Objekte besitzen muessen |
| 14 | III. Unterstuetzung der Funktionen durch die MG_mudlib |
| 15 | IV. Benennung von Raeumen |
| 16 | V. Benennung von Monstern |
| 17 | |
| 18 | I. EINLEITUNG |
| 19 | |
| 20 | Jedes Objekt in der Mudlib muss auf folgende Weisen identifiziert |
| 21 | werden koennen: |
| 22 | |
| 23 | 1.) Es muss einen Namen haben, der innerhalb eines Satzes das |
| 24 | Objekt bezeichnen kann. |
| 25 | |
| 26 | 2.) Es muss eine Kurzbeschreibung besitzen. |
| 27 | |
| 28 | 3.) Es muss eine ausfuehrliche Beschreibung besitzen. |
| 29 | |
| 30 | 4.) Es muss eine Menge von Synonymen kennen, mit denen ein |
| 31 | Spieler das Objekt "ansprechen" kann. |
| 32 | |
| 33 | II. FUNKTIONEN, DIE ALLE OBJEKTE BESITZEN MUESSEN |
| 34 | |
| 35 | Jedes Objekt im MorgenGrauen sollte folgende Funktionen |
| 36 | implementiert haben: |
| 37 | |
| 38 | 1.) name( fall, dem ) |
| 39 | |
| 40 | Diese Funktion soll den Namen des Objektes im jeweiligen |
| 41 | Fall mit Artikel (wenn es einen besitzt) zurueckgeben, so |
| 42 | dass der Rueckgabewert in einen Satz eingearbeitet werden |
| 43 | kann. |
| 44 | |
| 45 | "fall" dient zur Deklination des Objektnamens. |
| 46 | |
| 47 | "dem" bestimmt, welche Artikel benutzt werden sollen. |
| 48 | Moegliche Werte fuer "dem": |
| 49 | |
| 50 | 0 Benutze unbestimmte Artikel. |
| 51 | |
| 52 | 1 Benutze bestimmte Artikel. |
| 53 | |
| 54 | 2 Benutze bestimmte Artikel, wenn sich mit dem Objekt |
| 55 | kein gleichartiges Objekt im selben Raum befindet, |
| 56 | sonst benutze einen unbestimmten. |
| 57 | |
| 58 | Statt der 2 kann auch ein String uebergeben werden. |
| 59 | In diesem Fall wird getestet, ob sich ein Objekt mit |
| 60 | dem String als id im selben Raum befindet. |
| 61 | |
| 62 | 2.) short() |
| 63 | |
| 64 | Diese Funktion liefert eine Beschreibung, die ausgegeben |
| 65 | wird, wenn der Raum, in dem das Objekt sich befindet, |
| 66 | betrachtet wird. |
| 67 | |
| 68 | 3.) long() |
| 69 | |
| 70 | Diese Funktion liefert eine Beschreibung, die ausgegeben |
| 71 | wird, wenn das Objekt angeschaut wird. Im Unterschied zur |
| 72 | 2.4.5 Mudlib wird die Beschreibung jedoch nicht ausgegeben, |
| 73 | sondern als return-Wert zurueckgegeben. |
| 74 | |
| 75 | 4.) id( str ) |
| 76 | |
| 77 | Diese Funktion soll 1 zurueckgeben, wenn str eine Zeichen- |
| 78 | folge ist, die das Objekt bezeichnen koennte. Diese Zeichen- |
| 79 | folge wird in kleinen Buchstaben uebergeben. |
| 80 | |
| 81 | 5.) _query_invis() |
| 82 | |
| 83 | Wenn ein Objekt unsichtbar ist, soll es beim Aufruf dieser |
| 84 | Funktion 1 zurueckgeben. Sichtbare Objekte brauchen diese |
| 85 | Funktion nicht zu implementieren. |
| 86 | |
| 87 | III. UNTERSTUETZUNG DER FUNKTIONEN DURCH DIE MG_MUDLIB |
| 88 | |
| 89 | Wenn ein eigenes Objekt aus den Standardobjekten abgeleitet |
| 90 | wird, sind alle diese Funktionen bereits fertig definiert. |
| 91 | Es muessen beim Erzeugen der Objekte nur noch die entsprechenden |
| 92 | Werte mitgeteilt werden. Dieses geschieht mit folgenden Funk- |
| 93 | tionen, die am besten im create() aufgerufen werden. |
| 94 | |
| 95 | 1.) SetProp( P_NAME, string ); |
| 96 | |
| 97 | In name() wird der uebergebene String dekliniert und automatisch |
| 98 | mit Artikeln versehen. Diese Funktion bedenkt auch Faelle, an |
| 99 | die ihr wahrscheinlich nie gedacht habt. Der Genitiv von der |
| 100 | Lahme ist z.B. des Lahmen! Auch fuer andere Faelle bietet diese |
| 101 | Funktion maechtige Unterstuetzung. |
| 102 | |
| 103 | Wenn der String nicht mit Artikeln versehen werden soll, so kann |
| 104 | man das mittels der Funktion "SetProp(P_ARTICLE, 0 )" erreichen. |
| 105 | |
| 106 | Damit die Funktion name() ueberhaupt den richtigen Artikel |
| 107 | auswaehlen kann, muss man mit "SetProp( P_GENDER, gender)" das |
| 108 | Gechlecht des Objektes bekannt machen. Als gender kann man |
| 109 | MALE oder 1, FEMALE oder 2 und NEUTER oder 0 verwenden. |
| 110 | |
| 111 | Ist das Objekt unsichtbar, so darf string trotzdem nicht 0 sein; |
| 112 | stattdessen ist "SetProp( P_INVIS, 1 )" aufzurufen. (Die Zeile |
| 113 | "#include <properties.h>" nicht vergessen. :-)) |
| 114 | |
| 115 | Da dieses Verfahren sehr fehleranfaellig ist, ist fuer den Namen |
| 116 | ein Array von Namen zugelassen, so dass fuer jeden Fall ein Wort |
| 117 | uebergeben werden kann. Beispiel.: |
| 118 | SetProp( P_NAME, ({ "Mensch", "Menschen", "Menschen", "Menschen" }) ); |
| 119 | |
| 120 | 2.) SetProp( P_SHORT, string ) |
| 121 | |
| 122 | In short() wird der uebergebene String ausgegeben. Mittels des |
| 123 | process_string-Mechanismus (siehe /doc/efun/process_string) |
| 124 | koennen auch varibale Teile in dem String vorkommen. |
| 125 | string braucht fuer unsichtbare Objekte nicht auf 0 gesetzt |
| 126 | werden. |
| 127 | |
| 128 | 3.) SetProp( P_LONG, string ) |
| 129 | |
| 130 | Dito. |
| 131 | |
| 132 | 4.) AddId( string ); |
| 133 | |
| 134 | Nehme den String in die Menge der Zeichenketten auf, auf die die |
| 135 | eingebaute id-Funktion mit 1 antworten soll. |
| 136 | |
| 137 | 5.) Es reicht, SetProp( P_INVIS, 1 ) aufzurufen, wenn das |
| 138 | Objekt unsichtbar wird, und SetProp( P_INVIS, 0 ), wenn es wieder |
| 139 | sichtbar wird. |
| 140 | |
| 141 | IV. BENENNUNG VON RAEUMEN |
| 142 | |
| 143 | Bei Raeumen wird die long() bzw. short()-Beschreibung nur dann |
| 144 | benutzt, wenn der Raum *von aussen* angeschaut wird. Fuer eine |
| 145 | Beschreibung des Raumen von innen sind folgende Funktionen |
| 146 | bereitgestellt: |
| 147 | |
| 148 | 1.) SetProp( P_INT_SHORT, string ); |
| 149 | |
| 150 | Gebe eine Beschreibung des Raumes fuer den "kurz"-Modus aus. |
| 151 | |
| 152 | 2.) SetProp( P_INT_LONG, string ); |
| 153 | |
| 154 | Gebe eine ausfuehrliche Beschreibung des Raumes zurueck. |
| 155 | |
| 156 | V. BENENNUNG VON MONSTERN |
| 157 | |
| 158 | Siehe oben unter /doc/MG/BANISH. |