Logische Verknüpfungen und Vergleichsoperatoren sowie komplexe Beispiele

Der @RollButler vermag auch Vergleiche auszuführen. Will man beispielsweise wissen, ob ein Würfelergebnis größer als ein vorgegebener Wert ist, so ist dies wie folgt möglich: ‘W100>48’. Die angegebene Instruktion wirft einen hundertseitigen Würfel und prüft, ob das Resultat größer als 48 ist. Ebenso sind die Vergleichsoperatoren kleiner ‘<‘, kleiner oder gleich ‘<=’, größer oder gleich ‘>=’, gleich ‘==’ (Achtung: zwei Gleichheitszeichen erforderlich) sowie ungleich ‘!=’ möglich.

Mehrere logische Ergebnisse können zudem mit und ‘&’ und oder ‘|’ verknüpft werden. Beispiel: ‘W6==6&W6>5’ erfordert, dass das erste Ergebnis eines Würfelwurfs gleich sechs ist und das zweite Ergebnis mindestens fünf beträgt. Anstelle von ‘&’ und ‘|’ kann auch ‘und’ oder ‘oder’ verwendet werden.

Komplexe Beispiele

3W6FE5T!!+E+W8

Hier werden drei sechsseitige Würfel geworfen, die eins als Fehlschlag, fünf und sechs als Erfolg und eine sechs zusätzlich als Trigger gewertet. Ferner explodieren alle Würfel mit einer sechs, werden also jeweils so lange neu geworfen, bis keine sechs mehr fällt. Ein Erfolg ist gratis enthalten. Anschließend wird auf die so erzielte Augensumme des ersten Wurfs noch das Ergebnis eines achtseitigen Würfels hinzugefügt.

sort(list(6D{1..49}))

Dieses Kommando liefert die kommenden Lottozahlen. (Alle Angaben ohne Gewähr!)

above(if(d10==1;-1;above($1+5;10)+if($1==10;1;0))+if(d10==1;-1;above($2+5;10)+if($2==10;1;0));0)

Dies ist die Umsetzung einer Probe im Rollenspiel Infected! mit Attributs und Fertigkeitswerten von 5. Geworfen werden hier zwei zehnseitige Würfel zu deren Augensumme der Fertigkeitswert addiert wird, sofern der zugehörige Würfelwurf größer als eins ist. Relevant sind die aus den beiden Summen resultierenden Werte oberhalb von 10. Sollte der reine Würfelwurf eine eins sein, wird die zugehörige Summe nicht ausgewertet und das Gesamtergebnis um eins geschmälert. Eine geworfene 10 erhöht das Gesamtergebnis um 1. Als Gesamtergebnis wird mindestens 0 zurückgeliefert.

Dieser Beitrag hat 17 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).

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.