Has: Unterschied zwischen den Versionen
(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]] | + | *'''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=" | + | <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> | ||
− | + | 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 | + | <!-- 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> | + | <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.
Inhaltsverzeichnis
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>