Hero: Unterschied zwischen den Versionen
(→by-talent: neue Semantik mit -1 für inaktive Fertigkeiten und Zufallsauswahl) |
|||
(4 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 8: | Zeile 8: | ||
</code> | </code> | ||
− | * '''output''': 'name' oder 'id'. 'name' liefert den Name des Helden zurück, 'id' die HeldID. | + | * '''output''': 'name', 'nick' oder 'id'. 'name' liefert den Name des Helden zurück, 'nick' seinen Decknamen und 'id' die HeldID. |
* '''select''': 'best' oder 'worst', wenn in Kombination mit anderen Parametern verwendet oder 'random' um einen Helden der Gruppe zufällig auszuwählen. | * '''select''': 'best' oder 'worst', wenn in Kombination mit anderen Parametern verwendet oder 'random' um einen Helden der Gruppe zufällig auszuwählen. | ||
* '''by-challenge''': Wenn einer Probe zuvor eine ID gegeben wurde, kann diese ID hier angegeben werden - somit wird die Probe referenziert. Jedoch muss sich die Probe in derselben Szene befinden! | * '''by-challenge''': Wenn einer Probe zuvor eine ID gegeben wurde, kann diese ID hier angegeben werden - somit wird die Probe referenziert. Jedoch muss sich die Probe in derselben Szene befinden! | ||
Zeile 23: | Zeile 23: | ||
=== by-challenge === | === by-challenge === | ||
+ | |||
+ | Referenziert die [[Challenge]] über deren Attribut "name". | ||
<code xml n> | <code xml n> | ||
− | <challenge talent="Schleichen" hero-quantity="all" | + | <challenge talent="Schleichen" hero-quantity="all" name="Pr1" scope="scene" > |
<success> | <success> | ||
<p>Vorsichtig schleicht ihr weiter.</p> | <p>Vorsichtig schleicht ihr weiter.</p> | ||
Zeile 36: | Zeile 38: | ||
</challenge> | </challenge> | ||
</code> | </code> | ||
− | |||
=== by-talent === | === by-talent === | ||
Zeile 45: | Zeile 46: | ||
</code> | </code> | ||
− | + | Hat ein Held die Fertigkeit (Talent) nicht aktiviert, zählt es als -1, d.h. ggf. kommen dabei Helden heraus, die das Talent gar nicht aktiviert haben. Daher sollte man sich i.d.R. eine Probe anschließen, z.B: | |
+ | |||
<code xml n> | <code xml n> | ||
<!-- ermitteln, wer am besten urelfisch sprechen kann --> | <!-- ermitteln, wer am besten urelfisch sprechen kann --> | ||
− | <store name=" | + | <store name="heldID"><hero output="id" by-talent="Urelfisch" select="best"/></store> |
− | < | + | |
− | + | <!-- den betreffenden Helden selektieren --> | |
− | <p> | + | <select hero="${heldID}"/> |
− | </ | + | |
− | < | + | <!-- und prüfen, ob er es wirklich kann - alternativ gleich eine challenge --> |
− | <p> | + | <has talent="Urelfisch"> |
− | </ | + | <success> |
− | </ | + | <p><get attribute="name"/> kann Urelfisch</p> |
+ | </success> | ||
+ | <failure> | ||
+ | <p>niemand von euch kann Urelfisch</p> | ||
+ | </failure> | ||
+ | </has> | ||
</code> | </code> | ||
+ | Sollten mehrere Helden gleich schlecht/guut sein, erfolgt Auswahl zufällig. D.h. mehrmalige Ausführung hintereinander kann unterschiedliche Helden liefern! | ||
=== by-quality === | === by-quality === |
Aktuelle Version vom 11. August 2021, 18:28 Uhr
Mit Hilfe des hero-Tags kann in AOQML bei Gruppenbegegnungen (Gruppen-ZB oder Gruppenquest) die HeldID oder der Heldenname eines Helden der Gruppe auf Basis bestimmter Parameter ermittelt werden.
Beispielsweise ist es möglich nach einer misslungen Talentprobe herauszufinden, welcher Held die Probe am meisten "versaut" hat.
Inhaltsverzeichnis
Syntax
<hero [output="name"] [by-challenge=""] [by-talent=""] [by-quality=""] [by-attribute=""] [val=""] [select=""] />
- output: 'name', 'nick' oder 'id'. 'name' liefert den Name des Helden zurück, 'nick' seinen Decknamen und 'id' die HeldID.
- select: 'best' oder 'worst', wenn in Kombination mit anderen Parametern verwendet oder 'random' um einen Helden der Gruppe zufällig auszuwählen.
- by-challenge: Wenn einer Probe zuvor eine ID gegeben wurde, kann diese ID hier angegeben werden - somit wird die Probe referenziert. Jedoch muss sich die Probe in derselben Szene befinden!
- by-talent: Hier kann ein Talentname angegeben werden.
- by-quality: Hier kann ein Eigenschaftskürzel (MU, IQ, ...) angegeben werden.
- by-attribute: Angabe eines Heldenattributs wie z.B. Verletzungen ('LEP', 'AUP', 'ERP', 'wounds'), Talentwerte, Eigenschaftswerte usw.
Hinweis zur Anwendung: Das <hero>-Tag kann von einem store-Tag umschlossen werden, wenn man bspw. die HeldID in eine Variable speichern möchte, um sie später bei einem select-Tag anzugeben.
Es kann auch vorkommen, dass kein Held zurückgegeben werden kann, weil kein Held der geforderten Bedingung aus den o.g. Attributen entspricht, z.B. wenn man ein sehr selten aktiviertes Talent abfragt. In diesem Fall ist die Rückgabe leer.
Beispiele
by-challenge
Referenziert die Challenge über deren Attribut "name".
<challenge talent="Schleichen" hero-quantity="all" name="Pr1" scope="scene" >
<success>
<p>Vorsichtig schleicht ihr weiter.</p>
</success>
<failure><!-- mindestens ein Held hat die Schleichen-Probe versaut! -->
<p>Ups!</p>
<!-- Welcher Held ist schuld? ;) -->
<p><hero output="name" by-challenge="Pr1" select="worst" /> tritt ungünstig auf ein paar Steinchen, was ungeheuren Lärm verursacht...</p>
</failure>
</challenge>
by-talent
<!-- ermitteln, welcher Held am besten feilschen kann -->
<hero output="name" by-talent="Feilschen" select="best" /> kann am besten feilschen.
Hat ein Held die Fertigkeit (Talent) nicht aktiviert, zählt es als -1, d.h. ggf. kommen dabei Helden heraus, die das Talent gar nicht aktiviert haben. Daher sollte man sich i.d.R. eine Probe anschließen, z.B:
<!-- ermitteln, wer am besten urelfisch sprechen kann -->
<store name="heldID"><hero output="id" by-talent="Urelfisch" select="best"/></store>
<!-- den betreffenden Helden selektieren -->
<select hero="${heldID}"/>
<!-- und prüfen, ob er es wirklich kann - alternativ gleich eine challenge -->
<has talent="Urelfisch">
<success>
<p><get attribute="name"/> kann Urelfisch</p>
</success>
<failure>
<p>niemand von euch kann Urelfisch</p>
</failure>
</has>
Sollten mehrere Helden gleich schlecht/guut sein, erfolgt Auswahl zufällig. D.h. mehrmalige Ausführung hintereinander kann unterschiedliche Helden liefern!
by-quality
<!-- ermitteln, welcher Held am meisten Charisma hat -->
<hero output="name" by-quality="CH" select="best" />
by-injury
Mögliche Angaben sind 'LEP', 'AUP', 'ERP' und 'wounds'.
by-attribute
by-attribute (mögliche Ausprägungen siehe Held_Attribute) kann mit val wie folgt kombiniert werden:
<!-- Held ermitteln, der eher passiv agiert -->
<store name="held_id"><hero output="id" by-attribute="kampf" val="passiv"/></store>
Alternativ können auch numerische Heldenattribute wie select="best" oder select="worst" verglichen werden.
<!-- ermitteln, welcher Held am meisten erschöpft ist -->
<hero output="name" by-attribute="ERP" select="worst" /> ist sehr erschöpft.
<!-- ermitteln, welcher Held die meisten Wunden hat -->
<store name="held_verletzt"><hero output="name" by-attribute="wounds" select="worst" /></store>
<!-- falls kein Held Wunden hat, hat die Variable 'held_verletzt' einen leeren Inhalt -->
<switch name="held_verletzt">
<case val="">
<p>Ihr seid alle unverwundet!</p>
</case>
<else>
<p><fetch name="held_verletzt"/> hat die meisten Wunden.</p>
</else>
</switch>
select="random"
Ein Held der Gruppe kann zufällig ausgewählt werden mit:
<store name="zufaelligerHeldID"><hero output="id" select="random"/></store>
<select hero="${zufaelligerHeldID}"/>