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="1"] [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'
- Achtung, ausgerüstete Begleiter können nicht mehr als Gegenstände erkannt werden!
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. Standardmäßig reicht es, wenn ein Held die Bedingung erfüllt.
- 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. Standardmäßig ist der Wert 1, d.h. es reicht normalerweise, wenn ein Held die Bedingung erfüllt. In einigen Fällen macht es jedoch Sinn, wenn mehrere Helden die Bedingung erfüllen müssen, z.B.:
<!-- 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>
<!-- 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', 'Katze', 'Papagei', '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>