| AUTOR MG, den 22.08.92, Don Rumata |
| This file is part of the Morgengrauen-Mudlib from Jof and Rumata |
| |
| VERSION 1.1 |
| |
| AKTUALISIERT: MG, den 14.10.93, Chris |
| UEBERARBEITET: am 24.08.94 von Viper |
| |
| THEMA BENENNUNG VON OBJEKTEN IM MorgenGrauen |
| |
| INHALT: |
| I. Einleitung |
| II. Funktionen, die alle Objekte besitzen muessen |
| III. Unterstuetzung der Funktionen durch die MG_mudlib |
| IV. Benennung von Raeumen |
| V. Benennung von Monstern |
| |
| I. EINLEITUNG |
| |
| Jedes Objekt in der Mudlib muss auf folgende Weisen identifiziert |
| werden koennen: |
| |
| 1.) Es muss einen Namen haben, der innerhalb eines Satzes das |
| Objekt bezeichnen kann. |
| |
| 2.) Es muss eine Kurzbeschreibung besitzen. |
| |
| 3.) Es muss eine ausfuehrliche Beschreibung besitzen. |
| |
| 4.) Es muss eine Menge von Synonymen kennen, mit denen ein |
| Spieler das Objekt "ansprechen" kann. |
| |
| II. FUNKTIONEN, DIE ALLE OBJEKTE BESITZEN MUESSEN |
| |
| Jedes Objekt im MorgenGrauen sollte folgende Funktionen |
| implementiert haben: |
| |
| 1.) name( fall, dem ) |
| |
| Diese Funktion soll den Namen des Objektes im jeweiligen |
| Fall mit Artikel (wenn es einen besitzt) zurueckgeben, so |
| dass der Rueckgabewert in einen Satz eingearbeitet werden |
| kann. |
| |
| "fall" dient zur Deklination des Objektnamens. |
| |
| "dem" bestimmt, welche Artikel benutzt werden sollen. |
| Moegliche Werte fuer "dem": |
| |
| 0 Benutze unbestimmte Artikel. |
| |
| 1 Benutze bestimmte Artikel. |
| |
| 2 Benutze bestimmte Artikel, wenn sich mit dem Objekt |
| kein gleichartiges Objekt im selben Raum befindet, |
| sonst benutze einen unbestimmten. |
| |
| Statt der 2 kann auch ein String uebergeben werden. |
| In diesem Fall wird getestet, ob sich ein Objekt mit |
| dem String als id im selben Raum befindet. |
| |
| 2.) short() |
| |
| Diese Funktion liefert eine Beschreibung, die ausgegeben |
| wird, wenn der Raum, in dem das Objekt sich befindet, |
| betrachtet wird. |
| |
| 3.) long() |
| |
| Diese Funktion liefert eine Beschreibung, die ausgegeben |
| wird, wenn das Objekt angeschaut wird. Im Unterschied zur |
| 2.4.5 Mudlib wird die Beschreibung jedoch nicht ausgegeben, |
| sondern als return-Wert zurueckgegeben. |
| |
| 4.) id( str ) |
| |
| Diese Funktion soll 1 zurueckgeben, wenn str eine Zeichen- |
| folge ist, die das Objekt bezeichnen koennte. Diese Zeichen- |
| folge wird in kleinen Buchstaben uebergeben. |
| |
| 5.) _query_invis() |
| |
| Wenn ein Objekt unsichtbar ist, soll es beim Aufruf dieser |
| Funktion 1 zurueckgeben. Sichtbare Objekte brauchen diese |
| Funktion nicht zu implementieren. |
| |
| III. UNTERSTUETZUNG DER FUNKTIONEN DURCH DIE MG_MUDLIB |
| |
| Wenn ein eigenes Objekt aus den Standardobjekten abgeleitet |
| wird, sind alle diese Funktionen bereits fertig definiert. |
| Es muessen beim Erzeugen der Objekte nur noch die entsprechenden |
| Werte mitgeteilt werden. Dieses geschieht mit folgenden Funk- |
| tionen, die am besten im create() aufgerufen werden. |
| |
| 1.) SetProp( P_NAME, string ); |
| |
| In name() wird der uebergebene String dekliniert und automatisch |
| mit Artikeln versehen. Diese Funktion bedenkt auch Faelle, an |
| die ihr wahrscheinlich nie gedacht habt. Der Genitiv von der |
| Lahme ist z.B. des Lahmen! Auch fuer andere Faelle bietet diese |
| Funktion maechtige Unterstuetzung. |
| |
| Wenn der String nicht mit Artikeln versehen werden soll, so kann |
| man das mittels der Funktion "SetProp(P_ARTICLE, 0 )" erreichen. |
| |
| Damit die Funktion name() ueberhaupt den richtigen Artikel |
| auswaehlen kann, muss man mit "SetProp( P_GENDER, gender)" das |
| Gechlecht des Objektes bekannt machen. Als gender kann man |
| MALE oder 1, FEMALE oder 2 und NEUTER oder 0 verwenden. |
| |
| Ist das Objekt unsichtbar, so darf string trotzdem nicht 0 sein; |
| stattdessen ist "SetProp( P_INVIS, 1 )" aufzurufen. (Die Zeile |
| "#include <properties.h>" nicht vergessen. :-)) |
| |
| Da dieses Verfahren sehr fehleranfaellig ist, ist fuer den Namen |
| ein Array von Namen zugelassen, so dass fuer jeden Fall ein Wort |
| uebergeben werden kann. Beispiel.: |
| SetProp( P_NAME, ({ "Mensch", "Menschen", "Menschen", "Menschen" }) ); |
| |
| 2.) SetProp( P_SHORT, string ) |
| |
| In short() wird der uebergebene String ausgegeben. Mittels des |
| process_string-Mechanismus (siehe /doc/efun/process_string) |
| koennen auch varibale Teile in dem String vorkommen. |
| string braucht fuer unsichtbare Objekte nicht auf 0 gesetzt |
| werden. |
| |
| 3.) SetProp( P_LONG, string ) |
| |
| Dito. |
| |
| 4.) AddId( string ); |
| |
| Nehme den String in die Menge der Zeichenketten auf, auf die die |
| eingebaute id-Funktion mit 1 antworten soll. |
| |
| 5.) Es reicht, SetProp( P_INVIS, 1 ) aufzurufen, wenn das |
| Objekt unsichtbar wird, und SetProp( P_INVIS, 0 ), wenn es wieder |
| sichtbar wird. |
| |
| IV. BENENNUNG VON RAEUMEN |
| |
| Bei Raeumen wird die long() bzw. short()-Beschreibung nur dann |
| benutzt, wenn der Raum *von aussen* angeschaut wird. Fuer eine |
| Beschreibung des Raumen von innen sind folgende Funktionen |
| bereitgestellt: |
| |
| 1.) SetProp( P_INT_SHORT, string ); |
| |
| Gebe eine Beschreibung des Raumes fuer den "kurz"-Modus aus. |
| |
| 2.) SetProp( P_INT_LONG, string ); |
| |
| Gebe eine ausfuehrliche Beschreibung des Raumes zurueck. |
| |
| V. BENENNUNG VON MONSTERN |
| |
| Siehe oben unter /doc/MG/BANISH. |