Select
Version vom 3. Januar 2011, 13:00 Uhr von Gaddezwerch (Diskussion | Beiträge)
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.
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
1)
<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>
2)
<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>
3)
<select role="Anführer"/>
<!-- selektiert den Gruppenleiter -->
<take item="Reiseproviant" />
<!-- nur der Gruppenleiter erhält eine Portion Reiseproviant -->
4)
<!-- 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"/>