AI Core
Dokumentacja APIAI Core: eksporty serwerowe

MDT

Zapisuj mandaty, nakazy, aresztowania i wpisy o więzieniu w policyjnym MDT, którego używa serwer.

Wpisy przechodzą przez ai-core, nigdy przez własne eksporty lub zdarzenia MDT. ai-core przekazuje każdy wpis do aktywnego MDT: tego, który wybiera ustawienie MDT script w panelu, albo pierwszego działającego. Nie ma MDT ai-*, więc dopóki nie działa żadne MDT, wpisy nie są nigdzie zapisywane. Otwieranie ekranu MDT dzieje się na kliencie (kliencki eksport OpenMdt, mdt.open liba).

GetMdtSystem

Nazwa zasobu MDT, do którego ai-core przekazuje wpisy.

Strona: Serwer · Czeka: nie · Lib: mdt.provider()

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

Parametry

Brak.

Zwraca

string | null: nazwa zasobu MDT. null, gdy żadne nie działa.

Przykład

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

Zapisuje w MDT wpis o graczu: mandat, nakaz, aresztowanie albo karę więzienia. ai-core uzupełnia citizen id i imiona celu oraz funkcjonariusza.

Strona: Serwer · Czeka: nie · Lib: mdt.record

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

Parametry

Prop

Type

MdtRecord

Prop

Type

Zobacz MdtRecord i MdtRecordKind.

Zwraca

boolean: true, gdy MDT go zapisało. false, gdy wpis jest niepoprawny (zły kind, brak title, target nie jest dodatnią liczbą całkowitą), cel nie ma wczytanej postaci, nie działa żadne MDT albo MDT nie przyjmuje wpisów od skryptów lub nie ma takiego rodzaju.

Przykład

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

// Funkcjonariusz wsadza gracza do więzienia na 20 minut; MDT zachowuje wpis.
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 };
  },
);

Na tej stronie