blob: fe94ebcbfd17bfe6e140b6a730dc325841322a1a [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001AUTOR MG, den 22.08.92, Don Rumata
2 This file is part of the Morgengrauen-Mudlib from Jof and Rumata
3
4VERSION 1.1
5
6AKTUALISIERT: MG, den 14.10.93, Chris
7UEBERARBEITET: am 24.08.94 von Viper
8
9THEMA BENENNUNG VON OBJEKTEN IM MorgenGrauen
10
11INHALT:
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
18I. 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
33II. 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
87III. 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
141IV. 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
156V. BENENNUNG VON MONSTERN
157
158 Siehe oben unter /doc/MG/BANISH.