Die Benennung von Dingen und Lebewesen
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Um die Benennung (Namen) von Dingen und Lebewesen einzustellen gibt es
im Wunderland einen ganzen Haufen von zusammen arbeitenden Eigenschaften.
Nur wenn man diese alle richtig miteinander benutzt, erhaelt man die
volle Funktionalitaet und Moeglichkeiten, die die Mudlib bieten.
Zunaechst einmal eine Auflistung der relevanten Eigenschaften:
P_NAME Die Grundform des Namens (Ball, Gnom, Varilon)
P_PLURAL Die Grundform der Mehrzahl (Baelle, Gnome, "")
P_GENDER Das Geschlecht (FEMALE, NEUTER, MALE)
P_ARTICLE Spezielle Wuensche zum Artikel
P_NAME_ADJ Eventuelle Adjektive zum Namen in Grundform (rot, schwer)
P_DESCR Eine ausfuehrlicherer Beschreibung, die angehaengt wird
P_NAME_FLAG Einige Eigenschaften des Namens
P_NAME_AMOUNT Wieviele Dinge repraesentiert dieses Objekt
P_NAME_OWNER Wer ist der Eigentuemer (nicht Besitzer) des Objekts
Informationen zu den einzelnen Eigenschaften gibt es in den entsprechenden
Hilfeseiten dazu. Zu beachten ist, dass P_NAME_ADJ nicht selbst gesetzt
werden sollte sondern indirekt ueber SetFlexedAdjectives(L).
Weiterhin sind folgende Funktionen oefter von Interesse:
SetFlexedAdjectives(L) Adjektive des Objektes festlegen
name(L) Namen abfragen (DIE Hauptfunktion)
tell_room_action(S) Eine Aktion im Raum ausgeben (aehnlich tell_room())
QueryPronoun(L) Pronomen abfragen (Er, ihr)
QueryPossPronoun(L) Possesivpronomen 3. Person singular (sein, ihre)
QueryDuPossPronoun(L) Possesivpronomen 2. Person singular (dein)
Schwieriger in der Benutzung sind hierbei nur name() und tell_room_action(),
welche als einzige hier naeher beschrieben werden sollen.
Jetzt folgen einige Problemstellungen mit den Loesungen. Die Loesungen gehen
nur auf die spezifisch zu setzenden Eigenschaften ein und enthalten nicht
alle Eigenschaften.
Ein bunter Ball:
~~~~~~~~~~~~~~~~
P_NAME Ball
P_PLURAL Baelle
P_GENDER MALE
SetFlexedAdjectives("bunt")
name(WEN, NAME_DEF) -=> Kitty nimmt den bunten Ball.
Ein guelden schimmerndes Schwert
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
P_NAME Schwert
P_PLURAL Schwerter
P_GENDER NEUTER
SetFlexedAdjectives("guelden schimmernd")
Hier ist zu beachten, dass das eine Adjektiv aus zwei Worten besteht.
Diese muss man bei SetFlexedAdjectives(L) auch als ein Wort uebergeben,
nicht etwa als zwei - dann wuerden beide Worte gebeugt, was falsch ist.
Der grosse Varilon:
~~~~~~~~~~~~~~~~~~~
P_NAME Varilon
P_PLURAL ""
P_NAME_FLAG NAME_PERSONAL
SetFlexedAdjectives("gross")
name(WESSEN, NAME_AUTO) -=> des grossen Varilon
Falsch ist es, hier P_ARTICLE auf ART_NONE zu setzen (veraltete Methode),
da dann der Text 'grossen Varilons' erzeugt wird.
Wichtig ist zu bedenken bei ALLEN Npcs mit einem persoenlichen Namen
dies auch in der Namenseigenschaft anzugeben!
Die Siebenmeilenstiefel:
~~~~~~~~~~~~~~~~~~~~~~~~
P_NAME Siebenmeilenstiefel
P_PLURAL Siebenmeilenstiefel
P_NAME_AMOUNT ""
P_ARTICLE ART_DEF
Ein Paar Stiefel:
~~~~~~~~~~~~~~~~~
P_NAME Paar
P_PLURAL Paare
P_DESCR Stiefel
Der bunte Ball des Gnoms:
~~~~~~~~~~~~~~~~~~~~~~~~~
P_NAME Ball
P_NAME_OWNER [Objekt des Gnoms]
name(WER, NAME_DEF) -=> der bunte Ball
name(WER, NAME_DEF|NAME_OWNER) -=> der bunte Ball des Gnoms
Einige Sandkoerner:
~~~~~~~~~~~~~~~~~~~
P_NAME Sandkorn
P_PLURAL Sandkoerner
P_NAME_FLAG NAME_PLURALOBJ
name(WER, NAME_AUTO) -=> einige Sandkoerner
Da dies die Mehrzahl ist, nicht vergessen bei AddId() auch Plural-
identitaeten anzugeben.
Wenn im Raum mehr als ein solches Objekt liegt, wird es uebrigens
als 'Sandkoerner' angezeigt, nicht etwa als '2 einige Sandkoerner'.
Etwas Torfmoos:
~~~~~~~~~~~~~~~
P_NAME Torfmoos
P_PLURAL Torfmoos
P_NAME_AMOUNT "etwas"
P_NAME_FLAG NAME_AMOUNT_SINGULAR | NAME_AMOUNT_NOT_DECL |
NAME_AMOUNT_INDEF
name(WEN, NAME_AUTO) -=> etwas Torfmoos
Hier gilt die Singular-Identitaet.
Bei mehreren gleichen Objekten ist das Verhalten wie bei den Sandkoernern.
Fuchurs bunter Ball:
~~~~~~~~~~~~~~~~~~~~
P_NAME_OWNER [Objekt von Fuchur]
In Fuchur muss gesetzt sein (ist Standard bei Spielern):
P_NAME_FLAG NAME_PERSONAL
name(WER, NAME_DEF|NAME_OWNER) -=> Fuchurs bunter Ball
Schwierigkeit: Wie erzeuge ich die Ausgabe, wenn Pepsi Fuchurs Ball in
die Luft schiesst. Einzeln kann man folgende Meldungen erzeugen:
Fuer Pepsi:
name(WEN, NAME_OWNER, [Pepsis Objekt], [Pepsis Objekt])
-=> Fuchurs bunten Ball
Fuer Fuchur:
name(WEN, NAME_OWNER, [Fuchurs Objekt], [Pepsis Objekt])
-=> Deinen bunten Ball
In diesem Fall ist die Meldung an Pepsi und alle Umstehenden im Bereich
des Namens identisch; dies ist aber anders, wenn der Ball Pepsi gehoert.
Um die ganzen verschiedenen Meldungen zu erzeugen, kann man sich
der Funktion tell_room_action(S) bedienen:
tell_room_action(room, [Pepsi], "Pepsi schiesst %N in die Luft.",
({ [Ball-Objekt], WEN, NAME_OWNER }));
Jetzt erhalten alle im Raum anwesenden eine in Bezug auf den Besitz des
Balls korrekte Meldung. Pepsi selbst bekommt keine Ausgabe, da sich der
Text an einen Akteur normalerweise stark von dem Text fuer alle anderen
unterscheidet.
Das Zepter eines unbekannten Koenigs:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
P_NAME_OWNER ({ 0, "eines unbekannten Koenigs", MALE, 0, 0 })
P_ARTICLE ART_DEF
Setzen von P_NAME_OWNER auf ein Objekt erstellt in Wirklichkeit
ein Array dieser Form. Die Referenz auf das Objekt wird benutzt,
um dieses Array stets auf dem aktuellen Stand zu halten. Wenn das
besitzende Objekt zerstoert wird bleibt so die Besitzinformation
erhalten.
Ein schwarzer Schimmel samt Fiona:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
P_NAME_OWNER ({ [Fionas Objekt], 0, " samt" })
Wenn ein Objekt angegeben ist, wird das Array stets auf die volle
Groesse erweitert und alle relevanten Informationen aus dem Objekt
beschafft. Einziges noch angebbares Element ist die Praeposition,
mit der hier angezeigt wird, wer das Pferd reitet. Vor der
Praeposition muss ein Leerzeichen stehen.
SIEHE AUCH:
P_NAME, P_PLURAL, P_GENDER, P_ARTICLE, P_NAME_ADJ, P_DESCR,
P_NAME_FLAG, P_NAME_AMOUNT, P_NAME_OWNER,
SetFlexedAdjectives(L), name(L), tell_room_action(S),
QueryPronoun(L), QueryPossPronoun(L), QueryDuPossPronoun(L)
|