Select: Unterschied zwischen den Versionen
Neonix (Diskussion | Beiträge) |
|||
Zeile 7: | Zeile 7: | ||
− | + | == Syntax == | |
<code xml n> | <code xml n> | ||
<select [[role="" [count="0"]] [all="false"] [hero=""] /> | <select [[role="" [count="0"]] [all="false"] [hero=""] /> | ||
Zeile 21: | Zeile 21: | ||
− | + | == Beispiele == | |
− | + | === Kämpfer auswählen === | |
<code xml n> | <code xml n> | ||
<select role="Kämpfer" /> | <select role="Kämpfer" /> | ||
Zeile 34: | Zeile 34: | ||
</code> | </code> | ||
− | + | ||
+ | === Diebe auswählen === | ||
<code xml n> | <code xml n> | ||
<select role="Dieb" count="1" /> | <select role="Dieb" count="1" /> | ||
Zeile 45: | Zeile 46: | ||
</code> | </code> | ||
− | + | ||
+ | === Gruppenführer auswählen === | ||
<code xml n> | <code xml n> | ||
<select role="Anführer"/> | <select role="Anführer"/> | ||
Zeile 54: | Zeile 56: | ||
</code> | </code> | ||
− | + | ||
+ | === zufälligen Held auswählen === | ||
+ | <code xml n> | ||
+ | <select role="*" count="1"/> | ||
+ | </code> | ||
+ | |||
+ | |||
+ | === Held nach einer Probe auswählen === | ||
<code xml n> | <code xml n> | ||
<!-- Annahme: eine Probe mit der ID "Pr1" wurde in der Szene bereits durchgeführt --> | <!-- Annahme: eine Probe mit der ID "Pr1" wurde in der Szene bereits durchgeführt --> |
Version vom 3. Juli 2011, 08:58 Uhr
Mit Hilfe des select-Tags kann in AOQML bei einer Gruppenbegegnung ein oder mehrere Helden der Gruppe selektiert werden, sodass die folgenden Befehle (nicht alle, aber viele) nur für die selektierten Helden gelten. Beispiele zur Verwendung:
- nur selektierte Helden sollen Talentprobe durchführen
- nur selektierte Helden sollen Gegenstände aufnehmen
- nur selektierte Helden erhalten LEP-Schaden
- usw.
Inhaltsverzeichnis
Syntax
<select [[role="" [count="0"]] [all="false"] [hero=""] />
- role: Rollenbezeichnung innerhalb der Gruppe. Möglich sind 'Anführer', 'Dieb', 'Kämpfer', 'Mitreisender'. Wenn es keinen Helden mit dieser Rolle in der Gruppe gibt, wird automatisch der Gruppenleiter selektiert.
- count: Schränkt die Anzahl an zu selektierenden Helden auf Basis der Rollenbezeichnung ein. Wenn bspw. 2 angegeben, werden höchstens zwei Helden selektiert.
- all: Mit all="true" können alle Helden der Gruppe selektiert werden (standardmäßig zu Beginn einer Gruppen-ZB/-Quest)
- hero: Dieses Attribut ist relativ flexibel. Folgende Angaben sind möglich:
- - nr_<Zahl>: z.B. nr_1 um den ersten Helden der Gruppe auszuwählen. nr_2 um den zweiten Helden der Gruppe auszuwählen usw.
- - die HeldID eines Helden der Gruppe (Achtung: Der Held muss sich in der Gruppe befinden!). Die HeldID kann bspw. via dem hero-Tag ermittelt werden.
- - der Heldname. Da der Heldname jedoch nicht eindeutig ist, es könnte z.B. zwei "Jasper" in der Gruppe geben, sollte immer die HeldID stattdessen verwendet werden.
Beispiele
Kämpfer auswählen
<select role="Kämpfer" />
<!-- wählt alle Kämpfer in der Gruppe aus.
Die folgende Probe wird folglich auf die selektierten Kämpfer durchgeführt. -->
<challenge quality="ST" mod="3">
...
</challenge>
Diebe auswählen
<select role="Dieb" count="1" />
<!-- wählt genau einen Dieb aus der Gruppe aus.
Die folgende Probe wird nur von diesem selektierten Helden durchgeführt. -->
<challenge talent="Schlösser öffnen">
...
</challenge>
Gruppenführer auswählen
<select role="Anführer"/>
<!-- selektiert den Gruppenleiter -->
<take item="Reiseproviant" />
<!-- nur der Gruppenleiter erhält eine Portion Reiseproviant -->
zufälligen Held auswählen
<select role="*" count="1"/>
Held nach einer Probe auswählen
<!-- Annahme: eine Probe mit der ID "Pr1" wurde in der Szene bereits durchgeführt -->
<store name="heldid" scope="quest"><hero output="id" by-challenge="Pr1" select="worst"/></store>
<select hero="${heldid}"/><!-- Wählt den schlechtesten Held der Probe Pr1. -->
Alle Helden nacheinander wählen
Mit folgender Methode kann man alle SC der Gruppe nacheinander anwählen:
<retain name="helden-durchgehen" id="helden-durchgehen-1">
<set name="aktuelle_nr" inc="1" show="none"/><!-- zum Debuggen show="result" verwenden -->
<!-- Held selektieren -->
<store name="heroAttr">nr_<fetch name="aktuelle_nr"/></store><!-- z.B. nr_1 -->
<select hero="${heroAttr}"/>
<p><q>Hallo, ich heiße <get attribute="name"/> und ich bin <get attribute="race"/></q>.</p>
<!-- gibt es noch weitere Gruppenmitglieder? -->
<switch attribute="anzahl_gruppenmitglieder">
<case name="aktuelle_nr">
<!-- Unsere Variable 'aktuelle_nr' entspricht jetzt dem Attribut 'anzahl_gruppenmitglieder'.
Daher wurden alle Gruppenmitglieder einmal aufgerufen.
Daher nichts weiter machen. -->
</case>
<else>
<p>Der nächste:</p>
<!-- sich erneut aufrufen -->
<replay name="helden-durchgehen" />
</else>
</switch>
</retain>
<p>In diesem kleinen Beispiel stellen sich alle Helden der Gruppe kurz vor:</p>
<store name="aktuelle_nr">0</store>
<replay name="helden-durchgehen"/>