For the complete documentation index, see llms.txt. This page is also available as Markdown.

Социальные функции

All Out предоставляет текстовый и, при желании, голосовой чат, который можно использовать в играх

Чтение чата

Используйте core_globals.server_on_chat_message_received когда игровой код должен реагировать на обычные сообщения чата на сервере:

ao_before_scene_load :: proc() {
    core_globals.server_on_chat_message_received = on_chat_message;
}

on_chat_message :: proc(player: Player, message: string) {
    log_info("% сказал %", {player.get_username(), message});
}

Справочник API чата

Chat :: struct {
    Mode :: enum {
        DEFAULT;
        BUBBLE_ONLY;
    }

    set_mode :: proc(mode: Mode);
    server_send_message :: proc(message: string, player: Player = null);
    is_open :: proc() -> bool;
}

Chat.server_send_message предназначен для серверного кода, такого как обработчики команд чата. Передайте игрока чтобы нацелить на одного игрока, или оставьте null пустым, чтобы отправить всем. Используйте Chat.set_mode(.BUBBLE_ONLY) на локальном клиенте для игр, которым нужен пузырьковый чат без стандартной панели чата.

Команды чата

Команды чата — это в основном инструмент для разработчиков/админов для тестирования и live-ops:

  • Запускать раунды раньше / пропускать волны

  • Выдавать тестовые наборы предметов или валюту

  • Вызывать игровые события для отладки

Чтобы создать команду, напишите proc и пометьте её с помощью @chat_command.

Игроки могут вводить команды в чат, начиная с /:

  • /start_round

  • /grant_test_loadout

  • /trigger_event meteor_shower

Команды чата выполняются на сервере. Используйте Notifier.notify(player, "...") чтобы отправлять обратную связь одному игроку.

Распространённые команды для разработчиков/админов

Права доступа

Используйте аннотации прав доступа, чтобы контролировать, кто может запускать команду:

Аннотация
Кто может использовать

@any

Все игроки

@vip

VIP-игроки и админы

@youtuber

Игроки-ютуберы и админы

@owner

Владелец игры и админы

@owner_or_editor

Владелец игры, редакторы и админы

(нет)

Только админы

При запуске из редактора команды чата разрешены для более быстрой итерации/тестирования.

Аргументы и необязательные параметры

Первый параметр всегда должен быть Player. После этого вы можете добавлять аргументы (и задавать им значения по умолчанию, чтобы сделать их необязательными).

По умолчанию команды только для админов.

Поддерживаемые типы аргументов: string, целочисленные типы, типы с плавающей точкой, bool, а Player.

Админы могут вызвать:

  • /give_currency → даёт 100 монет

  • /give_currency 500 → даёт 500 монет

Строки с пробелами

Заключайте строки в кавычки, если они содержат пробелы:

Пример:

Получение использования команды

Игроки могут добавить ? к команде, чтобы увидеть информацию о параметрах:

Включение голосового чата

Игроки управляют голосовым чатом через настройки своей учётной записи и устройства. Игры не могут принудительно включить его или обойти разрешение на микрофон, родительский контроль или ограничения модерации.

Голосовой чат привязан к позиции. Стандартный радиус слышимости — 10 единиц мира:

Установите положительный радиус во время запуска сцены:

Voice.set_range изменяет радиус для всей сцены. Неположительные значения игнорируются.

Каналы связи

У каждого игрока есть маски передачи и прослушивания, которые применяются и к голосовому, и к текстовому чату. Два игрока могут общаться, когда маска передачи отправителя пересекается с маской прослушивания получателя.

По умолчанию игроки слушают и говорят на всех каналах.

Модерация

All Out автоматически отслеживает текстовый и голосовой чат на предмет поведения, нарушающего наши правила сообщества и отключит социальные функции за первое нарушение или применит блокировки за повторные нарушения.

Если вы видите повторяющееся плохое поведение или поведение, которое прошло мимо нашего автоматического обнаружения, пожалуйста, сообщите нам об игроке через внутриигровую систему жалоб или из его профиля.

Если игрок был ошибочно заблокирован, пожалуйста, направьте его к свяжитесь с нами чтобы отменить это действие.

Последнее обновление