Set
Die Tags get und set geben Zugriff auf die Werte des Helden, also die Eigenschaften, Lebensenergie, Ausdauer, Abenteuerpunkte, Talentwerte etc. Get liest die Werte aus, mit set kann man sie verändern um z.B. Schadenspunkte oder Erfahrungspunkte zu verteilen.
Inhaltsverzeichnis
Syntax
<set [object="hero"] [attribute=""] [quality=""] [talent=""] [name=""] [scope="quest"] [inc=""] [dec=""] [val=""] [expire=""] [target=""] />
Attribut | Datentyp | Standardwert | Erklärung |
---|---|---|---|
object | String | hero | Standardmäßig wird der aktive Held betrachtet und dessen Werte manipuliert. Es lassen sich jedoch weitere Objekte manipulieren:
|
attribute | String | beim Helden alle möglichen Heldenattribute. Beachte: Es lassen sich nicht alle Heldenattribute verändern, einige Attribute sind nur lesbar.
| |
quality | String | beim Held kann man Eigenschaften temporär verändern, siehe Beispiele weiter unten | |
talent | String | beim Held kann man Fertigkeitswerte temporär verändern, siehe Beispiele weiter unten | |
name | String | der Name der Variable, die verändert werden soll | |
scope | String | quest | Bezeichnet den Gültigkeitsbereich, wie eine Variable gespeichert wird. Hierzu verschiedene Möglichkeiten. |
inc | Integer | zur Erhöhung von Werten | |
dec | Integer | zur Verringerung von Werten | |
val | (mixed) | Der neue Wert für die Variable oder das Attribut. | |
expire | String | diese Angabe wird benötigt, wenn beim Held eine Eigenschaft oder eine Fertigkeit temporär verändert werden soll, siehe Beispiele weiter unten | |
target | String | Kann in Verbindung mit <set attribute="wounds"/> benutzt werden, siehe Beispiel weiter unten |
Beispiele für den Held
Um Heldenwerte mit set zu verändern, muss das Tag um ein Attribut erweitert werden, das entweder die neue Höhe angibt oder den Betrag um den der Wert verändert wird:
<set attribute="LEP" dec="5"/>
Verringert die Lebensenergie um 5.
<set attribute="LEP" inc="1...6"/>
Hingegen erhöht die LP um 1 bis 6 ("W6") Punkte, aber nur bis zum möglichen Maximum.
- dec - Wert um den Betrag verringern
- inc - Wert um den Betrag erhöhen
- val - neuer Wert (absolut)
dec, inc, val, attribute und name können alle auch Besondere Werte annehmen.
Eigenschaften temporär ändern
Eigenschaften können mittels set temporär verändert werden. Beispiele:
<set quality="ST" inc="4" expire="10 days" /><!-- erhöht Stärke um 4 für 10 Tage -->
<set quality="FF" dec="2" expire="3 hours" /><!-- verringert Fingerfertigkeit um 2 für 3 Stunden -->
Fertigkeiten temporär ändern
Fertigkeitswerte (Talentwerte) können ebenfalls temporär verändert werden. Beispiele:
<set talent="Sinnenschärfe" inc="4" expire="10 days" /><!-- erhöht den FeW "Sinnenschärfe" um 4 für 10 Tage -->
<set talent="Schwimmen" dec="2" expire="3 hours" /><!-- verringert den FeW "Schwimmen" um 2 für 3 Stunden -->
Eigene Variablen verändern
Statt Attributen können auch Variablen-Werte gesetzt werden. Damit kann man beispielsweise im Laufe der Quest EP ansammeln:
<set name="questEP" inc="5" show="none"/>
Und dann am Ende der Quest gesammelt vergeben:
<set attribute="EP" inc="${questEP}"/>
Es handelt sich dabei um dieselben Variablen wie bei Store_fetch.
Eine Wunde verursachen
Der folgende Code schlägt eine Wunde beim Helden.
<set attribute="wounds" inc="1" />
Die Trefferzone würde dabei zufällig gewählt werden.
Möchte man eine bestimmte Trefferzone festlegen, kann dies wie folgt geschehen:
<set attribute="wounds" inc="1" target="linker Arm" />
Hier würde eine Zone am linken Arm des Helden verursacht werden. Mögliche Trefferzonen sind:
Kopf
Brust
linker Arm
rechter Arm
Bauch
linkes Bein
rechtes Bein
Beachte die korrekte Groß-/Kleinschreibung der Trefferzone, ansonsten wird sie nicht erkannt!
Beispiele für einen Gegenstand (object="selected-item")
Wurde zuvor ein Gegenstand via item-select ausgewählt, kann das Warenattribut quality (der Zustand des Gegenstandes) verändert werden:
<!-- die Qualität um 10 erhöhen (Obergrenze ist automatisch 100, das prüft die Engine von alleine) -->
<set object="selected-item" attribute="quality" inc="10" />
<!-- die Qualität um 7 verringern (Untergrenze ist automatisch 0, das prüft die Engine von alleine) -->
<set object="selected-item" attribute="quality" dec="7" />
<!-- die Qualität auf 100 setzen (Bestwert) -->
<set object="selected-item" attribute="quality" val="100" />
Beispiele für das Ordenshaus (object="ordenshaus")
Beim Ordenshaus kann bisher das Attribut schatz verändert werden, mittels inc oder dec, jedoch nicht mittels val/value, weil dies bei parallelen Ein-/Auszahlungen zu Problemen führen könnte.
<!-- Diebe klauen 15 Gulden aus der Schatzkammer -->
<store name="gold_aktuell"><get object="ordenshaus" attribute="schatz"/></store>
<has name="gold_aktuell" min="15000">
<success>
<!-- Diebe erhalten 15 Gulden -->
<select role="Anführer"/>
<set attribute="cash" inc="15000" />
<!-- Ordens-Gold anpassen -->
<set object="ordenshaus" attribute="schatz" dec="15000" />
</success>
<failure>
<p>Es sind keine 15 Gulden in der Schatzkammer.</p>
</failure>
</has>