API başvurusu
Lib: client
@aicore-fivem/lib/client - imzasıyla her client yardımcısı ve varsa Lua aiLib karşılığı.
import { Points, notify, progress, cache } from "@aicore-fivem/lib/client";Client girişi /fivem yardımcılarını da yeniden dışa aktarır (every, ByResource, Reasons, caller, onStop, plateOf, export ve dil yardımcıları, state bag sınıfları): bkz. Lib: shared ve fivem. Son sütun aiLib üzerindeki Lua karşılığını verir (Lua için lib).
Sunucuyla konuşmak
| Yardımcı | Ne | Lua |
|---|---|---|
triggerServerCallback(name, args = [], timeoutMs?): Promise<unknown> | Sunucuya sorar (orada onClientCallback); cevabı ayrıştır. | triggerServerCallback |
onServerCallback(name, handler: (...args) => unknown): void | Sunucunun triggerClientCallback’ini cevaplar. | onServerCallback |
onServerEvent(name, handler) / onServerEvent(name, { args }, handler) | Sunucudan bir net olayı; sunucudan gelmeyen emit’ler düşer. args payload’u ayrıştırır. | onServerEvent |
fromServer(): boolean | İşlenen olay sunucudan mı geldi. | |
callAction(name, args = [], { fallback, timeout?, silent? }) | Bir sunucu eylemi çalıştırır, çevrilmiş reddi kendisi gösterir, ok cevabını ya da null döner. | callAction |
isActionOk(reply), replyError(reply, fallback) | Bir ActionResult’u elle okur. |
const reply = await callAction("buy", [itemId], { fallback: "BUY_FAILED" });
if (reply) notify(t("BOUGHT"), "success");Yerel oyuncu
| Yardımcı | Ne | Lua |
|---|---|---|
cache | ped, playerId, serverId, vehicle, seat, weapon (false = yok), ai-core’un tek izleyicisi tutar. | cache |
onCache(key, handler: (value, old) => void): void | Önbellekteki bir değer değişince çalışır. | cache.onChange |
readPlayerState(ped), readWeapon(ped) | Bir ped’in şu anki aracı, koltuğu ve silahı. | |
player.coords(), player.heading(), player.distanceTo(point), player.ped() | Konum okumaları (önbellekten). | player |
player.freeze(state: boolean) | Ped’i dondurur. | player.freeze |
player.teleport(to: { x, y, z? }, { heading?, ground?, fade?, keepVehicle? }): Promise<void> | Kararmanın arkasında çarpışma yüklemeli ışınlama; z yoksa yere iner. | player.teleport |
player.playAnim(dict, clip, options?): Promise<void>, player.stopAnim() | Animasyon oynatır ya da durdurur. | player.playAnim, player.stopAnim |
player.holdAnim(dict, clip, { ...options, while? }) | stop() ya da while() false olana kadar animasyonu sürdürür. | |
fadeOut(ms = 300), fadeIn(ms = 400) | Ekran kararması; her biri bitince çözülür. | fadeOut, fadeIn |
getPlayerData(key), onPlayerData(key, handler): () => void, seedPlayerData(data) | ai-core’un oyuncu verisi (character, money, jobs, duty, job, gangs, activeGang, metadata). | playerData.get, playerData.onChange |
hasJob(jobs, minGrade = 0), inGang(gangs, minGrade = 0), onDutyIn(jobs) | Üyelik kontrolleri (boş liste = herkes). | |
onMembershipChange(fn) | Meslekler, mesai ya da çeteler değişti. | |
allows(rule: AccessRule): boolean | Oyuncu bir yeri kullanabilir mi (sunucunun online.allows’u aynı kararı verir). | |
playerPed(serverId): number | Sunucu id’siyle bir oyuncunun ped’i, kapsam dışında 0. | playerPed |
nearestPlayer(metres, { from?, filter? }): number | null | En yakın diğer oyuncunun sunucu id’si. | nearestPlayer |
Yerler ve dünya
| Yardımcı | Ne | Lua |
|---|---|---|
new Points() | Oyuncunun kullandığı her yer: istem ya da hedef (sunucu sahibinin seçimi), NPC, blip. | Points.new() |
points.add(id, { coords, label, icon?, radius?, height?, canShow?, onPressed, onEnter?, onExit?, ped?, blip?, world?, promptOnly?, preferTarget? }) | Bir nokta ekler; label bir fonksiyon olabilir. | points:add |
points.addModel(id, { models, label, icon?, radius?, canShow?(entity), onPressed(entity), vehicles?, inVehicle? }) | Bazı modellerin her nesnesinde bir nokta (ATM’ler, sandalyeler). | points:addModel |
points.addVehicle(id, { label, icon?, radius?, canShow?(vehicle), onPressed(vehicle) }) | Her ağa bağlı araçta bir nokta. | points:addVehicle |
points.remove(id), clear(), refresh(id?), isInside(id) | Noktaları yönetir; refresh, canShow’u yeniden okur. | |
new Zones(): add(id, options), remove, clear, isInside, size | Etkileşimsiz alanlar. | Zones.new() |
new LocalPed({ model, coords, ... }): entity, remove | Sadece bu client’ın gördüğü, oyuncu yaklaşınca oluşan bir ped. | LocalPed.new() |
new Blips(): add(id, options), get, remove, clear; createBlip(options) | İsimli blip’ler. | Blips.new(), Blips.create() |
showPrompt(id, text, at?), hidePrompt(id), onPromptPressed(handler) | ai-lib’in istemi, elle (Points bunu kullanır). | showPrompt, hidePrompt, onPromptPressed |
new AdminWorld(files): get, onChange, view, records | Bir script’in sync: "all" panel dosyalarının client kopyası. |
const points = new Points();
points.add("shop", {
coords: { x: 25.7, y: -1347.3, z: 29.5 },
label: t("OPEN_SHOP"),
icon: "basket-shopping",
blip: { sprite: 52, color: 2, scale: 0.8, label: t("SHOP") },
onPressed: () => openShop(),
});Arayüz
| Yardımcı | Ne | Lua |
|---|---|---|
notify(text, kind = "info", duration?) | Bir bildirim kartı. | notify |
progress({ label, duration, anim?, scenario?, face?, allowVehicle?, canCancel?, whileDead?, freeze?, disable? }): Promise<boolean> | ai-lib’in çubuğuyla süreli bir eylem; iptal edilirse false. | progress |
cancelProgress(), isProgressRunning() | Bu resource’un çubuğunu durdurur ya da kontrol eder. | progress.cancel(), progress.isRunning() |
menu(request, onHover? | { onHover, onToggle }): Promise<string | null> | ai-lib’in menüsü; seçilen id ile çözülür. | menu.show |
input(request): Promise<Record<string, string | number> | null> | ai-lib’in giriş diyaloğu. | input |
itemPicker({ title, target? }): Promise<PickedItem[] | null> | Admin araçları: ai-core’un eşya ızgarası. | itemPicker |
skillCheck(difficulty | difficulty[], keys = ["e"]): Promise<boolean> | Beceri kontrolü ("easy" | "medium" | "hard" ya da { areaSize, speedMultiplier }). | skillCheck |
lockpick({ difficulty?, pins?, picks? }): Promise<"opened" | "broken" | "cancelled"> | Maymuncuk mini oyunu. | lockpick |
new NuiScreen(name, { cursor?, onClose?, closeCallback? }): open, close, send, on, isOpen | Tam ekran bir NUI: odak, gizlenen HUD’lar, kapanma mesajı, callback’ler. | |
hud.hide(reason), hud.show(reason), hud.visible(), hud.onChange(fn) | Tam ekran arayüz boyunca HUD’ları gizler. | hud |
keyHints.show(id, { label, keybind?, key?, icon? }), keyHints.hide(id) | HUD’da bir tuş yardım satırı. | keyHints |
radial.add(item), radial.remove(id), radial.refresh() | Hangi radyal menü çalışıyorsa ona öğeler. | radial |
controls.disable(reason, controls, group?), controls.enable(reason), controls.disableAll(reason, except?) | Engellenen tuşlar, tek kare başı iş. | controls |
new Keybind({ name, description, defaultKey, defaultMapper, hint?, icon?, hintLabel?, onPressed, onReleased }) | Değiştirilebilir bir tuş; varsayılanını panel ayarlayabilir. isPressed(), currentKey(), disable(state). | Keybind.new() |
const done = await progress({
label: t("REPAIRING"),
duration: 8000,
anim: { dict: "mini@repair", clip: "fixing_a_player" },
canCancel: true,
});AI Core üzerinden
| Yardımcı | Ne | Lua |
|---|---|---|
inventory.openInventory(), inventory.hasItem(item, count = 1), inventory.currentWeapon() | Aktif envanter. | inventory |
medical.isDead(), medical.onChange(fn) | Yerel oyuncu yerde, hangi ölüm script’i olursa olsun. | |
gestures.isHandsUp(), isPointing(), provider() | Herhangi bir emote script’inin eller yukarı ve işaret etmesi. | gestures |
appearance.apply(ped, look), appearance.read(ped) | Aktif kıyafet script’iyle görünümler. | appearance |
world.pauseSync(reason), world.resumeSync(reason) | Hava ve saat senkronunu duraklatır. | world |
Araçlar ve entity’ler
| Yardımcı | Ne | Lua |
|---|---|---|
nearestVehicle(metres, { networked?, notOwn?, filter? }): number | En yakın araç. | nearestVehicle |
drivenVehicle(): number | false | Oyuncunun sürdüğü araç. | |
waitForEntity(netId, timeoutMs = 5000): Promise<number> | Entity burada var olunca o, zaman aşımında 0. | waitForEntity |
entityFromNetId(netId, type?): number | Şu anki entity ya da 0 (tip 1 ped, 2 araç, 3 nesne). | |
getVehicleProps(vehicle), setVehicleProps(vehicle, props), setVehicleSetup(vehicle, setup) | Bir aracın görünümünü okur ve uygular. | |
new PreviewVehicle(): show(model, at, setup?), clear() | Yerel bir galeri aracı. | |
vehicleLabel(model | hash | vehicle): string | Bir aracın görünen adı. | vehicleLabel |
Yoklamalar, yükleme, zamanlama
| Yardımcı | Ne | Lua |
|---|---|---|
raycast(from, to, { flags?, ignore?, options? }): RayHit | null | Bir çizgi yoklaması: { coords, normal, entity }. | raycast |
groundZ(x, y, z = 1000): number | null | Zemin yüksekliği, çarpışma yüklenmemişken null. | groundZ |
locationName(coords?): { street, crossing?, zone } | Sokak ve bölge adları. | locationName |
waypoint(): { x, y } | null | Harita işareti. | waypoint |
pedHeadshot(ped, transparent = false, timeoutMs = 5000) | Bir ped’in vesikalık handle’ı ve doku adı. | pedHeadshot |
onShot(handler: (weapon) => void): () => void | Yerel ped’in ateş ettiği kare. | onShot |
requestModel, requestAnimDict, requestAnimSet, requestPtfxAsset, requestTextureDict, requestWeaponAsset (name, timeoutMs = 10000) | Bir oyun varlığını yükler. | aynı adlar |
attachProp(model, { ped?, bone, offset?, rotation?, collision?, rotationOrder? }): Promise<number> | Bir ped kemiğinde tutulan yerel bir prop. | |
new TickLoop(onFrame, name?): set(active), running | Sadece gerektiğinde açılan kare başı iş. | |
new AreaFollower(event, cellSize = 64): start, stop | Oyuncunun ızgara hücresini bir sunucu AreaStream’ine bildirir. | |
new ScriptCamera(type?): start, move, glideTo, attach, pointAt, setFov, shake, blur, stop | Script kamerası, durunca oyun kamerasına geri verilir. |