Hauptmenü öffnen

AntamarWiki β

Änderungen

Switch

2.094 Bytes hinzugefügt, 00:22, 2. Okt. 2017
keine Bearbeitungszusammenfassung
Das '''<switch>'''-Tag vergleicht eine Angabe mit einer Liste von Werten. Der Zweig mit dem passenden Wert wird ausgeführt.
 
Der gesamte '''<switch>'''-Tag sieht wir folgt aus:
<syntaxhighlight lang="xml">
<switch attribute|name="">
<null>
</null>
 
<case ...>
</case>
 
<case ...>
</case>
 
<else>
</else>
</switch>
</syntaxhighlight>
 
<br>'''NULL''' wird ausgeführt wenn der Inhalt von NAME oder ATTRIBUTE leer ist.
<br>'''CASE''' wird benutzt, um bestimmte Werte oder Wertebereiche zu prüfen. Hier kann zum Beispiel VAL, MIN oder MAX benutzt werden.
<br>'''ELSE''' wird ausgeführt, wenn die vorherigen Angaben nicht passen.
 
<br>Tipp:
<br>Wenn eine Variable mit 0 gesetzt wird, muss sie wie folgt abgefragt werden.
<syntaxhighlight lang="xml">
<store name="test" scope="...">0</store> <!-- gesetzte Variable -->
 
<switch name="test">
<null>...</null> <!-- hat hier keine Auswirkung -->
<case val="0">...</case> <!-- wird in dem Fall ausgeführt -->
<else>...</else> <!-- bei ungleich 0 -->
</switch>
</syntaxhighlight>
 
Beispiel:
<code syntaxhighlight lang="xml"><switch qualityattribute="gender">
<case value="female">Eine junge Frau</case>
<else>Ein junger Mann</else>
</switch>
</codesyntaxhighlight>Der Zweig '''<else>''' wird ausgeführt, wenn keine das Geschlecht nicht weiblich ist.  Eine Liste der Angaben passt.Attribute zur Verwendung mit dem '''attribute''' Tag gibt's hier: [[Heldattribute]]
Eine Liste der Attribute gibtAußerdem können mit dem 's hier: ''name''' Tag die selben Variablen wie bei [[AOQML-Manual#Attribute|AttributeSet]]abgefragt werden.
Man kann auch Wertebereiche abfragen:
<code syntaxhighlight lang="xml"><switch name="Nummer"> <case min="1" max="5"> ... </case> <else> ... </else></switch></syntaxhighlight> ==Wahrscheinlichkeits Zweig== Um für ein Ereignis/Zweig die Wahrscheinlichkeit anzugeben müssen wir erst per [[Get_set|Set]] und einem [[Besondere_Werte#Zahlenbereiche|besonderen Wert]] eine zufällige Zahl in einer Variablen speichern (im Beispiel ''zufall'')und diese dann per switch prüfen. Beispiel:<syntaxhighlight lang="xml"><set name="zufall" val="1...100" show="none"/>
<switch name="zufall">
<case min="1" max="525"> ... </case> <case min="26" max="65">
...
</case>
</else>
</switch>
</codesyntaxhighlight>Liegt der Wert der Variable Das Beispiel führt zu einer 25% igen Wahrscheinlichkeit den ersten Zweig aus, zu 40% den Zweiten und somit zu 35% den else-Zweig. ==Generische Variablenauswertung im Casezweig==Um flexiblere Quests aufzubauen, dürfen auch Variablennamen durch Verwendung des name-Attributs ausgewertet werden. ===Beispiel===Szene 1:<syntaxhighlight lang="zufallxml"><random> <case> <store name=" bei 1 bis 5, wird der erste source">Eisentrutz</store> </case> <case> <store name="source">Berenhavn</store> </case> ausgewertet, andernfalls der <elsecase>-Zweig. Um einen zufälligen Wert zu erzeugen, gibt es den Operator <store name="...source". Das funktioniert z. B. so>Tamelsquell</store> </case></random></syntaxhighlight> Szene 2:<code syntaxhighlight lang="xml"><switch attribute="site"> <set case name="zufall${source}" value><include target="1...20atSourceLocation"/></codecase>Damit wird ein Zufallswert von 1 bis 20 in der Variablen <else><quest status="zufallpending" gespeichert./></else></switch></syntaxhighlight>
[[Kategorie:AOQML-Tags]]
227
Bearbeitungen