Dokumentation zu: AddInfo(L)

HR Image


FUNKTION:
	varargs void AddInfo( string regeln, string|closure info 
                                          [, string|closure indent ]);
	varargs void AddInfo( string regeln, mixed *actions [,string indent ]);

	(Veraltet, nicht mehr benutzbar:)
	varargs void AddInfo( mixed *key, string info [,string indent ]);
	varargs void AddInfo( mixed *key, mixed *actions [,string indent ]);

ARGUMENTE:
        regeln:  string mit den noetigen Schluesselwoertern und deren Synonymen
                 (fuer komplexere Syntaxen, vorallem bei Quests)
        info:    Antwortstring (darf auch eine Closure sein)
        actions: Ein Array mit Kommandos als Reaktion
	indent:  String, der zusaetzlich zum Namen noch vor den Namen
		 angefuegt werden soll (darf auch eine Closure sein)

        key:     Schluesselwort oder Array aus Schluesselwoertern nach denen
                 gefragt werden kann

FUNKTION:
	Man hat die Moeglichkeit, NPCs mit Antworten auf bestimmte Fragen
	auszustatten. Dabei entspricht 'regeln' einem oder mehreren Ausdruek-
	ken, die im Fragestring enthalten sein koennen. 'info' ist die Antwort, 
	die gegeben wird. Falls man noch einen String angeben will, 'wie' 
	das Lebewesen antworten soll, steht dieser in 'indent'.
	Man kann die Schluesselwoerter auch zu einem speziell formatierten
	Regel-string 'regeln' zusammenfassen oder bei Nettis statt dem 
	Antwortstring auch ein Array 'actions' aus Kommandos angeben.

        Zusammensetzung von 'regeln':
	Es wird ein String angegeben, der die im Fragestring des Spieler
	zu enthaltende Teile beschreibt. Der einfachste Fall ist einfach
	nur ein Wort, welches dann als Teil des Fragestrings vorhanden
	sein muss. Es sind jedoch auch komplexere Syntaxen moeglich,
	die analog zu den Regeln von AddCmd() funktionieren. Z.B.:

            "wo&wohnt|lebt|haust&annie|maedchen|kind"

        Nur wenn aus JEDER der durch & getrennten Synonymgruppen
        ein Wort im Fragestring enthalten ist, wird der Antwortstring
        ausgegeben.
          frage NPC "Wo wohnt Annie?"
        waere in diesem Beispiel ebenso moeglich wie
          frage NPC "Wo haust das kleine Maedchen?" oder
          frage NPC "Wo zum Teufel lebt das kleine Kind?" etc.
            
	Leerzeichen in den Regeln koennen _nicht_ ausgewertet werden und
	sind nicht erlaubt!

        Man sollte nur bedenken, ob es in jedem Falle angebracht ist,
        zu viele Schluesselwoerter zu verketten. Dadurch wird das
        Herausfinden der Antwort in manchen Faellen eher erschwert als
        erleichtert.
            
	Zeilenumbrueche im Antwortstring werden automatisch eingefuegt.
	Wird kein passendes Schluesselwort oder Regelstring gefunden wird 
	eine Defaultantwort gegeben.

	Mit "\ndefault" als Schluessel kann man eine eigene Defaultantwort 
	festlegen und mit "\ndrunk" eine spezielle Antwort, wenn der Spieler
	betrunken fragt.

        ACTIONS:
            Bei Nettis ("std/netti") kann statt einem einfachen Antwort-
            string auch ein Array uebergeben werden, welches die Reaktionen
            des NPCs enthalten kann und Moeglichkeiten zur Simulation einer 
            Reaktionszeit, zufaelliges Auswaehlen einer Reaktion und 
            bedingtes Abbrechen der Kommandokette bietet.
            Wie eine solche Kommandoliste aufgebaut werden kann ist analog
            zu AddReaction(). Es sind im Grunde alle dort genannten Aktionen
            auch hier moeglich, nur MUSS es sich hier um ein Array handeln,
            da ansonsten das Kommando als Antwortstring ausgegeben wird.

RÜCKGABEWERT:
        keiner

BEISPIELE:
	AddInfo( "aufgabe", "Ich haette eine Aufgabe fuer Dich.", "sagt:" );
	// liefert:
	// Monster sagt: Ich haette eine Aufgabe fuer Dich. 
	
	AddInfo( "aufgabe", "Ich habe eine Aufgabe fuer Dich.", "erklaert:" );
	// liefert:
	// Monster erklaert: Ich habe eine Aufgabe fuer Dich.

	AddInfo( "wo&wohnt|lebt|haust&annie|maedchen|kind", 
	    "Ein Kind namens Annie wohnt in Kogida.", "antwortet:" );
	// liefert auf Fragen in denen jeweils eines der Schluesselwoerter
	// aus den Synonymgruppen enthalten ist:
	// Bsp: 'Wo wohnt Annie?', 'Wo lebt das kleine Maedchen?', etc.:
	// Monster antwortet: Ein Kind namens Annie wohnt in Kogida.

	AddInfo("\ndrunk", "Suuuuuviel Wein isch nisch gut, wasch?", "lallt:");
	// liefert, wenn der Spieler einen Alkoholwert groesser als 60 hat:
	// Monster lallt: Suuuuuviel Wein isch nisch gut, wasch?

	AddInfo("\ndefault", "zuckt ratlos mit den Schultern.");
	// liefert, wenn keine passende Antwort gefunden wird:
	// Monster zuckt ratlos mit den Schultern.

BEISPIELE FUER NETTIS:
	AddInfo( "aufgabe|quest|abenteuer", 
	    ({ "laechle /gerissen", 1, "sag Ich habe eine Aufgabe fuer Dich. ",
	       1, "grins /boese"}) );
	// liefert:
	// Monster laechelt gerissen.
	// (1 Sek. Pause)
	// Monster sagt: Ich habe eine Aufgabe fuer Dich.
	// (1 Sek. Pause)
	// Monster grinst boese.
	 

SIEHE AUCH:
       RemoveInfo(L), AddReaction(L), P_DEFAULT_INFO, AddCmd(L)


Start » Magierhandbuch » Docu » Lfun » AddInfo Letzte Generierung: 16.04.2009, 21:46
Email an: mud@wl.mud.de
Valid HTML 4.01!