Dokumentation zu: name(L)

HR Image


FUNKTION:
	varargs string name( int fall, int modus, mixed viewer, mixed actor );

ARGUMENTE:
	fall   - Grammatischer Fall, in dem das Objekt benannt werden soll
	modus  - Art der Beschreibung
        viewer - (optional) Spieler, der diesen Text lesen soll
        actor  - (optional) Spieler, der diesen Text ausloest

BESCHREIBUNG:
	Wenn ein Objekt in einem Satz Erwaehnung finden soll, so kann
	mittels dieser Funktion ein Satzteil erzeugt werden, dass einfach
	eingesetzt werden kann. Die Faelle sind WER, WESSEN, WEN und WEM.
	Als Fall ist zusaetzlich RAW moeglich, was den nackten Namen liefert.

	Der modus hat folgende Bedeutung:
	NAME_INDEF     - erzeuge einen Satzteil mit einem unbestimmten Artikel
	NAME_DEF       - erzeuge einen Satzteil mit einem bestimmten Artikel
        NAME_AUTO      - Versuche eine Entscheidung zu treffen, welcher
	                 Artikel benutzt werden soll
	NAME_NONE      - erzeuge einen Satzteil ohne Artikel
	NAME_CAP       - erzeuge einen Satzteil mit grossgeschriebenem 1.
	                 Buchstaben (als Ersatz fuer capitalize(name()).
	                 Siehe dazu auch das Bsp.)

	NAME_DESCR     - erzeuge einen Satzteil mit erweiterter Beschreibung
	NAME_STATE     - erzeuge einen Satzteil mit Zustandsinfo
	NAME_OWNER     - erzeuge einen Satzteil mit Besitzerinfo
	NAME_PLURAL    - erzeuge einen Satzteil mit dem Namen in Mehrzahl
        NAME_PLURAL_ART  erzeuge einen Satzteil in Mehrzahl mit Artikel
	NAME_UACT      - aktualisiere die Mengenangaben von Units zuerst
	NAME_NO_NUMBER - lasse die Zahlenangabe bei Units weg
	NAME_V_IS_WIZ  - Erzeuge den Namen aus Magiersicht (nur wichtig fuer
                         den beschreibenden Namen unsichtbarer Spieler)
	NAME_NO_ADJ    - erzeuge einen Satzteil ohne Adjektiv

	Es kann immer nur einer der ersten vier Modi ausgewaehlt werden,
	der jedoch frei mit DESCR, STATE und/oder PLURAL etc kombiniert werden
	kann (z.B. NAME_AUTO|NAME_DESCR).

	NAME_DESCR liefert P_DESCR. Wenn gleichzeitig NAME_OWNER gesetzt ist,
        wird auch das P_DESCR des Besitzers eingebaut (aber nur wenn es
        beim Besizter als Array angegeben wurde).

        NAME_STATE liefert bei Behaeltern, Lichtquellen, Waffen etc den
        Zustand in Klammern mit(siehe _name_state(L).

        NAME_OWNER liefert den Besitzer mit, ggf auch als 'Dein' o.ae.
        Diesen Schalter nur benutzen, wenn viewer und actor korrekt gesetzt
	werden!

	Zusaetzlich gibt es den Fall RAW, der einen Nomitaiv ganz ohne Artikel
	zurueckgibt. (Zur Benutzung von Rufnamen.)

        Die Argumente viewer und actor sind vor allem fuer Objekte mit
        Besitzer interessant. Sie werden auf die entsprechenden Objekte
        gesetzt (also viewer zB auf das Spielerobjekt, dass den Text sehen
        soll). Es ist auch moeglich statt dessen eine 1 zu uebergeben, dann
	wird ein entsprechender Text auch erzwungen. Kurzbeispiel:
        "Sunrise nimmt ihre Pantoffeln." Siehe auch name_usage(WL).

RÜCKGABEWERT:
	Ein Satzteil in Form einer Zeichenkette. Wenn mit P_NAME_ADJ ein
	Adjektiv definiert wurde, wird auch dieses mit eingebaut.

BEMERKUNG:
	Man kann bei SetProp(P_NAME, ... ); auch ein Array aus 4 Elementen
	angeben. Dann wird das erste Element als Nominativ (WER), usw.
	bis das 4te Element als Akkusativ (WEN) angenommen.

	Die Funktion Name beherrscht automatische Deklination von
	(regelmaessigen) Worten. Die wichtigsten Ausnahmen werden berueck-
	sichtigt. Um das 's' im Genitiv (WESSEN) braucht man sich also nicht
	zu kuemmern.

	Mittels der Funktion QueryProp(P_NAME) bekommt man die Daten, die
	man mittels SetProp(P_NAME,...) gesetzt hat, (u.U eben auch als
	Array) zurueck.

	Der angeforderte Modus (NAME_DEF etc) wird ggf. nicht geliefert,
	wenn das Objekt mit P_ARTICLE einen anderen Modus zwingend
	vorschreibt.

BEISPIEL:
	(Weitere Beispiele, vor allem mit komplexer Benutzung aller
	namensspezifischen Properties findest du in name_usage(WL))

	SetProp(P_NAME, "Ball");
	SetProp(P_GENDER, MALE);
	SetProp(P_ARTICLE, 1); /* ueberfluessig da 1 default ist */

	ball->name(WER, NAME_INDEF) gibt "ein Ball"
	ball->name(WEM, NAME_DEF)   gibt "dem Ball"
	ball->name(WEN, NAME_AUTO)  gibt "den Ball" bei nur ein Ball im Raum,
	                                 "einen Ball" wenn mehrere dort sind.

	NOCHN BEISPIEL:

	SetProp(P_NAME, ({"Drache","Drachen","Drachen","Drachen"}));
	SetProp(P_GENDER, MALE);

	drache->name(WER, NAME_INDEF) gibt "ein Drache"
	drache->name(WESSEN, NAME_INDEF) gibt "eines Drachen"
	drache->name(RAW) gibt "Drache"

	NOCHN BEISPIEL (NAME_CAP-spezifisch):

	Ein Spieler ist verfroscht, also PL->SetProp(P_FROG, 1).

	PL->name(WER, NAME_AUTO) gibt "ein kleiner Frosch"
	PL->name(WER, NAME_AUTO|NAME_CAP) gibt "Ein kleiner Frosch"
	Deswegen sollte am Satzanfang immer NAME_CAP mit angegeben werden.
	Gerade in der Weihnachtszeit gibt es im Wunderland viele als
	Schneefloecken, Tannen etc. getarnte Froesche. (In der Satzmitte
	hat NAME_CAP dann selbstverstaendlich nichts zu suchen.)

SIEHE AUCH:
	name_usage(WL), P_NAME, P_NAME_ADJ, P_ARTICLE, P_PLURAL, P_DESCR,
        _name_state(L), long(L), (veraltet: benennung(MG), short(L)),
	IsPlural(L)


Start » Magierhandbuch » Docu » Lfun » Name Letzte Generierung: 25.04.2021, 01:58
Email an: mud@wl.mud.de
Valid HTML 4.01!