Challenge: Unterschied zwischen den Versionen
Cvk (Diskussion | Beiträge) (→quality="...") |
|||
Zeile 200: | Zeile 200: | ||
[[Kategorie:AOQML-Tags]] | [[Kategorie:AOQML-Tags]] | ||
− |
Version vom 4. April 2015, 10:31 Uhr
<challenge talent="..."|quality="..." [mod="..."] [show="..."] [name="..."] [result="..."] [hero-quantity="..."] [id="..."]>
[<success [min="..."] [max="..."] [double="double"] [select-heroes="false"]>...</success>]
[<failure [min="..."] [max="..."] [double="double"] [select-heroes="false"]>...</failure>]
</challenge>
Mit diesen Tags können Proben abgelegt werden. Der erste zum Ergebnis passsende Zweig wird ausgeführt.
Inhaltsverzeichnis
talent="..."
An Stelle von ... wird hier eine Talentbezeichnung angegeben, wie sie in der Talentübersicht zu sehen ist, oder eine Variable. Bei mehrfachem Vorkommen in verschiedenen Kategorien (meist Sprache/Schrift) wird der Kategorie-Bezeichner so davor gestellt: talent="Sprache/Isdira" bzw. talent="Schrift/Isdira".
Es kann exklusiv entweder das talent- oder das quality-Attribut angegeben werden. Bei Angabe von name="..." mit einer belegten Variablen können auch beide entfallen.
quality="..."
An Stelle von ... wird hier eine Eigenschaft in Form ihrer zweibuchstabigen Abkürzung angegeben, also MU (Mut), IQ (Intelligenz), IN (Intuition), WI (Willenskraft), CH (Charisma), FF (Fingerfertigkeit), GE (Gewandtheit), KO (Konstitution) oder ST (Stärke).
Auch Pseudo-Eigenschaften wie Ausdauer (AU), Lebenspunkte (LEP) oder Ausweichen (AUSWEICHEN) können geprobt werden, genauso wie eine Variable die eine solche Abkürzung enthält.
Es kann exklusiv entweder das talent- oder das quality-Attribut angegeben werden.
mod="..."
An Stelle von ... kann hier ein Modifikator angegeben werden, also z.B. "-2" oder "+5". Auch Besondere Werte sind möglich: "-2..-+5". Die Vorgabe ist "0".
mod="${variablenname}"
Man kann auch einen Modifikator aus einer Variable holen, indem man mod="${variablenname}" verwendet und als Variable eine positive oder negative Zahl speichert. Dadurch kann man z.B. den Effekt von Ausrüstung oder Entscheidungen auf eine Probe einrechnen, den man vorher durch store gespeichert und ggf. durch eval oder set verändert hat.
Beispiel 1:
<has item="Kletterseil">
<success>
<store name="klettermodi" scope="quest">-3</store>
</success>
<failure>
<store name="klettermodi" scope="quest">0</store>
</failure>
</has>
<challenge talent="Klettern" mod="${klettermodi}">
<success>
<include target="probe_geschafft"/>
</success>
<failure>
<include target="probe_misslungen"/>
</failure>
</challenge>
Beispiel 2:
<!-- Erst den normalen Modi als Variable speichern. -->
<store name="klettermodi" scope="quest">5</store>
<!-- Dann Ausrüstung abfragen. -->
<has item="Kletterseil">
<success>
<set name="klettermodi" dec="2"/>
</success>
<failure>
</failure>
</has>
<!-- Jetzt können auch mehrere Boni addiert werden! -->
<has item="Kletterhaken">
<success>
<set name="klettermodi" dec="2"/>
</success>
<failure>
</failure>
</has>
<!-- Und das Ergebnis dann auswerten. -->
<challenge talent="Klettern" mod="${klettermodi}">
<success>
<include target="probe_geschafft"/>
</success>
<failure>
<include target="probe_misslungen"/>
</failure>
</challenge>
show="..."
An Stelle von "..." kann hier "none" (keine Ausgabe der Probe), "challenge" (nur Ausgabe der Probeananforderung, ohne Ergebnis) oder "result" (Ausgabe der Probenanforderung und des Ergebnisses) angegeben werden. Die Vorgabe ist "result".
name="..."
An Stelle von ... kann hier der Name einer Variablen angegeben werden.
Ist ein Talent oder eine Eigenschaft angegeben, dann wird das Probenergebnis
in der Variablen gespeichert. Sind weder Talent noch Eigenschaft angegeben,
dann wird das Probenergebnis aus der Variablen genommen. Damit kann ein
Probenergebnis also mehrfach verwendet werden.
Ohne Angabe von name=... wird keine Variable verwendet.
Beispiel:
<challenge talent="Klettern" name="ProbeNr1"/>
...Andere programmierte Questereignisse bzw. weiterer AOQML-Code ...
<challenge name="ProbeNr1">
<success>Hurra, dir ist es gelungen!</success>
<failure>Oh weh, das ist dir aber Misslungen! </failure>
</challenge>
result="..."
Statt ... kann hier ein Ergebnis (TaP) stehen, welches statt der Würfel verwendet wird. Dieses Attribut ist nur bei DEBUG aktiv und dient dem Austesten aller Zweige. Vorgabe ist, das Würfelergebnis zu verwenden.
Zum Beispiel bewirkt der folgende Code, dass automatisch ein FeW* von -3 gesetzt wird (gilt nur für die Testumgebung), d.h. die Eigenschaften und Talente des Helden werden gar nicht erst geprobt.
<challenge talent="Singen" mod="5" result="-3">
...
Entsprechend würde in diesem Fall automatisch der failure-Zweig ausgeführt werden.
hero-quantity="..."
Dieser Tag wird nur bei Gruppenbegegnungen ausgewertet. Als Angabe wird eine Zahl (>=1) oder 'all' erwartet.
Die Zahl gibt an, wie viele Helden die Probe bestehen müssen, damit sie insgesamt als bestanden gilt. Wenn 'all' angegeben, müssen alle Helden der Gruppe die Probe bestehen.
Wenn der Tag nicht angegeben wird, ist standardmäßig 1 eingestellt, d.h. lediglich ein Held in der Gruppe
muss die Probe bestehen, damit die Probe als bestanden gilt.
Beispiele:
<challenge talent="Sinnenschärfe" mod="3">
<success>
<!-- bestanden, wenn mind. ein Held die Probe bestanden hat -->
</success>
</challenge>
<challenge quality="ST" mod="2" hero-quantity="2">
<success>
<!-- bestanden, wenn mind. zwei Helden der Gruppe die Probe bestanden haben -->
</success>
</challenge>
<challenge talent="Selbstbeherrschung" hero-quantity="all">
<success>
<!-- bestanden, wenn alle Helden der Gruppe die Probe bestanden haben -->
</success>
</challenge>
id="..."
Nur für Gruppenbegegnungen! Mit der Angabe einer ID kann später ein Held ermittelt werden, der die Probe am besten oder am schlechtesten absolviert hat, siehe Beispiele im hero-Tag.
min="...", max="..."
Mit ... können hier minimal, bzw. maximal TaP angegeben werden. Achtung: Im negativen Bereich kommt man schnell durcheinander, weil größere Zahlenwerte natürlich kleinere Zahlen sind! Daher kann man im negativen Bereich auch einfach das Minuszeichen weglassen und min/max vertauschen. Das ist intuitiver. Vorgabe: Es wird nur auf Erfolg/Misserfolg ohne weitere Einschränkung geprüft.
double="double"
Kennzeichnet den Zweig als dann auszuführen, wenn bei einer Talentprobe eine doppel 20 (failure-tag) oder doppel 1 (success-tag) auftritt. Natürlich darf nur jeweils ein failure/success-Zweig so markiert werden. Eine Kombination von double und min/max ist nicht möglich!
<challenge ... >
<success double="double">Doppel 1</success>
<success>Normal geschafft</success>
<failure max="9">Fehlgeschlagen und TaW* > -9</failure>
<failure double="double">Doppel 20</failure>
<failure>Restliche Failure-Fälle (also keine Doppel 20 und TaW* < -9)</failure>
</challenge>
select-heroes
Gilt nur für Gruppenbegegnungen.
Im success- oder failure-Zweig kann ein select-heroes="true" angegeben werden.
Ist select-heroes="true" im success-Zweig angegeben, bewirkt dies, dass automatisch die Helden selektiert werden, die die Probe bestanden haben.
Ist select-heroes="true" im failure-Zweig angegeben, bewirkt dies, dass automatisch die Helden selektiert werden, die die Probe nicht bestanden haben.
<challenge talent="Sinnenschärfe">
<success select-heroes="true"><!-- selektiert die Helden, die die Probe bestanden haben -->
...
</success>
<failure select-heroes="true"><!-- selektiert die Helden, die die Probe nicht bestanden haben -->
...
</failure>
</challenge>