ai-jobs für Entwickler
Was ai-jobs mit anderen Skripten teilt (es hat keine Exports): den Hotdog-Ruf, Kennzeichen und Schlüssel der Arbeitsfahrzeuge, Buchungsgründe und seine privaten Events.
ai-jobs hat keine Exports. Andere Skripte müssen es nie aufrufen: Routen und Halte sind Panel-Daten, und alles, was eine Schicht tut, läuft über AI Core (Geld, Schlüssel, Inventar). Was ein anderes Skript lesen kann, steht unten.
Hotdog-Ruf
Der Ruf des Hotdog-Verkäufers sind Charakter-Metadaten von ai-core unter dem Schlüssel rep, Feld hotdog (derselbe Ort, an dem QBCore PlayerData.metadata.rep speichert). Er ist eine ganze Zahl von 0 bis zum Highest reputation aus dem Panel. ai-jobs liest ihn, wenn ein Stand gemietet wird, und schreibt ihn nach jedem gekochten Hotdog, wobei die anderen Felder von rep unverändert bleiben.
Seite: Server · Wartet: nein
GetMeta(src: number, key: "rep"): { hotdog?: number; [other: string]: unknown } | nulllocal rep = exports['ai-core']:GetMeta(source, 'rep') -- Tabelle oder nilRückgabewert
Die Tabelle rep des Charakters oder null / nil, wenn der Spieler keinen geladenen Charakter hat oder nie Ruf verdient hat. hotdog fehlt, bis der erste Hotdog gemacht wird.
Beispiel
import { addCommand, notify, resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
// /hotdogrep zeigt dem Spieler seinen Hotdog-Ruf.
addCommand("hotdogrep", { help: "Show your hot dog reputation" }, (source) => {
if (source === 0) return;
const rep = core.GetMeta(source, "rep") as { hotdog?: number } | null;
notify(source, `Hot dog reputation: ${rep?.hotdog ?? 0}`, "info");
});Schreibe den Ruf nur mit SetMeta(source, "rep", { ...old, hotdog = value }) und behalte die anderen Felder. Ein gemieteter Stand behält den Wert, den er beim Mieten gelesen hat, und schreibt nach dem nächsten Hotdog seinen eigenen Wert, sodass eine Änderung, die während der Miete eines Stands gemacht wird, überschrieben wird.
Arbeitsfahrzeuge
- Gespawnt mit
spawnVehicleder Lib, KennzeichenWORK<source>(die Server-ID des Arbeiters), gelöscht, wenn die Schicht endet. - Der Arbeiter bekommt die Schlüssel über den Schlüssel-Layer von AI Core (
vehicleKeys.giveder Lib) mit dem Zweckjob, sodass jedes laufende Schlüsselskript sie sieht. - Das liegengebliebene Auto einer Abschlepproute spawnt verschlossen, ohne Schlüssel, und wird am Depot oder beim Schichtende gelöscht.
Geld
Der Lohn einer Route geht auf das Pay account der Route mit dem Buchungsgrund work:<routeId> (zum Beispiel work:taxi). Hotdog-Verkäufe gehen auf Sales paid into. Beides erscheint im Transaktionsverlauf von ai-core.
Private Events und Callbacks
Das ist der eigene Client-Server-Vertrag des Skripts (resource/common/routes.ts und resource/common/hotdog.ts). Der Server prüft jeden Aufruf (Entfernung, Timing, der aktuelle Halt). 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-jobs:start | Client-Callback | (routeId): eine Schicht am Depot starten, antwortet mit { ok }. |
ai-jobs:stop | Client-Callback | (): die Schicht beenden. |
ai-jobs:arrive | Client-Callback | (stopId, underwater): die Arbeit am Halt; der Server lässt den Fortschrittsbalken laufen und zahlt dann. |
ai-jobs:client:shift | Server -> Arbeiter | (shift | null): der aktuelle Halt oder null, wenn die Schicht beendet ist. |
ai-jobs:client:attach | Server -> Besitzer des abgeschleppten Autos | (carNetId, flatbedNetId): das abgeschleppte Auto am Abschleppwagen befestigen. |
ai-jobs
Arbeitsrouten, die an einem Depot starten (Taxi, Bus, Trucker, Müllabfuhr, Nachrichten, Abschleppdienst, Recycling, Weinberg, Tauchen), und der Hotdog-Stand.
ai-police
Polizeiarbeit für Beamte im Dienst - Handschellen, Abführen, in Fahrzeuge setzen, Durchsuchen, Bußgelder, Gefängnis und Beschlagnahme - plus Dienststellen und Schussalarme.