ai-cityhall für Entwickler
Die Metadaten der Dokument-Items, die ai-cityhall schreibt (Personalausweis, Führerschein), wie du ein Dokument aus einem anderen Skript vergibst, und seine privaten Events.
ai-cityhall hat keine Exports. Im Jobcenter angenommene Jobs werden mit den Job-Funktionen von ai-core gesetzt, und Dokumente sind normale Inventar-Items, daher arbeitet ein anderes Skript über AI Core mit ihnen.
Metadaten der Dokument-Items
Ein Dokument (id_card, driver_license oder jedes unter Documents aufgeführte Item) ist ein einzigartiges Item, dessen Metadaten den Inhaber tragen. Die Felder sind die von qbx_idcard, sodass für Qbox geschriebene Skripte sie unverändert lesen.
Prop
Type
Ein Dokument aus einem anderen Skript vergeben
Das Item zu benutzen zeigt die Karte, egal wer es vergeben hat: ai-cityhall registriert jedes Dokument-Item als benutzbar. Vergib das Item mit denselben Metadaten, und es verhält sich wie eines, das an der Theke gekauft wurde.
Seite: Server · Wartet: nein
Beispiel
Ein Polizeiskript gibt nach einer Prüfung einen neuen Führerschein aus:
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);
}Nur Items, die im Panel unter Documents aufgeführt sind, werden von ai-cityhall als benutzbar registriert. Ein Item, das nicht in dieser Liste steht, zeigt beim Benutzen keine Karte.
Geld
Dokumente werden mit RemoveMoney von ai-core von den Konten aus dem Panel bezahlt, Buchungsgrund cityhall:<item> (zum Beispiel cityhall:id_card).
Private Events und Callbacks
Der eigene Vertrag des Skripts (resource/common/hall.ts). Der Server prüft bei jedem Aufruf die Entfernung zum Rathaus. Sie können sich zwischen Versionen ändern: Löse sie nicht aus anderen Ressourcen aus und höre nicht darauf.
| Name | Richtung | Was es überträgt |
|---|---|---|
ai-cityhall:offer | Client-Callback | (hallId): antwortet mit { ok, jobs, documents }, was dieses Rathaus anbietet. |
ai-cityhall:takeJob | Client-Callback | (hallId, job): einen Job aus dem Jobcenter annehmen. |
ai-cityhall:buy | Client-Callback | (hallId, item): ein Dokument kaufen. |
ai-cityhall:client:showCard | Server -> jeder Spieler in der Nähe eines gezeigten Dokuments | (card): die Karte auf dem Bildschirm zeigen. |
ai-cityhall:client:showing | Server -> der zeigende Spieler | (): die Zeige-Animation abspielen. |