24/7-Raum

Teams, Kapitäne und Auswahl

Die Regeln des PickController: immer gleich große Teams, Kapitäne, Champion-Rotation, AFK und Befehle.

Der PickController des 24/7-Raums bildet und rotiert die Teams. Alles wird aus maxTeamSize (N) berechnet, und das zentrale Ziel lautet: Keine Partie startet unausgeglichen (kein 2v1, 3v1 oder 3v4).

Die goldene Regel: immer gleich große Teams

Vor jeder Partie berechnet der Controller, wie viele Teams er nutzt und wie groß sie sind:

text
genutzte Teams = min(Anzahl der Teams des Modus, verfügbare Spieler)
Größe m        = min(N, ⌊verfügbare Spieler / genutzte Teams⌋)

Wer übrig bleibt, wartet bei den Zuschauern. Einige Beispiele mit Fußball (2 Teams) und N = 2:

Verfügbare SpielerPartieWarten bei den Zuschauern
1solo0
21v10
31v11
42v20
52v21

Vor dem Senden jedes startGame prüft der Controller außerdem die tatsächlichen Teams des Raums gegen die erwarteten. Hat jemand im letzten Moment das Team gewechselt, korrigiert er das und versucht es erneut, statt falsch zu starten.

Kapitäne und Auswahl

  1. Der 1. Spieler geht zu Blau und der 2. zu Rot: Sie sind die Kapitäne.
  2. Die folgenden warten bei den Zuschauern, ohne die Partie zu unterbrechen.
  3. Wenn die Zuschauer die Teams auffüllen, stoppt die Partie, und der Kapitän des Teams mit weniger Spielern (bei Gleichstand: Blau) wählt, indem er die Nummer des Spielers im Chat tippt, ganz ohne Befehl, innerhalb von 30 s. Ohne Antwort wird der Erste der Liste gewählt.
  4. Bleibt nur ein Kandidat übrig, tritt er von allein bei, ohne Auswahl.
text
Ana (blue), tippe die Nummer des Spielers, den du wählen möchtest:
Verfügbar: 1 - Carla, 2 - Diego

Mit N = 3 und 6 Spielern wechseln sich die Kapitäne ab: Blau, Rot, Blau, und der letzte Kandidat tritt von allein bei.

Ende der Partie: Der Sieger bleibt Blau

Am Ende jeder Partie meldet ein Spieler auf dem Feld den Sieger mit !win blue oder !win red (ohne Antwort nach 20 s bleibt Blau). Dann:

  1. Das gesamte Verliererteam geht ans Ende der Warteschlange der Zuschauer.
  2. Der Sieger bleibt immer Blau: Hat Rot gewonnen, wird das ganze Team zu Blau verschoben.
  3. Der Erste der Schlange wird Kapitän von Rot und wählt die übrigen aus den Spielern der Zuschauer.

Beispiel mit N = 2 und einem zusätzlich wartenden Spieler (Eva):

text
Blau: Ana, Carla    Rot: Bruno, Diego    Zuschauer: Eva
> Rot gewinnt
Blau: Bruno, Diego  Rot: Eva (Kapitänin) Zuschauer: Ana, Carla
> Eva tippt: 2  (Carla)
Blau: Bruno, Diego  Rot: Eva, Carla      Zuschauer: Ana

Wenn jemand mitten in der Partie geht

Die Partie stoppt, damit sie nie unausgeglichen weiterläuft. Sind Leute bei den Zuschauern, füllen sie den Platz auf (mit Wahl des Kapitäns, falls es eine Auswahl gibt). Ohne Ersatz werden die Teams neu ausbalanciert: Wer die Größe überschreitet, geht an den Anfang der Schlange zurück, und die Partie startet neu, zum Beispiel als 1v1.

AFK

SituationWas passiert
!afk bei den ZuschauernDer Spieler wird AFK: wird nicht gewählt und füllt keine Teams auf
!afk erneutVerlässt AFK und geht ans Ende der Schlange
!afk während einer Partie, von jemandem, der spieltAbgelehnt: Wer spielt, kann nicht AFK gehen
!afk zwischen Partien, von jemandem, der auf dem Feld warGeht als AFK zu den Zuschauern und der Platz wird aufgefüllt
12 s ohne Bewegung und Chat, in der PartieWird nur gewarnt; geht am Ende der Partie AFK

Die Nachrichten des Bots folgen dem Format o jogador X agora está afk! und o jogador X saiu do afk!.

Befehle

BefehlWer ihn nutztWas er tut
!afkjeder SpielerSchaltet AFK um
<n> (nur die Zahl)Kapitän, der an der Reihe istWählt Spieler Nr. n aus der Liste (!pick <n> wird weiterhin akzeptiert)
!win blue · !win redSpieler auf dem FeldMeldet den Sieger
!start · !stopSpieler auf dem FeldStartet oder stoppt die Partie (!stop hält den Neustart bis zum nächsten !start zurück)
!pingjeder SpielerAntwortet Pong!

Schutzmaßnahmen

  • Gesperrte Teams. Der Bot ruft room.lockTeams() auf: Spieler wechseln nicht eigenständig das Team.
  • Rückgängigmachen als Reserve. Verlässt trotzdem jemand eigenständig ein Team oder tritt einem bei, macht der Controller das rückgängig oder behandelt es als Austritt.
  • Befehle nur von Spielenden. !start, !stop und !win von Zuschauern werden abgelehnt.
  • Andere Modi. In 4-Team-Modi (Classic, Arrows...) ist das erste Team fest und die übrigen rotieren jede Partie, mit denselben Regeln für gleiche Größe.

Wie das getestet wird

Der Controller läuft gegen einen Fake-Raum, der den Server nachahmt (Echo von Team-Wechseln, asynchroner Start und Ende von Partien). Neben Dutzenden Szenarien führt ein Fuzz Hunderte zufälliger Abfolgen von Beitritten, Austritten, !afk, Auswahlen, !win, Team-Wechseln und Befehlen aus und prüft bei jedem Partiestart, dass die Teams gleich groß sind, N nicht überschreiten und keinen AFK auf dem Feld haben, und dass am Ende jeder Spieler in dem Team ist, das der Controller festgehalten hat.