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
| Tabela | O que guarda |
|---|---|
ai_vehiclesales_listings | Uma linha por veículo anunciado (vehicle_id único): pátio, vendedor, preço, descrição. |
ai_vehiclesales_payouts | Dinheiro 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.
| Nome | Tipo | O que faz |
|---|---|---|
ai-vehiclesales:watch / unwatch | callback / evento do cliente | Começa ou para as atualizações dos carros estacionados ao entrar ou sair de um pátio. |
ai-vehiclesales:display | servidor para cliente | (lotId, puts, removes): os anúncios estacionados mudaram. |
ai-vehiclesales:browse / unbrowse | callback / evento do cliente | Começa ou para as atualizações da tela. |
ai-vehiclesales:listings | servidor para cliente | (lotId, puts, removes): os anúncios da tela aberta mudaram. |
ai-vehiclesales:details | callback | (lotId, listingId): a descrição e a aparência de um anúncio. |
ai-vehiclesales:list | callback | (lotId, netId, price, description): anuncia o veículo que o jogador dirige. |
ai-vehiclesales:quote / sellBack | callback | (lotId, netId): o preço do revendedor, e a venda ao revendedor. |
ai-vehiclesales:buy / takeBack | callback | (lotId, listingId): compra, ou retira seu próprio anúncio. |
ai-vehiclesales:testDrive / endTestDrive | callback | Começa ou termina um test drive. |
ai-vehiclesales:testDriveEnded | servidor para cliente | (lotId): o test drive terminou; o jogador volta ao pátio. |