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
[pastacode manual=”3W6FE5T!!%2BE%2BW8″ provider=”manual” lang=”php”/]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.
[pastacode manual=”sort(list(6D%7B1..49%7D))” provider=”manual” lang=”php”/]Dieses Kommando liefert die kommenden Lottozahlen. (Alle Angaben ohne Gewähr!)
[pastacode manual=”above(if(d10%3D%3D1%3B-1%3Babove(%241%2B5%3B10)%2Bif(%241%3D%3D10%3B1%3B0))%2Bif(d10%3D%3D1%3B-1%3Babove(%242%2B5%3B10)%2Bif(%242%3D%3D10%3B1%3B0))%3B0)” provider=”manual” lang=”php”/]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.
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?