Personale

Timesedler og certifikater for en betjent

Server-exports. Kaldes fra server_script.

Begge exports her tager en ESX identifier, ikke en src — så de også virker for betjente der er offline.

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

local sheet = exports.va_policemdt:GetTimesheet(officer.identifier)

GetTimesheet

Timer, vagter og vagtstatus.

identifierstringpåkrævet

Betjentens ESX-identifier.

returnstable
felter
hoursMonthnumber

Timer i indeværende måned.

hoursPrevMonthnumber

Timer i forrige måned — til sammenligning.

weeknumber

Timer i indeværende uge.

daystable[]

Timer fordelt pr. dag over de seneste 14 dage.

shiftstable[]

De seneste vagter.

avgShiftnumber

Gennemsnitlig vagtlængde.

overtimenumber

Overarbejde.

onShiftboolean

Er betjenten på vagt lige nu?

server.lua
local sheet = exports.va_policemdt:GetTimesheet(identifier)

if sheet.onShift then
    print(('På vagt — %d timer denne måned'):format(sheet.hoursMonth))
end

Kaldet lukker den igangværende vagt af først, så hoursMonth tæller også den tid betjenten har været på vagt nu. Tallet er derfor altid aktuelt.

GetCertificates

Tildelte certifikater og diplomer.

identifierstringpåkrævet

Betjentens ESX-identifier.

returnstable[]
certifikat
namestring

Fx Indsatsleder.

shortstring

Kort form til badges.

kindstring

certifikat eller diplom.

colorstring

Farvenøgle til visning.

notestring

Fritekst fra den der tildelte.

awardedBystring

Hvem der tildelte det.

awardedAtnumber

Unix-tidsstempel.

server.lua
local certs = exports.va_policemdt:GetCertificates(identifier)

for _, c in ipairs(certs) do
    if c.short == 'IL' then
        -- betjenten er indsatsleder
    end
end

Certifikater er en pæn måde at gate dine egne features på uden at røre rangsystemet: giv Helikopterpilot som certifikat, og lad dit helikopterscript slå op her.

Et komplet eksempel

Lås en helikopter til betjente med det rette certifikat.

server.lua
RegisterNetEvent('minhelikopter:udlever', function()
    local src = source

    if not exports.va_policemdt:IsPolice(src) then return end

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

    local certs = exports.va_policemdt:GetCertificates(officer.identifier)

    for _, c in ipairs(certs) do
        if c.name == 'Helikopterpilot' then
            return TriggerClientEvent('minhelikopter:spawn', src)
        end
    end

    TriggerClientEvent('chat:addMessage', src, {
        args = { 'Hangar', 'Du mangler certifikat som helikopterpilot.' },
    })
end)