Zum Inhalt

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:

+ Set Argument: pairKey = sortedPair(%target1%, %target2%)
(Sort via Inline Function — etwas tricky ohne C#. Pragmatisch: einfach 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