Wenn eine Quest aus mehreren Teilen besteht oder zwischendrin ein pending hat, können die Gruppenmitglieder getauscht werden, trotzdessen eine Quest "läuft". Bisher habe ich über eine Schleife eine Variable gefüllt die als Namen die HeldenIds hat. Diese habe ich dann irgendwann ebenfalls per Schleife geprüft und danach ausgewertet. Gibt es einen besseren und einfacheren Weg?
start.xml ODER erster Questteil
- Code: Alles auswählen
<for all="${sys:heroes}" name="heldid">
<switch name="pendingspeicher">
<case val="1">
<set name="pendingspeicher" inc="1" show="none" />
<store name="heldid2" scope="scene" >${heldid}</store>
</case>
<case val="2">
<set name="pendingspeicher" inc="1" show="none" />
<store name="heldid3" scope="scene" >${heldid}</store>
</case>
<case val="3">
<store name="heldid4" scope="scene" >${heldid}</store>
</case>
<else>
<set name="pendingspeicher" inc="1" show="none" />
<store name="heldid1" scope="scene" >${heldid}</store>
</else>
</switch>
</for>
<select all="true"/>
<store name="${heldid1}${heldid2}${heldid3}${heldid4}" scope="hero" >true</store>
Pendingszene bzw anderer Questteil
- Code: Alles auswählen
<! -- Prüfung ob ALLE Helden Variable haben -->
<for all="${sys:heroes}" name="heldid">
<select hero="${heldid}"/>
<has name="${heldid1}${heldid2}${heldid3}${heldid4}" show="none">
<success>
<!-- Wenn Held Variable hat, dann + 1 -->
<set name="pendingszene" inc="1" scope="scene" show="none"/>
</success>
</has>
</for>
<!-- Auswertung ob alle Helden die Variable haben -->
<has name="pendingszene" min="4" show="none">
<success>
<!-- Alle Helden sind berechtigt den Questteil zu spielen. -->
</success>
<failure>
<!-- Mindestens 1 Held ist nicht berechtigt diesen Questteil zu spielen. -->
</failure>
</has>