Keyworddialogue

Aus Sternenschweif Wiki
Wechseln zu: Navigation, Suche

keyworddialogue ist das Dialog-System für die Stichwortdialoge.

Ein Stichwortdialog ist wie folgt aufgebaut:

<keywordset>
		<id>template</id>
		<basemood>3</basemood>
		<keywords>
			<keyword>
				<id>salamanderstein</id>
				<type>Always</type>
				<caption>keyword_sstone</caption>
				<script><![CDATA[]]></script>
				<request>
					<text>req_sal_1</text>
					<text>req_sal_2</text>
					<text>req_sal_3</text>
				</request>
				<response>
					<text>res_sal_1</text>
					<text>res_sal_2</text>
					<text>res_sal_3</text>
				</response>
			</keyword>
			<keyword>
				<id>breakoff</id>
				<type>Hidden</type>
				<response>
					<text>kvir_jadwina_getoff</text>
				</response>
			</keyword>
			<keyword>
				<id>greeting</id>
				<type>Hidden</type>
				<response>
					<text>kvir_jadwina_intro</text>
				</response>
			</keyword>
		</keywords>
	</keywordset>

Dieses keywordset mit der id "template" beinhaltet 3 keywords ("salamanderstein"/"breakoff"/"greeting").

greeting ist hierbei der Text, der zur Begrüßung bei Aufruf des Dialoges kommt.

breakoff entsprechend der Text bei Verabschiedung.

slamanderstein ist nun ein definiertes Keyword (da nicht hidden), welches rechts in der Auswahl der wählbaren Stichworte auftaucht. Wenn man dies anklickt, kommt per Zufall eine der 3 definierten Requests. Beispiel wäre hier z.B. "Was könnt Ihr uns über den Salamanderstein sagen?". Direkt darunter kommt dann ebenfalls per Zufall eine der responses (z.B. "Da weiß ich leider überhaupt nichts.").

Folgende Eigenschaften sind bei einem Keyword verfügbar:

type: z.B. "Hidden" für Keywords die nicht in der Auswahl angezeigt werden oder "Always" für Stichworte, die immer in der Liste auftauchen (ohne extra aktiviert werden zu müssen).

caption: Überschrift des Dialoges (z.B. Name der Person). Falls nicht definiert, wird der textkey "keyword_<id>" verwendet.


Vererbung: Jedes Keywordset kann von einem anderen alle definierten Eigenschaften erben. Dies funktioniert per <parent>template</parent> Dies bedeutet, dass alle im "parent" definierten Stichworte nun verfügbar sind. z.B.:

<keywordset>
		<id>kvirasim_haendler</id>
		<caption>kvir_jadwina_greenston</caption>
		<parent>template</parent>
		<basemood>3</basemood>
		<keywords>
 
			<keyword>
				<id>salamanderstein</id>
				<type>Always</type>
				<script><![CDATA[]]></script>
				<request replace="true">
					<text>keyword_sstone</text>
				</request>
				<response replace="true">
					<text>sstones_fiana_sstone</text>
				</response>
			</keyword>
		</keywords>
</code>

Hier sind alle oben in template definierten Stichworte (also "salamanderstein"/"breakoff"/"greeting") übernommen. An salamanderstein werden dann noch änderungen vorgenommen. Durch

<request replace="true"> bzw. <response replace="true">

werden die im template definierten requests und responses überschrieben. Wäre das replace nicht gesetzt, würden die definierten requests/responses nur in den Zufallspool aufgenommen, so dass dann als response zufällig entweder res_sal_1/res_sal_2/res_sal_3 oder sstones_fiana_sstone auftaucht.