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.
| Export | Ne |
|---|---|
Notify(notification: Notification): void | Bir 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(): void | Gizler. |
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): void | Bir istemi gizler. |
OpenMenu(requestId: number, request: MenuRequest): void | Bir menü; seçim MENU_EVENTS.menuResult olarak gelir. |
OpenInput(requestId: number, request: InputRequest): void | Bir giriş diyaloğu; değerler MENU_EVENTS.inputResult olarak gelir. |
OpenMinigame(requestId: number, request: MinigameRequest): void | Beceri 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.
| Export | Ne |
|---|---|
AddItem(inv: number | string, item: string, count: number, metadata?, slot?): boolean | Eşya ekler. |
RemoveItem(inv: number | string, item: string, count: number, metadata?, slot?): boolean | Eşya alır. |
GetItemCount(inv: number | string, item: string, metadata?): number | Kaç tane. |
GetItems(inv: number | string): { name, label, count, slot, metadata }[] | Etiketiyle her yığın. |
CanCarryItem(inv: number | string, item: string, count: number, metadata?): boolean | Sığar mı. |
RegisterUsableItem(name: string, handler: (source, item) => unknown): void | handler 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): void | Bir depo. |
OpenInventory(source: number, inv: number | string): boolean | Bir envanteri oyuncunun ekranında açar. |
ClearInventory(inv: number | string): void | Boşaltır. |
Items(name?: string): unknown | Bir eşya tanımı (ox biçimi) ya da hepsi. |
GetWeight(inv: number | string): { weight, maxWeight } | null | Taşı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, responsedö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,setStashTargetkabul 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 }.
| Export | Ne |
|---|---|
CreateVehicle(owner: VehicleOwner, model: string, garage: string | null, props?): { id, plate } | null | Yeni bir sahipli araç kaydeder. |
GetVehicle(ref: number | string): OwnedVehicle | null | Id 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): boolean | Plaka sahipli bir araca mı ait. |
GetVehicleIdByEntity(entity: number): number | null | Doğmuş sahipli bir aracın id’si. |
GetPlateOwners(): [plate, type, id][] | Bellekteki her sahipli araç (sonra ai-vehicles:owners’ı izle). |
GetEntity(id: number): number | null | Bir aracın doğmuş entity’si. |
SaveVehicle(id: number, change: { props?, fuel?, engine?, body?, state?, garage? }): void | Durumu ve görünümü kaydeder; kayıtlı modifiye kalır. |
SaveTuning(id: number, props: unknown): void | Modifiye dahil tam props kaydeder (sadece modifiye dükkânları). |
StoreVehicle(id: number, garage: string | null, state?: VehicleState): void | Aracı bir garaja koyar (garage, out, impound). |
SetOwner(id: number, owner: VehicleOwner): void | Sahibini değiştirir. |
DeleteVehicle(id: number): void | Aracı siler. |
SpawnVehicle(id: number, at: { x, y, z, heading }, asker: number, cb: (netId: number | null) => void, purpose?: KeyPurpose, setup?): void | Entity’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
| Export | Ne |
|---|---|
GetCatalogPrice(model: string): number | null | Bir 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.
| Export | Ne |
|---|---|
HasKeys(source: number, vehicle: number | string): boolean | Oyuncuda anahtar var mı. |
GiveKeys(source: number, vehicle: number | string): void | Anahtar verir. |
RemoveKeys(source: number, vehicle: number | string): void | Anahtarı 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.
| Export | Ne |
|---|---|
Revive(source: number): boolean | Yerdeki oyuncuyu kaldırır; yerde değilse false. |
IsDead(source: number): boolean | Oyuncu yerde mi. |
Heal(source: number): void | Yerde 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.
| Export | Ne |
|---|---|
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
| Export | Ne |
|---|---|
DispatchAlert(alert: DispatchAlert): void | Bir 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.
| Export | Ne |
|---|---|
SetDoorState(id: string, locked: boolean): void | Bir kapıyı kilitler ya da açar. |
IsLocked(id: string): boolean | Kapı 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.
| Export | Ne |
|---|---|
GetAccountBalance(job) | Bir meslek hesabının banka bakiyesi. |
AddMoney(job, amount, reason) | Ekler. |
RemoveMoney(job, amount, reason) | Alır. |
ai-hud
| Export | Taraf | Ne |
|---|---|---|
OpenSettings() | Client | HUD ayarlarını açar. |
SetMinimapAlways(on: boolean) | Client | Bir adminin kendi düğmesi: panel ne derse desin yayayken minimap. |
GetMinimapAlways(): boolean | Client | Açık mı. |
GetNeeds(source) | Sunucu | Oyuncunun hunger, thirst, stress değerleri ya da null. |
SetNeed(source, need, value) | Sunucu | Bir ihtiyacı ayarlar. |
AddNeed(source, need, delta) | Sunucu | Bir ihtiyacı delta kadar değiştirir. |
ai-smallresources
Client export’ları.
| Export | Ne |
|---|---|
GetSeatbelt(): boolean | null | Oyuncu emniyet kemeri takıyor mu; yayayken ya da kemerler kapalıyken null. Değişiklikler ai-smallresources:seatbelt olarak gelir. |
IsHandsUp(): boolean | Eller 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.
| Export | Ne |
|---|---|
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
| Export | Taraf | Ne |
|---|---|---|
AddCreateCheck(id, fn(source, charId, coords) => boolean) | Sunucu | Uyuyan beden bırakmamak için false döndür (bir daire, bir etkinlik alanı); ekleyen resource durunca kalkar. |
PlayerLoaded() | Client | Uyanma modu "export" iken karakteri uyandırır. |
SetHidden(reason, hidden) | Client | Herhangi bir sebep sürdükçe bu client’taki bütün uyuyan bedenleri gizler (iç mekânlar, shell’ler). |
SetCarryBlocked(reason, blocked) | Client | Herhangi 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.
| Export | Ne |
|---|---|
ApplyAppearance(ped: number, appearance: unknown): boolean | Bir ai-appearance görünümünü kendi modelindeki bir ped’e giydirir. |
GetPedAppearance(ped: number): unknown | Yerel 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; kendiaddRadioChannel/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; sunucupma-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); olaylarchat: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 olaychatMessage (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ı.