AI Core
API başvurusu

Script export’ları

Her ai-* script’inin export’ları ve yerini tuttukları başka script’lerin API’leri.

ai-* script’leri ortak bir iş için birbirini çağırmaz: eşyalar, anahtarlar, ihbarlar, hapis, sağlık, görünümler, radyal öğeler ve hava ai-core (lib) üzerinden gider; aşağıdaki export’ları ai-core çağırır. Bunları sadece o script’e özgü bir şey için kendin çağır. @aicore-fivem/shared içinde tipli olanlar resourceExport("ai-...") ile, diğerleri callExport(resource, name, ...args) ya da düz bir exports[...] çağrısıyla çalışır.

Bir script başka bir script’in yerini tutuyorsa (provide), o script’in export adları da cevap verir; exports.ox_inventory:AddItem(...) ai-inventory’ye ulaşır.

ai-lib

Ortak oyuncu arayüzü. Client export’ları, AiLibClientExports olarak tipli; lib’in notify, progress, showPrompt, menu, input, skillCheck ve lockpick’i senin yerine çağırır.

ExportNe
Notify(notification: Notification): voidBir bildirim kartı (text, title?, kind, duration?).
ShowProgress(label: string, duration: number): voidİlerleme çubuğunu duration ms gösterir (eylemi çağıran yürütür).
HideProgress(): voidGizler.
ShowPrompt(id: string, text: string, at?: { x, y, z }): voidÇağıranın istemini gösterir ya da günceller; at onu bir dünya noktasının üstüne çizer.
HidePrompt(id: string): voidBir istemi gizler.
OpenMenu(requestId: number, request: MenuRequest): voidBir menü; seçim MENU_EVENTS.menuResult olarak gelir.
OpenInput(requestId: number, request: InputRequest): voidBir giriş diyaloğu; değerler MENU_EVENTS.inputResult olarak gelir.
OpenMinigame(requestId: number, request: MinigameRequest): voidBeceri kontrolü ya da maymuncuk; sonuç MENU_EVENTS.menuResult olarak gelir.
CloseDialog(): voidÇağıranın açık menüsünü ya da giriş diyaloğunu kapatır (null ile cevaplanır).

Bir Notification ile sunucu olayı ai-lib:client:notify (LIB_UI.notifyEvent) o oyuncunun ekranında bir kart gösterir.

ai-inventory

Sunucu export’ları (kendi): diğer ai-* script’leri bunlara ai-core’un envanter katmanı üzerinden ulaşır.

ExportNe
AddItem(inv: number | string, item: string, count: number, metadata?, slot?): booleanEşya ekler.
RemoveItem(inv: number | string, item: string, count: number, metadata?, slot?): booleanEşya alır.
GetItemCount(inv: number | string, item: string, metadata?): numberKaç tane.
GetItems(inv: number | string): { name, label, count, slot, metadata }[]Etiketiyle her yığın.
CanCarryItem(inv: number | string, item: string, count: number, metadata?): booleanSığar mı.
RegisterUsableItem(name: string, handler: (source, item) => unknown): voidhandler false dönerse eşya kalır; yoksa consume miktarı alınır.
RegisterStash(name: string, label: string, slots: number, maxWeight: number, jobs?: string[], personal?: boolean): voidBir depo.
OpenInventory(source: number, inv: number | string): booleanBir envanteri oyuncunun ekranında açar.
ClearInventory(inv: number | string): voidBoşaltır.
Items(name?: string): unknownBir eşya tanımı (ox biçimi) ya da hepsi.
GetWeight(inv: number | string): { weight, maxWeight } | nullTaşınan ağırlık ve sınır, gram.

Client export’ları: OpenInventory(type, data), CloseInventory(), OpenSelf() (yer, bagaj ya da torpido gözüyle kendi envanteri), GetItemCount(item), HasItem(items: string \| string[] \| Record<string, number>, amount?), GetPlayerItems().

Sunucu yerel olayı ai-inventory:usedItem (source, name, slot, metadata, status).

ox_inventory API’si

ai-inventory ox_inventory’yi provide eder ve export’larını cevaplar (ox_inventory 2.44). Envanterler ox’taki gibi adlandırılır: bir oyuncu source’u, bir depo adı, kişisel depolar için { id, owner }, bagajlar için bir plaka.

  • Sunucu: AddItem (success, response döner, cb çağırır), RemoveItem, GetItem, GetItemCount, Search (count / slots), CanCarryItem, CanCarryWeight, CanCarryAmount, GetInventory, GetInventoryItems, GetSlot, GetSlotWithItem, GetSlotsWithItem, GetSlotIdWithItem, GetSlotIdsWithItem, GetEmptySlot, SetMetadata, SetDurability, SetMaxWeight, RegisterStash, ClearInventory, Items, ItemList, forceOpenInventory (depo, oyuncu, mağaza), CreateTemporaryStash, CustomDrop, RemoveInventory, SwapSlots.
  • Client: openInventory, closeInventory, Search, GetItemCount, GetPlayerItems, GetPlayerWeight, GetPlayerMaxWeight, Items, useSlot, getCurrentWeapon / GetCurrentWeapon; displayMetadata, weaponWheel, setStashTarget kabul edilir ve bir şey yapmaz.
  • Cevaplanmayanlar: hook’lar (registerHook, removeHooks), UpdateVehicle, ConfiscateInventory / ReturnInventory, GetContainerFromSlot, RegisterShop (mağazalar panelden gelir).

qb-inventory API’si

ai-inventory qb-inventory’yi provide eder (2.0 API). Dönen eşyalar iki biçimi de taşır: count / metadata ve amount / info.

  • Sunucu: AddItem(identifier, item, amount, slot, info), RemoveItem, HasItem (ad, liste ya da { name = amount }), GetItemCount, GetItemByName, GetItemsByName, GetItemBySlot, CanAddItem, GetFreeWeight, GetSlots, ClearInventory, SetItemData, CreateInventory, OpenInventory, OpenInventoryById, RemoveInventory, CloseInventory.
  • Client: HasItem, CloseInventory.
  • Cevaplanmayanlar: hook’lar ve dinleyiciler, CreateShop / OpenShop, SetInventory, GetInventory, SaveInventory, LoadInventory, UseItem, GetFirstSlotByItem, GetSlotsByItem, GetTotalWeight.

ai-vehicles

Sahipli araçlar. Sunucu export’ları, AiVehiclesServerExports olarak tipli. VehicleOwner, { type: "character" \| "job" \| "gang" \| "resource", id }.

ExportNe
CreateVehicle(owner: VehicleOwner, model: string, garage: string | null, props?): { id, plate } | nullYeni bir sahipli araç kaydeder.
GetVehicle(ref: number | string): OwnedVehicle | nullId ya da plakayla bir araç.
GetVehicles(owner: VehicleOwner): OwnedVehicle[]Çevrim içi bir karakterin araçları ya da bir meslek veya çete filosu.
IsOwnedPlate(plate: string): booleanPlaka sahipli bir araca mı ait.
GetVehicleIdByEntity(entity: number): number | nullDoğmuş sahipli bir aracın id’si.
GetPlateOwners(): [plate, type, id][]Bellekteki her sahipli araç (sonra ai-vehicles:owners’ı izle).
GetEntity(id: number): number | nullBir aracın doğmuş entity’si.
SaveVehicle(id: number, change: { props?, fuel?, engine?, body?, state?, garage? }): voidDurumu ve görünümü kaydeder; kayıtlı modifiye kalır.
SaveTuning(id: number, props: unknown): voidModifiye dahil tam props kaydeder (sadece modifiye dükkânları).
StoreVehicle(id: number, garage: string | null, state?: VehicleState): voidAracı bir garaja koyar (garage, out, impound).
SetOwner(id: number, owner: VehicleOwner): voidSahibini değiştirir.
DeleteVehicle(id: number): voidAracı siler.
SpawnVehicle(id: number, at: { x, y, z, heading }, asker: number, cb: (netId: number | null) => void, purpose?: KeyPurpose, setup?): voidEntity’yi oluşturur; cb net id’sini alır.

ai-vehicles qbx_vehicles’ı provide eder: GetPlayerVehicles(filters), GetPlayerVehicle(id), CreatePlayerVehicle(request), SetPlayerVehicleOwner(id, citizenid), DeletePlayerVehicles(idType, idValue), GetVehicleIdByPlate(plate), DoesPlayerVehiclePlateExist(plate), SaveVehicle(entity, options) (citizenid filtreleri sahibin çevrim içi olmasını ister).

ai-vehicleshop

ExportNe
GetCatalogPrice(model: string): number | nullBir modelin katalog fiyatı (sunucu).

ai-vehiclekeys

Sunucu export’ları, qbx_vehiclekeys altında da. Araç bir entity ya da plakadır. Script’ler anahtarı ai-core üzerinden verir (GiveVehicleKeys, lib vehicleKeys); ai-vehiclekeys aktif anahtar sistemiyken ai-core bunları çağırır.

ExportNe
HasKeys(source: number, vehicle: number | string): booleanOyuncuda anahtar var mı.
GiveKeys(source: number, vehicle: number | string): voidAnahtar verir.
RemoveKeys(source: number, vehicle: number | string): voidAnahtarı alır.
SetLockState(vehicle, state)Bir araç entity’sini kilitler ("lock", true, 2) ya da açar.
IsPlayerNearVehicle(source, vehicle)Oyuncu aracın yakınında mı.

ai-death

Sunucu export’ları, AiDeathServerExports olarak tipli; Revive ve IsDead qbx_medical altında da. Script’ler bunun yerine ai-core’un sağlık katmanını (lib medical) kullanır.

ExportNe
Revive(source: number): booleanYerdeki oyuncuyu kaldırır; yerde değilse false.
IsDead(source: number): booleanOyuncu yerde mi.
Heal(source: number): voidYerde olmayan oyuncuya tam can.

Sunucudan gelen client olayı hospital:client:Revive oyuncuyu kaldırır.

ai-prison

Sunucu export’ları; ai-core’un hapis katmanı (lib prison) çağırır.

ExportNe
JailPlayer(source, minutes, by?)Oyuncuyu hapse atar; başarılıysa true.
ReleasePlayer(source)Hapisteki oyuncuyu bırakır.
GetJailTime(source)Kalan dakika (serbestse 0).

ai-policealert

ExportNe
DispatchAlert(alert: DispatchAlert): voidBir ihbar kartı gösterir; sadece ai-core’un ihbar katmanı çağırır (script’ler SendDispatchAlert / lib dispatch kullanır).

ai-doorlock

Sunucu export’ları, AiDoorlockServerExports olarak tipli; kapılar panel id’leriyle. ox_doorlock setDoorState ve getDoor’u da cevaplar.

ExportNe
SetDoorState(id: string, locked: boolean): voidBir kapıyı kilitler ya da açar.
IsLocked(id: string): booleanKapı kilitli mi.

ai-banking

QB script’leri için şirket parası (hesap bir meslek adıdır). Sunucu export’ları, qb-banking altında da; Renewed-Banking getAccountMoney, addAccountMoney, removeAccountMoney aynı şekilde cevap verir.

ExportNe
GetAccountBalance(job)Bir meslek hesabının banka bakiyesi.
AddMoney(job, amount, reason)Ekler.
RemoveMoney(job, amount, reason)Alır.

ai-hud

ExportTarafNe
OpenSettings()ClientHUD ayarlarını açar.
SetMinimapAlways(on: boolean)ClientBir adminin kendi düğmesi: panel ne derse desin yayayken minimap.
GetMinimapAlways(): booleanClientAçık mı.
GetNeeds(source)SunucuOyuncunun hunger, thirst, stress değerleri ya da null.
SetNeed(source, need, value)SunucuBir ihtiyacı ayarlar.
AddNeed(source, need, delta)SunucuBir ihtiyacı delta kadar değiştirir.

ai-smallresources

Client export’ları.

ExportNe
GetSeatbelt(): boolean | nullOyuncu emniyet kemeri takıyor mu; yayayken ya da kemerler kapalıyken null. Değişiklikler ai-smallresources:seatbelt olarak gelir.
IsHandsUp(): booleanEller yukarıda (script’ler lib gestures kullanır).
IsPointing(): booleanİşaret ediyor.

ai-sirens

Acil durum araçları için client export’ları; vehicle varsayılanı oyuncunun oturduğu araç. Durum değişiklikleri sürücünün client’ında çalışır.

ExportNe
SetLights(vehicle, on)Işıklar açık ya da kapalı.
ToggleLights(vehicle)Işıkları çevirir.
SetSirenTone(vehicle, tone)Ton 0-3 (0 = kapalı).
ToggleSiren(vehicle)Siren açık ya da kapalı.
CycleTone(vehicle)Sonraki ton.
GetSirenTone(vehicle)Şu anki ton.
AreLightsOn(vehicle)Işıklar açık mı.
GetAirManuState(vehicle)Elle ton durumu.
GetLightbarModel(vehicle)Işık barı modeli ya da null.

ai-exitsleeping

ExportTarafNe
AddCreateCheck(id, fn(source, charId, coords) => boolean)SunucuUyuyan beden bırakmamak için false döndür (bir daire, bir etkinlik alanı); ekleyen resource durunca kalkar.
PlayerLoaded()ClientUyanma modu "export" iken karakteri uyandırır.
SetHidden(reason, hidden)ClientHerhangi bir sebep sürdükçe bu client’taki bütün uyuyan bedenleri gizler (iç mekânlar, shell’ler).
SetCarryBlocked(reason, blocked)ClientHerhangi bir sebep sürdükçe taşıma seçeneğini gizler.

ai-appearance

Client export’ları, AiAppearanceClientExports olarak tipli; script’ler lib appearance kullanır.

ExportNe
ApplyAppearance(ped: number, appearance: unknown): booleanBir ai-appearance görünümünü kendi modelindeki bir ped’e giydirir.
GetPedAppearance(ped: number): unknownYerel oyuncunun görünümü, diğer ped’ler için null.

ai-radialmenu

Kendi client export’ları (AiRadialClientExports olarak tipli): AddItem(item) (onSelect, onPressed olarak kabul edilir), RemoveItem(id, parent?), Refresh(). Script’ler lib radial kullanır.

Başka çarkların API’lerini provide eder:

  • qb-radialmenu: AddOption(data, id?) id döndürür, RemoveOption(id).
  • tgiann-radialmenu-target: AddMenuItem(item | items, parentId?), RemoveMenuItem(id, parentId?), ClearMenuItems(), RegisterSubMenu({ id, items }), RefreshMenu(), DisableMenu(state), IsMenuDisabled(), OpenMenu(), CloseMenu(), IsMenuOpen(), HasMenuItem(id), SetMenuItemHidden(id, state), IsMenuItemHidden(id), UpdateMenuItem(id, { label?, icon? }), ResetMenuItem(id).

ai-target

ox_target client API’sini ai-target ve ox_target adlarıyla cevaplar: addSphereZone, addBoxZone, addPolyZone, removeZone, zoneExists, addModel, removeModel, addEntity, removeEntity, addLocalEntity, removeLocalEntity, addGlobalPed / Vehicle / Object / Player ve onların removeGlobal*’ı, disableTargeting, isActive. addGlobalOption sunulmaz (bir uyarı loglar). Script’ler lib Points kullanır; istem ya da hedefi sunucu sahibinin ayarı seçer.

ai-voice

pma-voice 7.x’in yerini tutar (pma-voice, mumble-voip, tokovoip, toko-voip, tokovoip_script’i provide eder).

  • Sunucu, pma-voice adları: setPlayerRadio, setPlayerCall, getPlayersInRadioChannel / GetPlayersInRadioChannel, addChannelCheck, overrideRadioNameGetter, isValidPlayer.
  • Sunucu, kendi: getBackend, setPlayerProximityMode(source, index), setPlayerRange(source, metres | null), getPlayerProximity(source), toggleMute(source, seconds?), addProximityCheck(fn(source, index, distance)) (false reddeder), addPlayerRadioListen / removePlayerRadioListen / setPlayerRadioActive(source, channel), getPlayerRadioChannels(source) ({ active, channels }), addCallCheck(fn(source, callId)) (true izin verir), setPlayerCallSpeaker(source, on) / getPlayerCallSpeaker(source), setPlayerSubmix(source, name | null).
  • Client: pma-voice’un client export’ları (setRadioChannel, setCallChannel, setRadioVolume, setCallVolume, setVoiceProperty, overrideProximityRange, toggleMutePlayer, toggleRadioAnim...) artı addRadioDisableBit / removeRadioDisableBit, registerCustomSubmix, setEffectSubmix; kendi addRadioChannel / removeRadioChannel / setActiveRadioChannel / getRadioChannels, setCallSpeaker / getCallSpeaker, setRadioAnimDisabled, createSubmix(name, spec) / getSubmix / editSubmix / listSubmixes, cycleProximity, getBackend, isRadioTalking.
  • Yerel olaylar: client pma-voice:setTalkingMode, pma-voice:radioActive, pma-voice:toggleRadioAnim; sunucu pma-voice:playerMuted.

ai-weathersync

ai-weathersync ve qb-weathersync adlarıyla export’lar (bütün sözleşmesi): setWeather, setTime, setBlackout, setTimeFreeze, setDynamicWeather, nextWeatherStage, getWeatherState, getTime, getBlackoutState, getTimeFreezeState, getDynamicWeather. Script’ler herhangi bir hava script’iyle çalışan ai-core’un GetWeather / SetWeather... export’larını (lib world) kullanır.

ai-chat

FiveM’in chat resource’unun yerini tutar.

  • Client: export’lar addMessage(message), addSuggestion(name, help, params); olaylar chat:addMessage, chatMessage (author, color, text), chat:addSuggestion(s), chat:removeSuggestion, chat:addMode / chat:removeMode, chat:clear.
  • Sunucu: export’lar addMessage(target, message), registerMessageHook(fn), registerMode(data); iletimden önce olay chatMessage (source, author, text) (mesajı düşürmek için iptal et).

ai-mysql

oxmysql’in yerini tutar: ai-mysql ve oxmysql adlarıyla export’lar: query, single, scalar, insert, update, prepare, rawExecute, transaction, startTransaction, store, isReady, awaitConnection, execute, fetch, her biri <name>_async / <name>Sync olarak da. ghmattimysql (execute, scalar, transaction, store) ve mysql-async (mysql_execute, mysql_insert, mysql_fetch_all, mysql_fetch_scalar, mysql_transaction, mysql_store) adları da; olaylar oxmysql:error, oxmysql:transaction-error. Bkz. Veritabanı.

Bu sayfada