AI Core
Véhiculesai-fuel

ai-fuel pour les développeurs

Comment lire et régler le carburant quand ai-fuel tourne, ses state bags et ses events internes.

ai-fuel n’a aucun export. Le carburant d’un véhicule est le state bag d’entité fuel (0-100), conservé par le serveur.

Lisez et réglez le carburant avec fuel.get(vehicle) et fuel.set(vehicle, level) de la lib (serveur ; fuel.get aussi sur le client). Ils passent par la couche carburant d’ai-core (en Lua, appelez ses exports GetVehicleFuel et SetVehicleFuel sur ai-core), qui lit et écrit le bag fuel tant qu’ai-fuel tourne et parle à l’autre script de carburant quand le serveur en fait tourner un à la place. Votre script fonctionne alors avec n’importe quel script de carburant.

Lire et régler le carburant

import { fuel } from "@aicore-fivem/lib/server";

// Remplir un véhicule que le joueur vient de payer dans une station personnalisée.
export function fillUp(vehicle: number): void {
  const before = fuel.get(vehicle);
  fuel.set(vehicle, 100);
  console.log(`fuel ${before} -> 100`);
}

N’écrivez pas le bag fuel depuis un client : le serveur refuse les écritures des clients (mode strict des state bags), et ai-fuel n’accepte de toute façon que des valeurs inférieures venant du client du conducteur.

State bags

BagSurTypeSignification
fuelentité véhiculenumberCarburant 0-100. Réglé par le serveur. ai-vehicles l’initialise quand il fait apparaître un véhicule possédé.
aiFuelNozzlejoueur{ x, y, z, netId } | undefinedLa pompe dont le joueur tient le pistolet (x, y, z), et le network id du véhicule dans lequel il est branché (netId, null tant qu’il est en main). Chaque client à proximité l’utilise pour dessiner le pistolet et le tuyau.
Lua (client)
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
local level = Entity(vehicle).state.fuel -- nombre 0-100, ou nil avant le premier réglage

Events

Ce sont les events client vers serveur propres à ai-fuel. Ils sont listés pour que vous puissiez les reconnaître dans les logs ; ne les appelez pas depuis d’autres scripts.

NomTypeCe qu’il fait
ai-fuel:consumeevent client(netId, fuel) : le conducteur signale un niveau inférieur. Limité à 2 par seconde ; seules les valeurs inférieures sont prises en compte.
ai-fuel:takeNozzlecallback client(x, y, z) : prendre le pistolet d’une pompe. Limité à 1 par seconde.
ai-fuel:plugcallback client(netId | null) : brancher le pistolet dans un véhicule, ou le retirer. Limité à 2 par seconde.
ai-fuel:returnNozzleevent clientRaccrocher le pistolet. Limité à 1 par seconde.
ai-fuel:refuelcallback clientExécute la barre de progression, facture et remplit le réservoir.

Sur cette page