Katmanlar ve köprü
AI Core script’lerin arasında nasıl durur - entegrasyon katmanları, yerine geçenler ve ESX / QB / Qbox köprüsü.
Entegrasyon katmanları
Bir script ortak bir iş için başka bir script’in export’larını asla çağırmaz. Lib’i çağırır, lib AI Core’u çağırır, AI Core da sunucunun o iş için kullandığı script’e iletir. Her katman adaptörünü açılışta seçer (admin panelinden değiştirilebilir) ve bir aday başlayıp durdukça yeniden seçer.
| Katman | Lib | Adaptörler |
|---|---|---|
| Envanter | inventory | ai-inventory, ox_inventory, qb-inventory, tgiann-inventory ve diğerleri |
| Araç anahtarı | vehicleKeys | ai-vehiclekeys, qbx_vehiclekeys ve diğerleri |
| İhbar | dispatch.alert | ai-policealert ve ihbar script’leri |
| Telefon | phone | tgiann-phone, lb-phone |
| Saat ve hava | world | qb-weathersync API’si (ai-weathersync, qb-weathersync, Renewed), cd_easytime; durdurmalar sebep başına sayılır |
| Hapishane | prison | ai-prison, qb-prison |
| Görünüm | appearance | ai-appearance, tgiann-clothing |
| Sağlık | medical | ai-death, qbx_medical, qb-ambulancejob, esx_ambulancejob, ars_ambulancejob |
| Radyal menü | radial | ai-radialmenu, qb-radialmenu, ox_lib |
| Hareketler | gestures | ai-smallresources, tgiann-emotes |
| HUD | hud, keyHints | ai-hud, tgiann-lumihud |
| Prime time | isPrimeTime | tgiann-policealert, yoksa paneldeki saatler |
Bir katmana script eklemek tek bir adaptör dosyası ve bir kayıt satırıdır.
Köprü
ai-core es_extended, qb-core ve qbx_core adlarını sağlar ve API’lerini bridge/ içindeki Lua dosyalarından cevaplar:
- core nesneleri (
exports['qb-core']:GetCoreObject(),ESX = exports.es_extended:getSharedObject(), eski olaylar), Qbox export’ları; - AI Core’un değişiklik olaylarından aynalanan oyuncu nesneleri (
xPlayer, QBPlayer); her okumada AI Core’a sorulmaz; - AI Core’un kendi oyuncu verisi kanalından kurulan client
PlayerData’sı; - aynı argümanlar ve zamanlamayla framework olayları (
QBCore:Client:OnPlayerLoaded,esx:setJob...); - callback’ler, kullanılabilir eşyalar, komutlar (panelde listelenir), bildirimler, AI Core arayüzüyle çizilen menüler, yazı istemleri ve ilerleme çubukları;
- dosya include’ları (
@qb-core/shared/locale.lua,@es_extended/imports.lua,@qbx_core/modules/playerdata.lua).
Köprü ai-lib’in Lua tarafının bir kopyasıyla çalışır; framework yardımcıları (yükleme, alanlar, tuşlar, ilerleme, hız sınırları) lib’in koduyla aynı.