Hauptmenü öffnen

AntamarWiki β

Änderungen

Store fetch

323 Bytes hinzugefügt, 14:14, 19. Jul. 2017
keine Bearbeitungszusammenfassung
===Storestore===
Das '''<store>'''-Tag speichert seinen (ausgewerteten) Inhalt persistent, z.B. zwischen verschiedenen Schritten eines Quests.
Das Attribut 'name' gibt dabei an, unter welchem Namen es gespeichert werden soll. Der Inhalt selbst wird an dieser Stelle nicht ausgegeben.
Der folgende Code speichert '''Inhalt der Variable''' unter dem Namen 'VariablenName' für die Dauer des laufenden Quests:
<code syntaxhighlight lang="xml"><store name="VariablenName" scope="quest"> Inhalt der Variable</store></codesyntaxhighlight>
===Scopes/Geltungsbereiche===
Den Bereich und die Art wie eine Variable gespeichert wird kann man über das Attribut '''scope''' festlegen.
Im Moment gibt es hierbei fünf Hierbei [[ScopeValues|verschiedene Möglichkeiten]].
====scene====Die Variable wird nicht Zu beachten ist, dass in [[Quest|Questen]] standardmäßig der Datenbank zwischengespeichert.Sie kann nur innerhalb derselben Scene verwendet werden.<code xml><store name="VariablenName" scope="scenequest"> Inhalt eingestellt ist. Wird für eine Variable ein anderer Scope, z.B. 'hero', festgelegt und wird diese Variable später an einer anderen Stelle im Code verändert, dann muss der Variable</store></code>zugehörige Scope wieder explizit angegeben werden.
<syntaxhighlight lang====quest====Die Variable wird innerhalb dieser Quest gespeichert.Sobald die Quest beendet wurde wird die Variable gelöscht.Durch eine über den [[quest|Queststatus]] pending unterbrochene Quest werden Variablen mit dem Scope quest '''nicht''' gelöscht.<code "xml"><store name="VariablenName" scope="questhero"> Inhalt der Variable</store></codesyntaxhighlight>
===expire=dungeon====Die Variable ist für alle Helden die diese Quest erleben zugreifbar.Die Variable bleibt erhalten auch wenn ein Held die Quest schon beendet hat, bezieht sich aber im Gegensatz zum Scope 'hero' auf die Quest und nicht auf den sie absolvierenden Helden.
<code xml><store name="VariablenName" Über das Attribut '''expire''' kann der Zeitraum angegeben werden in welchem diese (unabhängig vom scope="dungeon">) Gespeichert wird. Inhalt der Folgendes definiert eine Variable</store></code>die nach 4 Ingame-Tagen wieder gelöscht wird.
<syntaxhighlight lang="xml"><store name="VariablenName" scope=="hero" expire===="4d">Inhalt der Variable</store>Die Variable wird an den Helden gebunden, solange dieser existiert, kann auf sie zugegriffen werden.</syntaxhighlight>
<code xml><store name=Expire kann in zwei Formaten angegeben werden "VariablenName4d" scope=für vier Ingametage, "hero12h"> Inhalt der Variable</store></code>für zwölf Ingamestunden oder "4D" für vier Reallife-Tage, "12H" für zwölf echte Stunden.
====global====
Die Variable wird unabhängig von Questen und Helden gespeichert.
Sie wird nur manuell von Hand gelöscht.
Siehe [[Globale_marker|hier]].
<code xml><store name="VariablenName" scope="global"> Inhalt der Variable</store></code> ===inc-expire===
Über das Attribut Mittels '''inc-expire''' kann der Zeitraum angegeben verlängert werden in welchem diese (unabhängig vom scope) Gespeichert wird, indem eine Variable gültig ist.Folgendes definiert eine <syntaxhighlight lang="xml"><store name="meineVariable" scope="hero" expire="4d">Inhalt der Variable die nach 4 Ingame-Tagen wieder gelöscht wird. </store>
...<code xml!-- Variable um weitere 2 Tage verlängern --><store name="VariablenNamemeineVariable" scope="globalhero" inc-expire="4d2d"> neuer Inhalt der Variable</store><!-- die Variable ist somit insgesamt 6 Ingame-Tage aktiv --></codesyntaxhighlight>
Expire ===Variablen überschreiben===Eine Variable kann in zwei Formaten angegeben einfach überschrieben werden , indem ihr ein neuer Inhalt zugewiesen wird:<syntaxhighlight lang="4dxml" für vier Ingametage, ><store name="12hheld-hat-gefruehstueckt" für zwölf Ingamestunden>nein</store>...Anmerkung: Der AOQML<store name="held-hat-Editor wird das erst ab der Version 1.0 können.gefruehstueckt">ja</store></syntaxhighlight>
Zu beachten ist, dass in [[Quest|Questen]] standardmäßig der scope "quest" eingestellt ist. Wird für eine Variable ein anderer Scope, z.B. 'hero', festgelegt und wird diese Variable später an einer anderen Stelle im Code verändert, dann muss der zugehörige Scope wieder explizit angegeben werden:
<syntaxhighlight lang="xml">
<store name="held-ist-ein-schwarzer-ritter" scope="hero">nein</store>
...
<store name="held-ist-ein-schwarzer-ritter" scope="hero">ja</store><!-- Scope 'hero' muss hier wieder angegeben werden, sonst wird Variable nicht überschrieben, sondern eine neue Variable mit dem Scope "quest" gesetzt! -->
</syntaxhighlight>
===Variablen Löschenlöschen===
Variablen können mittels
<code syntaxhighlight lang="xml">
<store name="meineVar">NULL</store>
<!-- oder-->
<store name="meineVar"/>
</codesyntaxhighlight>
gelöscht werden.
===Namenskonvention===
Die Variablen können zwar technisch frei benannt werden, damit man aber schnell erkennen kann woher eine Variable kommt gelten folgende Namenskonvention: An erster Stelle bei scope="hero"-Variablen ist zwingend auf einen aussagekräftigen und eindeutigen Namen zu achten. Dazu wird zunächst der Variable steht ein Oberbegriff der den zur Variable zugehörigen Typ beschreibtQuestname (+ggfAlso Autor) und danach die Variablenkennung angegeben, z.B. quest: für eine Variable die nur in einer Quest steht oder region: für eine Variable die für alle Questen einer bestimmten Region steht.Danach folgt der Pfad unter dem die Quest oder ZB abgelegt ist, der Questname und am Ende der Variablenname.<syntaxhighlight lang="xml">also: Oberbegriff:PfadZurQuest/QuestName/Variablenname Beispiele:quest:/quests/deralteleuchtturm<store name="SchiffBlutrabe-Tagesablauf" scope="hero">Schlaf</hoehedesturmsstore>npc:derHerzogVonSonstwo</Namesyntaxhighlight>
Diese Konvention soll sicherstellen das , dass einzelne hero-/global-Variablen sich nicht gegenseitig überschreiben, da die Scopes zwar die Art der Speicherung, nicht aber den Zugriff auf die Variablen regeln.
===fetch===
Das '''<fetch>'''-Tag ruft derart gespeicherte Inhalte wieder ab.
Das Attribut 'name' dient hier zum identifizieren Identifizieren der richtigen Variable.
Sollte kein Inhalt unter diesem Namen gespeichert sein, und nur dann, wird der Inhalt des fetch-Tags ausgewertet, sozusagen als Default.
Dies ist einer der Hauptunterschiede zum [[get]]-Tag. Beim Bei [[get-Tag ]] wird kein Default-Inhalt ausgewertet.
Folgendes liefert bewirkt zum Beispiel die Ausgabe der Variable mit dem Namen "VariablenNamepapagei_name" zurück.<code syntaxhighlight lang="xml"><p><q>Hallo <fetch name="VariablenNamepapagei_name"/>!</q></p></codesyntaxhighlight>
===Inhalte ändern===
Grundsätzlich kann eine Variable jederzeit überschrieben werden und beinhaltet damit den neuen Wert. Sollte gewünscht sein, einen Zahlenwert zu erhöhen oder zu erniedrigen, siehe [[set]].
[[Kategorie:AOQML-Tags]]
[[Kategorie:AOQML]]
3.459
Bearbeitungen