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ą.
import { readInt, fail, groupDigits } from "@aicore-fivem/lib/shared";
import { resourceExport, every } from "@aicore-fivem/lib/fivem";Eksporty między zasobami (/fivem)
| Funkcja | Co |
|---|---|
registerExport(name, handler): void | Rejestruje 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] | null | To samo dla zasobu, który może nie działać (null, gdy zatrzymany). |
callExport(resource, name, ...args): unknown | Eksport skryptu bez typów tutaj; przeparsuj wynik. |
provideExport(resource, name, fn): void | Odpowiada na exports["<resource>"].<name> dla nazwy, którą ten zasób provide. |
isResourceStarted(resource): boolean | Czy zasób teraz działa. |
Zasoby, harmonogram, stan (/fivem)
| Funkcja | Co |
|---|---|
every(ms, fn, { active?, name? }): Job | Jeden harmonogram zasobu: 0 = każda klatka. job.set(active), job.stop(), job.running. |
caller(): string | Zasób, który wywołuje ten eksport (ten sam, gdy wywołanie lokalne). |
onStop(fn): void | Działa, gdy ten zasób się zatrzymuje. |
new ByResource({ onDrop? }): set(key, value, owner = caller()), get, delete, ownerOf, values, entries | Wpisy według wywołującego zasobu, usuwane, gdy ten zasób się zatrzyma. |
new Reasons(): set(reason, on, owner?), has, any(), onChange | Stan, który trwa, dopóki jest ustawiony jakikolwiek powód (ukryty HUD, wstrzymana synchronizacja). |
plateOf(vehicle): string | Tablica 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, stateString | Parsery dla klas stanu. |
const fuel = new EntityState("fuel", stateNumber);
const job = every(1000, () => {
if (cache.vehicle) updateGauge(fuel.get(cache.vehicle) ?? 100);
});Akcje i wejście (/shared)
| Funkcja | Co |
|---|---|
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)
| Funkcja | Co |
|---|---|
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, snapshot | Teksty 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)
| Funkcja | Co |
|---|---|
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_FIELDS | Styl 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. |