Änderungen

Wechseln zu: Navigation, Suche

Inventar

1.201 Bytes hinzugefügt, 12:01, 5. Aug. 2018
keine Bearbeitungszusammenfassung
Das [[AOQML]]-Tag ''inventar'' erlaubt das Anlegen von vordefinierten Inventaren, z.B. Truhen, Kisten, Ablagen. Dem Inventar können dann Gegenstände durch den Spieler entnommen oder hinzugefügt werden.
 
==Syntax==
<code xml>
<inventar name="" [scope="quest"] [reset="false"]>
<items item="" tag="" count="" must="" mustnot="" cost_min="" cost_max="" freq="" quality="" name=""/>
...
</inventar>
</code>
 
*'''name''': Der Bezeichner des Inventars, sodass ein Zugriff über diese Variable möglich wird.
*'''scope''': Standardmäßig wird ein Inventar mit dem Scope 'quest' angelegt, d.h. nach Beendigung der Quest wird das Inventar intern wieder aufgelöst und die (verbliebenen) Inhalte des Inventars werden nicht länger gespeichert. Andere erlaubte Scopes sind 'hero', 'dungeon' und 'global', siehe [[Store_fetch#Scopes.2FGeltungsbereiche|Scopes]]
*'''reset''': Wenn 'true', dann werden etwaige Inventare, die diesen Namen und diesen Scope besitzen, gelöscht. Wenn 'false', dann wird versucht, ein bereits vorhandenes Inventar mit diesem Namen und diesem Scope zu laden und zu erweitern. Standardmäßig ist der Wert für reset 'false'.
 
Für das Anlegen von Items innerhalb des Inventars siehe [[Item]]. Jedoch gilt obige Syntax, d.h. das Tag heißt 'items' (und nicht 'item'!) und es sind lediglich die angegebenen Attribute erlaubt.
 
 
==Inventare anlegen==
<code xml>
<inventar name="Schatztruhe">
<items item="Drachen-Amulett" count="1"/>
<items tag="Schmuck" cost_min="100" cost_max="2000" />
<items item="#53" count="4"/> <!-- geschliffener Achat -->
<items item="Drachen-AmulettParierdolch" countquality="1"/> <items freq="selten" must="exotisch" mustnot="essbar|trinkbar" cost_min="300" cost_max="5000"/> <items freq="selten" must="exotisch" mustnot="essbar|trinkbar" cost_min="300" cost_max="5000100"/>
</inventar>
</code>
Damit werden die oben beschriebenen Gegenstände für die Laufzeit des Quests unter dem namen "Schatztruhe" abgelegt und können nun jeweils einmalig vom Helden entnommen werden - außer er tut sie wieder hinein. Es können dieselben Parameter wie bei <item> verwendet werden, nur dass man unter ''name= '' hier referenziert statt speicherteine Variable referenzieren kann, anstatt das Item unter ''name='' zu speichern.  Dieses Tag sollte also in der Regel irgendwo bei der Quest-Initialisierung stehen, nicht dass die Schatztruhe immer wieder bei jedem erneuten Szenenaufruf neu gefüllt wird. Aber es gibt sicherlich auch Fälle, in bei denen ein Inventar immer wieder neu gefüllt wird. Außerdem überschreibt eine Neudefinition ein vorhandenes Inventar gleichen NamensAuffüllung Sinn macht.
==Inventar zur Auswahl anbieten==
Soll der Spieler alles mit einem Klick mitnehmen können, kann das Attribut ''takeAllAtOnce'' angegeben werden, sodass ein Link "alles mitnehmen" erscheint.
<code xml n>
<take from="eigentum" takeAllAtOnce="true">Hier gibt es nichts mehr zu holen.</take>
</code>
Soll der Spieler das Inventar gar nicht erst angezeigt bekommen, sondern alles automatisch aufnehmen, kann das Attribut ''immediately'' verwendet werden:
<code xml n>
<take from="eigentum" immediately="true"/>
</code>
==Ausrüstung in ein Inventar legen==
<code xml n>
<drop item="Schlüsselbund" to="Versteck" />
</code>
Wenn man dem Helden zunächst Gegenstände entwenden möchte, kann man dies beispielsweise wie folgt tun:
<code xml n>
<drop item="_Waffen" to="waffen-ablage"/><!-- klaut dem Helden seine Waffen und legt sie in ein Inventar -->
</code>
In einer späteren Szene, ggf. nach gewissen Proben, kann man dem Helden die Aufnahme seiner geklauten Gegenstände wieder anbieten:
<code xml n>
<take from="waffen-ablage"/><!-- Spieler bekommt eine Ansicht des Inventars mit den sich darin befindenden Gegenständen -->
</code>
Wenn man dem Helden anbieten will, genau einen (oder zwei, oder drei, oder...) Gegenstände FREIWILLIG abzulegen, kann man folgendes verwenden:
<code xml n>
<drop to="ablage" count="1" target="naechste-szene"/>
</code>
Wenn man zudem noch ausschließen will, dass bestimmte Gegenstände abgelegt werden, kann das Attribut ''except'' verwendet werden.
<code xml n>
<drop to="altar" count="1" target="naechste-szene" except="Holzschild|Schwert|*Fernkampfwaffe"/>
</code>
</code>
 ==Siehe auch: ==*[[Take_drop|Take ]]*[[Drop]] 
[[Kategorie: AOQML-Tags]]
[[Kategorie: AOQML]]
3.459
Bearbeitungen

Navigationsmenü