İçeriğe atla

Oda ve olaylarOda

Oyuncular ve takımlar

Kadroyu okuyun, oyuncuları takımlar arasında taşıyın ve takımları biçimlendirin.

Takımlar sayılardır: 0 izleyiciler, 1 kırmızı ve 2 mavidir. Oyuncular sabit ID'lerle tanımlanır; bkz. HostPlayer. Odanın host oyuncusu varsa, bu oyuncu 0'dır.

Oyuncuları okuma

getPlayerList()

yöntem
room.getPlayerList(): HostPlayer[]

Odanın host oyuncusu varsa onu da içerir. Oda kapandıktan sonra [] döndürür.

Döndürür

HostPlayer[]Kadro sırasına göre her oyuncunun kopyaları.

JavaScript
const fielded = room
  .getPlayerList()
  .filter((p) => p.team !== 0);
console.log(
  `${fielded.length} players on the pitch`,
);

getPlayer()

yöntem
room.getPlayer(id: number): HostPlayer | null

Parametreler

idnumberzorunlu
Oyuncu ID'si.

Döndürür

HostPlayer | nullOyuncunun bir kopyası veya bu ID'ye sahip oyuncu yoksa null.

JavaScript
const player = room.getPlayer(id);
if (player?.admin) await room.startGame();

Takımlar

setPlayerTeam()

yöntem
room.setPlayerTeam(id: number, team: 0 | 1 | 2): Promise<void>

Bir oyuncuyu, maç sırasında ve takımlar kilitliyken de dahil olmak üzere taşır. Takım değiştiren bir oyuncu kadronun sonuna taşınır. Bilinmeyen ID'ler ve mevcut takıma yapılan taşımalar hiçbir şey yapmaz. byPlayer null olarak ayarlanmış şekilde onPlayerTeamChange tetiklenir.

Parametreler

idnumberzorunlu
Oyuncu ID'si.
team0 | 1 | 2zorunlu
0 izleyiciler, 1 kırmızı veya 2 mavi.

Döndürür

Promise<void>

JavaScript
room.onPlayerJoin = (player) => {
  const red = room
    .getPlayerList()
    .filter((p) => p.team === 1).length;
  const blue = room
    .getPlayerList()
    .filter((p) => p.team === 2).length;
  void room.setPlayerTeam(
    player.id,
    red <= blue ? 1 : 2,
  );
};

setTeamsLock()

yöntem
room.setTeamsLock(locked: boolean): Promise<void>

Kilit, yalnızca oyuncuların kendileri için takım seçmesini etkiler. Siz ve oda yöneticileri hâlâ herkesi taşıyabilirsiniz. Değer değiştiğinde onTeamsLockChange tetiklenir.

Parametreler

lockedbooleanzorunlu
true, oyuncuların kendi takımlarını seçmesini durdurur.

Döndürür

Promise<void>

JavaScript
await room.setTeamsLock(true);

setTeamColors()

yöntem
room.setTeamColors(team: number, angle: number, textColor: number, colors: number[]): Promise<void>

Bir takımın forma renklerini ayarlar. Geçersiz renkler Invalid team colors ile reddedilir; 1 veya 2 dışında bir takım Invalid team ile reddedilir.

Parametreler

teamnumberzorunlu
1 kırmızı veya 2 mavi.
anglenumberzorunlu
Derece cinsinden şerit açısı. 256 adımda saklanır.
textColornumberzorunlu
Her oyuncunun üzerindeki numaranın rengi, 0x000000 ile 0xffffff arasında bir RGB tam sayısı olarak.
colorsnumber[]zorunlu
Bir ile üç arasında şerit rengi, RGB tam sayıları olarak.

Döndürür

Promise<void>

JavaScript
// Red: vertical white and red stripes,
// black numbers.
await room.setTeamColors(
  1,
  90,
  0x000000,
  [0xffffff, 0xd9574a],
);
// Blue: plain navy with white numbers.
await room.setTeamColors(
  2,
  0,
  0xffffff,
  [0x1f3a8a],
);

Roller ve sıralama

setPlayerAdmin()

yöntem
room.setPlayerAdmin(id: number, admin: boolean): Promise<void>

Oyunun arayüzünden yöneticiler maçları başlatabilir, duraklatabilir ve durdurabilir, oyuncuları taşıyabilir, stadyumu ve oda ayarlarını değiştirebilir, diğer oyuncuları susturabilir, odadan atabilir veya yasaklayabilir. Oda sahibine karşı işlem yapamazlar. Yöneticiliği yalnızca kodunuz verebilir: oyuncular birbirlerini terfi ettiremez, bu nedenle onPlayerAdminChange her zaman byPlayer'ı null olarak bildirir.

Parametreler

idnumberzorunlu
Oyuncu ID'si.
adminbooleanzorunlu
Yönetici haklarını vermek için true, kaldırmak için false.

Döndürür

Promise<void>

JavaScript
const owners = new Set(['captain', 'referee']);
room.onPlayerJoin = (player) => {
  if (owners.has(player.name))
    void room.setPlayerAdmin(player.id, true);
};

setPlayerAvatar()

yöntem
room.setPlayerAvatar(id: number, avatar: string | null): Promise<void>

Bir oyuncunun diski üzerine çizilen metnin üzerine yazar. Kontrol ve biçimlendirme karakterleri reddedilir.

Parametreler

idnumberzorunlu
Oyuncu ID'si.
avatarstring | nullzorunlu
En fazla iki görünür karakter, örneğin GK veya bir emoji, ya da oyuncunun kendi avatarını geri yüklemek için null.

Döndürür

Promise<void>

JavaScript
await room.setPlayerAvatar(keeper.id, 'GK');

reorderPlayers()

yöntem
room.reorderPlayers(playerIdList: number[], moveToTop: boolean): Promise<void>

Kadro sırasını değiştirir; bu sıra aynı zamanda fizik API'sindeki oyuncu disklerinin sırasıdır.

Parametreler

playerIdListnumber[]zorunlu
En fazla 32 oyuncu ID'si. Yinelenen ve bilinmeyen ID'ler yok sayılır.
moveToTopbooleanzorunlu
true, listelenen oyuncuları bu sırayla önce koyar; false onları sona koyar.

Döndürür

Promise<void>

JavaScript
// Bring the captains to the top of the list.
await room.reorderPlayers(
  [captainRed.id, captainBlue.id],
  true,
);