Item: Unterschied zwischen den Versionen

Aus AntamarWiki
Wechseln zu: Navigation, Suche
(Syntax)
 
(7 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
Mit Hilfe des <item>-Tags kann innerhalb einer [[AOQML]]-Szene ein Gegenstand (Item), abhängig von bestimmten Eigenschaften, zufallsbasiert erzeugt werden. Möchte man beispielsweise dem Helden ein Buch übergeben und sich nicht auf ein konkretes Buch festlegen, so kann man dieses Buch anhand seiner Eigenschaften oder Tags abstrakt beschreiben und der AOQML-Engine überlassen, welches Buch letztendlich erzeugt wird.
 
Mit Hilfe des <item>-Tags kann innerhalb einer [[AOQML]]-Szene ein Gegenstand (Item), abhängig von bestimmten Eigenschaften, zufallsbasiert erzeugt werden. Möchte man beispielsweise dem Helden ein Buch übergeben und sich nicht auf ein konkretes Buch festlegen, so kann man dieses Buch anhand seiner Eigenschaften oder Tags abstrakt beschreiben und der AOQML-Engine überlassen, welches Buch letztendlich erzeugt wird.
  
== Syntax ==
+
=== Nutzen von Warentags ===
Es werden zwei Varianten unterschieden:
 
# Generierung des Items auf Basis eines Warentags.
 
# Generierung des Items auf Basis von Parametern.
 
Beide Varianten sind nicht miteinander kombinierbar, d.h. für jede Variante sind unterschiedliche AOQML-Attribute anwendbar, siehe folgende Syntax-Übersicht:
 
 
 
=== Variante 1: Nutzen von Warentags ===
 
 
<code xml n>
 
<code xml n>
 
<item tag="" cost_min="" cost_max="" name="" scope="quest" />
 
<item tag="" cost_min="" cost_max="" name="" scope="quest" />
Zeile 17: Zeile 11:
 
*'''name''': Falls das erzeugte Item nicht angezeigt, sondern in eine Variable gespeichert werden soll, kann hier der gewünschte Name der Variable angegeben werden.
 
*'''name''': Falls das erzeugte Item nicht angezeigt, sondern in eine Variable gespeichert werden soll, kann hier der gewünschte Name der Variable angegeben werden.
 
*'''scope''': Nur in Verbindung mit ''name'': Hier kann der Scope der Variable (scene/quest/hero/global), die mit ''name'' gesetzt wird, angegeben werden. Standardmäßig ist 'quest' voreingestellt.
 
*'''scope''': Nur in Verbindung mit ''name'': Hier kann der Scope der Variable (scene/quest/hero/global), die mit ''name'' gesetzt wird, angegeben werden. Standardmäßig ist 'quest' voreingestellt.
 
 
=== Variante 2: Nutzen von Warenattributen ===
 
<code xml n>
 
<item must="" mustnot="" freq="" cost_min="" cost_max="" name="" scope="quest" />
 
</code>
 
 
*'''must''': Die Ware muss die angegebenen Attribute haben (siehe Beispiele unten).
 
*'''mustnot''': Die Ware darf nicht die angegebenen Attribute haben (siehe Beispiele unten).
 
*'''freq''': Die Ware ist entweder 'oft' oder 'selten' oder 'rar' auf Antamar anzutreffen.
 
*'''cost_min''': So viel soll die Ware mindestens Wert sein. Der Wert wird in Groschen angegeben (1 Gulden = 100 Groschen).
 
*'''cost_max''': So viel darf die Ware höchstens Wert sein. Der Wert wird in Groschen angegeben (1 Gulden = 100 Groschen).
 
*'''name''': Falls das erzeugte Item nicht angezeigt, sondern in eine Variable gespeichert werden soll, kann hier der gewünschte Name der Variable angegeben werden.
 
*'''scope''': Nur in Verbindung mit ''name'': Hier kann der Scope der Variable (scene/quest/hero/global), die mit ''name'' gesetzt wird, angegeben werden. Standardmäßig ist 'quest' voreingestellt.
 
 
  
 
== Beispiele ==
 
== Beispiele ==
Zeile 61: Zeile 40:
  
  
=== Item erzeugen auf Basis der Warenattribute ===
 
 
Das folgende Beispiel erzeugt einen Werkzeugsgegenstand, der nicht magisch, nicht dämonisch, nicht geweiht und nicht exotisch ist und maximal 5 Gulden wert ist:
 
<code xml n>
 
<item freq="oft" must="werkzeug" mustnot="magisch|daemon|geweiht|exotisch" cost_max="500" />
 
</code>
 
 
 
Das folgende Beispiel erzeugt ein selten anzutreffendes Buch, das einen Wert zwischen 20 Gulden und 300 Gulden besitzt:
 
<code xml n>
 
<item freq="selten" must="lesbar" mustnot="tragbar|transportmittel|exotisch|lebendig|werkzeug|handwerk|spielbar|natur|meeresbezogen|pulver" cost_min="2000" cost_max="30000"/>
 
</code>
 
 
 
Es existieren folgende Attribute, die über ''must'' oder ''mustnot'' abfragbar sind:
 
* daemon
 
* essbar
 
* exotisch
 
* geweiht
 
* handwerk
 
* kunst
 
* lebendig
 
* lesbar
 
* magisch
 
* medizinisch
 
* meeresbezogen
 
* natur
 
* pulver
 
* spielbar
 
* tragbar
 
* transportmittel
 
* trinkbar
 
* werkzeug
 
* wertgegenstand
 
 
Weiterhin beschreibt ''freq'', wie "alltäglich" ein Item ist. Erlaubte Ausprägungen sind: 'oft' (Standard), 'selten' und 'rar'.
 
 
=== Erzeugtes Item in Variable speichern ===
 
  
Wenn man ein Item generieren lassen möchte, dass dem Held übergeben werden soll, dann muss man das erzeugte Item zunächst in einer Variablen festhalten. Dazu kann entweder im &lt;item&gt;-Tag  ein ''name'' gesetzt werden oder das ganze &lt;item&gt;-Tag wird von einem [[store]] umschlossen:
 
<code xml n>
 
<item freq="oft" must="werkzeug" mustnot="magisch|daemon|geweiht|exotisch" cost_max="500" name="zufallsding"/>
 
<take item="${zufallsding}"/>
 
  
<!-- oder: -->
 
 
<store name="zufallsding"><item freq="oft" must="werkzeug" mustnot="magisch|daemon|geweiht|exotisch" cost_max="500"/></store>
 
<take item="${zufallsding}"/>
 
</code>
 
  
 
[[Kategorie:AOQML-Tags]]
 
[[Kategorie:AOQML-Tags]]
[[Kategorie:AOQML]]
 

Aktuelle Version vom 9. August 2018, 19:24 Uhr

Mit Hilfe des <item>-Tags kann innerhalb einer AOQML-Szene ein Gegenstand (Item), abhängig von bestimmten Eigenschaften, zufallsbasiert erzeugt werden. Möchte man beispielsweise dem Helden ein Buch übergeben und sich nicht auf ein konkretes Buch festlegen, so kann man dieses Buch anhand seiner Eigenschaften oder Tags abstrakt beschreiben und der AOQML-Engine überlassen, welches Buch letztendlich erzeugt wird.

Nutzen von Warentags

<item tag="" cost_min="" cost_max="" name="" scope="quest" />
  • tag: Hier kann ein Waren-Tag angegeben werden. Basierend auf der internen Liste, die für dieses Tag gepflegt ist, wird eine Ware ausgewählt.
  • cost_min: So viel soll die Ware mindestens Wert sein. Der Wert wird in Groschen angegeben (1 Gulden = 100 Groschen).
  • cost_max: So viel darf die Ware höchstens Wert sein. Der Wert wird in Groschen angegeben (1 Gulden = 100 Groschen).
  • name: Falls das erzeugte Item nicht angezeigt, sondern in eine Variable gespeichert werden soll, kann hier der gewünschte Name der Variable angegeben werden.
  • scope: Nur in Verbindung mit name: Hier kann der Scope der Variable (scene/quest/hero/global), die mit name gesetzt wird, angegeben werden. Standardmäßig ist 'quest' voreingestellt.

Beispiele

Item erzeugen auf Basis eines Waren-Tags

Die Liste der gepflegten Waren-Tags gibt es auf der Seite: Waren-Tags

Folgender Code liefert einen zufälligen Alkohol:

<item tag="Alkohol"/>

Möchte man die Auswahl etwas eingrenzen, kann man einen Mindestpreis (cost_min) und/oder Maximalpreis (cost_max) angeben. Die Angabe erfolgt in Groschen.

<item tag="Alkohol" cost_max="300"/><!-- liefert einen zufälligen Alkohol, der höchstens 3 Gulden Wert ist -->

Um einen zufälligen Alkohol dem Held zu geben:

<item tag="Alkohol" name="zufallsding"/>
<take item="${zufallsding}"/>

<!-- oder: -->

<store name="zufallsding"><item tag="Alkohol" /></store>
<take item="${zufallsding}"/>