Switch: Unterschied zwischen den Versionen

Aus AntamarWiki
Wechseln zu: Navigation, Suche
Zeile 18: Zeile 18:
 
</code>
 
</code>
  
'''NULL''' wird ausgeführt wenn der Inhalt von NAME oder ATTRIBUTE leer ist.
+
<br>'''NULL''' wird ausgeführt wenn der Inhalt von NAME oder ATTRIBUTE leer ist. ''Tipp: 0 muss mit <case val="0">...</case> abgefragt werden.''
'''CASE''' wird benutzt, um bestimmte Werte oder Wertebereiche zu prüfen.
+
<br>'''CASE''' wird benutzt, um bestimmte Werte oder Wertebereiche zu prüfen.
'''ELSE''' wird ausgeführt, wenn die vorherigen Angaben nicht passen.
+
<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.
 +
<code 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>
 +
</code>
  
 
Beispiel:
 
Beispiel:

Version vom 4. Oktober 2013, 09:51 Uhr

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:

<switch attribute|name="">
  <null>
  </null>

  <case val="">
  </case>

  <case val="">
  </case>

  <else>
  </else>
</switch>


NULL wird ausgeführt wenn der Inhalt von NAME oder ATTRIBUTE leer ist. Tipp: 0 muss mit <case val="0">...</case> abgefragt werden.
CASE wird benutzt, um bestimmte Werte oder Wertebereiche zu prüfen.
ELSE wird ausgeführt, wenn die vorherigen Angaben nicht passen.


Tipp:
Wenn eine Variable mit 0 gesetzt wird, muss sie wie folgt abgefragt werden.

<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>

Beispiel:

<switch attribute="gender">
  <case value="female">Eine junge Frau</case>
  <else>Ein junger Mann</else>
</switch>

Der Zweig <else> wird ausgeführt, wenn das Geschlecht nicht weiblich ist.


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" show="none"/>
<switch name="zufall">
  <case min="1" max="25">
    ...
  </case>
  <case min="26" 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>