Switch: Unterschied zwischen den Versionen
Enno (Diskussion | Beiträge) K (→Wahrscheinlichkeits Zweig) |
Enno (Diskussion | Beiträge) (Variablenauswertung im Casezweig) |
||
Zeile 49: | Zeile 49: | ||
</code> | </code> | ||
Das Beispiel führt zu einer 25% igen Wahrscheinlichkeit den ersten Zweig aus, zu 40% den Zweiten und somit zu 35% den else-Zweig. | 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: | ||
+ | <random> | ||
+ | <case><store name="source">Eisentrutz</store></case> | ||
+ | <case><store name="source">Berenhavn</store></case> | ||
+ | <case><store name="source">Tamelsquell</store></case> | ||
+ | </random> | ||
+ | |||
+ | Szene 2: | ||
+ | <switch attribute="site"> | ||
+ | <case name="source"><include target="atSourceLocation"/></case> | ||
+ | <else><quest status="pending"/></else> | ||
+ | </switch> | ||
[[Kategorie:AOQML]] | [[Kategorie:AOQML]] |
Version vom 31. März 2009, 01:23 Uhr
Das <switch>-Tag vergleicht eine Angabe mit einer Liste von Werten. Der Zweig mit dem passenden Wert wird ausgeführt.
Beispiel:
<switch attribute="gender">
<case value="female">Eine junge Frau</case>
<else>Ein junger Mann</else>
</switch>
Der Zweig <else> wird ausgeführt, wenn keine der Angaben passt.
Eine Liste der Attribute zur verwendung mit dem attribute Tag gibt's hier: Held Attribute
außerdem können mit dem name Tag die selben Variablen wie bei Set abgefragt werden
Man kann auch Wertebereiche abfragen:
<switch name="Nummer">
<case min="1" max="5">
...
</case>
<else>
...
</else>
</switch>
Wahrscheinlichkeits Zweig
Um für ein Ereignis/Zweig die Wahrscheinlichkeit anzugeben müssen wir erst per Set und einem Besonderen Wert eine zufällige Zahl in einer Variablen speichern (im Beispiel zufall) und diese dann per switch prüfen.
Beispiel:
<set name="zufall" val="1...100"/>
<switch name="zufall">
<case min="1" max="25">
...
</case>
<case min="25" max="65">
...
</case>
<else>
...
</else>
</switch>
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: <random>
<case><store name="source">Eisentrutz</store></case> <case><store name="source">Berenhavn</store></case> <case><store name="source">Tamelsquell</store></case>
</random>
Szene 2: <switch attribute="site">
<case name="source"><include target="atSourceLocation"/></case> <else><quest status="pending"/></else>
</switch>