AI Core

Слои и мост

Как AI Core стоит между скриптами - слои интеграции, заменители и мост ESX / QB / Qbox.

Слои интеграции

Для общей задачи скрипт никогда не вызывает экспорты другого скрипта. Он вызывает библиотеку, библиотека вызывает AI Core, а AI Core передаёт вызов скрипту, который сервер использует для этой задачи. Каждый слой выбирает адаптер при старте (админ-панель может переопределить выбор) и снова, когда кандидат запускается или останавливается.

СлойБиблиотекаАдаптеры
Инвентарьinventoryai-inventory, ox_inventory, qb-inventory, tgiann-inventory и другие
Ключи от транспортаvehicleKeysai-vehiclekeys, qbx_vehiclekeys и другие
Диспетчерdispatch.alertai-policealert и скрипты оповещений
Телефонphonetgiann-phone, lb-phone
Погода и времяworldAPI qb-weathersync (ai-weathersync, qb-weathersync, Renewed), cd_easytime; паузы учитываются по каждой причине
Тюрьмаprisonai-prison, qb-prison
Внешностьappearanceai-appearance, tgiann-clothing
Медицинаmedicalai-death, qbx_medical, qb-ambulancejob, esx_ambulancejob, ars_ambulancejob
Радиальное менюradialai-radialmenu, qb-radialmenu, ox_lib
Жестыgesturesai-smallresources, tgiann-emotes
HUDhud, keyHintsai-hud, tgiann-lumihud
Прайм-таймisPrimeTimetgiann-policealert, иначе часы из панели

Добавление скрипта в слой: один файл адаптера и одна строка в реестре.

Мост

ai-core объявляет provide для es_extended, qb-core и qbx_core и отвечает на их API из Lua-файлов в bridge/:

  • объекты ядра (exports['qb-core']:GetCoreObject(), ESX = exports.es_extended:getSharedObject(), устаревшие события), экспорты Qbox;
  • объекты игроков (xPlayer, QB Player), которые зеркалируются по событиям изменений AI Core, а не запросом к AI Core при каждом чтении;
  • клиентский PlayerData, собранный из собственного канала данных игрока AI Core;
  • события фреймворков с теми же аргументами и в те же моменты (QBCore:Client:OnPlayerLoaded, esx:setJob...);
  • колбэки, используемые предметы, команды (перечислены в панели), уведомления, меню, текстовые подсказки и полосы прогресса, отрисованные интерфейсом AI Core;
  • подключаемые файлы (@qb-core/shared/locale.lua, @es_extended/imports.lua, @qbx_core/modules/playerdata.lua).

Мост работает на копии Lua-части ai-lib, поэтому вспомогательные функции фреймворков (стриминг, зоны, привязки клавиш, прогресс, ограничения частоты) используют общий код библиотеки.

На этой странице