ai-cityhall pour les développeurs
Les métadonnées des objets documents qu’écrit ai-cityhall (carte d’identité, permis de conduire), comment donner un document depuis un autre script, et ses events privés.
ai-cityhall n’a aucun export. Les métiers pris à l’agence pour l’emploi sont réglés avec les fonctions de métier d’ai-core, et les documents sont des objets d’inventaire ordinaires, donc un autre script les manipule à travers AI Core.
Métadonnées de l’objet document
Un document (id_card, driver_license, ou tout objet listé sous Documents) est un objet unique dont les métadonnées portent le titulaire. Les champs sont ceux de qbx_idcard, donc les scripts écrits pour Qbox les lisent tels quels.
Prop
Type
Donner un document depuis un autre script
Utiliser l’objet affiche la carte, peu importe qui l’a donné : ai-cityhall enregistre chaque objet document comme utilisable. Donnez l’objet avec les mêmes métadonnées et il se comporte comme un objet acheté au guichet.
Côté : serveur · Attend : non
Exemple
Un script de police remet un nouveau permis de conduire après un examen :
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);
}Seuls les objets listés sous Documents dans le panneau sont enregistrés comme utilisables par ai-cityhall. Un objet absent de cette liste n’affiche pas de carte quand on l’utilise.
Argent
Les documents sont payés avec le RemoveMoney d’ai-core depuis les comptes du panneau, motif de registre cityhall:<item> (par exemple cityhall:id_card).
Events et callbacks privés
Le contrat propre du script (resource/common/hall.ts). Le serveur vérifie la distance à la mairie à chaque appel. Ils peuvent changer d’une version à l’autre : ne les déclenchez pas et ne les écoutez pas depuis d’autres ressources.
| Nom | Direction | Ce qu’il transporte |
|---|---|---|
ai-cityhall:offer | callback client | (hallId) : répond { ok, jobs, documents }, ce que propose cette mairie. |
ai-cityhall:takeJob | callback client | (hallId, job) : prendre un métier à l’agence pour l’emploi. |
ai-cityhall:buy | callback client | (hallId, item) : acheter un document. |
ai-cityhall:client:showCard | serveur -> chaque joueur proche d’un document montré | (card) : afficher la carte à l’écran. |
ai-cityhall:client:showing | serveur -> le joueur qui montre | () : jouer l’animation. |