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
| Bag | Sur | Type | Signification |
|---|---|---|---|
fuel | entité véhicule | number | Carburant 0-100. Réglé par le serveur. ai-vehicles l’initialise quand il fait apparaître un véhicule possédé. |
aiFuelNozzle | joueur | { x, y, z, netId } | undefined | La 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. |
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
local level = Entity(vehicle).state.fuel -- nombre 0-100, ou nil avant le premier réglageEvents
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.
| Nom | Type | Ce qu’il fait |
|---|---|---|
ai-fuel:consume | event 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:takeNozzle | callback client | (x, y, z) : prendre le pistolet d’une pompe. Limité à 1 par seconde. |
ai-fuel:plug | callback client | (netId | null) : brancher le pistolet dans un véhicule, ou le retirer. Limité à 2 par seconde. |
ai-fuel:returnNozzle | event client | Raccrocher le pistolet. Limité à 1 par seconde. |
ai-fuel:refuel | callback client | Exécute la barre de progression, facture et remplit le réservoir. |