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=""] [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: Hier kann geprüft werden, ob der Held einen bestimmten Begleiter (der Warenname!) hat wie z.B. 'Grauesel', 'Aivarunenpony', 'Mahburger Pferd', 'Papagei' usw.
- companion-type: Hiermit kann geprüft werden, ob der Held einen bestimmten Begleitertyp hat. Mögliche Ausprägungen sind: 'Hund', 'Esel', 'Pferd', 'Kamel'
Achtung, ausgerüstete Begleiter können nicht als Gegenstände bei der Abfrage <has item="..."> erkannt werden!
Optional zusätlich:
- val oder value: 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
- 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 PLUS-Zeichen "+" gibt an, dass all die angegebenen Items vorhanden sein müssen, z.B.:
<has item="Porzellanstatue+Zinnstatuette">
<success>
<p>Beide Statuen dabei!</p>
</success>
<failure>
<p>Mindestens eine (oder beide) Statuetten fehlen dir!</p>
</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>
Das PROZENT-Zeichen "%" steht für beliebige Zeichen und erlaubt so Gegenstände mit Teilinformationen zu prüfen, z.B.:
<has item="%dolch">
<success>
[Bestättigung, wenn Gegenstände mit DOLCH am Ende vorhanden sind.]
</success>
<failure>
[Bestättigung, wenn keine Gegenstände mit DOLCH am Ende vorhanden sind.]
</failure>
</has>
Wenn z.B. %dolch% benutzt wird, werden alle Gegenstände gewertet, die das Wort dolch im Namen haben. So würde zum Beispiel auch "Geheime Dolchscheide" gelten.
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
Prüft, ob der Held einen konkreten Begleiter hat. Funktioniert genauso wie <has item="...">
<has companion="Grauesel">
<success>
<p>Mind. ein Grauesel als Begleiter!</p>
</success>
<failure>
<p>Kein Grauesel als Begleiter!</p>
</failure>
</has>
<has companion="Grauesel|Maulesel">
<success>
<p>Mind. ein Grauesel oder ein Maulesel Begleiter!</p>
</success>
<failure>
<p>Kein Grauesel oder Maulesel als Begleiter!</p>
</failure>
</has>
<has companion="Papagei" min="2">
<success>
<p>Mind. zwei Papageie als Begleiter!</p>
</success>
<failure>
<p>Keine zwei Papageie (oder mehr) als Begleiter!</p>
</failure>
</has>
<has companion="Maulesel+Papagei">
<success>
<p>Sowohl Maulesel als auch Papagei als Begleiter!</p>
</success>
<failure>
<p>Maulesel und Papagei in der Kombination nicht als Begleiter!</p>
</failure>
</has>
companion-type
Erlaubt die Prüfung, ob der Held ein bestimmten Typ an 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'.
Waffentypus abfragen
Möchte man z.B. wissen, ob der Held gerade einen Dolch trägt, kann man dies wie folgt tun:
<has item="waffe_typ=Dolche" equipped="true">
Möchte man z.B. wissen, ob der Held eine Wuchtwaffe irgendwo dabei hat (gerüstet oder nicht, auf Begleiter oder im Gepäck - ganz egal):
<has item="waffe_typ=Wuchtwaffen">
Ist auch kombinierbar. Möchte man z.B. wissen, ob der Held eine beliebige Zweihandwuchtwaffe oder Zweihandflegel angelegt hat:
<has item="waffe_typ=Zweihandwuchtwaffen|waffe_typ=Zweihandflegel" equipped="true">
usw.
Zur Info: Es existieren die folgenden Waffentypen:
Anderthalbhänder
Dolche
Fechtwaffen
Kettenstäbe
Kettenwaffen
Peitsche
Raufen
Schwerter
Speere
Stangenwaffen
Stäbe
Säbel
Wuchtwaffen
Zweihandflegel
Zweihandklingen
Zweihandwuchtwaffen
Waren-Tags
Waren-Tags (Ansicht aller Tags unter: http://eisentrutz.antamar.eu/helper/warentags.php) 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>
Beispiele
Hat der Held eine Waffe angelegt?
<has item="*Nahkampfwaffe|*Fernkampfwaffe" equipped="true">
<success>
<p><q>Herzlich Willkommen im Al Rafin! Wonach ist Euch heute <if attribute="gender" equals="male" then="werter Herr" else="werte Dame" />. Wenn Ihr bitte Eure Waffen und Rüstungen ablegen würdet?</q></p>
<p><choice target="ende">Schulter zuckend verlässt du das Al Rafin, um deine Rüstung und Waffen abzulegen.</choice></p>
</success>
</has>