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.
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
plateOf(vehicle: number): stringLua : 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
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
normalizePlate(plate: string): stringLua : 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
vehicleTypeOfClass(vehicleClass: number): stringLua : pas d’équivalent.
Paramètres
Prop
Type
Retour
string : le type de spawn. Chaque classe non listée ci-dessus donne "automobile".
Exemple
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
toVehicleProps(value: unknown): VehicleProps | nullLua : 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
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
toVehicleSetup(value: unknown): VehicleSetup | nullLua : 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ésUn 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.