Select: Unterschied zwischen den Versionen

Aus AntamarWiki
Wechseln zu: Navigation, Suche
Zeile 18: Zeile 18:
 
:: - '''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.
 
:: - '''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.
 
:: - 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.
 
  
  

Version vom 10. Juli 2011, 15:50 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.


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.


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"/>