AI Core
Référence de l’APILib : shared et fivem

Véhicules

plateOf, normalizePlate, vehicleTypeOfClass, toVehicleProps et toVehicleSetup : les plaques comme clés, les types de spawn et l’apparence des véhicules à partir de données non fiables.

TypeScript
import { plateOf } from "@aicore-fivem/lib/fivem"; // aussi sur /client et /server
import { normalizePlate, vehicleTypeOfClass, toVehicleProps, toVehicleSetup } from "@aicore-fivem/lib/shared";

Plaques

GTA complète les plaques à 8 caractères avec des espaces (" AI 1 "). Chaque script qui garde des données par plaque (clés, carburant, garages) utilise comme clé la plaque sans espaces autour et en majuscules, pour que le même véhicule corresponde partout.

plateOf

La plaque d’un véhicule telle que les clés l’utilisent : lue sur l’entité, sans espaces autour, en majuscules.

Côté : client et serveur · Attend : non

Signature
plateOf(vehicle: number): string

Lua : pas d’équivalent ; utilisez GetVehicleNumberPlateText(vehicle):match('^%s*(.-)%s*$'):upper().

Paramètres

Prop

Type

Retour

string : la plaque, sans espaces autour et en majuscules.

Exemple

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

Le même nettoyage des espaces et passage en majuscules pour une plaque que vous avez déjà sous forme de texte (tapée par un joueur, stockée en base de données, envoyée par un autre script).

Côté : client, serveur et NUI · Attend : non

Signature
normalizePlate(plate: string): string

Lua : pas d’équivalent ; utilisez plate:match('^%s*(.-)%s*$'):upper().

Paramètres

Prop

Type

Retour

string : sans espaces autour, en majuscules.

Exemple

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

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

Spawn

vehicleTypeOfClass

Transforme une classe de véhicule GTA (GetVehicleClassFromName) en type dont CreateVehicleServerSetter a besoin : "bike", "boat", "heli", "plane", "train" ou "automobile". spawnVehicle de la lib le fait pour vous ; ne l’utilisez que quand vous appelez vous-même CreateVehicleServerSetter.

Côté : client, serveur et NUI · Attend : non

Signature
vehicleTypeOfClass(vehicleClass: number): string

Lua : pas d’équivalent.

Paramètres

Prop

Type

Retour

string : le type de spawn. Chaque classe non listée ci-dessus donne "automobile".

Exemple

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

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

GetVehicleClassFromName est une native client. Le serveur apprend le type d’un modèle auprès d’un client (spawnVehicle de la lib le demande pour vous au client d’ai-core).

Apparence à partir de données non fiables

toVehicleProps

Vérifie des props de véhicule stockées ou reçues et renvoie un objet VehicleProps propre, ou null quand les données n’ont pas cette forme. Les parties facultatives manquantes reçoivent des valeurs par défaut (mods d’origine, pas de livrée, santé pleine) ; les champs inconnus sont retirés ; la plaque est coupée à 8 caractères.

Côté : client, serveur et NUI · Attend : non

Signature
toVehicleProps(value: unknown): VehicleProps | null

Lua : pas d’équivalent.

Paramètres

Prop

Type

Retour

VehicleProps, ou null quand value n’est pas un objet, que v ne vaut pas 1, que model ou plate manque, ou que l’un de colors, extraColors, neonColor, tyreSmoke, mods, extras, neon manque ou n’a pas la bonne longueur.

Exemple

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

Vérifie champ par champ un VehicleSetup reçu : les champs invalides sont retirés, les bons gardés. Utilisez-le sur une configuration qui vient d’un client ou d’une autre ressource avant de la passer à spawnVehicle.

Côté : client, serveur et NUI · Attend : non

Signature
toVehicleSetup(value: unknown): VehicleSetup | null

Lua : pas d’équivalent.

Paramètres

Prop

Type

Retour

VehicleSetup avec seulement les champs valides (couleurs 0-255, livery 0-100, windowTint 0-6, dirt 0-15 ; maxed et engineOn seulement quand ils valent exactement true). null quand value n’est pas un objet.

Exemple

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

toVehicleSetup({ colors: [27, 27], windowTint: 9, maxed: "yes" });
// { colors: [27, 27], windowTint: undefined, maxed: undefined, ... } : les champs invalides sont retirés

Un client ne doit jamais choisir maxed: true ou une couleur gratuite pour un véhicule qu’il paie : vérifiez sur le serveur le prix de ce que contient la configuration.

Sur cette page