Has: Unterschied zwischen den Versionen

Aus AntamarWiki
Wechseln zu: Navigation, Suche
(has val="" möglich)
Zeile 3: Zeile 3:
 
== Syntax ==
 
== Syntax ==
 
<code xml n>
 
<code xml n>
<has [item="" [equipped=""]] [talent=""] [quality=""] [name=""] [attribute=""] [min=""] [max=""] [hero-quantity=""] [show="result"] />
+
<has [item="" [equipped=""]] [talent=""] [quality=""] [name=""] [attribute=""] [val=""] [min=""] [max=""] [hero-quantity=""] [show="result"] />
 
</code>
 
</code>
  
Zeile 14: Zeile 14:
  
 
Optional zusätzlich dazu:
 
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
 
*'''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
 
*'''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.
 
Das max-Attribut ist damit praktisch eine Negierung derselben Abfrage mit min und umgekehrt.
*'''hero-quantity''': (greift nur bei [[Gruppe|Gruppenbegegnungen]] und in Kombination mit talent/quantity) Wenn z.B. 2 angegeben, müssen zwei Helden die talent oder quantity-Bedingung erfüllen.
+
*'''hero-quantity''': (greift nur bei [[Gruppe|Gruppenbegegnungen]]) Wenn z.B. 2 angegeben, müssen zwei Helden die Bedingung erfüllen.
  
 
Mit ''show="none"'' wird die has-Abfrage für den Spieler nicht sichtbar durchgeführt (sie wird versteckt durchgeführt).
 
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 [[Besondere Werte|besonderer Werte]] möglich.
 
In allen Attributen ist die Verwendung [[Besondere Werte|besonderer Werte]] möglich.
 +
 +
Für die Auswertung siehe '''<success>...</success>''' und '''<failure>...</failure>''' unter [[challenge]].
  
 
== Beispiele ==
 
== Beispiele ==
 +
 +
=== has item ===
 +
Mit <has item=""> lässt sich prüfen, ob der Held einen oder mehrere bestimmte Gegenstände dabei hat.
 +
 
<code xml n>
 
<code xml n>
<has item="Feuerstein und Stahl">
+
<has item="Zunderdose">
 
   <success>
 
   <success>
 
     [Probe auf Wildnisleben normal um ein Feuer zu entfachen]
 
     [Probe auf Wildnisleben normal um ein Feuer zu entfachen]
Zeile 35: Zeile 42:
 
</code>
 
</code>
  
Für die Auswertung siehe '''<success>...</success>''' und '''<failure>...</failure>''' unter [[challenge]].
+
Das ODER-Zeichen "|" erlaubt auch alternative Gegenstände, z.B.:
 +
<code xml n>
 +
<has item="Zunderdose|Wasserdichte Zunderdose|Feuerstein und Stahl">
 +
  <success>
 +
    [Probe auf Wildnisleben normal um ein Feuer zu entfachen]
 +
  </success>
 +
  <failure>
 +
    [Probe auf Wildnisleben +3 um ein Feuer zu entfachen]
 +
  </failure>
 +
</has>
 +
</code>
  
 +
=== equipped ===
 +
Wenn ''equipped'' nicht angegeben, wird der Gegenstand (item) sowohl im Gepäck als auch bei getragener Kleidung/Rüstung/Waffen gesucht.<br />
 +
Wenn ''equipped="true"'' wird nur in der getragenen Kleidung/Rüstung/Waffe gesucht.<br />
 +
Wenn ''equipped="false"'' wird nur im Gepäck gesucht.
 
<code xml n>
 
<code xml n>
<!-- prüfen, ob der Held einen Schuppenpanzer anhat (trägt) -->
+
<!-- prüfen, ob der Held einen Schuppenpanzer angelegt hat (gerade trägt) -->
 
<has item="Schuppenpanzer" equipped="true">
 
<has item="Schuppenpanzer" equipped="true">
 
   <success>
 
   <success>
     <p>Schöner Schuppenpanzer!</p>
+
     <p>Ein schöner Schuppenpanzer, den du da trägst!</p>
 +
  </success>
 +
</has>
 +
</code>
 +
 
 +
=== min und max ===
 +
<code xml n>
 +
<!-- 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>
 +
</code>
 +
 
 +
 
 +
 
 +
=== 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.
 +
<code xml n>
 +
<!-- 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>
 
   </success>
 +
  <failure><
 +
    <p>Du bist kein Mensch.</p>
 +
  </failure>
 
</has>
 
</has>
 
</code>
 
</code>
  
 +
=== 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.  
 
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.  
 
<code xml n>
 
<code xml n>
Zeile 58: Zeile 135:
 
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).
 
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).
  
 +
<code xml n>
 +
<!-- 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>
 +
</code>
  
 +
== 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 [[Waren-Tags|Tag-Bezeichnung]] angegeben werden, Beispiel:
 
[[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 [[Waren-Tags|Tag-Bezeichnung]] angegeben werden, Beispiel:
 
<code xml n>
 
<code xml n>
 
<has item="*Lichtquelle">
 
<has item="*Lichtquelle">
 +
  <success>
 +
    <p>Du machst dir erstmal Licht.</p>
 +
  </success>
 
   <failure>
 
   <failure>
 
     <p>Du kannst nichtmal deine Hand vor den Augen sehen, so dunkel ist es hier.</p>
 
     <p>Du kannst nichtmal deine Hand vor den Augen sehen, so dunkel ist es hier.</p>
 
   </failure>
 
   </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>
 
</has>
 
</code>
 
</code>

Version vom 15. Januar 2011, 19:48 Uhr

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=""] [val=""] [min=""] [max=""] [hero-quantity=""] [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

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.

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">
  <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">
  <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 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>

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>