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

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

Как ai-vehiclesales хранит выставленный транспорт, его таблицы и внутренние события.

У ai-vehiclesales нет экспортов. Другим скриптам нужно знать, как выставленный транспорт выглядит снаружи.

Выставленный транспорт в ai-vehicles

Выставленный транспорт остаётся в ai-vehicles с тем же id, номером, видом и багажником. Пока он выставлен:

  • его владелец { type: "resource", id: "ai-vehiclesales" };
  • его состояние "garage" без гаража (garage: null), поэтому он не показывается ни в одном гараже;
  • у продавца нет ключа от него.

Покупка или снятие с продажи выставляет владельцем персонажа через SetOwner и создаёт транспорт в точке выдачи площадки.

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

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

// Выставлен ли этот номер на продажу на площадке подержанных машин прямо сейчас?
export function isListed(plate: string): boolean {
  const vehicle = vehicles.GetVehicle(plate);
  return vehicle?.owner.type === "resource" && vehicle.owner.id === "ai-vehiclesales";
}

Таблицы

ТаблицаЧто хранит
ai_vehiclesales_listingsОдна строка на выставленный транспорт (уникальный vehicle_id): площадка, продавец, цена, описание.
ai_vehiclesales_payoutsДеньги, которые ждут продавцов, бывших офлайн, когда их транспорт продался. Выплачиваются и удаляются при их следующем входе.

События

Все события ai-vehiclesales внутренние (его клиент и его сервер); не вызывайте их из других скриптов. Объявления приходят клиентам снимком, а затем только изменениями (дельтами), и только игрокам на площадке или с открытым экраном.

ИмяТипЧто делает
ai-vehiclesales:watch / unwatchcallback / client eventНачать или прекратить обновления припаркованных машин при входе на площадку или выходе с неё.
ai-vehiclesales:displayсервер к клиенту(lotId, puts, removes): припаркованные объявления изменились.
ai-vehiclesales:browse / unbrowsecallback / client eventНачать или прекратить обновления экрана.
ai-vehiclesales:listingsсервер к клиенту(lotId, puts, removes): объявления открытого экрана изменились.
ai-vehiclesales:detailscallback(lotId, listingId): описание и вид одного объявления.
ai-vehiclesales:listcallback(lotId, netId, price, description): выставить транспорт, которым управляет игрок.
ai-vehiclesales:quote / sellBackcallback(lotId, netId): цена дилера и продажа дилеру.
ai-vehiclesales:buy / takeBackcallback(lotId, listingId): купить или снять с продажи своё объявление.
ai-vehiclesales:testDrive / endTestDrivecallbackНачать или закончить тест-драйв.
ai-vehiclesales:testDriveEndedсервер к клиенту(lotId): тест-драйв закончился; игрок возвращается на площадку.

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