Command: !ship @user1 @user2¶
Shippt zwei User mit Random-Kompatibilitäts-Prozent.
Patterns: Set Argument (zwei Targets) + Get Random Number + Range-Cascade + Send Message Sub-Actions: 8-10
Action: [Cmd] !ship¶
Sub-Action 1-3: Zwei Targets parsen¶
1. Set Argument: target1 = $replace(%input0%, @, )$
2. Set Argument: target2 = $replace(%input1%, @, )$
3. If/Else: %target1% Is Null or Empty
├── Send Message: "@%user% nutze !ship @user1 @user2"
└── Break
4. If/Else: %target2% Is Null or Empty
└── Set Argument: target2 = %userName% (Fallback: User selbst ship't sich mit target1)
Sub-Action 4: Verhindere Self-Self-Ship¶
5. If/Else: %target1% Equals (Ignore Case) %target2%
├── Send Message: "@%user% kann nicht jemanden mit sich selbst shippen"
└── Break
Sub-Action 5: Get Random Number — Kompatibilität¶
| Feld | Wert |
|---|---|
| Type | Between |
| Min | 0 |
| Max | 100 |
Sub-Action 6: Range-Cascade auf Prozent¶
6. If/Else: %randomNumber% Less Than 10
├── Send Message: "💔 @%target1% × @%target2% — %randomNumber%%. Garbage Match."
└── Break
7. If/Else: %randomNumber% Less Than 30
├── Send Message: "💔 @%target1% × @%target2% — %randomNumber%%. Naja."
└── Break
8. If/Else: %randomNumber% Less Than 60
├── Send Message: "💜 @%target1% × @%target2% — %randomNumber%%. Geht so."
└── Break
9. If/Else: %randomNumber% Less Than 85
├── Send Message: "💕 @%target1% × @%target2% — %randomNumber%%. Nicht schlecht!"
└── Break
10. If/Else: %randomNumber% Less Than 100
├── Send Message: "💖 @%target1% × @%target2% — %randomNumber%%. Perfect Match!"
└── Break
11. Send Message: "🔥 @%target1% × @%target2% — 100%! SOULMATES."
Action-Tree¶
[Cmd] !ship
├── 1-2. Target1 + Target2 parsen
├── 3. Empty-Check
├── 4. Self-Ship-Fallback
├── 5. Self-Self-Verhinderer
├── 6. Get Random Number (0, 100)
└── 7-11. Range-Cascade Antworten
Command-Einstellungen¶
| Feld | Wert |
|---|---|
| Name | !ship |
| Group | AzaCraft Fun |
| Commands | !ship!love |
| Sources | Twitch Message |
| Global Cooldown | 0 |
| User Cooldown | 30 |
Verwendungsbeispiele¶
| Chat | Resultat |
|---|---|
!ship @bob @alice |
"💜 @bob × @alice — 42%. Geht so." |
!ship @bob |
"💖 @ship-user × @bob — 87%. Perfect Match!" |
!ship @bob @bob |
"kann nicht mit sich selbst..." |
!ship |
Hilfe-Message |
Erweiterung: Persisted Ship-Score¶
Damit das gleiche Pärchen immer den gleichen Score bekommt:
6. Global (Get): shipScore_%target1%_%target2% (Persisted, Default = leer) → score
7. If/Else: %score% Is Null or Empty
├── Get Random Number (0, 100)
├── Set Argument: score = %randomNumber%
└── Global (Set): shipScore_%target1%_%target2% = %score% Persisted
8. (Range-Cascade auf %score% statt %randomNumber%)
Auch alphabetisch sortiert speichern damit !ship a b und !ship b a gleich sind:
target1_target2 lassen, beide Reihenfolgen geben anderen Score = das ist auch ok.)
Erweiterung: Kommerziell durch RNG ergänzen¶
Wenn ein User VIP oder Sub ist, +20% Bonus:
6. Get Random Number (0, 100)
7. Set Argument: finalScore = %randomNumber%
8. (Get User Info for both targets, prüfe isSubscribed)
9. If/Else: %target1IsSubscribed% Equals true
└─ Set Argument: finalScore = $add(%finalScore%, 20)$
Hack-y aber funktioniert.
Quellen¶
- Range-Cascade Pattern: patterns/02-if-else.md