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). Все три синхронные.
import { resourceExport } from "@aicore-fivem/lib/server";
const garages = resourceExport("ai-garages");Серверные экспорты
ImpoundVehicle
Отправляет личный транспорт на штрафстоянку: сохраняет его состояние (топливо, двигатель, кузов), удаляет сущность и выставляет его состояние в impound. Владелец получает его обратно на штрафстоянке за плату.
Сторона: сервер · Ожидание: нет
ImpoundVehicle(vehicle: number): booleanlocal 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): booleanlocal ok = exports['ai-garages']:StoreVehicle(vehicle, garage)Параметры
Prop
Type
Возвращает
true, если транспорт поставлен. false для транспорта, который не является личным, для несуществующего id гаража или для штрафстоянки.
GetStoredVehicles
Транспорт персонажа игрока, который не находится снаружи: стоит в гараже или ждёт на штрафстоянке. Транспорт автопарков не включается.
Сторона: сервер · Ожидание: нет
GetStoredVehicles(source: number): GaragedVehicle[]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:list | client callback | (garageId): транспорт, который игрок может там забрать. Не чаще 2 раз за 2 секунды. |
ai-garages:takeOut | client callback | (garageId, vehicleId): создаёт транспорт в точке выезда. |
ai-garages:park | client callback | (garageId, netId, props): паркует транспорт, которым управляет игрок. |