Dialoge: Unterschied zwischen den Versionen

Aus Sternenschweif Wiki
Wechseln zu: Navigation, Suche
(Goto-Bedeutungen)
 
(8 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
[[Category:Modding]]
 
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.
 
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>)'''
 
'''Definition eines Dialogs (Tag <dialogpartner>)'''
 
+
<syntaxhighlight lang="XML">
 
<dialogpartner>
 
<dialogpartner>
  
Zeile 16: Zeile 17:
  
 
</dialogpartner>
 
</dialogpartner>
 +
</syntaxhighlight>
  
  
ID ist der Name, unter dem der Dialog gestartet werden kann.
+
''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
+
''name'' ist die Überschrift des Dialoges in der Textbox. Hierfür muss ein entsprechender Text-Key
 
(in dem Beispiel testdialog_hl) definiert sein.
 
(in dem Beispiel testdialog_hl) definiert sein.
  
Auf diese Weise werden alle Dialoge des Moduls jeweils mit der <partner>-Tag definiert. Das <dialogpartner>-Tag muss nur einmal pro Modul gesetzt werden.
+
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>)'''
 
'''Aufbau eines Dialogs (Tag <dialog>)'''
 
+
<syntaxhighlight lang="XML">
 
<dialog>
 
<dialog>
  
Zeile 51: Zeile 53:
  
 
</dialog>
 
</dialog>
 +
</syntaxhighlight>
 +
  
 
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.
 
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.
+
''partner:'' Legt fest, zu welchem in <dialogpartner> definierten Dialog diese ID gehört.
  
request: Der Text-Key, der in der Textbox erscheinen soll.
+
''ID:'' Über die ID werden die verschiedenen Abschnitte des Dialogs aufgerufen.
  
response: Die Antworten/Wahlmöglichkeiten dieser ID als Text-Key.  
+
''adddata:'' Hier kann Code eingetragen werden, um [[Funktionen]] auszuführen.
  
goto="2": Bei Auswahl dieser Option soll zu ID 2 dieses Dialogs gesprungen werden.
+
''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.
  
goto="255": Bei Auswahl dieser Option soll der Dialog beendet werden.
+
''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<br>
 +
'''leave''': Beendet den Dialog und verlässt eine etwaige Inside-Scene<br>
 +
'''buy''': Beendet den Dialog und startet einen Einkauf bei einem Händler<br>
 +
'''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<br>
 +
'''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)
 
--lunatic 19:00, 11. Mär. 2014 (CET)--lunatic 18:54, 11. Mär. 2014 (CET)

Aktuelle Version vom 15. Juni 2016, 20:46 Uhr

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)