AI Core
Referencia de la APIAI Core: exports de servidor

MDT

Escribe multas, órdenes de búsqueda, arrestos y registros de cárcel en el MDT de la policía que tenga el servidor.

Los registros pasan por ai-core, nunca por los exports o eventos propios de un MDT. ai-core reenvía cada registro al MDT activo: el que elige el ajuste MDT script (script de MDT) del panel, o el primero que esté en marcha. No hay ningún MDT ai-*, así que mientras no hay ningún MDT en marcha, los registros no se escriben en ninguna parte. Abrir la pantalla del MDT ocurre en el cliente (export de cliente OpenMdt, mdt.open de la lib).

GetMdtSystem

El nombre de recurso del MDT al que reenvía ai-core.

Lado: Servidor · Espera: no · Lib: mdt.provider()

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

Parámetros

Ninguno.

Devuelve

string | null: el nombre de recurso del MDT. null cuando no hay ninguno en marcha.

Ejemplo

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

Escribe en el MDT un registro sobre un jugador: una multa, una orden de búsqueda, un arresto o una condena de cárcel. ai-core rellena los citizen ids y los nombres del objetivo y del agente.

Lado: Servidor · Espera: no · Lib: mdt.record

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

Parámetros

Prop

Type

MdtRecord

Prop

Type

Consulta MdtRecord y MdtRecordKind.

Devuelve

boolean: true cuando el MDT lo escribió. false cuando el registro no es válido (kind erróneo, sin title, target no es un número entero positivo), el objetivo no tiene un personaje cargado, no hay ningún MDT en marcha, el MDT no acepta registros de scripts o no tiene ese tipo.

Ejemplo

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 agente encarcela a un jugador durante 20 minutos; el MDT guarda el registro.
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 };
  },
);

En esta página