Основноеai-scoreboard
ai-scoreboard для разработчиков
У ai-scoreboard нет экспортов. Что он читает из AI Core и какие события использует внутри.
У ai-scoreboard нет экспортов и нет событий для других скриптов. Всё, что он показывает, берётся из AI Core, поэтому вы меняете содержимое табло, меняя данные AI Core:
- Игроки и имена берутся из загруженных персонажей (
onCharacter,online.nameиз lib). - Число людей на дежурстве берётся из состояния дежурства AI Core (
online.onDutyForиз lib, GlobalStateai:duty:<job>). Игрок учитывается, как только AI Core ставит его на дежурство (экспортSetDutyили событие дежурства скрипта-моста). См. серверные экспорты ai-core.
Если вам нужны те же числа в своём скрипте, читайте их из AI Core, а не из табло:
// Клиентская сторона: число полицейских на дежурстве, то же, что показывает табло.
const police = Number(GlobalState["ai:duty:police"] ?? 0);
console.log(`${police} police on duty`);Внутренние события
Эти имена принадлежат собственному клиенту и серверу ai-scoreboard. Они перечислены, чтобы вы узнавали их в логах; не вызывайте их из других ресурсов.
| Name | Kind | What it carries |
|---|---|---|
ai-scoreboard:board | Колбэк от клиента к серверу | Отвечает числами, которые показываются прямо сейчас (запрашивается при каждом нажатии клавиши, с ограничением частоты). |
ai-scoreboard:subscribe | Колбэк от клиента к серверу | Подписывает игрока на список игроков. Один раз приходит полный список, затем только изменения. |
ai-scoreboard:client:roster | Сервер к клиенту (latent) | (seq, rows): весь список игроков. |
ai-scoreboard:client:changes | Сервер к клиенту | (seq, puts, removes): игроки, которые зашли или вышли, не чаще раза в секунду. |