AI Core
Dokumentacja APIAI Core: eksporty serwerowe

Paliwo

Odczytuj i ustawiaj poziom paliwa pojazdu przez skrypt paliwa, którego używa serwer.

Paliwo przechodzi przez ai-core, nigdy przez własne eksporty, dekoratory lub state bagi skryptu paliwa (łącznie z ai-fuel). ai-core przekazuje każde wywołanie do aktywnego skryptu paliwa: tego, który wybiera ustawienie Fuel script w panelu, albo pierwszego działającego (ai-fuel, ox_fuel, LegacyFuel i inne z listy zgodności). Bez skryptu paliwa poziom to po prostu state bag fuel pojazdu.

Poziom to liczba od 0 (pusty) do 100 (pełny). Pojazd to serwerowy uchwyt encji.

GetFuelSystem

Nazwa zasobu skryptu paliwa, do którego ai-core przekazuje wywołania.

Strona: Serwer · Czeka: nie · Lib: fuel.provider()

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

Parametry

Brak.

Zwraca

string | null: nazwa zasobu skryptu paliwa. null, gdy żaden nie działa.

Przykład

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

Poziom paliwa pojazdu.

Strona: Serwer · Czeka: nie · Lib: fuel.get (serwer); na kliencie fuel.get(vehicle) z klienckiego liba czyta state bag, który prowadzi ai-core

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

Parametry

Prop

Type

Zwraca

number | null: poziom, 0-100. null, gdy pojazd nie ma jeszcze poziomu albo vehicle nie jest istniejącym pojazdem.

Przykład

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

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

// Mechanik odczytuje bak samochodu przed sobą.
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

Ustawia poziom paliwa pojazdu.

Strona: Serwer · Czeka: nie · Lib: fuel.set (a spawnVehicle({ fuel }) ustawia go przy tworzeniu)

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

Parametry

Prop

Type

Zwraca

boolean: true, gdy poziom został przekazany skryptowi paliwa (lub zapisany w state bagu, gdy żaden nie działa). false, gdy vehicle nie jest istniejącym pojazdem, level nie jest skończoną liczbą albo skrypt paliwa zawiódł.

Przy skryptach paliwa, które trzymają paliwo w grach graczy, nowy poziom dociera do pojazdu przez grę jego właściciela chwilę później.

Przykład

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

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

// Kanister dodaje 25% samochodowi obok gracza.
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 };
});

Na tej stronie