Bibliothèque
Équipes et verrouillage
Numérotation des équipes, déplacement des joueurs et verrouillage avec lockTeams().
Numérotation des équipes
| Numéro | Équipe | Constante |
|---|---|---|
0 | Spectateur | TEAM_SPEC |
1 | FFA (chacun pour soi) | TEAM_FFA |
2 | Rouge | TEAM_RED |
3 | Bleu | TEAM_BLUE |
4 | Vert | TEAM_GREEN |
5 | Jaune | TEAM_YELLOW |
ts
import { TEAM_BLUE, TEAM_SPEC } from 'bonktools';
room.setTeam(playerId, TEAM_BLUE);
room.setTeam(playerId, TEAM_SPEC);Déplacer des joueurs
L'hôte déplace n'importe quel joueur avec setTeam(id, team). Le bot se déplace lui-même avec joinTeam(team).
ts
room.on('player-join', (p) => {
// envoie chaque nouveau en spectateur
room.setTeam(p.id, TEAM_SPEC);
});Verrouiller les équipes
ts
room.lockTeams(); // les joueurs ne peuvent plus changer d'équipe ni passer en spectateur
room.unlockTeams(); // déverrouille à nouveau
room.state.teamsLocked; // état actuelAvec les équipes verrouillées, seul l'hôte déplace les joueurs : room.setTeam(id, team) continue de fonctionner normalement. Cela évite que quelqu'un rejoigne une équipe de lui-même et déséquilibre la partie.
Comment ça marche
- Seul l'hôte peut verrouiller. Appelé par un client qui n'est pas l'hôte,
lockTeams()est ignoré et journalise un avertissement. - État local.
room.state.teamsLockedest mis à jour au verrouillage et aussi quand le serveur le signale (teamlock-toggle). - Ceux qui arrivent après reçoivent déjà le salon verrouillé.
- Reconstruction du salon. Si le salon tombe et est recréé, le verrou est réappliqué automatiquement (sauf si vous aviez appelé
unlockTeams()avant). - Pas de rafales. Appeler
lockTeams()plusieurs fois n'envoie le paquet qu'une fois. Si le serveur refuse pour cause de trop de requêtes (rate_limit_tl), la bibliothèque annule l'état local et réessaie après 1,5 s.
setTeamLock(boolean) reste disponible ; lockTeams() et unlockTeams() en sont des raccourcis.
Mode équipes
room.setTeamsEnabled(true) active le mode équipes. Sans lui, tout le monde joue en FFA. Au football, utilisez toujours les équipes.