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:
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 Spieler | Partie | Warten bei den Zuschauern |
|---|---|---|
| 1 | solo | 0 |
| 2 | 1v1 | 0 |
| 3 | 1v1 | 1 |
| 4 | 2v2 | 0 |
| 5 | 2v2 | 1 |
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
- Der 1. Spieler geht zu Blau und der 2. zu Rot: Sie sind die Kapitäne.
- Die folgenden warten bei den Zuschauern, ohne die Partie zu unterbrechen.
- 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.
- Bleibt nur ein Kandidat übrig, tritt er von allein bei, ohne Auswahl.
Ana (blue), tippe die Nummer des Spielers, den du wählen möchtest:
Verfügbar: 1 - Carla, 2 - DiegoMit 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:
- Das gesamte Verliererteam geht ans Ende der Warteschlange der Zuschauer.
- Der Sieger bleibt immer Blau: Hat Rot gewonnen, wird das ganze Team zu Blau verschoben.
- 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):
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: AnaWenn 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
| Situation | Was passiert |
|---|---|
!afk bei den Zuschauern | Der Spieler wird AFK: wird nicht gewählt und füllt keine Teams auf |
!afk erneut | Verlässt AFK und geht ans Ende der Schlange |
!afk während einer Partie, von jemandem, der spielt | Abgelehnt: Wer spielt, kann nicht AFK gehen |
!afk zwischen Partien, von jemandem, der auf dem Feld war | Geht als AFK zu den Zuschauern und der Platz wird aufgefüllt |
| 12 s ohne Bewegung und Chat, in der Partie | Wird 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
| Befehl | Wer ihn nutzt | Was er tut |
|---|---|---|
!afk | jeder Spieler | Schaltet AFK um |
<n> (nur die Zahl) | Kapitän, der an der Reihe ist | Wählt Spieler Nr. n aus der Liste (!pick <n> wird weiterhin akzeptiert) |
!win blue · !win red | Spieler auf dem Feld | Meldet den Sieger |
!start · !stop | Spieler auf dem Feld | Startet oder stoppt die Partie (!stop hält den Neustart bis zum nächsten !start zurück) |
!ping | jeder Spieler | Antwortet 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,!stopund!winvon 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.