Command: !roll¶
Würfelt eine Zahl. Standard 1-100, mit Argument konfigurierbar (!roll 6 = 1-6, wie Würfel).
Patterns: Set Argument (Default) + Get Random Number + Send Message Sub-Actions: 4
Action: [Cmd] !roll¶
Sub-Action 1: Set Argument — Max-Wert¶
| Feld | Wert |
|---|---|
| Variable Name | maxRoll |
| Value | %input0% |
Sub-Action 2: If/Else — Default wenn nichts angegeben¶
Sub-Action 3: Get Random Number¶
| Feld | Wert |
|---|---|
| Type | Between |
| Min | 1 |
| Max | %maxRoll% |
Setzt %randomNumber%.
Sub-Action 4: Send Message¶
| Feld | Wert |
|---|---|
| Message | 🎲 @%user% rollt %randomNumber% (1-%maxRoll%) |
| Send using bot account | aktiv |
Action-Tree¶
[Cmd] !roll
├── 1. Set Argument: maxRoll = %input0%
├── 2. If/Else: %maxRoll% Is Null or Empty
│ └── Set Argument: maxRoll = 100
├── 3. Get Random Number (1, %maxRoll%)
└── 4. Send Message: "🎲 @%user% rollt %randomNumber% (1-%maxRoll%)"
Command-Einstellungen¶
| Feld | Wert |
|---|---|
| Name | !roll |
| Group | AzaCraft Fun |
| Commands | !roll!dice!w (deutsch Würfel) |
| Sources | Twitch Message |
| Global Cooldown | 0 |
| User Cooldown | 15 |
Verwendungsbeispiele¶
| Chat | Resultat |
|---|---|
!roll |
"🎲 @user rollt 42 (1-100)" |
!roll 6 |
"🎲 @user rollt 4 (1-6)" |
!roll 1000 |
"🎲 @user rollt 731 (1-1000)" |
!roll banana |
Twitch akzeptiert die Range-Validation evtl. nicht — Banane → max bleibt undefined → Verhalten unklar |
Erweiterung: Input validieren¶
Wenn User Zahlen-Input prüfen willst:
2. If/Else: %maxRoll% Is Null or Empty
└── Set Argument: maxRoll = 100
3. If/Else: %maxRoll% Regex Match ^[0-9]+$
(wenn match → ok)
4. If/Else: %maxRoll% Less Than 2
├── Send Message: "@%user% max-Wert muss > 1 sein"
└── Break
5. If/Else: %maxRoll% Greater Than 99999
├── Send Message: "@%user% max-Wert zu groß"
└── Break
Erweiterung: DnD-Style !roll 2d6¶
User schreibt !roll 2d6 für 2 Würfel à 6 Seiten.
Komplexer ohne C#/Regex-Inline-Function. Pragmatischer Approach:
1. If/Else: %input0% Contains "d"
├── Set Argument: diceCount = $regex(%input0%, ^(\d+)d.*$, $1)$
├── Set Argument: diceSides = $regex(%input0%, ^\d+d(\d+)$, $1)$
├── (loop diceCount times)
├── Send Message: "@%user% rollt %total%"
└── Break
2. (standard single-roll wie oben)
Loops in Streamer.bot via Core → Logic → While + Counter. Wird komplex — für volle DnD-Style besser ein C#-Code-Block. Pragmatisch: nur !roll N (single dice).
Erweiterung: Crit + Fail¶
Bei !roll 20 (D20) auf 1 = Crit Fail, auf 20 = Crit Success:
5. If/Else: %maxRoll% Equals 20
├── If/Else: %randomNumber% Equals 1
│ ├── Send Message: "🎲 @%user% rollt 1 — CRIT FAIL 💀"
│ └── Break
├── If/Else: %randomNumber% Equals 20
│ ├── Send Message: "🎲 @%user% rollt 20 — NAT 20! 🔥"
│ └── Break
Quellen¶
- Get Random Number: patterns/05-get-random-number.md