AI Core
Référence de l’APIAI Core : exports serveur

Carburant

Lire et fixer le niveau de carburant d’un véhicule via le script de carburant qu’utilise le serveur.

Le carburant passe par ai-core, jamais par les exports, décorateurs ou state bags propres à un script de carburant (ai-fuel compris). ai-core transmet chaque appel au script de carburant actif : celui que choisit le réglage Fuel script du panneau, ou le premier qui tourne (ai-fuel, ox_fuel, LegacyFuel et les autres de la liste de compatibilité). Sans script de carburant, le niveau est simplement le state bag fuel du véhicule.

Un niveau est un nombre de 0 (vide) à 100 (plein). Un véhicule est un handle d’entité serveur.

GetFuelSystem

Le nom de ressource du script de carburant auquel ai-core transmet.

Côté : Serveur · Attend : non · Lib : fuel.provider()

Signature
GetFuelSystem(): string | null
Lua
local system = exports['ai-core']:GetFuelSystem() -- 'ai-fuel', 'ox_fuel'... ou nil

Paramètres

Aucun.

Retour

string | null : le nom de ressource du script de carburant. null quand aucun ne tourne.

Exemple

import { addCommand, resourceExport } from "@aicore-fivem/lib/server";

const core = resourceExport("ai-core");

addCommand("fuelsystem", { help: "Shows the fuel script in use", restricted: true }, () => {
  console.log(core.GetFuelSystem() ?? "none: fuel is only the state bag");
});

GetVehicleFuel

Le niveau de carburant d’un véhicule.

Côté : Serveur · Attend : non · Lib : fuel.get (serveur) ; sur le client, fuel.get(vehicle) de la lib client lit le state bag que tient ai-core

Signature
GetVehicleFuel(vehicle: number): number | null
Lua
local level = exports['ai-core']:GetVehicleFuel(vehicle) -- 0-100 ou nil

Paramètres

Prop

Type

Retour

number | null : le niveau, 0-100. null quand le véhicule n’a pas encore de niveau, ou que vehicle n’est pas un véhicule existant.

Exemple

import { onClientCallback, resourceExport, vehicleNearPlayer } from "@aicore-fivem/lib/server";
import { fail, oneArg, readId } from "@aicore-fivem/lib/shared";

const core = resourceExport("ai-core");

// Un mécanicien lit le réservoir de la voiture devant lui.
onClientCallback("myscript:checkTank", { args: oneArg(readId) }, (source, netId) => {
  const vehicle = vehicleNearPlayer(source, netId, { metres: 4 });
  if (!vehicle) return fail("TOO_FAR");
  return { ok: true, level: core.GetVehicleFuel(vehicle) };
});

SetVehicleFuel

Fixe le niveau de carburant d’un véhicule.

Côté : Serveur · Attend : non · Lib : fuel.set (et spawnVehicle({ fuel }) le fixe à la création)

Signature
SetVehicleFuel(vehicle: number, level: number): boolean
Lua
local ok = exports['ai-core']:SetVehicleFuel(vehicle, 100.0)

Paramètres

Prop

Type

Retour

boolean : true quand le niveau a été transmis au script de carburant (ou écrit dans le state bag quand aucun ne tourne). false quand vehicle n’est pas un véhicule existant, que level n’est pas un nombre fini, ou que le script de carburant a échoué.

Pour les scripts de carburant qui gardent le carburant dans le jeu des joueurs, le nouveau niveau atteint le véhicule via le jeu de son propriétaire un instant plus tard.

Exemple

import { onClientCallback, resourceExport, vehicleNearPlayer } from "@aicore-fivem/lib/server";
import { fail, oneArg, readId } from "@aicore-fivem/lib/shared";

const core = resourceExport("ai-core");

// Un jerrican ajoute 25 % à la voiture à côté du joueur.
onClientCallback("myscript:jerryCan", { args: oneArg(readId), lock: true }, (source, netId) => {
  const vehicle = vehicleNearPlayer(source, netId, { metres: 3 });
  if (!vehicle) return fail("TOO_FAR");
  if (!core.RemoveItem(source, "jerrycan")) return fail("NO_JERRYCAN");
  core.SetVehicleFuel(vehicle, (core.GetVehicleFuel(vehicle) ?? 0) + 25);
  return { ok: true };
});

Sur cette page