Zum Inhalt springen

!duel

Target-Validation, Self-Duel verbieten, 50/50 würfeln, Outcome posten und Win/Loss-Counter via User-Globals tracken.

Set Argument — Target

Core Arguments Set Argument
Variable Name targetLogin
Value $replace(%input0%, @, )$

If/Else — Target Pflicht

Core Logic If/Else

Then-Branch: Hilfe + Break.

Input %targetLogin%
Operation Is Null or Empty

Get User Info for Target

Twitch User Get User Info for Target
User Login %targetLogin%

If/Else — User existiert nicht

Core Logic If/Else

If %addTargetResult% Equals false → Fehler-Message + Break.

If/Else — Self-Duel verbieten

Core Logic If/Else

If %targetUserName% Equals (Ignore Case) %userName% → "kannst dich nicht selbst duellieren" + Break.

Input %targetUserName%
Operation Equals (Ignore Case)
Value %userName%

Get Random Number — 50/50

Core Logic Get Random Number
Type Between
Min 1
Max 2

If/Else — User gewinnt (Branch + Stats)

Core Logic If/Else

If %randomNumber% Equals 1 → User-Win-Branch: Send Message + Global-Increments + Break.

Default — Target gewinnt + Stats

Twitch Chat Send Message to Channel

Wird nur erreicht wenn User-Win-Branch übersprungen wurde. Inkl. Global-Increments für duelWins/duelLosses.

AzaBot: ⚔️ @%user% besiegt @%targetUser%! Glorreich.
So sieht's im Chat aus
  1. 1 Set Argument: targetLogin = $replace(%input0%, @, )$
  2. 2 If/Else: %targetLogin% Is Null or Empty
    1. Then 2a Send Message: "@%user% nutze !duel @username"
    2. Then 2b Break
  3. 3 Get User Info for Target (%targetLogin%)
  4. 4 If/Else: %addTargetResult% Equals false
    1. Then 4a Send Message: "@%user% den User gibt's nicht."
    2. Then 4b Break
  5. 5 If/Else: %targetUserName% Equals %userName%
    1. Then 5a Send Message: "kannst dich nicht selbst duellieren"
    2. Then 5b Break
  6. 6 Get Random Number (1, 2)
  7. 7 If/Else: %randomNumber% Equals 1 (User gewinnt)
    1. Then 7a Send Message: "⚔️ @%user% besiegt @%targetUser%!"
    2. Then 7b Global (Set) Increment: duelWins (User redeemer, Persisted)
    3. Then 7c Global (Set) Increment: duelLosses (User target, Persisted)
    4. Then 7d Break
  8. 8a Send Message: "⚔️ @%targetUser% besiegt @%user%!"
  9. 8b Global (Set) Increment: duelLosses (User redeemer)
  10. 8c Global (Set) Increment: duelWins (User target)
FeldWert
Name!duel
GroupAzaCraft Fun
Commands!duel
!fight
SourcesTwitch Message
Global Cooldown0
User Cooldown30

Postet die eigenen Duel-Stats:

  1. 1 Global (Get): duelWins (User redeemer, Persisted) → wins
  2. 2 Global (Get): duelLosses (User redeemer, Persisted) → losses
  3. 3 Send Message: "⚔️ @%user% — %wins% Siege, %losses% Niederlagen."
ChatResultat
!duel @bob„⚔️ @user besiegt @Bob!” oder umgekehrt
!duel bobGleich
!duel @sich-selbst„kannst dich nicht selbst duellieren”
!duelstats„@user — 5 Siege, 3 Niederlagen.”

Nach jedem Win den winStreak Counter hochzählen, bei Loss auf 0 setzen. Bei 5+ Streak Special-Message:

+ Global (Get): winStreak (User redeemer) → streak
+ If/Else: %streak% Greater Than 4
└─ Send Message: "🔥 @%user% hat %streak% Siege in Folge!"

Statt freier Command → nur via Channel-Points-Reward. Spart Spam und macht Duelle wertvoll. Wenn du Currency/Loyalty willst, ist Tawmae-Loyalty-Points die saubere Lösung — siehe Tawmae-Section.

  • Anti-Harassment!duel kann von Trolls missbraucht werden um Target zu spammen. Per-User-Cooldown reicht meistens.
  • Counter-Reset — Stats manuell in SBs User-Globals-UI zurücksetzen oder Clear Non-Persisted User Globals (nur Non-Persisted!).