AI Core
Référence de l’APIAI Core : exports serveur

MDT

Écrire des amendes, mandats, arrestations et peines de prison dans le MDT de police qu’utilise le serveur.

Les enregistrements passent par ai-core, jamais par les exports ou événements propres à un MDT. ai-core transmet chaque enregistrement au MDT actif : celui que choisit le réglage MDT script du panneau, ou le premier qui tourne. Il n’existe pas de MDT ai-*, donc tant qu’aucun MDT ne tourne, les enregistrements ne sont écrits nulle part. L’ouverture de l’écran du MDT se fait sur le client (export client OpenMdt, mdt.open de la lib).

GetMdtSystem

Le nom de ressource du MDT auquel ai-core transmet.

Côté : Serveur · Attend : non · Lib : mdt.provider()

Signature
GetMdtSystem(): string | null
Lua
local system = exports['ai-core']:GetMdtSystem() -- string ou nil

Paramètres

Aucun.

Retour

string | null : le nom de ressource du MDT. null quand aucun ne tourne.

Exemple

import { addCommand, resourceExport } from "@aicore-fivem/lib/server";

const core = resourceExport("ai-core");

addCommand("mdtsystem", { help: "Shows the MDT in use", restricted: true }, () => {
  console.log(core.GetMdtSystem() ?? "none: records are not written");
});

AddMdtRecord

Écrit un enregistrement sur un joueur dans le MDT : une amende, un mandat, une arrestation ou une peine de prison. ai-core complète les citizen ids et les noms de la cible et de l’agent.

Côté : Serveur · Attend : non · Lib : mdt.record

Signature
AddMdtRecord(record: MdtRecord): boolean
Lua
local written = exports['ai-core']:AddMdtRecord({ kind = 'fine', target = target, by = source, title = 'Speeding', amount = 250 })

Paramètres

Prop

Type

MdtRecord

Prop

Type

Voir MdtRecord et MdtRecordKind.

Retour

boolean : true quand le MDT l’a écrit. false quand l’enregistrement est invalide (mauvais kind, pas de title, target qui n’est pas un nombre entier positif), que la cible n’a pas de personnage chargé, qu’aucun MDT ne tourne, que le MDT n’accepte pas d’enregistrements des scripts ou n’a pas ce type.

Exemple

import { onClientCallback, resourceExport } from "@aicore-fivem/lib/server";
import { fail, readId } from "@aicore-fivem/lib/shared";
import { Locale } from "common";

const core = resourceExport("ai-core");

// Un agent emprisonne un joueur pour 20 minutes ; le MDT garde l’enregistrement.
onClientCallback(
  "myscript:jail",
  { args: ([target]) => { const id = readId(target); return id === null ? null : [id]; }, lock: true },
  (source, target) => {
    if (core.GetDutyJob(source) !== "police") return fail("NOT_POLICE");
    if (!core.JailPlayer(target, 20, source)) return fail("JAIL_FAILED");
    core.AddMdtRecord({ kind: "jail", target, by: source, title: Locale("RECORD_ROBBERY"), minutes: 20 });
    return { ok: true };
  },
);

Sur cette page