!rps
Pro !ssp !rockpaperscissors
Schere-Stein-Papier. User wählt, Bot würfelt eigenen Wert und vergleicht.
- Steps
- 12
- Cooldown
- 15s/User
- Cooldown
- 0sglobal
- Zugriff
- Public
!ssp !rockpaperscissors
Schere-Stein-Papier. User wählt, Bot würfelt eigenen Wert und vergleicht.
Wir akzeptieren schere, stein, papier. Validierung mit Whitelist statt Regex (zuverlässiger), Bot würfelt 1–3 als Index, Vergleich erfolgt im Cascade.
[Cmd] !rpsLowercased Input für case-insensitive Vergleich.
| Variable Name | userChoice |
|---|---|
| Value | $lower(%input0%)$ |
Erst validChoice = false, dann 3 If/Else (Equals schere/stein/papier), die jeweils validChoice = true setzen. Wenn validChoice am Ende false → Hilfe + Break.
| Initial | Set Argument: validChoice = false |
|---|---|
| Then für jede Wahl | Set Argument: validChoice = true |
| Fail-Branch | If validChoice Equals false → Send Message Hilfe + Break |
1 = schere, 2 = stein, 3 = papier.
| Type | Between |
|---|---|
| Min | 1 |
| Max | 3 |
Drei If/Else-Blöcke die je nach %randomNumber% den Wert botChoice = schere/stein/papier setzen.
Wenn gleicher Wert → Tie-Message + Break.
| Input | %userChoice% |
|---|---|
| Operation | Equals |
| Value | %botChoice% |
Schere schlägt Papier, Stein schlägt Schere, Papier schlägt Stein. Pro Win: Send Message + Break.
Wenn keine Win-Condition gematcht hat und kein Tie war, gewinnt Bot.
| Message | 💀 @%user% Bot hatte %botChoice%, du hattest %userChoice% — Bot gewinnt! |
|---|
Streamer.bot If/Else hat kein einfaches „NOT match” für Regex. Pragmatisch via Whitelist:
1. Set Argument: validChoice = false2. If/Else: %userChoice% Equals schere └─ Set Argument: validChoice = true3. If/Else: %userChoice% Equals stein └─ Set Argument: validChoice = true4. If/Else: %userChoice% Equals papier └─ Set Argument: validChoice = true5. If/Else: %validChoice% Equals false ├── Send Message: "@%user% nutze !rps schere | stein | papier" └── BreakEtwas verbose, aber funktioniert garantiert.
| Feld | Wert |
|---|---|
| Name | !rps |
| Group | AzaCraft Fun |
| Commands | !rps!ssp!rockpaperscissors |
| Sources | Twitch Message |
| Global Cooldown | 0 |
| User Cooldown | 15 |
| Chat | Resultat |
|---|---|
!rps schere | „🤝 Unentschieden!” oder Win/Loss |
!rps Stein | Case-insensitive durch $lower()$ |
!rps banana | „@user nutze !rps schere |
!rps | Gleich |
Win/Loss/Draw pro User tracken:
+ Global (Set) Increment: rpsWins / rpsLosses / rpsDraws je nach Outcome+ User (redeemer) PersistedSeparater Command !rpsstats postet die Win/Loss-Ratio (siehe Globals Pattern).