All Out предоставляет текстовый и опциональный голосовой чат для использования в ваших играх
Чтение чата
Еще не реализовано в CSL
Команды чата
Команды чата в основном являются инструментом для разработчиков/админов для тестирования и live-ops:
Запуск раундов раньше / пропуск волн
Выдача тестовых наборов предметов или валюты
Вызов игровых событий для отладки
Чтобы создать команду, напишите proc и аннотируйте её с помощью @chat_command.
Игроки могут вводить команды в чат, начиная с /:
/start_round
/grant_test_loadout
/trigger_event meteor_shower
Команды чата выполняются на сервере. Используйте Notifier.notify(player, "...") чтобы отправить обратную связь одному игроку.
Не у всех игроков может быть включен текстовый чат (родительский контроль и муты модерации могут отключать текстовое поле), поэтому не следует полагаться на команды чата для критически важных игровых систем.
Распространенные команды для разработчиков/админов
// Запустить раунд раньше (только для админов)start_round::proc(player:Player){g_round_manager->start_round();Notifier.notify(player,"Раунд начат.");} @chat_command// Дать себе тестовый комплект (только для админов)grant_test_loadout::proc(player:Player){// Пример: используйте здесь свою логику выдачи предметов// Items.give_item(player, "Sword");// Items.give_item(player, "Shield");Notifier.notify(player,"Тестовый комплект выдан.");} @chat_command// Вызвать событие по имени (только для админов, с необязательным аргументом)trigger_event::proc(player:Player,event_name:string="meteor_shower"){g_event_system->trigger(event_name);Notifier.notify(player,"Вызвано событие: %",{event_name});} @chat_command
Разрешения
Используйте аннотации прав, чтобы контролировать, кто может выполнять команду:
Аннотация
Кто может использовать
@any
Все игроки
@vip
VIP-игроки и админы
@youtuber
Youtuber-игроки и админы
(нет)
Только админы
При запуске из редактора команды чата разрешены для более быстрой итерации/тестирования.
Аргументы и необязательные параметры
Первый параметр всегда должен быть Player. После этого вы можете добавлять аргументы (и задавать им значения по умолчанию, чтобы сделать их необязательными).
По умолчанию команды являются только для админов.
Админы могут вызвать:
/give_currency → даёт 100 монет
/give_currency 500 → даёт 500 монет
Строки с пробелами
Оборачивайте строки в кавычки, если они содержат пробелы:
Получение справки по использованию команды
Игроки могут добавить ? к команде, чтобы увидеть информацию о параметрах:
Включение голосового чата
TODO
Модерация
All Out автоматически отслеживает текстовый и голосовой чат на предмет поведения, нарушающего наши правила сообщества и отключит социальные функции за первые нарушения или применит приостановки для повторных нарушителей.
Если вы заметили повторяющееся плохое поведение или поведение, которое прошло через нашу автоматическую систему, пожалуйста, сообщите о игроке нам через встроенную систему жалоб или через его профиль.
Если игрок был заблокирован по ошибке, направьте его свяжитесь с нами чтобы отменить действие.
// VIP и админы могут использовать это
skip_wave :: proc(player: Player) {
g_wave_manager->skip_to_next_wave();
Notifier.notify(player, "Волна пропущена.");
} @chat_command @vip
// Только админы (по умолчанию)
give_currency :: proc(player: Player, amount: s64 = 100) {
Economy.deposit_currency(player, "Coins", amount);
Notifier.notify(player, "Вы получили % монет.", {amount});
} @chat_command
say :: proc(player: Player, message: string) {
// Ваша собственная функция вещания/сообщение игры здесь
log_info("% говорит: %", {player->get_username(), message});
} @chat_command @any
```go
Пример:
```go
/say "Всем привет!"