API-Referenz
Lib: shared und fivem
@aicore-fivem/lib/shared (keine Natives, überall nutzbar) und /fivem (Natives auf beiden Seiten) - jeder Helfer mit seiner Signatur.
/shared ruft nie ein Native auf: nutze es in NUI-Code, resource/common/ und auf beiden Seiten. /fivem ruft Natives auf, die es auf beiden Seiten gibt; die Client- und Server-Einstiege exportieren es weiter.
import { readInt, fail, groupDigits } from "@aicore-fivem/lib/shared";
import { resourceExport, every } from "@aicore-fivem/lib/fivem";Exports zwischen Ressourcen (/fivem)
| Helfer | Was |
|---|---|
registerExport(name, handler): void | Registriert einen Export, auch unter dem Zwilling mit vertauschter Schreibung des ersten Buchstabens (GetItems und getItems). |
resourceExport(resource): CitizenExports[K] | Typisierter Zugriff auf die Exports einer anderen Ressource; ein Handle pro Datei. |
optionalExport(resource): CitizenExports[K] | null | Dasselbe für eine Ressource, die eventuell nicht läuft (null, solange sie gestoppt ist). |
callExport(resource, name, ...args): unknown | Ein Export eines Skripts ohne Typen hier; parse das Ergebnis. |
provideExport(resource, name, fn): void | Beantwortet exports["<resource>"].<name> für einen Namen, den diese Ressource providet. |
isResourceStarted(resource): boolean | Ob eine Ressource gerade läuft. |
Ressourcen, Zeitplanung, Zustand (/fivem)
| Helfer | Was |
|---|---|
every(ms, fn, { active?, name? }): Job | Der eine Scheduler der Ressource: 0 = jeden Frame. job.set(active), job.stop(), job.running. |
caller(): string | Die Ressource, die diesen Export aufruft (diese selbst, wenn lokal). |
onStop(fn): void | Läuft, wenn diese Ressource stoppt. |
new ByResource({ onDrop? }): set(key, value, owner = caller()), get, delete, ownerOf, values, entries | Einträge pro aufrufender Ressource, entfernt, wenn diese Ressource stoppt. |
new Reasons(): set(reason, on, owner?), has, any(), onChange | Ein Zustand, der gilt, solange ein Grund gesetzt ist (HUD ausgeblendet, Sync pausiert). |
plateOf(vehicle): string | Das Kennzeichen eines Fahrzeugs, getrimmt und in Großbuchstaben. |
createLocale(), loadLocaleTexts(resource?) | Die Sprachtexte der Ressource (t(key, ...args)) und die ganze Tabelle für ein NUI. |
new EntityState(key, parse), new PlayerState(key, parse), new GlobalKey(key, parse), new GlobalGroup(prefix, parse) | State-Bag-Leser: get, onChange; EntityState.getByNetId, GlobalGroup.ids(). |
stateNumber, stateBoolean, stateString | Parser für die State-Klassen. |
const fuel = new EntityState("fuel", stateNumber);
const job = every(1000, () => {
if (cache.vehicle) updateGauge(fuel.get(cache.vehicle) ?? 100);
});Aktionen und Eingaben (/shared)
| Helfer | Was |
|---|---|
fail("LANG_KEY") | Eine Ablehnung { ok: false, error } für ein ActionResult. |
isActionOk(reply), replyError(reply, fallback) | Eine Antwort von Hand lesen. |
readInt(value, min, max), readFinite(value), readId(value), readText(value, max) | Strikte Leser für Client-Werte; null lehnt ab (NaN, Infinity, Brüche). |
readVec3(value), readVec4(value) | Punkte aus Client- oder Export-Eingaben (Objekte oder Lua-Vektoren); null bei einem falschen Wert. |
oneArg(read) | Ein args-Parser für einen Wert bei Callbacks: { args: oneArg(readId) }. |
asArgs(value) | Ein geparster Wert als args-Ergebnis. |
num, int, bool, str, record, vec4 (value, fallback, ...) | Leser für Panel-Inhalte mit Ersatzwert. |
isRecord(value) | Prüfung auf ein einfaches Objekt. |
Zahlen, Text, Positionen (/shared)
| Helfer | Was |
|---|---|
round(value, decimals = 0), groupDigits(value, separator = ",") | 1,234,567. |
formatWeight(grams) | 750 g, 1.5 kg. |
normalizePlate(text) | Ein Kennzeichen als Schlüssel oder zum Vergleichen. |
stripGameText(text) | HTML und ~r~-Codes aus dem Text eines anderen Skripts entfernt. |
formatText(template, args) | {0}-Platzhalter. |
new LangTexts(): set, translate, subscribe, snapshot | Die Sprachtexte einer NUI-Seite. |
logSafe(text, max), previewJson(value, max) | Unsichere Texte und Daten sicher für die Konsole gemacht. |
createLogger(resource) | info, warn, error mit dem Ressourcennamen davor. |
distance(a, b), flatDistance(a, b), headingTo(from, to), nearestOf(items, point, pos, max?) | Vektorrechnung (Vec3). |
randomInt(min, max), pickRandom(list), rollChance(percent) | Zufallshelfer. |
sleep(ms), waitFor(check, timeoutMs = 10000, intervalMs = 0) | Warten. |
new ServerClock(): sync(serverNow), now(), toLocal(serverTime) | Die Server-Uhr auf einem Client, für Countdowns. |
gridCell(x, y, size), cellKey(cx, cy) | Rasterzellen für AreaStream. |
zoneContains(shape, x, y, z), zoneBounds(shape), polyFromCorners(corners, height) | Zonengeometrie. |
vehicleTypeOfClass(vehicleClass) | Eine Fahrzeugklasse zum Typ für CreateVehicleServerSetter. |
toVehicleProps(value), toVehicleSetup(value) | Fahrzeugaussehen aus unsicherer Eingabe, oder null. |
Panel-Daten (/shared)
| Helfer | Was |
|---|---|
spec.int(min, max, optional?), spec.num(min, max, optional?) | Builder für Datenspezifikationen in schema.ts. |
readAccess(record), ACCESS_FIELDS, accessFields(), isPublic(rule), decideAccess(...) | Wer einen Ort nutzen darf: Jobs, Gangs, Ränge, im Dienst. |
readBlipStyle(value, fallback), BLIP_STYLE_FIELDS | Ein Blip-Stil aus dem Panel. |
PLACE_PED_SPEC, placePedFields(path?), readPlacePed(value) | Der NPC eines Ortes im Panel. |
readRecords(raw, readOne) | Eine Datensatz-Datei, einmal geparst. |
new RecordObjects(source, file, readOne | records, build): rebuild(key), rebuildAll() | Punkte, Blips und Peds einer Datensatz-Datei; ein bearbeiteter Datensatz baut nur seine eigenen Objekte neu. |
withoutSchemaKey(value) | Eine Datendatei ohne ihren $schema-Schlüssel. |