ai-lib
Общий интерфейс игрока, которым пользуется каждый скрипт (уведомления, полоса прогресса, подсказки, меню, диалоги ввода, мини-игры), и вспомогательные функции AI Core для ресурсов на Lua и JavaScript.
ai-lib выполняет две задачи:
- Интерфейс игрока, общий для всех скриптов. Карточки уведомлений, полоса прогресса и её клавиша отмены, подсказки справа на экране и клавиша взаимодействия, меню, диалоги ввода и мини-игры взлома отмычкой и проверки навыка. Каждый скрипт
ai-*, мост AI Core (скрипты ESX и QB) и ваши собственные скрипты рисуют через него, поэтому весь сервер выглядит одинаково. - Вспомогательные функции AI Core для других ресурсов. Ресурс на Lua добавляет одну строку в свой манифест и получает
aiLib.notify,aiLib.Points,aiLib.addCommand,aiLib.progressи остальное. Ресурсы на чистом JavaScript загружают его бандлы. Так скрипты на Lua пользуются AI Core так же, как скрипты на TypeScript.
Интерфейс работает без ai-core, поэтому ai-lib можно использовать отдельно. Вспомогательным функциям, которые читают игроков, деньги или предметы, нужен ai-core.
Что он делает в игре
- Уведомления. Карточки четырёх видов (успех, ошибка, информация, предупреждение), по умолчанию 4 секунды.
- Полоса прогресса. Одна полоса для всех скриптов. Игрок отменяет отменяемое действие клавишей Backspace.
- Подсказки. Окошки «Нажмите E, чтобы ...» справа или парящие над точкой мира (дверью). Одна клавиша взаимодействия (E) для всех скриптов; самая новая подсказка сверху.
- Меню и диалоги ввода. Списки с иконками, подменю (Escape возвращает назад, удержание Escape закрывает), переключатели и формы с текстовыми и числовыми полями.
- Мини-игры. Взлом отмычкой (двигайте отмычку, поворачивайте замок) и проверка навыка (нажмите на зелёном).
- Всегда поверх. Меню и уведомления показываются поверх любого другого экрана, включая экран персонажей.
Установка
Его устанавливает рецепт AI Core для txAdmin. Вручную: положите папку в resources/[ai]/ и добавьте ensure ai-lib в server.cfg, после ensure ai-core, если вы используете AI Core. Ему нужен OneSync. Таблицы в базе данных у него нет.
Настройки панели
У ai-lib нет своей вкладки. Его меняют две настройки во вкладке General из AI Core:
| Настройка (вкладка General) | Что меняет | По умолчанию |
|---|---|---|
| Карточка Notifications, Notification script | Где показываются карточки уведомлений: собственные карточки ai-lib или другой установленный вами скрипт уведомлений. Когда этот скрипт останавливается, карточки ai-lib возвращаются. Подсказки всегда остаются от ai-lib. | ai-lib |
| Карточка Interaction, Interaction style | Prompt and key (подсказки ai-lib) или Target eye (скрипт target, например ai-target). | Prompt and key |
Команды
Нет.
Привязки клавиш
| Клавиша по умолчанию | Что делает | Название в настройках GTA |
|---|---|---|
| E | Использует верхнюю подсказку (или выбранный маркер target) | Interact with the prompt on screen |
| Backspace | Отменяет текущее действие (полосу прогресса, которая это позволяет) | Cancel the running action |
Измените значение по умолчанию для всех во вкладке панели Keybinds; каждый игрок может изменить своё в настройках клавиш GTA.
Работа с другими скриптами
- Интерфейс ESX и QB. Мост AI Core отрисовывает
esx_context,esx_textui,esx_notify,esx_progressbar,esx_menu_*,qb-menu,qb-inputиprogressbarменю, подсказками, карточками и полосой ai-lib, поэтому эти скрипты выглядят как остальной сервер. - Другие скрипты уведомлений могут взять карточки на себя (вкладка General, см. выше).
Известные ограничения
- Имена иконок меню берутся из фиксированного списка Font Awesome; неизвестное имя показывает точку.
- Ресурсы на Lua сами проверяют свои зоны и точки моделей; ресурсы на JavaScript передают свои ai-lib, который проверяет их все одним таймером.
ai-mysql для разработчиков
Экспорты oxmysql, на которые отвечает ai-mysql, что возвращает каждый из них, формы с промисами, обёртка MySQL.lua и события ошибок.
ai-lib для разработчиков
Как загрузить ai-lib в ресурс на Lua или JavaScript, где находится справочник lib, и собственные клиентские экспорты и события ai-lib.