AI Core
Referencia de la APILib: compartido y fivem

Vehículos

plateOf, normalizePlate, vehicleTypeOfClass, toVehicleProps y toVehicleSetup: matrículas como claves, tipos de spawn y aspecto de vehículos a partir de datos no fiables.

TypeScript
import { plateOf } from "@aicore-fivem/lib/fivem"; // también en /client y /server
import { normalizePlate, vehicleTypeOfClass, toVehicleProps, toVehicleSetup } from "@aicore-fivem/lib/shared";

Matrículas

GTA rellena las matrículas hasta 8 caracteres con espacios (" AI 1 "). Cada script que guarda datos por matrícula (llaves, combustible, garajes) usa como clave la matrícula recortada y en mayúsculas, para que el mismo vehículo coincida en todas partes.

plateOf

La matrícula de un vehículo tal como la usan las claves: leída de la entidad, recortada, en mayúsculas.

Lado: Cliente y servidor · Espera: no

Firma
plateOf(vehicle: number): string

Lua: sin equivalente; usa GetVehicleNumberPlateText(vehicle):match('^%s*(.-)%s*$'):upper().

Parámetros

Prop

Type

Devuelve

string: la matrícula, recortada y en mayúsculas.

Ejemplo

resource/server/index.ts
import { plateOf, vehicleOf } from "@aicore-fivem/lib/server";

function plateOfPlayerVehicle(source: number): string | null {
  const vehicle = vehicleOf(source);
  return vehicle === 0 ? null : plateOf(vehicle);
}

normalizePlate

El mismo recorte y paso a mayúsculas para una matrícula que ya tienes como texto (escrita por un jugador, guardada en una base de datos, enviada por otro script).

Lado: Cliente, servidor y NUI · Espera: no

Firma
normalizePlate(plate: string): string

Lua: sin equivalente; usa plate:match('^%s*(.-)%s*$'):upper().

Parámetros

Prop

Type

Devuelve

string: recortada, en mayúsculas.

Ejemplo

import { normalizePlate } from "@aicore-fivem/lib/shared";

normalizePlate("  ai 123 "); // "AI 123"

Aparición

vehicleTypeOfClass

Convierte una clase de vehículo de GTA (GetVehicleClassFromName) en el tipo que necesita CreateVehicleServerSetter: "bike", "boat", "heli", "plane", "train" o "automobile". El spawnVehicle de la lib lo hace por ti; úsalo solo cuando llamas tú mismo a CreateVehicleServerSetter.

Lado: Cliente, servidor y NUI · Espera: no

Firma
vehicleTypeOfClass(vehicleClass: number): string

Lua: sin equivalente.

Parámetros

Prop

Type

Devuelve

string: el tipo de spawn. Cada clase que no está en la lista de arriba es "automobile".

Ejemplo

resource/client/index.ts
import { vehicleTypeOfClass } from "@aicore-fivem/lib/shared";

const type = vehicleTypeOfClass(GetVehicleClassFromName("frogger")); // "heli"

GetVehicleClassFromName es un native de cliente. El servidor conoce el tipo de un modelo a través de un cliente (el spawnVehicle de la lib pregunta al cliente de ai-core por ti).

Aspecto a partir de datos no fiables

toVehicleProps

Comprueba las props de vehículo guardadas o recibidas y devuelve un objeto VehicleProps limpio, o null cuando los datos no tienen esa forma. Las partes opcionales que faltan reciben valores por defecto (mejoras de serie, sin livery, salud completa); los campos desconocidos se descartan; la matrícula se corta a 8 caracteres.

Lado: Cliente, servidor y NUI · Espera: no

Firma
toVehicleProps(value: unknown): VehicleProps | null

Lua: sin equivalente.

Parámetros

Prop

Type

Devuelve

VehicleProps, o null cuando value no es un objeto, v no es 1, falta model o plate, o falta uno de colors, extraColors, neonColor, tyreSmoke, mods, extras, neon o tiene una longitud incorrecta.

Ejemplo

resource/server/index.ts
import { optionalExport } from "@aicore-fivem/lib/server";
import { toVehicleProps } from "@aicore-fivem/lib/shared";

function storedColors(vehicleId: number): [number, number] | null {
  const vehicle = optionalExport("ai-vehicles")?.GetVehicle(vehicleId);
  const props = toVehicleProps(vehicle?.props);
  return props ? props.colors : null;
}

toVehicleSetup

Comprueba campo a campo un VehicleSetup recibido: los campos incorrectos se descartan y los correctos se conservan. Úsalo en una configuración que viene de un cliente o de otro recurso antes de pasarla a spawnVehicle.

Lado: Cliente, servidor y NUI · Espera: no

Firma
toVehicleSetup(value: unknown): VehicleSetup | null

Lua: sin equivalente.

Parámetros

Prop

Type

Devuelve

VehicleSetup solo con los campos válidos (colores 0-255, livery 0-100, windowTint 0-6, dirt 0-15; maxed y engineOn solo cuando son exactamente true). null cuando value no es un objeto.

Ejemplo

import { toVehicleSetup } from "@aicore-fivem/lib/shared";

toVehicleSetup({ colors: [27, 27], windowTint: 9, maxed: "yes" });
// { colors: [27, 27], windowTint: undefined, maxed: undefined, ... }: los campos incorrectos se descartan

Un cliente nunca debe elegir maxed: true ni un color libre para un vehículo que paga: comprueba en el servidor el precio de lo que contiene la configuración.

En esta página