Referencia de la API
Lib: shared y fivem
@aicore-fivem/lib/shared (sin natives, usable en cualquier sitio) y /fivem (natives en ambos lados) - cada utilidad con su firma.
/shared nunca llama a un native: úsalo en código NUI, en resource/common/ y en ambos lados. /fivem llama a natives que existen en ambos lados; las entradas de cliente y servidor lo reexportan.
import { readInt, fail, groupDigits } from "@aicore-fivem/lib/shared";
import { resourceExport, every } from "@aicore-fivem/lib/fivem";Exports entre recursos (/fivem)
| Utilidad | Qué |
|---|---|
registerExport(name, handler): void | Registra un export, también bajo su gemelo con la primera letra en la otra caja (GetItems y getItems). |
resourceExport(resource): CitizenExports[K] | Acceso tipado a los exports de otro recurso; un handle por archivo. |
optionalExport(resource): CitizenExports[K] | null | Lo mismo para un recurso que puede no estar en marcha (null mientras está detenido). |
callExport(resource, name, ...args): unknown | Un export de un script sin tipos aquí; valida el resultado. |
provideExport(resource, name, fn): void | Responde a exports["<resource>"].<name> para un nombre del que este recurso hace provide. |
isResourceStarted(resource): boolean | Si un recurso está en marcha ahora. |
Recursos, planificación, estado (/fivem)
| Utilidad | Qué |
|---|---|
every(ms, fn, { active?, name? }): Job | El único planificador del recurso: 0 = cada frame. job.set(active), job.stop(), job.running. |
caller(): string | El recurso que llama a este export (este mismo si es local). |
onStop(fn): void | Se ejecuta cuando este recurso se detiene. |
new ByResource({ onDrop? }): set(key, value, owner = caller()), get, delete, ownerOf, values, entries | Entradas por recurso que llama, quitadas cuando ese recurso se detiene. |
new Reasons(): set(reason, on, owner?), has, any(), onChange | Un estado que se mantiene mientras haya algún motivo (HUD oculto, sincronización pausada). |
plateOf(vehicle): string | La matrícula de un vehículo, recortada y en mayúsculas. |
createLocale(), loadLocaleTexts(resource?) | Los textos de idioma del recurso (t(key, ...args)), y la tabla completa para una NUI. |
new EntityState(key, parse), new PlayerState(key, parse), new GlobalKey(key, parse), new GlobalGroup(prefix, parse) | Lectores de state bags: get, onChange; EntityState.getByNetId, GlobalGroup.ids(). |
stateNumber, stateBoolean, stateString | Parsers para las clases de estado. |
const fuel = new EntityState("fuel", stateNumber);
const job = every(1000, () => {
if (cache.vehicle) updateGauge(fuel.get(cache.vehicle) ?? 100);
});Acciones y entrada (/shared)
| Utilidad | Qué |
|---|---|
fail("LANG_KEY") | Un rechazo { ok: false, error } para un ActionResult. |
isActionOk(reply), replyError(reply, fallback) | Leen una respuesta a mano. |
readInt(value, min, max), readFinite(value), readId(value), readText(value, max) | Lectores estrictos de valores del cliente; null rechaza (NaN, Infinity, decimales). |
readVec3(value), readVec4(value) | Puntos desde la entrada del cliente o de un export (objetos o vectores de Lua); null ante un valor erróneo. |
oneArg(read) | Un parser args de un solo valor para callbacks: { args: oneArg(readId) }. |
asArgs(value) | Un valor validado como resultado de args. |
num, int, bool, str, record, vec4 (value, fallback, ...) | Lectores del contenido del panel con un valor de respaldo. |
isRecord(value) | Comprueba un objeto plano. |
Números, texto, posiciones (/shared)
| Utilidad | Qué |
|---|---|
round(value, decimals = 0), groupDigits(value, separator = ",") | 1,234,567. |
formatWeight(grams) | 750 g, 1.5 kg. |
normalizePlate(text) | Una matrícula como clave o para comparar. |
stripGameText(text) | Quita el HTML y los códigos ~r~ del texto de otro script. |
formatText(template, args) | Marcadores {0}. |
new LangTexts(): set, translate, subscribe, snapshot | Los textos de idioma de una página NUI. |
logSafe(text, max), previewJson(value, max) | Texto y datos no fiables preparados para la consola. |
createLogger(resource) | info, warn, error con el nombre del recurso delante. |
distance(a, b), flatDistance(a, b), headingTo(from, to), nearestOf(items, point, pos, max?) | Matemática de vectores (Vec3). |
randomInt(min, max), pickRandom(list), rollChance(percent) | Utilidades de azar. |
sleep(ms), waitFor(check, timeoutMs = 10000, intervalMs = 0) | Esperas. |
new ServerClock(): sync(serverNow), now(), toLocal(serverTime) | El reloj del servidor en un cliente, para cuentas atrás. |
gridCell(x, y, size), cellKey(cx, cy) | Celdas de cuadrícula para AreaStream. |
zoneContains(shape, x, y, z), zoneBounds(shape), polyFromCorners(corners, height) | Geometría de zonas. |
vehicleTypeOfClass(vehicleClass) | Una clase de vehículo al tipo de CreateVehicleServerSetter. |
toVehicleProps(value), toVehicleSetup(value) | El aspecto de un vehículo desde una entrada no fiable, o null. |
Datos del panel (/shared)
| Utilidad | Qué |
|---|---|
spec.int(min, max, optional?), spec.num(min, max, optional?) | Constructores de especificaciones de datos para schema.ts. |
readAccess(record), ACCESS_FIELDS, accessFields(), isPublic(rule), decideAccess(...) | Quién puede usar un lugar: trabajos, bandas, rangos, de servicio. |
readBlipStyle(value, fallback), BLIP_STYLE_FIELDS | Un estilo de blip del panel. |
PLACE_PED_SPEC, placePedFields(path?), readPlacePed(value) | El NPC de un lugar en el panel. |
readRecords(raw, readOne) | Un archivo de registros validado una vez. |
new RecordObjects(source, file, readOne | records, build): rebuild(key), rebuildAll() | Puntos, blips y peds de un archivo de registros; un registro editado reconstruye solo sus propios objetos. |
withoutSchemaKey(value) | Un archivo de datos sin su clave $schema. |