ai-jobs pour les développeurs
Ce qu’ai-jobs partage avec les autres scripts (il n’a aucun export) : la réputation de hot-dog, les plaques et les clés des véhicules de travail, les motifs de registre et ses events privés.
ai-jobs n’a aucun export. Les autres scripts n’ont jamais besoin de l’appeler : les tournées et les arrêts sont des données du panneau, et tout ce que fait un service passe par AI Core (argent, clés, inventaire). Ce qu’un autre script peut lire est listé ci-dessous.
Réputation de hot-dog
La réputation du vendeur de hot-dogs est une métadonnée de personnage d’ai-core sous la clé rep, champ hotdog (au même endroit que le PlayerData.metadata.rep de QBCore). C’est un nombre entier de 0 à la Highest reputation du panneau. ai-jobs la lit à la location d’un stand et l’écrit après chaque hot-dog cuisiné, en gardant les autres champs de rep tels quels.
Côté : serveur · Attend : non
GetMeta(src: number, key: "rep"): { hotdog?: number; [other: string]: unknown } | nulllocal rep = exports['ai-core']:GetMeta(source, 'rep') -- table ou nilRetour
La table rep du personnage, ou null / nil quand le joueur n’a pas de personnage chargé ou n’a jamais gagné de réputation. hotdog est absent jusqu’au premier hot-dog préparé.
Exemple
import { addCommand, notify, resourceExport } from "@aicore-fivem/lib/server";
const core = resourceExport("ai-core");
// /hotdogrep montre au joueur sa réputation de hot-dog.
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");
});N’écrivez la réputation qu’avec SetMeta(source, "rep", { ...old, hotdog = value }), en gardant les autres champs. Un stand loué garde la valeur lue au moment de la location et écrit sa propre valeur après le hot-dog suivant, donc un changement fait pendant qu’un stand est loué est écrasé.
Véhicules de travail
- Créés avec le
spawnVehiclede la lib, plaqueWORK<source>(l’id serveur du travailleur), supprimés à la fin du service. - Le travailleur reçoit les clés via la couche clés d’AI Core (
vehicleKeys.givede la lib) avec l’usagejob, donc le script de clés qui tourne, quel qu’il soit, les voit. - La voiture en panne d’une tournée de remorquage apparaît verrouillée, sans clés, et est supprimée au dépôt ou à la fin du service.
Argent
La paie des tournées va sur le Pay account de la tournée avec le motif de registre work:<routeId> (par exemple work:taxi). Les ventes de hot-dogs vont sur Sales paid into. Les deux apparaissent dans l’historique des transactions d’ai-core.
Events et callbacks privés
C’est le contrat client-serveur propre au script (resource/common/routes.ts et resource/common/hotdog.ts). Le serveur vérifie chaque appel (distance, timing, arrêt en cours). 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-jobs:start | callback client | (routeId) : commencer un service au dépôt, répond { ok }. |
ai-jobs:stop | callback client | () : terminer le service. |
ai-jobs:arrive | callback client | (stopId, underwater) : le travail de l’arrêt ; le serveur exécute la barre de progression, puis paie. |
ai-jobs:client:shift | serveur -> travailleur | (shift | null) : l’arrêt en cours, ou null quand le service est terminé. |
ai-jobs:client:attach | serveur -> propriétaire de la voiture remorquée | (carNetId, flatbedNetId) : attacher la voiture remorquée au plateau. |
ai-jobs
Des tournées de travail lancées depuis un dépôt (taxi, bus, routier, éboueur, journaliste, dépanneuse, recyclage, vignoble, plongée) et le stand de hot-dogs.
ai-police
Le travail de police pour les agents en service (menotter, escorter, installer dans un véhicule, fouiller, verbaliser, envoyer en prison et mettre en fourrière), plus des points de service et des alertes de tirs.