AI Core
Dünya ve araçlarai-smallresources

Geliştiriciler için ai-smallresources

ai-smallresources’in client export’ları, emniyet kemeri event’i, state bag’leri ve metadata’sı.

Emniyet kemerini ya da jestleri kendi script’inden okumak için lib’in seatbelt.isOn() / seatbelt.onChange(fn) ve gestures.isHandsUp() / gestures.isPointing() fonksiyonlarını kullan (client; Lua’da aiLib.seatbelt, aiLib.gestures). Bunlar ai-core üzerinden gider ve hangi emniyet kemeri ya da emote script’i çalışıyorsa onunla çalışır. Aşağıdaki export’lar, ai-smallresources cevap verirken ai-core’un okuduklarıdır.

Üç export’un hepsi client’tadır, senkrondur ve yerel oyuncuyu okur. GetSeatbelt, @aicore-fivem/shared içinde AiSmallResourcesClientExports olarak tiplenmiştir; IsHandsUp ve IsPointing tiplenmemiştir (callExport kullan).

TypeScript
import { resourceExport, callExport } from "@aicore-fivem/lib/client";
const small = resourceExport("ai-smallresources");

Client export’ları

GetSeatbelt

Yerel oyuncunun emniyet kemeri takıp takmadığı.

Taraf: Client · Bekler: hayır

Signature
GetSeatbelt(): boolean | null
Lua
local worn = exports['ai-smallresources']:GetSeatbelt() -- true, false ya da nil

Dönüş değeri

Kemer takılıyken true, değilken false. Seatbelt özelliği panelde kapalıyken ya da oyuncu emniyet kemeri olan bir araçta değilken null.

Örnek

import { seatbelt } from "@aicore-fivem/lib/client";

// Bir HUD’un kemer ikonu: bir kez oku, sonra değişiklikleri takip et.
let worn = seatbelt.isOn();
seatbelt.onChange((value) => {
  worn = value;
});

Bir eylemde ya da araç değişiminde oku, asla her karede okuma.

IsHandsUp

Yerel oyuncunun ellerinin yukarıda olup olmadığı (X jesti).

Taraf: Client · Bekler: hayır

Signature
IsHandsUp(): boolean
Lua
local up = exports['ai-smallresources']:IsHandsUp()

Dönüş değeri

Eller yukarıdayken true, aksi halde false.

IsPointing

Yerel oyuncunun işaret edip etmediği (B jesti).

Taraf: Client · Bekler: hayır

Signature
IsPointing(): boolean
Lua
local pointing = exports['ai-smallresources']:IsPointing()

Dönüş değeri

İşaret ederken true, aksi halde false.

Event’ler

ai-smallresources:seatbelt

Emniyet kemeri değiştiğinde yerel client’ta tetiklenir. Adı @aicore-fivem/shared içinde SEATBELT_EVENT’tir. ai-core bunu kendi emniyet kemeri event’i olarak iletir; lib’in seatbelt.onChange fonksiyonu onu dinler, onu tercih et.

Taraf: Client (yerel event)

Prop

Type

Lua
AddEventHandler('ai-smallresources:seatbelt', function(worn)
  print('seat belt', worn)
end)

ai-smallresources’in diğer her event’i dahilidir (kendi client’ı ve server’ı).

State bag’ler ve metadata

AdNeredeTipAnlamı
aiHoldoyuncustring | falseOyuncunun tuttuğu haber eşyası (newscam, newsmic, newsboom).
aiCarryingoyuncunumberOyuncu birini taşıyor (onun server id’si).
aiCarriedByoyuncunumberOyuncuyu biri taşıyor (onun server id’si).
aiDivingoyuncubooleanOyuncu dalış ekipmanını takıyor.
aiRealPlatearaçstringSahte plaka takılıyken gerçek plaka.
aiMooredaraçbooleanTekne bir iskeleye bağlı.
diveOxygenkarakter metadata’sı (ai-core)numberDalış tüpünde kalan hava saniyesi.
aiPlayerCount / aiMaxPlayersGlobalStatenumberÇevrim içi oyuncular ve slotlar; Discord Rich Presence açıkken ayarlanır.
// Server: bir aracın gerçek plakası, sahte olsun ya da olmasın.
export function realPlate(vehicle: number): string {
  const real = Entity(vehicle).state.aiRealPlate as string | undefined;
  return real ?? GetVehicleNumberPlateText(vehicle);
}

Kullanılabilir eşyalar

AI Core’un envanter katmanı üzerinden kaydedilir, bu yüzden hangi envanter çalışıyorsa onunla çalışır: binoculars, firework1-firework4, newscam, newsmic, newsboom, fakeplate, notepad, note (metadata text ve description), diving_gear, diving_fill.

Bu sayfada