Has

Aus AntamarWiki
Version vom 20. Juli 2012, 10:34 Uhr von Ambermoon (Diskussion | Beiträge) (hero-quantity: Standard: all)
Wechseln zu: Navigation, Suche

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.

Syntax

<has [item="" [equipped=""]] [talent=""] [quality=""] [name=""] [attribute=""] [companion-type=""]
     [val=""] [min=""] [max=""] [hero-quantity="all"] [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.
  • 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>

Wird hero-quantity nicht explizit angegeben, wird standardmäßig der Werr all angenommen.

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>