AI Core
Referência da APIAI Core: exports de servidor

Combustível

Leia e defina o nível de combustível de um veículo pelo script de combustível que o servidor roda.

O combustível passa pelo ai-core, nunca pelos exports, decorators ou state bags próprios de um script de combustível (ai-fuel incluído). O ai-core encaminha cada chamada ao script de combustível ativo: o que a configuração Fuel script do painel escolhe, ou o primeiro que estiver rodando (ai-fuel, ox_fuel, LegacyFuel e os outros da lista de compatibilidade). Sem um script de combustível, o nível é só o state bag fuel do veículo.

Um nível é um número de 0 (vazio) a 100 (cheio). Um veículo é um handle de entidade do servidor.

GetFuelSystem

O nome do recurso do script de combustível para o qual o ai-core encaminha.

Lado: Servidor · Espera: não · Lib: fuel.provider()

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

Parâmetros

Nenhum.

Retorno

string | null: o nome do recurso do script de combustível. null quando nenhum está rodando.

Exemplo

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

O nível de combustível de um veículo.

Lado: Servidor · Espera: não · Lib: fuel.get (servidor); no cliente, o fuel.get(vehicle) da lib de cliente lê o state bag que o ai-core mantém

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

Parâmetros

Prop

Type

Retorno

number | null: o nível, 0-100. null quando o veículo ainda não tem nível, ou vehicle não é um veículo existente.

Exemplo

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

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

// Um mecânico lê o tanque do carro à sua frente.
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

Define o nível de combustível de um veículo.

Lado: Servidor · Espera: não · Lib: fuel.set (e spawnVehicle({ fuel }) o define na criação)

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

Parâmetros

Prop

Type

Retorno

boolean: true quando o nível foi entregue ao script de combustível (ou gravado no state bag quando nenhum está rodando). false quando vehicle não é um veículo existente, level não é um número finito ou o script de combustível falhou.

Para scripts de combustível que guardam o combustível no jogo dos jogadores, o novo nível chega ao veículo pelo jogo do dono dele um momento depois.

Exemplo

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

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

// Um galão adiciona 25% ao carro ao lado do jogador.
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 };
});

Nesta página