AI Core
Referência da APIAI Core: exports de servidor

MDT

Escreva multas, mandados, prisões e registros de cadeia no MDT da polícia que o servidor roda.

Os registros passam pelo ai-core, nunca pelos exports ou eventos próprios de um MDT. O ai-core encaminha cada registro ao MDT ativo: o que a configuração MDT script do painel escolhe, ou o primeiro que estiver rodando. Não existe MDT ai-*, então enquanto nenhum MDT está rodando, os registros não são escritos em lugar nenhum. Abrir a tela do MDT acontece no cliente (export de cliente OpenMdt, mdt.open da lib).

GetMdtSystem

O nome do recurso do MDT para o qual o ai-core encaminha.

Lado: Servidor · Espera: não · Lib: mdt.provider()

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

Parâmetros

Nenhum.

Retorno

string | null: o nome do recurso do MDT. null quando nenhum está rodando.

Exemplo

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

Escreve um registro sobre um jogador no MDT: uma multa, um mandado, uma prisão ou uma pena de cadeia. O ai-core preenche os citizen ids e os nomes do alvo e do policial.

Lado: Servidor · Espera: não · Lib: mdt.record

Assinatura
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

Veja MdtRecord e MdtRecordKind.

Retorno

boolean: true quando o MDT o escreveu. false quando o registro é inválido (kind errado, sem title, target não é um número inteiro positivo), o alvo não tem personagem carregado, nenhum MDT está rodando, o MDT não aceita registros de scripts ou não tem esse tipo.

Exemplo

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");

// Um policial prende um jogador por 20 minutos; o MDT guarda o 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 };
  },
);

Nesta página