Identitet og rettigheder

Slå op hvem en spiller er, og hvad vedkommende må

Server-exports. Kaldes fra server_script.

Det er de her fem, du skal bruge til at gate din egen kode. Uden dem er alt andet i API'et åbent for enhver spiller, der kan udløse din event.

IsPolice

Har spilleren det konfigurerede politijob?

srcnumberpåkrævet

Spillerens server id.

server.lua
if exports.va_policemdt:IsPolice(src) then
    -- åbn våbenskabet
end

Brug den til ting ude i spilverdenen: en dør på stationen, et våbenskab, en patruljevogn. Til alt der repræsenterer MDT-arbejde, brug IsMdtAuthed.

IsMdtAuthed

Har spilleren gennemført MDT-login i denne session?

srcnumberpåkrævet

Spillerens server id.

server.lua
RegisterNetEvent('mitscript:opretRapport', function(data)
    local src = source
    if not exports.va_policemdt:IsMdtAuthed(src) then return end
    -- …
end)

Tabletten beder om adgangskode ud over jobbet. En betjent på vagt, der aldrig har åbnet terminalen, giver true fra IsPolice men false herfra.

HasMdtPermission

Server-autoritativt tjek af én rettighed.

srcnumberpåkrævet

Spillerens server id.

permissionIdstringpåkrævet

Rettighedens id. Se listen nedenfor.

server.lua
RegisterCommand('udbetalloen', function(source)
    if not exports.va_policemdt:HasMdtPermission(source, 'oekonomi') then
        return TriggerClientEvent('chat:addMessage', source, {
            args = { 'MDT', 'Du har ikke adgang til dette.' },
        })
    end
    -- …
end, false)

Rettigheds-id'er

IdDækker
mdtAdgang til selve terminalen
strafferegisterBorgeropslag og straffeattester
rapportarkivRapporter og sagsakter
efterlysningerUdstede og administrere efterlysninger
vaabenkammerVåbenregister
bevislagerBeviser
beslaglagteBeslaglagte køretøjer
personalePersonaleadministration
oekonomiØkonomi og bødetilsyn
adgangsstyringRettighedsstyring og straffelov

De effektive rettigheder er rangmatricen plus tildelinger fra særlige roller plus personlige undtagelser — hvor en personlig fratagelse slår en rolletildeling. Du behøver ikke regne på det; dette export giver svaret.

GetMdtPermissions

Alle rettigheder spilleren reelt har.

srcnumberpåkrævet

Spillerens server id.

returnstable

{ [permissionId] = true }. Tom tabel for spillere uden politijobbet.

server.lua
local perms = exports.va_policemdt:GetMdtPermissions(src)

if perms.personale and perms.oekonomi then
    -- ledelsesværktøjer
end

GetOfficer

Betjentkortet for en spiller.

srcnumberpåkrævet

Spillerens server id.

returnstable | nil

nil når spilleren er offline eller ikke har politijobbet.

felter
identifierstring

ESX-identifier. Brug den til de exports der tager en identifier frem for en src.

namestring

Betjentens navn, fx M. Sørensen.

initialsstring

Op til tre tegn, fx MS.

rankstring

ESX grade_label, fx Politiassistent.

gradenumber

ESX-graden som tal.

callsignstring

Kaldesignal, fx Alpha-12. Tom streng når intet er sat.

server.lua
local officer = exports.va_policemdt:GetOfficer(src)
if not officer then return end

print(('%s %s (%s)'):format(officer.rank, officer.name, officer.callsign))

Tjek altid for nil. Spilleren kan være hoppet af serveren, eller være fyret fra politiet, mellem at din event blev udløst og du kalder her.

GetOfficer returnerer grade, mens tablettens interne NUI-payloads bruger rankIndex om det samme tal. Byg mod formen her.