Choice: Unterschied zwischen den Versionen

Aus AntamarWiki
Wechseln zu: Navigation, Suche
K
(Syntax)
 
(5 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 3: Zeile 3:
 
== Syntax ==
 
== Syntax ==
  
<code xml n>
+
<code xml>
<choice target="..." [confirm=""] [enabled="true"] [select-hero=""]>...</choice>
+
<choice target="..." [param="..."] [confirm="false"] [enabled="true"] [select-hero=""] [selected-only="false"]>...</choice>
 
</code>
 
</code>
  
 
*'''target''': An Stelle von ... wird der Name der Ziel-Szene (ohne ".xml") angegeben (oder eine [[Besondere Werte|Variable]] die den Namen enthält).
 
*'''target''': An Stelle von ... wird der Name der Ziel-Szene (ohne ".xml") angegeben (oder eine [[Besondere Werte|Variable]] die den Namen enthält).
 +
*'''param''': (optional) Parameterwert, der an die aufgerufene Szene als Variable "param" im Scope "scene" übergeben wird.
 
*'''confirm''': Hier kann eine Frage angegeben werden, die als zu bestätigende Frage angezeigt wird, bevor die gewünschte Szene wirklich aufgerufen wird.
 
*'''confirm''': Hier kann eine Frage angegeben werden, die als zu bestätigende Frage angezeigt wird, bevor die gewünschte Szene wirklich aufgerufen wird.
 
*'''enabled''' (standardmäßig 'true'): Wenn false, wird die Option durchgestrichen und für den Spieler nicht zugänglich gemacht.
 
*'''enabled''' (standardmäßig 'true'): Wenn false, wird die Option durchgestrichen und für den Spieler nicht zugänglich gemacht.
 
*'''select-hero''' (nur für Gruppen): Wenn '1' angegeben, kann der Gruppenführer einen Held auswählen, der in der Zielszene dann automatisch selektiert ist (als einziger Held).
 
*'''select-hero''' (nur für Gruppen): Wenn '1' angegeben, kann der Gruppenführer einen Held auswählen, der in der Zielszene dann automatisch selektiert ist (als einziger Held).
 +
*'''selected-only''' (nur für Gruppen, standardmäßig 'false'): Wenn 'true' angegeben, kann nur zwischen den aktuell selektierten Helden ausgewählt werden, welcher Held in der Zielszene selektiert sein soll.
  
 
Wenn das Tag keinen Inhalt hat, wird dieser Text auch angezeigt, sonst der Text zwischen dem Start-und End-Tag.
 
Wenn das Tag keinen Inhalt hat, wird dieser Text auch angezeigt, sonst der Text zwischen dem Start-und End-Tag.
Zeile 17: Zeile 19:
  
 
===Ein einfaches Choice===
 
===Ein einfaches Choice===
<code xml n>
+
<code xml>
 
<choice target="szene2">weiter</choice>
 
<choice target="szene2">weiter</choice>
 
</code>
 
</code>
 
Mit Klick auf 'weiter' gelangt der Spieler in ''szene2.xml''
 
Mit Klick auf 'weiter' gelangt der Spieler in ''szene2.xml''
  
 +
===Parameter-Übergabe an aufgerufene Szene===
 +
 +
In der Ursprungs-Szene:
 +
<code xml>
 +
Durchgehen, wenn die Tür <choice target="szene2" param="blau"/> oder <choice target="szene2" param="rot"/> leuchtet.
 +
</code>
 +
 +
Mit Klick auf 'weiter' gelangt der Spieler in ''szene2.xml'', dort kann dann der Parameter abgefragt werden:
 +
<code xml>
 +
Du bist durch die Tür gegangen, als sie <get name="param"/> leuchtete.
 +
</code>
 +
 +
Die Variable gilt nur in der unmittelbaren Folgeszene (inkl. der dort ausgeführten includes), will man den Wert für später speichern, muss man den Wert einer länger gültigen Variable zuweisen, z.B. so:
 +
<code xml>
 +
<store name="tuer-farbe" scope="quest"><get name="param"/></store>
 +
</code>
  
 
===confirm===
 
===confirm===
Zeile 43: Zeile 61:
  
 
===select-hero (für Gruppen)===
 
===select-hero (für Gruppen)===
Wenn select-hero="1", kann der Gruppenführer einen Held auswählen. Dieser wird dann intern automatisch selektiert für die nächste Szene.
+
Wenn ''select-hero="1"'', kann der Gruppenführer einen Held auswählen. Dieser wird dann intern automatisch selektiert für die nächste Szene.
<code xml n>
+
<code xml>
<p>Wer soll als erstes versuchen über die Grube zu springen?</p>
 
 
 
 
<ul>
 
<ul>
   <li><choice target="fallgrube" select-hero="1">Springen</choice></li>
+
   <li><choice target="fallgrube" select-hero="1">Wer soll als erstes versuchen über die Grube zu springen?</choice></li>
 
</ul>
 
</ul>
 
</code>
 
</code>
Zeile 54: Zeile 70:
 
erzeugt in etwa diese Ausgabe:
 
erzeugt in etwa diese Ausgabe:
  
[[Image:Choice-select-hero-beispiel.JPG]]
+
[[Image:Choice-select-hero-beispiel-1.png]]
  
===Choice und Zeichensetzung===
+
===selected-only (für Gruppen)===
Baut man eine Choice in einen Fließtext ein, gibt es oftmals Probleme mit Satzzeichen bei der späteren Anzeige. Da es schwierig zu erklären ist, ein Beispiel:
+
Mit ''selected-only'' kann konfiguriert werden, dass der Spieler nicht zwischen allen Gruppenmitgliedern wählen darf, sondern lediglich aus den aktuell selektierten Helden.
 +
Beispiel:
 +
<code xml>
 +
<select role="Kämpfer"/>
 +
<ul>
 +
  <li><choice target="fallgrube" select-hero="1" selected-only="true">Wer soll als erstes versuchen über die Grube zu springen?</choice></li>
 +
</ul>
 +
</code>
 +
Gruppenmitglieder mit der Rolle 'Dieb' fehlen somit in der Auswahl.
  
<code xml n>
+
Erzeugt in etwa diese Ausgabe:
<p>Hier passiert etwas. Möchtest du daher <choice target="eins">zur Rettung eilen</choice>, <choice target="zwei">zugucken</choice> oder doch lieber <choice target="drei">schnell wegrennen?</choice></p>
 
</code>
 
  
Das Komma nach der ersten Choice ist falsch gesetzt. Setzt man es auf diese Weise, erscheint bei der Ausgabe zwischen eilen und dem Komma ein Leerzeichen, das dort nichts zu suchen hat. Richtig ist die Variante bei der dritten Choice. Das Fragezeichen wurde mit in die Klammer hineingenommen und wird damit richtig angezeigt. Hier schön zu sehen:
+
[[Image:Choice-select-hero-beispiel-2.png]]
  
[[Image:choice_zeichen.jpg]]
 
  
 
[[Kategorie:AOQML-Tags]]
 
[[Kategorie:AOQML-Tags]]
[[Kategorie:AOQML]]
 

Aktuelle Version vom 8. August 2021, 09:31 Uhr

Mit diesem Tag wird dem Spieler eine Auswahlmöglichkeit angeboten, zu der er nach Beendigung der aktuellen Szene springen kann.

Syntax

<choice target="..." [param="..."] [confirm="false"] [enabled="true"] [select-hero=""] [selected-only="false"]>...</choice>
  • target: An Stelle von ... wird der Name der Ziel-Szene (ohne ".xml") angegeben (oder eine Variable die den Namen enthält).
  • param: (optional) Parameterwert, der an die aufgerufene Szene als Variable "param" im Scope "scene" übergeben wird.
  • confirm: Hier kann eine Frage angegeben werden, die als zu bestätigende Frage angezeigt wird, bevor die gewünschte Szene wirklich aufgerufen wird.
  • enabled (standardmäßig 'true'): Wenn false, wird die Option durchgestrichen und für den Spieler nicht zugänglich gemacht.
  • select-hero (nur für Gruppen): Wenn '1' angegeben, kann der Gruppenführer einen Held auswählen, der in der Zielszene dann automatisch selektiert ist (als einziger Held).
  • selected-only (nur für Gruppen, standardmäßig 'false'): Wenn 'true' angegeben, kann nur zwischen den aktuell selektierten Helden ausgewählt werden, welcher Held in der Zielszene selektiert sein soll.

Wenn das Tag keinen Inhalt hat, wird dieser Text auch angezeigt, sonst der Text zwischen dem Start-und End-Tag.

Beispiele

Ein einfaches Choice

<choice target="szene2">weiter</choice>

Mit Klick auf 'weiter' gelangt der Spieler in szene2.xml

Parameter-Übergabe an aufgerufene Szene

In der Ursprungs-Szene:

Durchgehen, wenn die Tür <choice target="szene2" param="blau"/> oder <choice target="szene2" param="rot"/> leuchtet.

Mit Klick auf 'weiter' gelangt der Spieler in szene2.xml, dort kann dann der Parameter abgefragt werden:

Du bist durch die Tür gegangen, als sie <get name="param"/> leuchtete.

Die Variable gilt nur in der unmittelbaren Folgeszene (inkl. der dort ausgeführten includes), will man den Wert für später speichern, muss man den Wert einer länger gültigen Variable zuweisen, z.B. so:

<store name="tuer-farbe" scope="quest"><get name="param"/></store>

confirm

Mit confirm kann man Sicherheitsfragen einbauen.

<choice target="Abbruch" confirm="Willst du den Auftrag wirklich abbrechen?">Auftrag abbrechen.</choice>

Bei diesem Beispiel würde der Spieler eine Nachfrage ("Willst du den Auftrag wirklich abbrechen?") angezeigt bekommen, wenn er auf "Auftrag abbrechen" klickt. Dann kann der Spieler mit Klick auf "OK" die Szene aufrufen oder mit Klick auf "Abbrechen" auf der aktuellen Seite bleiben.


enabled="false"

<ul>
  <li><choice target="singen">Singen</choice></li>
  <li><choice target="tanzen" enabled="false">Tanzen</choice></li>
</ul>

Hier wird nur Singen als Option angeboten. Tanzen wird zwar angezeigt, ist aber durchgestrichen und nicht klickbar.


select-hero (für Gruppen)

Wenn select-hero="1", kann der Gruppenführer einen Held auswählen. Dieser wird dann intern automatisch selektiert für die nächste Szene.

<ul>
  <li><choice target="fallgrube" select-hero="1">Wer soll als erstes versuchen über die Grube zu springen?</choice></li>
</ul>

erzeugt in etwa diese Ausgabe:

Choice-select-hero-beispiel-1.png

selected-only (für Gruppen)

Mit selected-only kann konfiguriert werden, dass der Spieler nicht zwischen allen Gruppenmitgliedern wählen darf, sondern lediglich aus den aktuell selektierten Helden. Beispiel:

<select role="Kämpfer"/>
<ul>
  <li><choice target="fallgrube" select-hero="1" selected-only="true">Wer soll als erstes versuchen über die Grube zu springen?</choice></li>
</ul>

Gruppenmitglieder mit der Rolle 'Dieb' fehlen somit in der Auswahl.

Erzeugt in etwa diese Ausgabe:

Choice-select-hero-beispiel-2.png