AI Core
Dokumentacja API

Lib: shared i fivem

@aicore-fivem/lib/shared (bez natywek, działa wszędzie) i /fivem (natywki po obu stronach) - każda funkcja z sygnaturą.

/shared nigdy nie wywołuje natywki: używaj go w kodzie NUI, w resource/common/ i po obu stronach. /fivem wywołuje natywki dostępne po obu stronach; wejścia klienckie i serwerowe go eksportują.

TypeScript
import { readInt, fail, groupDigits } from "@aicore-fivem/lib/shared";
import { resourceExport, every } from "@aicore-fivem/lib/fivem";

Eksporty między zasobami (/fivem)

FunkcjaCo
registerExport(name, handler): voidRejestruje eksport, także pod bliźniaczą nazwą ze zmienioną wielkością pierwszej litery (GetItems i getItems).
resourceExport(resource): CitizenExports[K]Typowany dostęp do eksportów innego zasobu; jeden uchwyt na plik.
optionalExport(resource): CitizenExports[K] | nullTo samo dla zasobu, który może nie działać (null, gdy zatrzymany).
callExport(resource, name, ...args): unknownEksport skryptu bez typów tutaj; przeparsuj wynik.
provideExport(resource, name, fn): voidOdpowiada na exports["<resource>"].<name> dla nazwy, którą ten zasób provide.
isResourceStarted(resource): booleanCzy zasób teraz działa.

Zasoby, harmonogram, stan (/fivem)

FunkcjaCo
every(ms, fn, { active?, name? }): JobJeden harmonogram zasobu: 0 = każda klatka. job.set(active), job.stop(), job.running.
caller(): stringZasób, który wywołuje ten eksport (ten sam, gdy wywołanie lokalne).
onStop(fn): voidDziała, gdy ten zasób się zatrzymuje.
new ByResource({ onDrop? }): set(key, value, owner = caller()), get, delete, ownerOf, values, entriesWpisy według wywołującego zasobu, usuwane, gdy ten zasób się zatrzyma.
new Reasons(): set(reason, on, owner?), has, any(), onChangeStan, który trwa, dopóki jest ustawiony jakikolwiek powód (ukryty HUD, wstrzymana synchronizacja).
plateOf(vehicle): stringTablica pojazdu, przycięta, wielkimi literami.
createLocale(), loadLocaleTexts(resource?)Teksty tłumaczeń zasobu (t(key, ...args)) i cała tabela dla NUI.
new EntityState(key, parse), new PlayerState(key, parse), new GlobalKey(key, parse), new GlobalGroup(prefix, parse)Czytniki state bagów: get, onChange; EntityState.getByNetId, GlobalGroup.ids().
stateNumber, stateBoolean, stateStringParsery dla klas stanu.
TypeScript
const fuel = new EntityState("fuel", stateNumber);
const job = every(1000, () => {
  if (cache.vehicle) updateGauge(fuel.get(cache.vehicle) ?? 100);
});

Akcje i wejście (/shared)

FunkcjaCo
fail("LANG_KEY")Odmowa { ok: false, error } dla ActionResult.
isActionOk(reply), replyError(reply, fallback)Ręczne czytanie odpowiedzi.
readInt(value, min, max), readFinite(value), readId(value), readText(value, max)Ścisłe czytniki wartości od klienta; null odmawia (NaN, Infinity, ułamki).
readVec3(value), readVec4(value)Punkty z wejścia klienta lub eksportu (obiekty albo wektory Lua); null przy złej wartości.
oneArg(read)Parser args z jedną wartością dla callbacków: { args: oneArg(readId) }.
asArgs(value)Jedna przeparsowana wartość jako wynik args.
num, int, bool, str, record, vec4 (value, fallback, ...)Czytniki treści panelu z wartością zastępczą.
isRecord(value)Sprawdzenie zwykłego obiektu.

Liczby, tekst, pozycje (/shared)

FunkcjaCo
round(value, decimals = 0), groupDigits(value, separator = ",")1,234,567.
formatWeight(grams)750 g, 1.5 kg.
normalizePlate(text)Tablica jako klucz albo do porównania.
stripGameText(text)Usuwa HTML i kody ~r~ z tekstu innego skryptu.
formatText(template, args)Symbole zastępcze {0}.
new LangTexts(): set, translate, subscribe, snapshotTeksty tłumaczeń strony NUI.
logSafe(text, max), previewJson(value, max)Niezaufany tekst i dane bezpieczne dla konsoli.
createLogger(resource)info, warn, error z nazwą zasobu na początku.
distance(a, b), flatDistance(a, b), headingTo(from, to), nearestOf(items, point, pos, max?)Matematyka wektorów (Vec3).
randomInt(min, max), pickRandom(list), rollChance(percent)Funkcje losowe.
sleep(ms), waitFor(check, timeoutMs = 10000, intervalMs = 0)Czekanie.
new ServerClock(): sync(serverNow), now(), toLocal(serverTime)Zegar serwera na kliencie, do odliczania.
gridCell(x, y, size), cellKey(cx, cy)Komórki siatki dla AreaStream.
zoneContains(shape, x, y, z), zoneBounds(shape), polyFromCorners(corners, height)Geometria stref.
vehicleTypeOfClass(vehicleClass)Klasa pojazdu na typ dla CreateVehicleServerSetter.
toVehicleProps(value), toVehicleSetup(value)Wygląd pojazdu z niezaufanego wejścia albo null.

Dane panelu (/shared)

FunkcjaCo
spec.int(min, max, optional?), spec.num(min, max, optional?)Budowniczowie specyfikacji danych dla schema.ts.
readAccess(record), ACCESS_FIELDS, accessFields(), isPublic(rule), decideAccess(...)Kto może użyć miejsca: prace, gangi, stopnie, służba.
readBlipStyle(value, fallback), BLIP_STYLE_FIELDSStyl blipa z panelu.
PLACE_PED_SPEC, placePedFields(path?), readPlacePed(value)NPC miejsca w panelu.
readRecords(raw, readOne)Plik rekordów przeparsowany raz.
new RecordObjects(source, file, readOne | records, build): rebuild(key), rebuildAll()Punkty, blipy i pedy pliku rekordów; edytowany rekord przebudowuje tylko swoje obiekty.
withoutSchemaKey(value)Plik danych bez klucza $schema.

Na tej stronie