Overblik

Export-API'et i va_emsmdt — navngivning, faldgruber og hvad der ikke findes

Alle exports

Alt her er server-exports. De kaldes fra server_script. Der er ingen client-exports i va_emsmdt.

Ressourcenavnet er exportnavnet

Exportene ligger på ressourcenavnet va_emsmdt. Omdøber du mappen, ændrer exportnavnet sig med:

server.lua
-- Standardnavnet
exports.va_emsmdt:GetEmsCalls()

-- Har du omdøbt mappen, eller skal koden kunne følge flere navne
local EMS = 'va_emsmdt'
exports[EMS]:GetEmsCalls()

Resten af dokumentationen bruger den korte form exports.va_emsmdt:Method().

Der er ingen identitets-exports

va_emsmdt har ingen IsAmbulance, ingen IsMdtAuthed og ingen HasMdtPermission. Skal du gate din egen kode, kommer svaret fra ESX-jobbet — eller fra va_policemdt, hvis det er en betjent der skal se noget.

Se Brug af exports for mønsteret.

Noter

Load order er irrelevant. Exports slås op når de kaldes, ikke når de indlæses. Tilføj alligevel va_emsmdt til dine dependencies, så serveren siger til når den mangler — eller lad være og brug GetResourceState, hvis integrationen skal være valgfri. Det sidste er den rigtige model for et produkt der sælges separat.

Der kastes ingen fejl. Dårlige argumenter giver nil eller en tom tabel. Tjek returværdier — du får ingen advarsel i konsollen.

Ingen skriveadgang til journaler. Der er ingen export der frigiver en journal. Frigivelse er en fortrolighedsbeslutning en behandler tager i tabletten, og den skal ikke kunne automatiseres udefra.

Ingen events. Der er intet at lytte på endnu — der findes ikke en va_emsmdt:journalReleased. Skal du reagere på noget, må du poll'e eller lade din egen kode være kilden. Spørg, hvis du har brug for events.

Kalder du fra et andet produkt

Er din integration valgfri — fx en journal-sektion i et script du sælger videre — så antag ikke at va_emsmdt er der:

server.lua
local EMS = 'va_emsmdt'

local function emsAvailable()
    return GetResourceState(EMS) == 'started'
        and exports[EMS]:IsPoliceSharingEnabled()
end

-- pcall: exportet tilhører et andet produkt og kan mangle i ældre versioner.
-- Din feature må ikke dø på det.
local ok, journals = pcall(function()
    return exports[EMS]:GetReleasedJournals(citizenIdentifier)
end)

journals = ok and journals or {}