Топливо
Читать и задавать уровень топлива транспорта через тот скрипт топлива, который использует сервер.
Топливо идёт через 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 | nulllocal 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 | nulllocal 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): booleanlocal 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 };
});