Hauptmenü öffnen

AntamarWiki β

Store fetch

Version vom 16. April 2009, 17:21 Uhr von Enno (Diskussion | Beiträge) (pro Quest/Held-Kombination speichern: Relation zum Get-Tag erläutert)

pro Quest/Held-Kombination speichern

Das <store>-Tag speichert seinen (ausgewerteten) Inhalt persistent, z.B. zwischen verchiedenen 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 <fetch>-Tag ruft derart gespeicherte Inhalte wieder ab. Auch dabei wird das Attribut 'name' zum identifizieren verwendet. 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 get-Tag wird kein Default-Inhalt ausgewertet.

Beispiel:

<store name="Heimatort">Gareth</store>

Ich komme aus <fetch name="Heimatort"/>.

Ergibt:

Ich komme aus Gareth.

quest-unabhängig pro Held speichern

Während obiger Werte nur während eines Quests - wenn auch über pending-Unterbrechnungen hinaus - erhalten bleiben und pro Quest/Held gelten, kann man mit mark= auch etwas dauerhaft oder limitiert am Helden speichern und dies in allen Questen nutzen.

<p>get: <get mark="test"/></p>
<p>fetch: <fetch mark="test">nichts drin</fetch></p>

<p>has: <has mark="test">
  <success>hat test-Markierung</success>
  <failure>hat keine test-markierung</failure>
</has></p>

<p>switch: <switch mark="test">
  <null>hat keine test-Markierung</null>
  <case value="gespeicherter Wert">hat test-Markierung: 'gespeicherter Wert'</case>
  <else>hat eine andere test-Markierung</else>
</switch></p>

<p>if: <if mark="test" equals="gespeicherter Wert" 
    null="hat keine test-Markierung" 
    then="hat test-Markierung 'gespeicherter Wert'" 
    else="hat eine test-Markierung"/></p>

<store mark="test" expire="12h">gespeicherter Wert</store>

Da die Variable in dem obigen Beispiel erst am Ende gesetzt wird, ergibt das beim ersten Durchlauf:

 get:
 fetch: nichts drin
 has: [hat : [test: 0*vorhanden] ] hat keine test-markierung
 switch: hat keine test-Markierung
 if: hat keine test-Markierung

Und beim zweiten, wenn dann die Variable vom Ende des ersten, gesetzt wurde:


 get: gespeicherter Wert
 fetch: gespeicherter Wert
 has: [hat : [test: 1*vorhanden] ] hat test-Markierung
 switch: hat test-Markierung: 'gespeicherter Wert'
 if: hat test-Markierung 'gespeicherter Wert'

Für expire= kann man Tage ("5d") oder Stunden ("12h") angeben oder dies, für dauerhaftes speichern, auch ganz weglassen. Die Zeitangaben sind in-game, also derzeit 1d=4min.

Anmerkung: Der AOQML-Editor wird das erst ab der Version 1.0 können.