Hauptmenü öffnen

AntamarWiki β

Änderungen

Store fetch

3.867 Bytes hinzugefügt, 14:14, 19. Jul. 2017
keine Bearbeitungszusammenfassung
===store===Das '''<store>'''-Tag speichert seinen (ausgewerteten) Inhalt persistent, z.B. zwischen verchiedenen 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.Das Der folgende Code speichert '''Inhalt der Variable'<fetch>''unter dem Namen '-Tag ruft derart gespeicherte Inhalte wieder ab. Auch dabei wird das Attribut VariablenName'für die Dauer des laufenden Quests:<syntaxhighlight lang="xml"><store name' zum identifizieren verwendet. Sollte kein ="VariablenName" scope="quest">Inhalt unter diesem Namen gespeichert sein, und nur dann, wird der Inhalt des fetch-Tags ausgewertet, sozusagen als Default.Variable</store></syntaxhighlight>
Beispiel:<code xml><store name="Heimatort">Gareth<==Scopes/store>Geltungsbereiche===Den Bereich und die Art wie eine Variable gespeichert wird kann man über das Attribut '''scope''' festlegen.Hierbei [[ScopeValues|verschiedene Möglichkeiten]].
Ich komme aus <fetch name=Zu beachten ist, dass in [[Quest|Questen]] standardmäßig der scope "Heimatortquest"/>eingestellt ist.</code>Ergibt: Ich komme aus GarethWird 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="VariablenName" scope="hero">Inhalt der Variable</store></syntaxhighlight> ===expire=== Über das Attribut '''expire''' kann der Zeitraum angegeben werden in welchem diese (unabhängig vom scope) Gespeichert wird.Folgendes definiert eine Variable die nach 4 Ingame-Tagen wieder gelöscht wird.  <syntaxhighlight lang="xml"><store name="VariablenName" scope="hero" expire="4d">Inhalt der Variable</store></syntaxhighlight> Expire kann in zwei Formaten angegeben werden "4d" für vier Ingametage, "12h" für zwölf Ingamestunden oder "4D" für vier Reallife-Tage, "12H" für zwölf echte Stunden.  ===inc-expire=== Mittels '''inc-expire''' kann der Zeitraum verlängert werden, indem eine Variable gültig ist.<syntaxhighlight lang="xml"><store name="meineVariable" scope="hero" expire="4d">Inhalt der Variable</store> ...<!-- Variable um weitere 2 Tage verlängern --><store name="meineVariable" scope="hero" inc-expire="2d">neuer Inhalt der Variable</store><!-- die Variable ist somit insgesamt 6 Ingame-Tage aktiv --></syntaxhighlight> ===Variablen überschreiben===Eine Variable kann einfach überschrieben werden, indem ihr ein neuer Inhalt zugewiesen wird:<syntaxhighlight lang="xml"><store name="held-hat-gefruehstueckt">nein</store>...<store name="held-hat-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öschen===Variablen können mittels<syntaxhighlight lang="xml"><store name="meineVar">NULL</store><!-- oder --><store name="meineVar"/></syntaxhighlight>gelöscht werden.  ===Namenskonvention=== Die Variablen können zwar technisch frei benannt werden, aber bei scope="hero"-Variablen ist zwingend auf einen aussagekräftigen und eindeutigen Namen zu achten. Dazu wird zunächst der Questname (+ggf. Autor) und danach die Variablenkennung angegeben, z.B.<syntaxhighlight lang="xml"><store name="SchiffBlutrabe-Tagesablauf" scope="hero">Schlaf</store></syntaxhighlight> Diese Konvention soll sicherstellen, dass einzelne hero-/global-Variablen sich nicht gegenseitig überschreiben. ===fetch=== Das '''<fetch>'''-Tag ruft derart gespeicherte Inhalte wieder ab.Das Attribut 'name' dient hier zum 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. Bei [[get]] wird kein Default-Inhalt ausgewertet. Folgendes bewirkt zum Beispiel die Ausgabe der Variable "papagei_name".<syntaxhighlight lang="xml"><p><q>Hallo <fetch name="papagei_name"/>!</q></p></syntaxhighlight> ===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]]
3.459
Bearbeitungen