AI Core
API başvurusu

Lua için lib

aiLib - Lua resource’lar için lib, ox_lib gibi ai-lib’den yüklenir.

ai-lib, lib’in Lua’ya taşınmış halini taşır. Onu yükleyen resource’un içinde çalışır; noktalar, tuşlar, komutlar ve callback’ler o resource’a aittir ve onunla gider.

fxmanifest.lua
dependency 'ai-lib'
shared_script '@ai-lib/init.lua'

Modüller ilk kullanımda yüklenir: aiLib.notify(...), aiLib.Points.new(), aiLib.addCommand(...). Bekleyen çağrılar (triggerServerCallback, menu.show, progress, spawnVehicle, progressFor) bir thread içinde çalışmalı. Tipler ai-lib’in init.lua dosyasındaki AiLib sınıfında.

Bundler kullanmayan JavaScript resource’lar bunun yerine @ai-lib/dist/client.js / server.js yükler: TypeScript lib’in /shared ve /client ya da /server yardımcılarıyla aynı aiLib globali.

İki taraf

FonksiyonNe
aiLib.side'client' ya da 'server'.
aiLib.every(ms, fn, options?)Resource’un tek zamanlayıcı thread’inde periyodik iş (0 = her kare); job:set(active), job:stop(), job.running. Bir iş asla Wait etmez.
aiLib.waitFor(check, timeout?, interval?)check bir değer döndürene kadar bekler.
aiLib.formatText(text, ...){0} yer tutucuları.
aiLib.locale(resource?)t(key, ...) ve birleşik dil tablosunu döndürür.
aiLib.fail(error)Sunucu eylemleri için { ok = false, error = error }.
aiLib.numbers.round(value, decimals?), groupDigits(value, separator?), headingTo(from, to)Sayı yardımcıları.
aiLib.stripGameText(text)HTML etiketleri ve GTA kodları silinir.
aiLib.notify(...)Client (text, kind?, duration?); sunucu (source, text, kind?, duration?).
aiLib.inventory, aiLib.world, aiLib.appearanceAI Core üzerinden; üyeleri tarafa göre değişir (aşağıda).

Client

FonksiyonNe
aiLib.cacheped, playerId, serverId, vehicle, seat, weapon; cache.onChange(key, handler).
aiLib.playerData.get(key), playerData.onChange(key, handler)ai-core’un oyuncu verisi (character, money, jobs, duty, gangs, activeGang).
aiLib.triggerServerCallback(name, args?, timeout?)Sunucuya sorar; cevabı ve bir hatayı döndürür.
aiLib.onServerCallback(name, handler), aiLib.onServerEvent(name, handler)Sunucuyu cevaplar, sunucu olaylarını dinler.
aiLib.callAction(name, args?, { fallback, timeout?, silent? })Bir sunucu eylemi çalıştırır, çevrilmiş reddi gösterir, ok cevabını ya da nil döndürür.
aiLib.progress(options)ai-lib’in ilerleme çubuğu (anim, scenario, canCancel, whileDead, freeze, disable); bittiğinde true. progress.cancel(), progress.isRunning().
aiLib.menu.show(request, listeners?)Bir menü ({ title, items, back? }, dinleyiciler onHover, onToggle); seçilen id’yi döndürür.
aiLib.input(request)Bir giriş diyaloğu ({ title, confirm, fields }); değerleri ya da nil döndürür.
aiLib.itemPicker({ title, target? })Admin araçları: ai-core’un eşya ızgarası.
aiLib.skillCheck(difficulty, keys?)Beceri kontrolü; her aşama vurulduysa true.
aiLib.lockpick({ difficulty?, pins?, picks? })'opened', 'broken' ya da 'cancelled'.
aiLib.showPrompt(id, text), hidePrompt(id), onPromptPressed(handler)ai-lib’in istemi.
aiLib.Points.new()Etkileşim noktaları: :add(id, options), :addModel(id, options), :addVehicle(id, options), :remove(id), :clear(), :refresh().
aiLib.Zones.new()Alanlar: :add(id, options), :remove, :clear, :isInside.
aiLib.LocalPed.new(options)Yerel bir ped (attach, seat); :remove().
aiLib.Blips.new(), aiLib.Blips.create(options)Blip’ler: :add, :get, :remove, :clear.
aiLib.Keybind.new(options)Değiştirilebilir bir tuş (hint, icon, hintLabel); :disable(state).
aiLib.playercoords, heading, distanceTo, freeze, teleport (ground = 'find' ya da z yok: x / y altındaki zemin), playAnim, stopAnim.
aiLib.playerPed(serverId)Bir oyuncunun ped’i, kapsam dışında 0.
aiLib.nearestPlayer(metres, { from?, filter? })En yakın diğer oyuncunun sunucu id’si.
aiLib.nearestVehicle(metres, { networked?, notOwn?, filter? })En yakın araç.
aiLib.waitForEntity(netId, timeout?)Entity burada var olunca o, zaman aşımında 0.
aiLib.waypoint()Harita işareti { x, y }.
aiLib.onShot(handler)Yerel ped’in ateş ettiği kare.
aiLib.fadeOut(ms?), aiLib.fadeIn(ms?)Ekran kararması.
aiLib.controls.disable(reason, controls, group?), disableAll(reason, except?), enable(reason)Engellenen tuşlar.
aiLib.hud.hide(reason), show(reason), visible()HUD’ları gizler.
aiLib.keyHints.show(id, { label, keybind?, key?, icon? }), hide(id)Tuş yardım satırları.
aiLib.gestures.isHandsUp(), isPointing(), provider()Eller yukarı ve işaret etme.
aiLib.radial.add(item), remove(id), refresh()AI Core üzerinden radyal öğeler.
aiLib.inventory.openInventory(), hasItem(item, count?), currentWeapon()Aktif envanter.
aiLib.world.pauseSync(reason), resumeSync(reason)Hava ve saat senkronunu duraklatır.
aiLib.appearance.apply(ped, look), read(ped)Aktif kıyafet script’iyle görünümler.
aiLib.requestModel, requestAnimDict, requestAnimSet, requestPtfxAsset, requestTextureDict, requestWeaponAsset (name, timeout?)Bir oyun varlığını yükler.
aiLib.pedHeadshot(ped, transparent?, timeout?)Vesikalık handle’ı ve doku adı.
aiLib.locationName(coords?), vehicleLabel(vehicle), groundZ(x, y, z?)İsimler ve zemin yüksekliği.
aiLib.raycast(from, to, options?)Bir çizgi yoklaması: { coords, normal, entity } ya da nil.
Lua
local points = aiLib.Points.new()
points:add('shop', {
  coords = vector3(25.7, -1347.3, 29.5),
  label = 'Open shop',
  icon = 'basket-shopping',
  onPressed = function()
    local pick = aiLib.menu.show({ title = 'Shop', items = { { id = 'water', label = 'Water' } } })
    if pick then aiLib.callAction('myshop:buy', { pick }, { fallback = 'BUY_FAILED' }) end
  end,
})

Sunucu

FonksiyonNe
aiLib.onClientCallback(name, handler, { rate?, lock?, ace? })Client callback’lerini kapıdan geçirerek cevaplar.
aiLib.onClientEvent(name, handler, options?)Kapıdan geçen bir client net olayı.
aiLib.triggerClientCallback(name, source, args?, timeout?)Bir client’a sorar; cevabı ve bir hatayı döndürür.
aiLib.isAdmin(source, ace?)Oyuncu bir ai-core admini mi (ya da ace’ye sahip mi).
aiLib.RateLimit.new(count, windowMs)Oyuncu başına patlama sınırı: limit:take(source), limit:release(source).
aiLib.progressFor(source, options)Oyuncunun client’ında ai-lib’in çubuğu, süresini sunucu tutar (bekler).
aiLib.minigameFor(source, options)Oyuncunun client’ında bir mini oyun: 'won', 'lost' ya da 'broken' (bekler).
aiLib.addCommand(name, { help?, params?, restricted? }, handler)Bir komut; handler(source, args, raw).
aiLib.onCharacter({ loaded?, unloaded? })Karakter yükleme ve bırakma; yeniden başlatmadan önce yüklenmiş karakterleri tekrar oynatır.
aiLib.onlinecharacter, name(src, fallback), jobs, gangs, jobGrade, gangGrade, dutyJob, sources (her çağrıda ai-core’a sorar).
aiLib.spawnVehicle(options)Bir sunucu aracı (model, coords, asker, plate, fuel, keysTo, purpose, driver, seats, props, setup, locked, bucket, persistent, bags); bekler.
aiLib.playersNear(source, radius), playersNearEntity(entity, radius)Çevredeki oyuncular.
aiLib.nearestPlayerTo(source, metres, filter?), nearestVehicleTo(source, metres, filter?)En yakın oyuncu ya da araç.
aiLib.vehicleFromNet(netId), vehicleNearPlayer(source, netId, { metres?, driver? })Bir client’ın net id’sinden canlı araç ya da 0.
aiLib.aiLog(channel, message, options?)ai-core üzerinden bir log.
aiLib.inventoryaddItem, removeItem, getItemCount, hasItem, canCarryItem, getItems, clearInventory, registerStash, openInventory, registerUsableItem, getItemDefinition.
aiLib.vehicleKeys.give(source, vehicle, purpose?), remove, hasAI Core üzerinden araç anahtarları.
aiLib.phonenumber, sourceOf, hasPhone, mail, message, notify.
aiLib.dispatch.alert(alert)AI Core üzerinden bir polis ihbarı.
aiLib.prison.jail(src, minutes, by?), release(src), timeLeft(src)Hapis cezaları.
aiLib.worldgetWeather, setWeather, getTime, setTime, setBlackout, freezeTime.
aiLib.appearance.get(charId), provider()Bir karakterin kayıtlı görünümü (bekler).

Lua tarafında olmayanlar: admin paneli sınıfları, PendingActions, PlayerMap, Cooldowns, katı girdi okuyucuları, state bag sınıfları (Lua Entity(e).state’i kendisi okur) ve veritabanı (Lua resource’lar ai-mysql’in oxmysql API’sini kullanır).

Bu sayfada