AI Core

Ebenen und die Brücke

Wie AI Core zwischen den Skripten sitzt - Integrationsebenen, Stellvertreter und die ESX- / QB- / Qbox-Brücke.

Integrationsebenen

Ein Skript ruft für eine gemeinsame Aufgabe nie die Exports eines anderen Skripts auf. Es ruft die Lib auf, die Lib ruft AI Core auf, und AI Core leitet an das Skript weiter, das der Server für diese Aufgabe betreibt. Jede Ebene wählt ihren Adapter beim Start (das Admin-Panel kann die Wahl überschreiben) und erneut, wenn ein Kandidat startet oder stoppt.

EbeneLibAdapter
Inventarinventoryai-inventory, ox_inventory, qb-inventory, tgiann-inventory und mehr
FahrzeugschlüsselvehicleKeysai-vehiclekeys, qbx_vehiclekeys und andere
Dispatchdispatch.alertai-policealert und Alarm-Skripte
Handyphonetgiann-phone, lb-phone
Wetter und Zeitworlddie qb-weathersync-API (ai-weathersync, qb-weathersync, Renewed), cd_easytime; Pausen pro Grund gezählt
Gefängnisprisonai-prison, qb-prison
Aussehenappearanceai-appearance, tgiann-clothing
Medizinmedicalai-death, qbx_medical, qb-ambulancejob, esx_ambulancejob, ars_ambulancejob
Radialmenüradialai-radialmenu, qb-radialmenu, ox_lib
Gestengesturesai-smallresources, tgiann-emotes
HUDhud, keyHintsai-hud, tgiann-lumihud
Prime TimeisPrimeTimetgiann-policealert, sonst die Stunden aus dem Panel

Ein Skript zu einer Ebene hinzuzufügen ist eine Adapterdatei und eine Zeile in der Registry.

Die Brücke

ai-core stellt per provide es_extended, qb-core und qbx_core bereit und beantwortet ihre APIs aus Lua-Dateien in bridge/:

  • Core-Objekte (exports['qb-core']:GetCoreObject(), ESX = exports.es_extended:getSharedObject(), die alten Events), Qbox-Exports;
  • Spielerobjekte (xPlayer, QB-Player), gespiegelt aus den Änderungs-Events von AI Core, nie durch eine Anfrage an AI Core bei jedem Lesen;
  • PlayerData auf dem Client, gebaut aus dem eigenen Spielerdaten-Kanal von AI Core;
  • Framework-Events mit denselben Argumenten und demselben Timing (QBCore:Client:OnPlayerLoaded, esx:setJob...);
  • Callbacks, nutzbare Items, Befehle (im Panel aufgelistet), Benachrichtigungen, Menüs, Textaufforderungen und Fortschrittsbalken, gezeichnet mit der UI von AI Core;
  • Datei-Includes (@qb-core/shared/locale.lua, @es_extended/imports.lua, @qbx_core/modules/playerdata.lua).

Die Brücke läuft auf einer Kopie der Lua-Seite von ai-lib, sodass Framework-Helfer (Streaming, Zonen, Keybinds, Fortschritt, Rate-Limits) den Code der Lib teilen.

Auf dieser Seite