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.

Dieser Beitrag hat 21 Kommentare

  1. Wolfsspinne

    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.

    1. Michael L. Jaegers

      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.

      1. Michael L. Jaegers

        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.

        1. Dominic Niederhoff

          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

  2. Robin Helten

    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?

    1. Michael L. Jaegers

      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.

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

      1. Selina

        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

        1. Michael L. Jaegers

          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

  4. Georg

    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;…..}”

  5. Chiro

    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

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

      1. 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)

  6. et

    Hi _dsa(10;11;12;-4) liefert einen fehler
    kann das intern in _dsa(6;7;8;0) uebersetzt werden?

  7. Raszul

    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?

    1. Michael L. Jaegers

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

  8. Lars

    Hallo,
    kann der RB auch die Vorteilsprobe von 5e mit Boni oder Mali abbilden?
    Oder auch die (identische) Mechanik von Shadowdark?
    LG
    Lars

    1. 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:

      • _dnd(7) => d20 wird gegen 7 geprüft
      • _dnd(+2) => d20+2
      • _dnd+(7) => max(2xd20) wird gegen 7 geprüft, dies ist also mit Bonuswürfel
      • _dnd-(7) => min(2xd20) wird gegen 7 geprüft, dies ist also mit Maluswürfel
      • _dnd+(+2) => max(2xd20)+2, Bonus und +2
      • _dnd-(+2) => min(2xd20)+2, Malus und +2

      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.

  9. Lars

    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

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

Schreibe einen Kommentar

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.