AI Core
Транспортai-garages

ai-garages для разработчиков

Серверные экспорты ai-garages и форматы, которые они используют.

Из своего скрипта используйте слой garages из lib (сервер): garages.impound(vehicle, by?), garages.store(vehicle, garage?, by?), garages.open(source, garage?) и garages.stored(source). Он работает с любым скриптом гаражей, который запущен на сервере. Экспорты ниже являются тем, что вызывает слой, пока ai-garages является активным скриптом гаражей. ai-garages не может открыть свой список издалека, поэтому с ним garages.open отвечает false.

Типизированы как AiGaragesServerExports в @aicore-fivem/shared (garages.ts). Все три синхронные.

TypeScript
import { resourceExport } from "@aicore-fivem/lib/server";
const garages = resourceExport("ai-garages");

Серверные экспорты

ImpoundVehicle

Отправляет личный транспорт на штрафстоянку: сохраняет его состояние (топливо, двигатель, кузов), удаляет сущность и выставляет его состояние в impound. Владелец получает его обратно на штрафстоянке за плату.

Сторона: сервер · Ожидание: нет

Сигнатура
ImpoundVehicle(vehicle: number): boolean
Lua
local ok = exports['ai-garages']:ImpoundVehicle(vehicle)

Параметры

Prop

Type

Возвращает

true, если транспорт отправлен на штрафстоянку. false, если сущность не существует или не является личным транспортом ai-vehicles; тогда удалите его сами.

Пример

import { resourceExport } from "@aicore-fivem/lib/server";

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

export function towAway(vehicle: number): void {
  if (!garages.ImpoundVehicle(vehicle)) DeleteEntity(vehicle); // не личный: просто удалить
}

StoreVehicle

Паркует личный транспорт в одном из гаражей панели: сохраняет его состояние, удаляет сущность, выставляет его состояние в garage.

Сторона: сервер · Ожидание: нет

Сигнатура
StoreVehicle(vehicle: number, garage: string): boolean
Lua
local ok = exports['ai-garages']:StoreVehicle(vehicle, garage)

Параметры

Prop

Type

Возвращает

true, если транспорт поставлен. false для транспорта, который не является личным, для несуществующего id гаража или для штрафстоянки.

GetStoredVehicles

Транспорт персонажа игрока, который не находится снаружи: стоит в гараже или ждёт на штрафстоянке. Транспорт автопарков не включается.

Сторона: сервер · Ожидание: нет

Сигнатура
GetStoredVehicles(source: number): GaragedVehicle[]
Lua
local list = exports['ai-garages']:GetStoredVehicles(source)

Возвращает

Массив GaragedVehicle. Пустой, если у игрока нет загруженного персонажа.

GaragedVehicle

Prop

Type

Пример

const list = garages.GetStoredVehicles(source);
const impounded = list.filter((v) => v.impounded).map((v) => v.plate);
console.log(`impounded: ${impounded.join(", ") || "none"}`);

События

Колбэки ai-garages внутренние (от его клиента к его серверу). Не вызывайте их из других скриптов.

ИмяТипЧто делает
ai-garages:listclient callback(garageId): транспорт, который игрок может там забрать. Не чаще 2 раз за 2 секунды.
ai-garages:takeOutclient callback(garageId, vehicleId): создаёт транспорт в точке выезда.
ai-garages:parkclient callback(garageId, netId, props): паркует транспорт, которым управляет игрок.

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