Änderungen

Wechseln zu: Navigation, Suche

Select

1.078 Bytes hinzugefügt, 14:34, 28. Okt. 2020
Held nach einer Probe auswählen
== Syntax ==
<code xml n>
<select [[role="" [count="0"]] [all="false"] [hero=""] by-attribute="" by-talent="" by-quality="" by-name="" by-item="" val="" min="" max="" inverted="" />
</code>
* '''{| class="wikitable sortable"|-!Attribut!! Standardwert!! Erklärung|-|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''': ||0||Schränkt die Anzahl an zu selektierenden Helden auf Basis der Rollenbezeichnung ein. Wenn bspw. 2 angegeben, werden höchstens zwei Helden selektiert. Wenn 0, dann gibt es keine Beschränkung.* '''|-|all''': ||false||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.:: - |hero||||Hier kann die '''HeldID''' eines Helden der Gruppe (Achtung: Der Held muss sich in der Gruppe befinden!)angegeben werden. Die HeldID kann bspw. via dem [[hero]]-Tag ermittelt werden.|-|by-attribute||||Hier kann ein [[Heldattribute|Attribut]] angegeben werden.|-|by-talent||||Hier kann eine Fertigkeit, wie z.B. 'Schwimmen', angegeben werden.|-|by-quality||||Hier kann eine Eigenschaft, wie z.B. 'ST', angegeben werden.|-|by-name||||Hier kann eine Variable angegeben werden. Dies ist sinnvoll, wenn eine Heldvariable (Scope="hero") abgefragt werden soll.|-|by-item||||Hier kann der Name einer Ware angegeben werden, um diejenigen Helden zu selektieren, die einen solchen Gegenstand bei sich haben.|-|val|||||(nur in Kombination mit by-attribute/by-talent/by-quality/by-name/by-item) Wenn ein bestimmter Wert gesetzt sein soll.|-|min||||(nur in Kombination mit by-attribute/by-talent/by-quality/by-name/by-item) Angabe eines Mindestwertes|-|max||||(nur in Kombination mit by-attribute/by-talent/by-quality/by-name/by-item) Angabe eines Maximalwertes|-|inverted||false||Mit inverted="true" kann angegeben werden, dass alle diejenigen Helden selektiert werden sollen, welche gerade nicht selektiert sind. Funktioniert auch in Verbindung mit ''count''. Hinweis: Falls derzeit alle Helden selektiert sind, ist im Anschluss nur der Gruppenführer selektiert.|}
== Beispiele ==
=== Held nach einer Probe auswählen ===
<code xml n>
<!-- Annahme: eine Probe mit der ID name="Pr1" wurde in der Szene bereits durchgeführt --><store name="heldidid_held" scope="quest"><hero output="id" by-challenge="Pr1" select="worst"/></store><select hero="${heldidid_held}"/><!-- Wählt den schlechtesten Held der Probe Pr1. --> </code> === Helden anhand einer Eigenschaft wählen ===Wählt alle Helden aus, die mindestens IQ 15 haben.<code xml><select by-quality="IQ" min="15" /></code>   === Helden anhand einer Fertigkeit wählen ===Wählt alle Helden aus, die Gassenwissen maximal 5 haben.<code xml><select by-talent="Gassenwissen" max="5" /></code>  === Helden anhand einer Variable wählen ===Wählt alle Helden aus, die die Variable ''soelder_rang'' haben.<code xml><select by-name="soelder_rang" />
</code>
 
=== Helden anhand einer Ware wählen ===
Wählt alle Helden aus, die einen Gewürzkuchen bei sich haben.
<code xml>
<select by-item="Gewürzkuchen" min="1" />
</code>
=== Alle Helden nacheinander wählen ===
Mit folgender Methode Um jedes Gruppenmitglied nacheinander anzuwählen, kann man alle SC auf eine [[for]]-Schleife zurückgreifen. '''Achtung''': Im Anschluss ist nur noch ein Held selektiert (nämlich der Gruppe nacheinander anwählen: letzte, der sich vorgestellt hat).
<code xml n><retain namefor all="helden-durchgehen" id="helden-durchgehen-1${sys:heroes}"> <set name="aktuelle_nr" inc="1" show="none"/><!-- zum Debuggen show="resultheldid" verwenden --> <!-- Held selektieren --> <store name="heroAttr">nr_<fetch name="aktuelle_nr"/></store><!-- z.B. nr_1 --> <select hero="${heroAttrheldid}"/> <p><q>Hallo, ich heiße Name: <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> <elsefor> <p>Der nächste:</pcode> <!-- sich erneut aufrufen --> <replay name="helden-durchgehen" />== Die anderen Helden wählen === </else> </switch></retain>Um diejenigen Helden auszuwählen, welche gerade nicht selektiert sind:
<p>In diesem kleinen Beispiel stellen sich alle Helden der Gruppe kurz vor:</p><store name="aktuelle_nr">0</storecode xml><replay nameselect inverted="helden-durchgehentrue"/>
</code>
[[Kategorie:AOQML]]
[[Kategorie:Gruppe]]
[[Kategorie:Mitarbeit]]
[[Kategorie:AOQML-Tags]]
2.740
Bearbeitungen

Navigationsmenü