Modifikatoren, Variablen und Ergebnisauswahl
Modifikatoren
Hat man Gratiserfolge (oder Fehlschläge, Patzer oder Trigger), können diese der Würfelvorschrift mitgegeben werden. ‘+2E’ fügt zwei Erfolge dem Würfelergebnis hinzu. ‘-F’ reduziert die Zahl der resultierenden Fehlschläge um eins. Vollständiges Beispiel: ‘3W6E5+E’ lässt den @RollButler drei sechsseitige Würfel werfen und jede fünf oder sechs als Erfolg werten. Anschließend wird ein Erfolg hinzugefügt.
Variablen und Ergebnisauswahl
Um für weitere Berechnungen auch auf die Zahl der Trigger, Erfolge, Fehlschläge, etc. zugreifen zu können, kann die Würfelvorschrift mit speziellen Funktionen umgeben werden. Wichtig ist dabei allerdings, dass der Würfelvorschrift die zugehörigen Parameter (F, E und/oder T, bzw. P) mitgegeben wurden.
- F(w), bzw. fehlschlaege(w) – liefert die Zahl der Fehlschläge des Würfelwurfs w (erfordert die Option F)
- E(w), S(w), bzw. erfolge(w) – liefert die Zahl der Erfolge des Würfelwurfs w (erfordert die Option E)
- T(w), bzw. trigger(w) – liefert die Zahl der Trigger des Würfelwurfs w (erfordert die Option T)
- M(w), bzw. misses(w) – liefert die Zahl der negativen Trigger (Patzer) des Würfelwurfs w (erfordert die Option M)
- L(w), bzw. liste(w) – wandelt die Einzelergebnisse des Wurfs in eine Liste um (bedarf keiner Option)
- P(w), bzw. gerade(w) – liefert die Anzahl der geraden Würfelergebnisse des Würfelwurfs w (erfordert die Option P)
- I(w), bzw. ungerade(w) – liefert die Anzahl der ungeraden Würfelergebnisse des Würfelwurfs w (erfordert die Option P)
- effektiv(w) – liefert die Zahl der effektiven Erfolge (Erfolge – Fehlschläge) des Würfelwurfs w (erfordert die Optionen E und F)
- augensumme(w) – liefert die Zahl der Augen des Würfelwurfs w. Diese Funktion ist üblicherweise nicht erforderlich, da die Würfelvorschrift selber bereits die Augensumme liefert.
- null(w) – liefert eine 0, unabhängig vom Ergebnis des Würfelwurfs
- G(w[; x]), bzw. gruppen(w[; x]) – liefert die Anzahl der Gruppen gleicher Augenzahlen (bedarf der Option G), optional beschränkt auf Augenzahl x
Möchte man also die Zahl der Erfolge eines 3W6 Würfelwurfs in der Berechnung verwenden, so verwendet man die Formel ‘E(3W6E5)’.
Um auf die Ergebnisse eines Würfelwurfs an einer anderen Stelle der Würfelvorschrift erneut zugreifen zu können, können diese in eine Variable zwischengespeichert werden. Variablen sind Textbezeichner, die mit einem ‘$’ Zeichen beginnen, z.B. ‘$wurf’. Um der Variablen ‘$wurf’ einen Wert zuzuweisen verwendet man beispielsweise das folgende Kommando: ‘$wurf=(3W6FE5T)’. Man beachte, dass das, was der Variablen zugewiesen werden soll, in runden Klammern gefasst werden muss.
Zur Vereinfachung werden zudem alle Würfe automatisch in den Variablen $1, $2, $3, etc. in der Reihenfolge ihres Vorkommens gespeichert.
An einer anderen Stelle kann anschließend mit einer der oben beschriebenen Funktionen auf Ergebnisse des Wurfs zurückgegriffen werden. Beispiel: ‘$w=(3W6T+T($w))’ liefert als Ergebnis die Augensumme von drei sechsseitigen Würfeln plus die Anzahl der Trigger (hier: sechsen). Möchte man die Augensumme des Würfelwurfs unterdrücken, klammert man die Zuweisung in die Funktion null() ein, also ‘null($w=(3W6E5T))+E($w)+T($w)’, was gleichbedeutend mit ‘E(3W6E5T)+T($1)’ die Summe der Erfolge und Trigger liefert.
Variablen können beliebige Inhalte speichern, also nicht nur Würfelwürfe, sondern auch Zahlen, Text etc.
Gruppen (G())
Um die Anzahl der Gruppen (z. B. Pasch) ausgeben zu können, muss die Würfelinstruktion den Parameter G beinhalten, z.B. 10WG für das Erfassen von Paaren gleicher Augenzahl bei zehn sechsseitigen Würfeln. (Man beachte, dass W ohne Angabe einer Zahl oder Menge für einen sechsseitigen Würfel, also W6 steht.)
Ist nun für die weitere Auswertung lediglich die Anzahl dieser Gruppen relevant, kann die Ergebnisauswahl G() um die Würfelinstruktion gesetzt werden: ‘G(10WG)’. Das Ergebnis dieses Aufrufs liefert somit nicht mehr die Augensumme der 10 Würfel, sondern lediglich die Anzahl der Pasche.
Interessiert man sich nur für die Anzahl der Pasche einer bestimmten Augenzahl (z. B. 6), so kann diese Augenzahl als zweiter Funktionsparameter mitgegeben werden: ‘G(10WG;2)’.
Sollen die Sechser-Trippel eines Wurfs gezählt und ausgegeben werden, kommt die folgende Instruktion zum Einsatz: ‘G(10WG3;6)’.
Bei der Ermittlung der Gruppen sind folgende Punkte zu beachten:
- Es können nur Gruppen einer Anzahl ausgewertet werden, also nur Pasche oder nur Trippel, etc.
- Die Gruppen werden für die Gesamtausgabe über alle Würfe ermittelt, auch wenn unterschiedliche Gruppengrößen angegeben wurden. ‘3WG+5WG3’ ergibt in der Gesamtübersicht möglicherweise ein inkonsistentes Bild.
Gibt es eine Möglichkeit die höchsten/niedrigsten Werte aus einem Wurf mit mehreren Würfeln auszugeben?
Ich kenne es aus anderen Programmen, wo man z.B. 4W6H3 verwenden kann um 4 W6 zu werfen und die höchsten 3 zusammen zu zählen.
Hi,
in der Tat ist dies möglich, aber leider nicht ganz so trivial.
/roll last(3;sort(4xW6))
um sich nur die höchsten drei Werte anzeigen zu lassen oder
/roll sum(last(3;sort(4xW6)))
um deren Augensumme zu ermitteln.
Zugegeben, das ist etwas sperrig, aber ich schau mal, ob ich in einem der kommenden Updates diese ‘H’ Option mit einbaue.
So, jetzt ist die Option ‘H’ auch implementiert:
/roll 4W6H3
liefert nur die Augensumme der drei höchsten Werte bei vier Sechsseitern.
Und
/roll 4W6B3
macht das gleiche, nur mit den drei kleinsten Werten.
Hallo!
Wie schaffe ich es, dass die explodierenden Würfel summiert werden?
Hintergrund:
Aktuell versuche ich, für L5R eine Roll-and-keep-Mechanik ausprobieren; dort explodieren die Würfel allerdings in Summe (wenn ein Zehner als Siebener weitergewürfelt wird, ist der Würfel also 17 wert…) und sollten damit anders in die H-Option laufen als bislang als separate Zehner und Siebener…
Danke,
Dominic
Hi,
gibt es die Möglichkeit eine Zahl mit zwei Erfolgen/ Fehlschlägen zu belegen, und dann die Zahl der Erfolge/ Fehlschläge anzeigen zu lassen?
Hi,
das ist bedingt möglich über den Trigger. Beispiel 10D6F1E4T6 (oder kürzer: 10DFE4T), dabei werden Einsen als Fehlschlag, Werte ab 4 als Erfolg und Sechsen (zusätzlich) als Trigger gewertet. In der Ausgabe steht dann beispielsweise
Erfolge 6,
Fehlschläge 2,
effektive Erfolge +4,
Trigger 1
Für den gewünschten Effekt müssten nun (noch im Kopf) die Trigger noch zu den Erfolgen (und dem effektiven Erfolg) hinzugerechnet werden, also in diesem Beispiel: 7 Erfolge, effektive Erfolge +5.
Automatisch geht dies mit folgender Formel: e(10dfe4t6)+t($1)
e() liefert die Anzahl der Erfolge (und nicht die Augensumme) der in der Klammer angegebenen Würfelinstruktion.
t() liefert analog die Anzahl der Trigger.
$1 referenziert auf die erste ausgeführte Würfelinstruktion, t($1) liefert damit in diesem Beispiel die Zahl der Trigger der vorangegangenen Würfelei.
Ich nehme die Idee allerdings einmal auf und überlege, ob dafür auch eine geeignete Option sinnvoll wäre, aber kürzer wird es dadurch nicht …
Ich hoffe, das hilft.
Hej, ich sehe gerade, das es für Alien bereits eine Mechanik/ein Makro ähnlich der gibt, die ich derzeit für V5 suche – Vampire, 5. Edition. Hier werden W10 gegen 6 gewürfelt, und in den meisten Lagen werden sog. Hungerwürfel in den Pool eingestreut. Zwei Zehner sind besondere Erfolge und werden als 4 Erfolge gezählt, besondere Ergebnisse aus den Hungerwürfeln haben noch andere Effekte.
Klingt in der Grundlage sehr ähnlich wie die Sache mit den Stresswürfeln. Lässt sich das auch als Makro (zB _v5?) einrichten? Würde ungern einen zweiten Bot zum würfeln installieren müssen.
Hallo Andreas,
danke für den Hinweis. Ich freue mich immer, wenn ein Vorschlag für eine Erweiterung kommt. Ich habe mir den Vampire The Masquerade V5 Schnellstarter einmal gezogen und versuche nun – siehe PN – in die Regelmechanismen einzusteigen.
Schönen Gruß,
Michael
Hallo Michael,
ich habe mich auch gerade an einer Umsetzung für Vampire versucht und habe aktuell diese Lösung für mich herausgeknobelt:
/r 5xd(4xErfolg;1xKritisch;5x.)+8xd(4xErfolg;1xBiestKritisch;3x.;1xBeastFailure)
5xd(4xErfolg;1xKritisch;5x.) stellt die schwarzen Würfel dar und der zweite Teil den roten. Das ist noch nicht so optimal, aber hilft mir erstmal.
Viele Grüße
Selina
Hallo Selina,
danke, dass Du die die Mühe gemacht hast.
Für V5 hatte ich zwei Makros realisiert _v5() mit einem, bzw. zwei Parametern. Dahinter stecken die folgenden Formeln:
S(aD10S6T)+if(T($1)>1;2;0)
bzw.
S(aD10S6T)+S(bD10S6T)+if(T($1)+T($2)>1;2;0)
mit a als erstem, b als zweitem Parameter.
Deine Formel /r 5xd(4xErfolg;1xKritisch;5x.)+8xd(4xErfolg;1xBiestKritisch;3x.;1xBeastFailure) hat den Haken, dass mathematisch mit “Erfolg” keine Rechenoperation (“+”) durchgeführt werden kann – das ist halt keine Zahl.
Der zweite Würfel bei Dir hat darüber hinaus nur 9 Werte, also ein W9 – ist das so beabsichtigt?
Meine zweite Formel löst das Problem, indem Erfolge und Trigger genutzt werden.
a 10-Seiter, Werte 6 und größer sind Erfolge, die 10 sogar ein Trigger
b ebensolche 10-Seiter
Von beiden werden die Erfolge gezählt und addiert. Danach noch einmal die Trigger der beiden Würfe, damit die kritischen Erfolge halt doppelt zählen.
Den BeastFailure kann man mit einem Fehlschlag realisieren, dann wäre das
S(aD10S6T)+S(bD10S6TF)+if(T($1)+T($2)>1;2;0)
In dem Fall müssten dann aber a die regulären und b die Hunger-Würfel sein.
Im Endeffekt müsste das noch etwas komplexer werden um Messy critical und Bestial failure mit abbilden zu können.
Schönen Gruß,
Michael
Wäre es möglich für (unter Anderem) Savage Worlds einen Kartendeck mit oder ohne Joker zu implementieren?
Müsste nicht mal ein richtiges Deck (ohne Zurücklegen) sein, mir würde schon ein Makro für die Kartennamen reichen
Beispiel:
“/r deck(3)” entspräche “/r 3W{Herz 2; Herz 3; Herz 4;…..}”
Hay,
kann man die Würfel Ergebnisse auch jemals addieren?
also so das das Ergebnis von 2w12 jeder Würfel mit 2 addiert wird.
damit ich nicht schreiben muss 1w12+2+1w12+2
Hi,
die triviale Lösung ist natürlich 2w12+4, aber ich vermute, Du möchtest die einzelnen Würfelergebnisse um je 2 erhöht und ausgegeben haben. Das geht aktuell so wohl nicht, ist aber ein berechtigtes Feature, das ich einmal mit aufnehme.
Nachtrag: das neue Feature ist implementiert und geht demnächst in die Produktionsinstanz des RollButlers. Die Würfelinstruktion lautet dann z. B.
/r 2x(d12+2)
Hi _dsa(10;11;12;-4) liefert einen fehler
kann das intern in _dsa(6;7;8;0) uebersetzt werden?
gibt es eine option für die Star Wars D6 joker würfel?
in Star Wars D6 gibts nur D6.
es wird jedes mal die summe aller d6 gebildet
ein würfel in jedem wurf ist der joker.
wenn der joker ne 1 ist wird der joker und der höchste würfel abgezogen aka auf 0 gesetzt (bei 1d6 wird einfach nur der d6 entfernt aka auf 0 gesetzt)
wenn der joker ne 6 ist dann explodiert er aka wird neu gewürfelt und hinzugefügt bis keine 6 mehr gewürfelt wird
sprich 3d6 mit joker 6, 4, 3 = 13 +d6!!
gbts da ne Möglichkeit dsa umzusetzen?
Hi,
ich habe das nun auch als Makro hinterlegt:
/r _swd6(4)
Wobei die 4 hier im Beispiel für 4 Skill dice steht.
Das Ergebnis kann dann in Abhängigkeit vom Joker (Wild Die) wie folgt aussehen:
I rolled _swd6(4) for you which resulted in Wild die 9, Result native 14, Result regular 23.
Results: 2 3 4 5 6! (3).
… oder aber auch so:
I rolled _swd6(4) for you which resulted in Wild die 1, Result native 9, Result regular 10, Result extreme 4.
Results: 1 4 2 2 1.
Result extreme ist dann das von Dir beschriebene Verhalten bei einem Jokerwert von 1, also Summe aller Fertigkeitswürfel minus Joker (1) und minus dem höchsten Wert der Fertigkeitsürfel (hier:4). Da es aber für den Spielleiter auch andere Optionen gibt, werden auch diese berechnet als Result regular (Augensumme aller Würfel), Result native (Augensumme der Fertigkeitswürfel ohne Joker).
Hallo,
kann der RB auch die Vorteilsprobe von 5e mit Boni oder Mali abbilden?
Oder auch die (identische) Mechanik von Shadowdark?
LG
Lars
Hallo Lars,
wie in der PN schon geschrieben:
Ich hatte ja schon Makros für D&D implementiert, aber nicht mit der Bonus/Malus Regel. Das habe ich nun nachgeholt und damit ergeben sich nun folgende Optionen:
bei den (+2) Varianten kann auch zusätzlich der Zielwert mit angegeben werden, also z. B. _dnd+(+2;12) => max(2xd20)+2>=12
Ferner kann anstelle von “_dnd” auch “_5e” verwendet werden.
Hallo Michael,
ich hab das Werwolf-Makro entweder nicht verstanden oder es funzt nicht.
Habs mit /r wer(31;8) für 31w10 und Schwierigkeit 8 probiert. Kam aber nix bei raus.
LG
Lars
Hallo Lars,
der “Fehler” liegt am vergessenen Unterstrich vor dem “wer()”. Der korrekte Aufruf lautet
/r _wer(31;8)
und dann klappt es auch mit den Werwölfen.