AI Core

Capas y el puente

Cómo se sitúa AI Core entre los scripts - capas de integración, sustitutos y el puente ESX / QB / Qbox.

Capas de integración

Un script nunca llama a los exports de otro script para una tarea compartida. Llama a la lib, la lib llama a AI Core y AI Core reenvía al script que el servidor use para esa tarea. Cada capa elige su adaptador al iniciar (el panel de administración puede cambiarlo) y de nuevo cuando un candidato se inicia o se detiene.

CapaLibAdaptadores
Inventarioinventoryai-inventory, ox_inventory, qb-inventory, tgiann-inventory y más
Llaves de vehículosvehicleKeysai-vehiclekeys, qbx_vehiclekeys y otros
Dispatchdispatch.alertai-policealert y scripts de alertas
Teléfonophonetgiann-phone, lb-phone
Clima y horaworldla API de qb-weathersync (ai-weathersync, qb-weathersync, Renewed), cd_easytime; las pausas se cuentan por motivo
Prisiónprisonai-prison, qb-prison
Aparienciaappearanceai-appearance, tgiann-clothing
Médicomedicalai-death, qbx_medical, qb-ambulancejob, esx_ambulancejob, ars_ambulancejob
Menú radialradialai-radialmenu, qb-radialmenu, ox_lib
Gestosgesturesai-smallresources, tgiann-emotes
HUDhud, keyHintsai-hud, tgiann-lumihud
Horas de máxima actividadisPrimeTimetgiann-policealert, si no, las horas del panel

Añadir un script a una capa es un archivo de adaptador y una línea en el registro.

El puente

ai-core hace provide de es_extended, qb-core y qbx_core y responde a sus API desde archivos Lua en bridge/:

  • objetos core (exports['qb-core']:GetCoreObject(), ESX = exports.es_extended:getSharedObject(), los eventos antiguos), exports de Qbox;
  • objetos de jugador (xPlayer, Player de QB) reflejados a partir de los eventos de cambio de AI Core, nunca preguntando a AI Core en cada lectura;
  • PlayerData del cliente construido a partir del propio canal de datos de jugador de AI Core;
  • eventos del framework con los mismos argumentos y el mismo momento (QBCore:Client:OnPlayerLoaded, esx:setJob...);
  • callbacks, objetos usables, comandos (listados en el panel), notificaciones, menús, avisos de texto y barras de progreso dibujados con la interfaz de AI Core;
  • inclusiones de archivos (@qb-core/shared/locale.lua, @es_extended/imports.lua, @qbx_core/modules/playerdata.lua).

El puente funciona sobre una copia de la parte Lua de ai-lib, así que las utilidades del framework (streaming, zonas, keybinds, progreso, límites de frecuencia) comparten el código de la lib.

En esta página