Dialoge

Aus Sternenschweif Wiki
Version vom 15. Juni 2016, 20:46 Uhr von Chrisfirefox (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Das Wort „Dialoge“ ist nicht wörtlich zu verstehen, damit sind also nicht nur „Gespräche“ gemeint, sondern verschiedene Anwendungsmöglichkeiten. Ein Buch kann z.B. auch ein Dialog sein, oder auch nur eine reine Textbox mit Wahlmöglichkeiten. Ebenso kann ein Dialog „leer“ sein, d.h. gar keinen Text enthalten, sondern nur Code. Dann werden halt nur die entsprechenden Funktionen ausgeführt.

Definition eines Dialogs (Tag <dialogpartner>)

<dialogpartner>
 
	<partner>
 
		<id>testdialog</id>
 
		<name>testdialog_hl</name>
 
		<bildid>99</bildid>
 
	</partner>
 
</dialogpartner>


ID ist der Name, unter dem der Dialog gestartet werden kann. name ist die Überschrift des Dialoges in der Textbox. Hierfür muss ein entsprechender Text-Key (in dem Beispiel testdialog_hl) definiert sein.

Auf diese Weise werden alle Dialoge des Moduls jeweils mit dem <partner>-Tag definiert. Das <dialogpartner>-Tag muss nur einmal pro Modul gesetzt werden.

Aufbau eines Dialogs (Tag <dialog>)

<dialog>
 
	<text>
 
		<partner>testdialog</partner>
 
		<id>1</id>
 
		<adddata><![CDATA[
 
			''HIER KANN CODE STEHEN!''
 
		]]></adddata>
 
		<empty>false</empty>
 
		<request>testdialog_1</request>
 
		<response1 goto="2">testdialog_r1</response1>
 
		<response2 goto="255">testdialog_r2</response2>
 
	</text>
 
</dialog>


Zwischen dem Haupt-Tag <dialog> (nur einmal pro Modul zu setzen) werden sämtliche Dialog-IDs des Moduls definiert. Die einzelnen IDs werden durch das <text>-Tag abgegrenzt.


partner: Legt fest, zu welchem in <dialogpartner> definierten Dialog diese ID gehört.

ID: Über die ID werden die verschiedenen Abschnitte des Dialogs aufgerufen.

adddata: Hier kann Code eingetragen werden, um Funktionen auszuführen.

empty: Hier muss "false" oder "true" gesetzt werden. true wird bei leeren IDs gesetzt, in denen keine Textbox anzuzeigen ist.

request: Der Text-Key, der in der Textbox erscheinen soll.

response: Die Antworten/Wahlmöglichkeiten dieser ID als Text-Key.

goto="2": Bei Auswahl dieser Option soll zu ID 2 dieses Dialogs gesprungen werden.

Goto-Bedeutungen

"Goto" und infolgedessen die ID des nächsten Dialogelements sind alphanumerisch, es können also beliebige Bezeichnungen gewählt werden. Folgende Spezialbezeichnungen sind definiert und können genauso für die Return-Werte von "forward()"-Funktionen verwendet werden:

255: Beendet den Dialog
leave: Beendet den Dialog und verlässt eine etwaige Inside-Scene
buy: Beendet den Dialog und startet einen Einkauf bei einem Händler
forcecamp: Öffnet ein Lager auf der Karte. Wenn man bereits in einem Lager ist und der Dialog aus "OnGuard" heraus gestartet wurde, wird die Schlafensphase (und die Regeneration) stattdessen unterbrochen
dialogpartner:dialogid: Springt zu einem anderen Dialog, entspricht einem Aufruf von "startDialogueAt( "dialogpartner", "dialogid" )" tobecontinued: Der Dialog soll später fortgesetzt werden, macht eigentlich nur in Kombination mit dem Start eines anderen Fensters in einer "forward"-Funktion Sinn

--lunatic 19:00, 11. Mär. 2014 (CET)--lunatic 18:54, 11. Mär. 2014 (CET)