Item: Unterschied zwischen den Versionen

Aus AntamarWiki
Wechseln zu: Navigation, Suche
(Beispiel)
(Syntax)
 
(15 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Der item-tag liefert den namen eines mehr oder weniger zufällig aus der DB ausgelesenen Items.
+
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 ===
<code xml><item freq="" [must="" mustnot="" cost_min="" cost_max="" name=""] /></code>
+
<code xml n>
 +
<item tag="" cost_min="" cost_max="" name="" scope="quest" />
 +
</code>
  
===Parameter===
+
*'''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.
*'''freq''' wie oft kommt der Gegenstand vor (oft/selten/rar)
+
*'''cost_min''': So viel soll die Ware mindestens Wert sein. Der Wert wird in Groschen angegeben (1 Gulden = 100 Groschen).
*'''cost_min''' (optional) Muss mindestens dies kosten
+
*'''cost_max''': So viel darf die Ware höchstens Wert sein. Der Wert wird in Groschen angegeben (1 Gulden = 100 Groschen).
*'''cost_max''' (optional) Darf höchstens dies kosten
+
*'''name''': Falls das erzeugte Item nicht angezeigt, sondern in eine Variable gespeichert werden soll, kann hier der gewünschte Name der Variable angegeben werden.
*'''must''' (optional) [[#Eigenschaften|Eigenschaften]] die der Gegenstand haben MUSS (getrennt per |)
+
*'''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.
*'''mustnot''' (optional) [[#Eigenschaften|Eigenschaften]] die der Gegenstand NICHT haben darf (getrennt per |)
 
*'''name''' (optional) Wenn gesetzt wird der Name des Gegenstandes nicht ausgegeben sondern in der angegebenen Variable gespeichert. (ACHTUNG: das ist inkonsquent und wird geändert)
 
  
ANMERKUNG: kommt eine Eigenschaft weder in ''must'' noch in ''mustnot'' vor ist sie beliebig.
+
== Beispiele ==
  
===Beispiel===
+
=== Item erzeugen auf Basis eines Waren-Tags ===
  
<code xml><item freq="oft" must="werkzeug" mustnot="magisch|daemon|geweiht|exotisch" cost_max="100" /></code>
+
Die Liste der gepflegten Waren-Tags gibt es auf der Seite: [[Waren-Tags]]
  
Liefert ein weit verbreitetes Werkzeug das nicht magisch, daemonisch, geweiht oder exotisch ist und weniger als 100 wert ist
+
Folgender Code liefert einen zufälligen Alkohol:
 +
<code xml n>
 +
<item tag="Alkohol"/>
 +
</code>
  
Beispielsweise: Flickzeug oder Knüppel oder Steinernes Messer oder Handbohrer
+
Möchte man die Auswahl etwas eingrenzen, kann man einen Mindestpreis (cost_min) und/oder Maximalpreis (cost_max) angeben. Die Angabe erfolgt in Groschen.
 
+
<code xml n>
 
+
<item tag="Alkohol" cost_max="300"/><!-- liefert einen zufälligen Alkohol, der höchstens 3 Gulden Wert ist -->
Um dem Held jenes zu geben:(ACHTUNG: Nachfolgender Code ist veraltet)
+
</code>
 
 
<code xml>
 
  
<item freq="oft" must="werkzeug" mustnot="magisch|daemon|geweiht|exotisch" cost_max="100" name="zufallsding" />
+
Um einen zufälligen Alkohol dem Held zu geben:
 +
<code xml n>
 +
<item tag="Alkohol" name="zufallsding"/>
 
<take item="${zufallsding}"/>
 
<take item="${zufallsding}"/>
  
</code>
+
<!-- oder: -->
 
 
So sollte es gemacht werden nach AOQML Best Practice
 
 
 
<code xml>
 
 
 
<store name="zufallsding"><item freq="oft" must="werkzeug" mustnot="magisch|daemon|geweiht|exotisch" cost_max="100" /></store>
 
  
 +
<store name="zufallsding"><item tag="Alkohol" /></store>
 
<take item="${zufallsding}"/>
 
<take item="${zufallsding}"/>
 
 
</code>
 
</code>
  
  
  
Also eine Kombi aus Item und [[Take_drop|take]].
 
Warum so kompliziert?
 
Damit mit dem Item Tag auch mehr gemacht werden kann als nur dem Held irgendwas zu geben.
 
Außerdem könnte ja noch ein [[Store_fetch|store]]-Tag nötig sein ist es aber nicht ;-)
 
 
===Eigenschaften===
 
Liste der möglichen Eigenschaften
 
  
*magisch
 
*geweiht
 
*daemon
 
*transportmittel
 
*exotisch
 
*wertgegenstand
 
*lebendig
 
*kunst
 
*werkzeug
 
*handwerk
 
*spielbar
 
*lesbar
 
*natur
 
*medizinisch
 
*tragbar
 
*meeresbezogen
 
*pulver
 
  
[[Kategorie:AOQML]]
+
[[Kategorie:AOQML-Tags]]

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