AI Core
API-ReferenzAI Core: Server-Exports

Kraftstoff

Den Tankstand eines Fahrzeugs lesen und setzen, über das Tank-Skript, das der Server nutzt.

Kraftstoff läuft über ai-core, nie über die eigenen Exports, Decorators oder State Bags eines Tank-Skripts (ai-fuel eingeschlossen). ai-core leitet jeden Aufruf an das aktive Tank-Skript weiter: das, das die Panel-Einstellung Fuel script (Tank-Skript) wählt, oder das erste, das läuft (ai-fuel, ox_fuel, LegacyFuel und die anderen aus der Kompatibilitätsliste). Ohne Tank-Skript ist der Stand einfach die State Bag fuel des Fahrzeugs.

Ein Stand ist eine Zahl von 0 (leer) bis 100 (voll). Ein Fahrzeug ist ein Server-Entity-Handle.

GetFuelSystem

Der Ressourcenname des Tank-Skripts, an das ai-core weiterleitet.

Seite: Server · Wartet: nein · Lib: fuel.provider()

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

Parameter

Keine.

Rückgabe

string | null: der Ressourcenname des Tank-Skripts. null, wenn keines läuft.

Beispiel

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

Der Tankstand eines Fahrzeugs.

Seite: Server · Wartet: nein · Lib: fuel.get (Server); auf dem Client liest fuel.get(vehicle) der Client-Lib die State Bag, die ai-core führt

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

Parameter

Prop

Type

Rückgabe

number | null: der Stand, 0-100. null, wenn das Fahrzeug noch keinen Stand hat oder vehicle kein existierendes Fahrzeug ist.

Beispiel

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

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

// Ein Mechaniker liest den Tank des Autos vor sich.
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

Setzt den Tankstand eines Fahrzeugs.

Seite: Server · Wartet: nein · Lib: fuel.set (und spawnVehicle({ fuel }) setzt ihn beim Erstellen)

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

Parameter

Prop

Type

Rückgabe

boolean: true, wenn der Stand an das Tank-Skript übergeben wurde (oder in die State Bag geschrieben, wenn keines läuft). false, wenn vehicle kein existierendes Fahrzeug ist, level keine endliche Zahl ist oder das Tank-Skript fehlgeschlagen ist.

Bei Tank-Skripten, die den Kraftstoff im Spiel der Spieler führen, erreicht der neue Stand das Fahrzeug einen Moment später über das Spiel seines Besitzers.

Beispiel

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

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

// Ein Benzinkanister fügt dem Auto neben dem Spieler 25 % hinzu.
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 };
});

Auf dieser Seite