AI Core
Veículosai-vehiclesales

ai-vehiclesales para desenvolvedores

Como o ai-vehiclesales mantém os veículos anunciados, suas tabelas e seus eventos internos.

O ai-vehiclesales não tem exports. O que outros scripts precisam saber é como um veículo anunciado aparece de fora.

Veículos anunciados no ai-vehicles

Um veículo anunciado continua no ai-vehicles com o mesmo id, placa, aparência e porta-malas. Enquanto está anunciado:

  • seu dono é { type: "resource", id: "ai-vehiclesales" };
  • seu estado é "garage" sem garagem (garage: null), então ele não aparece em nenhuma garagem;
  • o vendedor não tem chave dele.

Comprar ou retirar o anúncio define o dono como o personagem com SetOwner e cria o veículo no ponto de entrega do pátio.

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

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

// Esta placa está à venda em um pátio de carros usados agora?
export function isListed(plate: string): boolean {
  const vehicle = vehicles.GetVehicle(plate);
  return vehicle?.owner.type === "resource" && vehicle.owner.id === "ai-vehiclesales";
}

Tabelas

TabelaO que guarda
ai_vehiclesales_listingsUma linha por veículo anunciado (vehicle_id único): pátio, vendedor, preço, descrição.
ai_vehiclesales_payoutsDinheiro esperando vendedores que estavam offline quando o veículo deles foi vendido. Pago e apagado no próximo login deles.

Eventos

Todos os eventos do ai-vehiclesales são internos (do cliente e do servidor dele); não os chame a partir de outros scripts. Os anúncios chegam aos clientes como um snapshot e depois só as mudanças (deltas), e só para jogadores no pátio ou com a tela aberta.

NomeTipoO que faz
ai-vehiclesales:watch / unwatchcallback / evento do clienteComeça ou para as atualizações dos carros estacionados ao entrar ou sair de um pátio.
ai-vehiclesales:displayservidor para cliente(lotId, puts, removes): os anúncios estacionados mudaram.
ai-vehiclesales:browse / unbrowsecallback / evento do clienteComeça ou para as atualizações da tela.
ai-vehiclesales:listingsservidor para cliente(lotId, puts, removes): os anúncios da tela aberta mudaram.
ai-vehiclesales:detailscallback(lotId, listingId): a descrição e a aparência de um anúncio.
ai-vehiclesales:listcallback(lotId, netId, price, description): anuncia o veículo que o jogador dirige.
ai-vehiclesales:quote / sellBackcallback(lotId, netId): o preço do revendedor, e a venda ao revendedor.
ai-vehiclesales:buy / takeBackcallback(lotId, listingId): compra, ou retira seu próprio anúncio.
ai-vehiclesales:testDrive / endTestDrivecallbackComeça ou termina um test drive.
ai-vehiclesales:testDriveEndedservidor para cliente(lotId): o test drive terminou; o jogador volta ao pátio.

Nesta página