AI Core
Referência da APILib: compartilhada e fivem

Veículos

plateOf, normalizePlate, vehicleTypeOfClass, toVehicleProps e toVehicleSetup: placas como chaves, tipos de spawn, e visuais de veículo a partir de dados não confiáveis.

TypeScript
import { plateOf } from "@aicore-fivem/lib/fivem"; // também em /client e /server
import { normalizePlate, vehicleTypeOfClass, toVehicleProps, toVehicleSetup } from "@aicore-fivem/lib/shared";

Placas

O GTA completa as placas até 8 caracteres com espaços (" AI 1 "). Todo script que guarda dados por placa (chaves, combustível, garagens) usa a placa sem espaços nas pontas e em maiúsculas como chave, para que o mesmo veículo combine em todo lugar.

plateOf

A placa de um veículo como as chaves a usam: lida da entidade, sem espaços nas pontas, em maiúsculas.

Lado: Cliente e servidor · Espera: não

Signature
plateOf(vehicle: number): string

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

Parâmetros

Prop

Type

Retorno

string: a placa, sem espaços nas pontas e em maiúsculas.

Exemplo

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

O mesmo corte de espaços e maiúsculas para uma placa que você já tem como texto (digitada por um jogador, guardada em um banco de dados, enviada por outro script).

Lado: Cliente, servidor e NUI · Espera: não

Signature
normalizePlate(plate: string): string

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

Parâmetros

Prop

Type

Retorno

string: sem espaços nas pontas, em maiúsculas.

Exemplo

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

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

Spawn

vehicleTypeOfClass

Transforma uma classe de veículo do GTA (GetVehicleClassFromName) no tipo de que CreateVehicleServerSetter precisa: "bike", "boat", "heli", "plane", "train" ou "automobile". O spawnVehicle da lib faz isso para você; use só quando você mesmo chama CreateVehicleServerSetter.

Lado: Cliente, servidor e NUI · Espera: não

Signature
vehicleTypeOfClass(vehicleClass: number): string

Lua: sem equivalente.

Parâmetros

Prop

Type

Retorno

string: o tipo de spawn. Toda classe não listada acima é "automobile".

Exemplo

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

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

GetVehicleClassFromName é uma native de cliente. O servidor descobre o tipo de um modelo a partir de um cliente (o spawnVehicle da lib pergunta ao cliente do ai-core por você).

Visuais a partir de dados não confiáveis

toVehicleProps

Verifica props de veículo guardadas ou recebidas e retorna um objeto VehicleProps limpo, ou null quando os dados não estão nesse formato. Partes opcionais ausentes recebem padrões (mods de fábrica, sem livery, vida cheia); campos desconhecidos são descartados; a placa é cortada em 8 caracteres.

Lado: Cliente, servidor e NUI · Espera: não

Signature
toVehicleProps(value: unknown): VehicleProps | null

Lua: sem equivalente.

Parâmetros

Prop

Type

Retorno

VehicleProps, ou null quando value não é um objeto, v não é 1, model ou plate está ausente, ou um de colors, extraColors, neonColor, tyreSmoke, mods, extras, neon está ausente ou com o tamanho errado.

Exemplo

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

Verifica um VehicleSetup recebido campo por campo: campos errados são descartados, os certos mantidos. Use em uma configuração que vem de um cliente ou de outro recurso antes de passá-la para spawnVehicle.

Lado: Cliente, servidor e NUI · Espera: não

Signature
toVehicleSetup(value: unknown): VehicleSetup | null

Lua: sem equivalente.

Parâmetros

Prop

Type

Retorno

VehicleSetup só com os campos válidos (cores 0-255, livery 0-100, windowTint 0-6, dirt 0-15; maxed e engineOn só quando exatamente true). null quando value não é um objeto.

Exemplo

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

toVehicleSetup({ colors: [27, 27], windowTint: 9, maxed: "yes" });
// { colors: [27, 27], windowTint: undefined, maxed: undefined, ... }: os campos inválidos são descartados

Um cliente nunca deve escolher maxed: true ou uma cor livre para um veículo pelo qual paga: verifique no servidor o preço do que a configuração contém.

Nesta página