Has
Mit dem <has>-Tag kann in AOQML überprüft werden, ob ein Held ein Talent oder eine Eigenschaft oder einen Gegestand oder eine gespeicherte Variable hat.
Inhaltsverzeichnis
Syntax
<has [item="" [equipped=""]] [talent=""] [quality=""] [name=""] [attribute=""] [companion-type=""]
[val=""] [min=""] [max=""] [hero-quantity=""] [companions-affected="true"] [show="result"] />
- item: Bezeichnung des Gegenstandes, z.B. "Angelschnur mit Haken". Es können auch Waren-Tags verwendet werden.
- equipped: (nur in Kombination mit item) Wenn nicht angegeben, wird der Gegenstand sowohl im Gepäck als auch bei getragener Kleidung/Rüstung/Waffen gesucht. Wenn equipped="true" wird nur in der getragenen Kleidung/Rüstung/Waffe gesucht. Wenn equipped="false" wird nur im Gepäck gesucht.
- talent: Bezeichnung des Talentes, z.B. "Zechen"
- quality: Kurz-Bezeichnung der Eigenschaft, z.B. "ST" (für Stärke)
- attribute: Bezeichnung des Attributes
- name: Bezeichnung einer Variablen, siehe u.a. Globale marker, Store/Fetch
- companion-type: Hiermit kann geprüft werden, ob der Held einen bestimmten Begleiter hat. Mögliche Ausprägungen sind: 'Hund', 'Esel', 'Pferd', 'Kamel'
Optional zusätzlich dazu:
- val oder value (nur in Kombination mit attribute oder name!): prüft, ob das zu prüfende Attribut oder die zu prüfende Variable eine konkrete Ausprägung besitzt
- min: minimale Anzahl bzw. minimaler Wert, um in den </success>-Zweig zu gelangen
- max: maximale Anzahl bzw. maximaler Wert, um in den </success>-Zweig zu gelangen
Das max-Attribut ist damit praktisch eine Negierung derselben Abfrage mit min und umgekehrt.
- hero-quantity: (greift nur bei Gruppenbegegnungen) Wenn z.B. 2 angegeben, müssen zwei Helden die Bedingung erfüllen.
- companions-affected: (standardmäßig true) Wenn 'true' und ein item angegeben, wird auch das Gepäck von evtl. vorhandenen Begleitern des Helden durchsucht. Wenn 'false' werden die Gepäckgegenstände der Begleiter ignoriert.
Mit show="none" wird die has-Abfrage für den Spieler nicht sichtbar durchgeführt (sie wird versteckt durchgeführt).
In allen Attributen ist die Verwendung besonderer Werte möglich.
Für die Auswertung siehe <success>...</success> und <failure>...</failure> unter challenge.
Beispiele
has item
Mit <has item=""> lässt sich prüfen, ob der Held einen oder mehrere bestimmte Gegenstände dabei hat.
<has item="Zunderdose" companions-affected="true">
<success>
[Probe auf Wildnisleben normal um ein Feuer zu entfachen]
</success>
<failure>
[Probe auf Wildnisleben +3 um ein Feuer zu entfachen]
</failure>
</has>
Das ODER-Zeichen "|" erlaubt auch alternative Gegenstände, z.B.:
<has item="Zunderdose|Wasserdichte Zunderdose|Feuerstein und Stahl" companions-affected="true">
<success>
[Probe auf Wildnisleben normal um ein Feuer zu entfachen]
</success>
<failure>
[Probe auf Wildnisleben +3 um ein Feuer zu entfachen]
</failure>
</has>
equipped
Wenn equipped nicht angegeben, wird der Gegenstand (item) sowohl im Gepäck (Rucksack) als auch bei getragener Kleidung/Rüstung/Waffen gesucht.
Wenn equipped="true" wird nur in der getragenen Kleidung/Rüstung/Waffe gesucht.
Wenn equipped="false" wird nur im Gepäck gesucht.
<!-- prüfen, ob der Held einen Schuppenpanzer angelegt hat (gerade trägt) -->
<has item="Schuppenpanzer" equipped="true">
<success>
<p>Ein schöner Schuppenpanzer, den du da trägst!</p>
</success>
</has>
min und max
<!-- prüfen, ob der Held das Talent "Fechtwaffen" auf mindestens 5 gesteigert hat -->
<has talent="Fechtwaffen" min="5">
<success>
<p>Du verstehst etwas von Fechtwaffen!</p>
</success>
<failure>
<p>Du kennst dich mit Fechtwaffen bisher nicht besonders gut aus!</p>
</failure>
</has>
<!-- prüfen, ob der Held die Eigenschaft FF <= 12 hat -->
<has quality="FF" max="12">
<success>
<p>Du bist nicht besonders fingerfertig!</p>
</success>
</has>
<!-- prüfen, wie gut die Sprache 'Zwergisch' bekannt -->
<has talent="Zwergisch" max="3">
<success>
<p>Du verstehst kein Wort, von dem, was die Zwerge sagen.</p>
</success>
</has>
val
Das Attribut val ermöglicht die Prüfung auf ganz bestimmte Ausprägungen. Es steht bisher nur in Kombination mit attribute und name zur Verfügung und sollte nicht mit min- oder max- kombiniert werden.
<!-- Beispiel 1: Variable auf bestimmte Ausprägung prüfen -->
<store name="meine-testvariable" scope="quest">Leberkäs</store>
...
<has name="meine-testvariable" val="Leberkäs">
<success>
<!-- die Variable hat den Inhalt 'Leberkäs' -->
</success>
<failure>
<!-- die Variable ist nicht mehr mit 'Leberkäs' beschrieben. Der Wert wurden zwischendurch geändert. -->
</failure>
</has>
<!-- Beispiel 2: ein Heldattribut auf bestimmte Ausprägung testen -->
<has attribute="race" val="Mensch">
<success>
<p>Du bist ein Mensch.</p>
</success>
<failure><
<p>Du bist kein Mensch.</p>
</failure>
</has>
hero-quantity
Für Gruppen-Begegnungen wurde das Attribut hero-quantity eingeführt, das eine Zahl als Parameter erwartet. hero-quantity gibt an, wie viele Helden die Bedingung erfüllen müssen, um in den success-Pfad zu gelangen.
<!-- NUR FÜR GRUPPENBEGEGNUNGEN !!! Anwendung von hero-quantity
zwei Helden müssen mindestens ein Charisma von 15 aufweisen -->
<has quality="CH" min="15" hero-quantity="2">
<success>
<p>Ihr seid ja ganz schön beeindruckend!</p>
</success>
</has>
Sollte hero-quantity größer sein als die Anzahl der Helden der Gruppe wird hero-quantity intern auf die Anzahl der Gruppenmitglieder gesetzt (wenn 5 angegeben, aber nur 4 Helden in der Gruppe ist der Wert 4).
<!-- prüfen, ob alle Helden der Gruppe die Gesinnung 'getreu' (steht für gesetzestreu) haben -->
<has attribute="gesinnung" val="getreu" hero-quantity="all">
<success>
<p>Ihr seid rechtschaffende Helden!</p>
</success>
</has>
companion-type
Erlaubt die Prüfung, ob der Held ein bestimmtes Tier als Begleiter hat:
<!-- Hund aktiv? -->
<has companion-type="Hund">
<success>
<p><q>Ooooh, du hast aber einen süüüüüßen Hund!</q>.</p>
</success>
<failure>
<p>Du hast keinen Hund als Begleiter.</p>
</failure>
</has>
<!-- Esel aktiv? -->
<has companion-type="Esel">
<success>
<p>Dein Esel ist heute wieder sturr.</p>
</success>
</has>
Geprüft werden können: 'Hund', 'Esel', 'Pferd' und 'Kamel'.
Waren-Tags
Waren-Tags können in AOQML bei has und drop beim Attribut item (anstelle der Angabe eines Gegenstandes) benutzt werden. Dazu muss lediglich ein * gefolgt von der Tag-Bezeichnung angegeben werden, Beispiel:
<has item="*Lichtquelle">
<success>
<p>Du machst dir erstmal Licht.</p>
</success>
<failure>
<p>Du kannst nichtmal deine Hand vor den Augen sehen, so dunkel ist es hier.</p>
</failure>
</has>
<!-- prüfen, ob mind. 15 Nahkampfwaffen dabei -->
<has item="*Nahkampfwaffe" min="15">
<success>
<p>Du trägst ja ein ganz schönes Waffenarsenal mit dir herum...</p>
</success>
</has>