1.410
Bearbeitungen
Änderungen
→Gruppenzeug
<!-- Die nachfolgende Schleife ist in einer Zeile, da sonst ein Leerzeichen vor einem etwaigen Komma ausgegeben wird. Code bitte nicht umbrechen oder Leerzeichen einfügen! -->
<for all="${sys:selected-heroes}" name="heldid"><select hero="${heldid}"/><store name="differenzwert"><eval><fetch name="anzahl_selektierte_helden"/>-<fetch name="zahler_heldenaufzahlung"/></eval></store><switch name="differenzwert"><case val="${anzahl_selektierte_helden}"><get attribute="nick"/></case><case val="1"> und <get attribute="nick"/></case><else>, <get attribute="nick"/></else></switch><set name="zahler_heldenaufzahlung" inc="1" show="none"/></for>
</retain>
</code>
===Einer Gruppe (von selektierten) Helden X eines Gegenstandes wegnehmen===
Die Nachfolgende Routine entfernt von den selektierten Helden insgesamt eine gewünschte Anzahl Gegenstände. Sind nicht genug Gegenstände vorhanden, werden alle entfernt. Die Anzahl entfernter Gegenstände wird gespeichert. Um die Routine auf die gesamte Gruppe anzuwenden, entweder ein ''<select all="true"/>'' einfügen oder ''selected-'' in der for-Schleife entfernen.
'''Achtung Stolperstein:''' Nach Aufruf dieser Routine ist nurnoch ein Held selektiert. Außerdem wird die Variable ''anzahl_wegzuwerfen'' überschrieben (verringert)!
<code xml n>
<!-- Routine wirft bis zu "anzahl_wegzuwerfen" Gegenstände "wegzuwerfender_gegenstand" weg. Bonus: Speichert die Anzahl tatsächlich weggeworfenen Gegenstände in "anzahl_weggeworfen". Einsatz nur bei Gruppen. -->
<retain name="entferne_x_dieses_gegenstandes" id="entferne_gegenstaende">
<store name="anzahl_weggeworfen">0</store>
<for all="${sys:selected-heroes}" name="held_id">
<select hero="${held_id}"/>
<store name="temp"><function name="ermittle-item-anzahl" param1="${wegzuwerfender_gegenstand}"/></store>
<switch name="anzahl_wegzuwerfen">
<case val="0">
<!-- Kein Inhalt, da nichts getan werden muss. Fall vorhanden, da sonst ELSE-Zweig ausgeführt würde. -->
</case>
<case min="1" max="${temp}"><!-- Held hat mindestens so viele Gegenstände, wie weggeworfen werden sollen und es soll mindestens einer weggeworfen werden. -->
<set name="anzahl_weggeworfen" inc="${anzahl_wegzuwerfen}" show="none"/>
<drop item="${wegzuwerfender_gegenstand}" count="${anzahl_wegzuwerfen}"/>
<set name="anzahl_wegzuwerfen" val="0" show="none"/><!-- Es muss nichts mehr weggeworfen werden. -->
</case>
<else><!-- Falls der selektierte Held weniger Gegenstände hat, als noch wegzunehmen sind. -->
<drop item="${wegzuwerfender_gegenstand}" count="${temp}"/><!-- Held werden so viele geklaut, wie er halt hat, da er weniger hat als noch insgesamt wegzuwerfen sind. Keine Ausgabe, falls ihm nichts geklaut wird.-->
<set name="anzahl_weggeworfen" inc="${temp}" show="none"/>
<set name="anzahl_wegzuwerfen" dec="${temp}" show="none"/>
</else>
</switch>
</for>
</retain>
</code>