AI Core
Справочник APIAI Core: серверные экспорты

Топливо

Читать и задавать уровень топлива транспорта через тот скрипт топлива, который использует сервер.

Топливо идёт через ai-core, а не через собственные экспорты, декораторы или state bag скрипта топлива (включая ai-fuel). ai-core передаёт каждый вызов активному скрипту топлива: тому, что выбран в настройке панели Fuel script, или первому запущенному (ai-fuel, ox_fuel, LegacyFuel и остальные из списка совместимости). Без скрипта топлива уровень - это просто state bag fuel транспорта.

Уровень - это число от 0 (пусто) до 100 (полный бак). Транспорт задаётся серверным хэндлом сущности.

GetFuelSystem

Имя ресурса скрипта топлива, которому ai-core передаёт вызовы.

Сторона: сервер · Ожидание: нет · Библиотека: fuel.provider()

Сигнатура
GetFuelSystem(): string | null
Lua
local system = exports['ai-core']:GetFuelSystem() -- 'ai-fuel', 'ox_fuel'... или nil

Параметры

Нет.

Возвращает

string | null: имя ресурса скрипта топлива. null, когда ни один не работает.

Пример

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

Уровень топлива транспорта.

Сторона: сервер · Ожидание: нет · Библиотека: fuel.get (сервер); на клиенте fuel.get(vehicle) из клиентской библиотеки читает state bag, который ведёт ai-core

Сигнатура
GetVehicleFuel(vehicle: number): number | null
Lua
local level = exports['ai-core']:GetVehicleFuel(vehicle) -- 0-100 или nil

Параметры

Prop

Type

Возвращает

number | null: уровень, 0-100. null, когда у транспорта ещё нет уровня или vehicle не является существующим транспортом.

Пример

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

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

// Механик смотрит бак машины перед собой.
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

Задаёт уровень топлива транспорта.

Сторона: сервер · Ожидание: нет · Библиотека: fuel.set (а spawnVehicle({ fuel }) задаёт его при создании)

Сигнатура
SetVehicleFuel(vehicle: number, level: number): boolean
Lua
local ok = exports['ai-core']:SetVehicleFuel(vehicle, 100.0)

Параметры

Prop

Type

Возвращает

boolean: true, когда уровень передан скрипту топлива (или записан в state bag, если ни один не работает). false, когда vehicle не является существующим транспортом, level не конечное число или скрипт топлива дал сбой.

У скриптов топлива, которые хранят топливо в играх игроков, новый уровень доходит до транспорта через игру его владельца чуть позже.

Пример

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

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

// Канистра добавляет 25% машине рядом с игроком.
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 };
});

На этой странице