@RollButler Release 3.17 veröffentlicht

Eigentlich gibt es keine großen Ankündigungen, wenn eine neue Version des online Würfeltools @RollButler live geht. Doch dieses Mal ist es etwas anders, da sich einige grundlegende Elemente verändert haben, sodass es sich lohnt, diese einmal speziell zu beleuchten.

In den vergangenen Wochen wurde intensiv an einer „Kernsanierung“ gearbeitet, wobei der Code gründlich überarbeitet wurde. Gestiegene Wünsche hinsichtlich der Funktionalität und der selbstauferlege Drang danach einige Missstände der Programmierung zu beseitigen (gewachsener Code ist halt … nicht immer optimal) waren der Antrieb für diese Maßnahmen.

Das Online Würfel Tool @RollButler

Änderungen am @RollButler werden für gewöhnlich kurz und knapp in den Changelogs zum @RollButler publiziert, in einem zeitlich passenden Wochenpost etwas genauer beleuchtet und detailliert in der Anleitung eingepflegt. Und eigentlich hätte es bei den intensiven Änderungen auch einen Versionssprung zur 4 verdienen können. Dennoch … es ist „nur“ die 3.17.

Die Änderungen im Detail

Neue Funktionen

Mit der neuen Version sind für den mathematischen Teil des @RollButlers, also für alles, was mit dem Kommando /roll eingeleitet wird, ein paar neue Funktionen eingebaut worden.

kill()/silent()/void()

Diese Funktion „schluckt“ die Ausgabe der Berechnung innerhalb der Klammer. Dies dient insbesondere dafür, wenn Berechnungen angestellt werden sollen, deren Resultate später über Variablen und die text() Funktion ausgegeben werden sollen.

Beispiel:

/roll kill(3D6FS5T) text(„Erfolge $1, Fehlschläge $2“;S($1);F($1))

Bei dieser Funktion wird das Würfelergebnis nicht ausgegeben, wohl aber ein Text mit der Anzahl der Erfolge und Fehlschläge.

Achtung: die Funktion void() wurde hierzu umgewidmet, macht aber funktionell weiterhin das, was sie auch zuvor (da allerdings nur für Würfelwürfe) getan hat.

lookup()/minlookup()/maxlookup()

Diese (beiden) neuen Funktionen dienen zum Nachschlagen in einem Array. So kann beispielsweise ein Würfelergebnis in einen textuelle Entsprechung (z. B. ein Erfolgsgrad) umgewandelt werden.

Der erste Parameter ist hierbei der variable Wert, der verglichen werden soll, z. B. ein Würfelergebnis.

Es folgen beliebig viele Pärchen von Vergleichswerten und Resultaten und optional am Ende ein Resultat für den „sonst“ Fall. Wird kein Wert für den „sonst“ Fall angegeben, liefert die Funktion im „sonst“ Fall den booleschen Wert false, bzw. 0 zurück.

Der Aufbau ist bei lookup(), minlookup() und maxlookup() identisch:

lookup(<Wert>;<Vergleichswert 1>;<Ergebnis bei Vergleichswert 1>;<Vergleichswert 2>;<Ergebnis bei Vergleichswert 2>;…[;<Ergebnis bei nicht Zutreffen der Vergleichswerte>])

Beispiel:

/roll minlookup(D6;1;“kein Erfolg“;4;“einfacher Erfolg“;6;“besonderer Erfolg“)

Bei diesem Funktionsaufruf wird das Ergebnis des D6 mit den Werten 1, 4 und 6 verglichen, wobei der Zielwert mindestens erreicht werden muss. Bei Würfelergebnissen 1, 2 oder 3 wird „kein Erfolg“ ausgegeben, da der Zielwert 4 nicht erreicht wurde.

maxlookup() vollführt den gleichen Vergleich, wobei in diesem Fall höchstens der jeweilige Zielwert erreicht werden darf.

/roll maxlookup(D6;3;“kein Erfolg“;5;“einfacher Erfolg“;“besonderer Erfolg“)

Dieser Aufruf ist funktionell identisch mit dem vorherigen, denn Würfelergebnisse von 1, 2 oder 3 erfüllen die Bedingung höchstens (kleiner oder gleich) 3 zu sein und liefern damit „kein Erfolg“. Zu beachten ist allerdings in diesem Beispiel, dass der letzte Parameter „besonderer Erfolg“ ohne Zielwert angegeben wurde. Dieser erfüllt das „sonst“ Kriterium, das zum Tragen kommt, wenn keines der vorherigen Kriterien zutrifft.

/roll lookup(D6;2;“zwei“;4;“vier“;6;“sechs“;“eine ungerade Zahl“)

Die lookup() Funktion prüft auf exakte Übereinstimmung des Werts, schlägt also in diesem Beispiel nur bei den Werten 2, 4 und 6 an und liefert andernfalls den Text „eine ungerade Zahl“.

Veränderte Variablenspeicherung

Bislang konnte der @RollButler in Variablen nur Würfelwürfe speichern. Dies wurde nun dahingehend verändert, dass Variablen beliebige Inhalte enthalten können. Dies hat allerdings zur Folge, dass die Syntax geringfügig verändert wurde.

$<variablenname>=(<Wert für die Variable>)

Bei der Zuweisung von Werten zu einer Variablen müssen diese nach dem Zuweisungsoperator = (oder :=) in runden Klammern gesetzt werden. Andernfalls kann der @RollButler nicht erkennen, wo der Wert, bzw. die Berechnung für die Zuweisung endet.

Beispiel:

/roll $ergebnis=(3W6E5+10)+2W8

In diesem Fall wird der Variablen $ergebnis das Resultat von 3W6+10, also ein Zahlenwert zugewiesen. Die 2W8 werden im in der weiteren Verarbeitung der Anweisung angewandt und finden sich nicht in $ergebnis wieder.

/roll $ergebnis=(2W8EF)+10

In diesem Beispiel wird der Variablen $ergebnis der Würfelwurf 2W8EF zugewiesen, also nicht das Ergebnis des Wurfs. Hierdurch kann mittels Ergebnisfunktionen auf Elemente des Wurfs zugegriffen werden, z. B. E($ergebnis) für die Anzahl der Erfolge.

Der Rückgriff auf die Variablen findet wie gewohnt statt. Ebenso sind die Variablen $1, $2 … weiterhin automatisch mit den Würfelwürfen der Instruktion belegt.

Kommentar hinterlassen

Nutze dieses Kommentarfeld um deine Meinung oder Ergänzung zu diesem Beitrag kundzutun. Verhalte dich bitte respektvoll und höflich! Kommentare werden vor der Veröffentlichung in der Regel moderiert und bei Verstößen gegen geltendes Recht, die guten Sitten, fehlendem Bezug oder missbräuchlicher Verwendung nicht freigegeben oder gelöscht.
Über die Angabe deines Namens, deiner E-Mail Adresse und deiner Webseite freuen wir uns, doch diese Felder sind optional. Deine E-Mail Adresse wird dabei zu keinem Zeitpunkt veröffentlicht.

Um mit dem Betreiber dieser Seite nicht-öffentlich in Kontakt zu treten, nutze die Möglichkeiten im Impressum.