AI Core
Referencia de la APIAI Core: exports de servidor

Combustible

Lee y pon el nivel de combustible de un vehículo a través del script de combustible que tenga el servidor.

El combustible pasa por ai-core, nunca por los exports, decorators o state bags propios de un script de combustible (ai-fuel incluido). ai-core reenvía cada llamada al script de combustible activo: el que elige el ajuste Fuel script (script de combustible) del panel, o el primero que esté en marcha (ai-fuel, ox_fuel, LegacyFuel y los demás de la lista de compatibilidad). Sin un script de combustible, el nivel es simplemente el state bag fuel del vehículo.

Un nivel es un número de 0 (vacío) a 100 (lleno). Un vehículo es un handle de entidad del servidor.

GetFuelSystem

El nombre de recurso del script de combustible al que reenvía ai-core.

Lado: Servidor · Espera: no · Lib: fuel.provider()

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

Parámetros

Ninguno.

Devuelve

string | null: el nombre de recurso del script de combustible. null cuando no hay ninguno en marcha.

Ejemplo

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

El nivel de combustible de un vehículo.

Lado: Servidor · Espera: no · Lib: fuel.get (servidor); en el cliente, el fuel.get(vehicle) de la lib de cliente lee el state bag que mantiene ai-core

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

Parámetros

Prop

Type

Devuelve

number | null: el nivel, 0-100. null cuando el vehículo aún no tiene nivel, o vehicle no es un vehículo existente.

Ejemplo

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

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

// Un mecánico lee el depósito del coche que tiene delante.
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

Pone el nivel de combustible de un vehículo.

Lado: Servidor · Espera: no · Lib: fuel.set (y spawnVehicle({ fuel }) lo pone al crearlo)

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

Parámetros

Prop

Type

Devuelve

boolean: true cuando el nivel se entregó al script de combustible (o se escribió en el state bag cuando no hay ninguno en marcha). false cuando vehicle no es un vehículo existente, level no es un número finito o el script de combustible falló.

En los scripts de combustible que guardan el combustible en los juegos de los jugadores, el nuevo nivel llega al vehículo a través del juego de su dueño un momento después.

Ejemplo

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

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

// Un bidón añade un 25% al coche que está junto al jugador.
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 };
});

En esta página