For: Unterschied zwischen den Versionen

Aus AntamarWiki
Wechseln zu: Navigation, Suche
(Gruppenmitglieder durchgehen)
(neu: for i Schleife)
 
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt)
Zeile 4: Zeile 4:
 
<code xml>
 
<code xml>
 
<for all="" name="">
 
<for all="" name="">
 +
  <!-- Schleifenrumpf -->
 +
</for>
 +
 +
<for [start="1"] end="" [step="1"] name="">
 
   <!-- Schleifenrumpf -->
 
   <!-- Schleifenrumpf -->
 
</for>
 
</for>
Zeile 12: Zeile 16:
 
!Attribut!! Erklärung
 
!Attribut!! Erklärung
 
|-
 
|-
|all||Hier wird das Array angegeben, über das iteriert werden soll. Als Trenner zwischen den Array-Elementen wird <nowiki>|</nowiki> benutzt.
+
|all||Hier wird das Array angegeben, über das iteriert werden soll. Als Trenner zwischen den Array-Elementen wird <nowiki>|</nowiki> benutzt. Das, was im Schleifenrumpf angegeben ist, wird für jedes Array-Element ausgeführt.
 +
|-
 +
|start||Hier wird der Startwert angegeben (standardmäßig 1)
 +
|-
 +
|end||Hier wird der Ende-Wert der for-Schleife angegeben (z.B. 10)
 +
|-
 +
|step||Hier wird die Zählererhöhung angegeben (standardmäßig 1)
 
|-
 
|-
 
|name||Gibt den Bezeichner der Variable an, die bei jedem Schleifendurchlauf mit dem neuen Array-Element gesetzt wird. Die Variable hat den [[Scope]] 'scene'.
 
|name||Gibt den Bezeichner der Variable an, die bei jedem Schleifendurchlauf mit dem neuen Array-Element gesetzt wird. Die Variable hat den [[Scope]] 'scene'.
 
|}
 
|}
 
Das, was im Schleifenrumpf angegeben ist, wird für jedes Array-Element ausgeführt.
 
 
  
 
== Beispiele ==
 
== Beispiele ==
Zeile 55: Zeile 62:
 
</for>
 
</for>
 
<!-- Hinweis: jetzt ist nur noch der zuletzt ausgegebene Held selektiert (da mehrere einzelne Selects durchgeführt wurden) -->
 
<!-- Hinweis: jetzt ist nur noch der zuletzt ausgegebene Held selektiert (da mehrere einzelne Selects durchgeführt wurden) -->
 +
</code>
 +
 +
 +
=== Von 1 bis 10  zählen ===
 +
<code xml>
 +
<for start="1" end="10" name="i">
 +
  <p><fetch name="i"/></p>
 +
</for>
 
</code>
 
</code>
  
 
[[Kategorie:AOQML-Tags]]
 
[[Kategorie:AOQML-Tags]]
[[Kategorie:AOQML]]
 

Aktuelle Version vom 18. Februar 2017, 18:54 Uhr

Mit dem for-Tag kann man in AOQML Schleifen erstellen. Dies kann insbesondere bei Gruppenoptionen sowie zur einfacheren Handhabung komplexer Szenen hilfreich sein.

Syntax

<for all="" name="">
  <!-- Schleifenrumpf -->
</for>

<for [start="1"] end="" [step="1"] name="">
  <!-- Schleifenrumpf -->
</for>
Attribut Erklärung
all Hier wird das Array angegeben, über das iteriert werden soll. Als Trenner zwischen den Array-Elementen wird | benutzt. Das, was im Schleifenrumpf angegeben ist, wird für jedes Array-Element ausgeführt.
start Hier wird der Startwert angegeben (standardmäßig 1)
end Hier wird der Ende-Wert der for-Schleife angegeben (z.B. 10)
step Hier wird die Zählererhöhung angegeben (standardmäßig 1)
name Gibt den Bezeichner der Variable an, die bei jedem Schleifendurchlauf mit dem neuen Array-Element gesetzt wird. Die Variable hat den Scope 'scene'.

Beispiele

Mehrere Proben hintereinander durchführen

Im folgenden Beispiel werden drei Talentproben hintereinander durchgeführt.

<for all="Singen|Schleichen|Schwimmen" name="tal">
  <challenge talent="${tal}">
  </challenge>
</for>


Gruppenmitglieder durchgehen

Im folgenden Beispiel wird über alle Gruppenmitglieder iteriert. Im Schleifenrumpf wird jeder Held wird einzeln selektiert und seine HeldID und sein Name ausgegeben.

<for all="${sys:heroes}" name="heldid">
  <select hero="${heldid}"/>
  <p>HeldID: <fetch name="heldid"/>, Name: <get attribute="name"/></p>
</for>
<!-- Hinweis: jetzt ist nur noch der zuletzt ausgegebene Held selektiert (da mehrere einzelne Selects durchgeführt wurden) -->

Die Variable sys:heroes hat alle Held-IDs der Gruppenmitglieder gespeichert.
Möchte man auf die bereits selektierten Gruppenmitglieder zugreifen, kann die Variable sys:selected-heroes verwendet werden.
Möchte man auf die bisher nichtselektierten Gruppenmitglieder zugreifen, kann die Variable sys:unselected-heroes verwendet werden.

<!-- alle Helden ausgeben, die gerade selektiert sind -->
<for all="${sys:selected-heroes}" name="heldid">
  <select hero="${heldid}"/>
  <p>HeldID: <fetch name="heldid"/>, Name: <get attribute="name"/></p>
</for>
<!-- Hinweis: jetzt ist nur noch der zuletzt ausgegebene Held selektiert (da mehrere einzelne Selects durchgeführt wurden) -->


Von 1 bis 10 zählen

<for start="1" end="10" name="i">
  <p><fetch name="i"/></p>
</for>