Hauptmenü öffnen

AntamarWiki β

Änderungen

Inventar

1.945 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==
Das listet dem Spieler die noch in der Schatztruhe befindlichen Gegenstände auf und er kann von einer Art maximal 3 entnehmen, man kann count="..." auch weglassen, dann kann der Spieler so viel wählen, wie da ist. Falls man dem Spieler nur eine einmalige Wahl geben will, sollte man auch noch target="..." angeben, dann wird nach dem Klick in eine andere Szene gesprungen und er kann kein weiteres mal auswählen - außer natürlich man führt ihn wieder in eine Szene mit so einer Auswahl. Anders als beim normalen <take> wird der Text aus dem Inhalt nur dann angezeigt, wenn das Inventar leer ist. Ersatzweise macht hier ja auch keinen Sinn.
 
 
Soll der Spieler alles mit einem Klick mitnehmen können, kann das Attribut ''takeAllAtOnce'' angegeben werden, sodass ein Link "alles mitnehmen" erscheint.
<code xml>
<take from="eigentum" takeAllAtOnce="true">Hier gibt es nichts mehr zu holen.</take>
</code>
Somit kann der Spieler zügig alle Gegenstände aufnehmen. Der Text "Hier gibt es nichts mehr zu holen" erscheint, wenn keine Gegenstände mehr im Inventar liegen.
 
 
Soll der Spieler das Inventar gar nicht erst angezeigt bekommen, sondern alles automatisch aufnehmen, kann das Attribut ''immediately'' verwendet werden:
<code xml>
<take from="eigentum" immediately="true"/>
</code>
Somit sieht der Spieler das Inventar gar nicht erst, sondern nimmt alle Gegenstände sofort auf.
==Ausrüstung in ein Inventar legen==
<code xml>
<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