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()
GetMdtSystem(): string | nulllocal system = exports['ai-core']:GetMdtSystem() -- string ou nilParâ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
AddMdtRecord(record: MdtRecord): booleanlocal 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 };
},
);