ai-cityhall para desenvolvedores
A metadata dos itens de documento que o ai-cityhall escreve (RG, carteira de motorista), como dar um documento a partir de outro script, e seus eventos privados.
O ai-cityhall não tem exports. Os empregos pegos na central de empregos são definidos com as funções de emprego do ai-core, e os documentos são itens comuns de inventário, então outro script trabalha com eles através do AI Core.
Metadata dos itens de documento
Um documento (id_card, driver_license, ou qualquer item listado em Documents) é um item único cuja metadata carrega o titular. Os campos são os do qbx_idcard, então scripts escritos para o Qbox os leem como estão.
Prop
Type
Dando um documento a partir de outro script
Usar o item mostra o cartão, não importa quem o deu: o ai-cityhall registra todo item de documento como usável. Dê o item com a mesma metadata e ele se comporta como um comprado no balcão.
Lado: Servidor · Espera: não
Exemplo
Um script de polícia entrega uma nova carteira de motorista depois de um teste:
import { inventory, notify, online } from "@aicore-fivem/lib/server";
function giveLicense(source: number): boolean {
const c = online.character(source);
if (!c) return false;
const metadata = {
name: `${c.firstname} ${c.lastname}`,
firstname: c.firstname,
lastname: c.lastname,
birthdate: c.birthdate,
sex: c.sex,
nationality: c.nationality,
citizenid: c.citizenid,
};
if (!inventory.canCarryItem(source, "driver_license", 1, metadata)) {
notify(source, "No room in your inventory", "error");
return false;
}
return inventory.addItem(source, "driver_license", 1, metadata);
}Só itens listados em Documents no painel são registrados como usáveis pelo ai-cityhall. Um item que não está nessa lista não mostra um cartão quando usado.
Dinheiro
Os documentos são pagos com o RemoveMoney do ai-core a partir das contas do painel, motivo de registro cityhall:<item> (por exemplo cityhall:id_card).
Eventos e callbacks privados
O contrato próprio do script (resource/common/hall.ts). O servidor verifica a distância até a prefeitura a cada chamada. Eles podem mudar entre versões: não os dispare nem os escute a partir de outros recursos.
| Nome | Direção | O que carrega |
|---|---|---|
ai-cityhall:offer | callback do cliente | (hallId): responde { ok, jobs, documents }, o que esta prefeitura oferece. |
ai-cityhall:takeJob | callback do cliente | (hallId, job): pega um emprego na central de empregos. |
ai-cityhall:buy | callback do cliente | (hallId, item): compra um documento. |
ai-cityhall:client:showCard | servidor -> cada jogador perto de um documento mostrado | (card): mostra o cartão na tela. |
ai-cityhall:client:showing | servidor -> o jogador que mostra | (): toca a animação de mostrar. |