Eksempler på brugen af exports
Nedenfor finder du en liste med brugen af nogle af de exports tabletten tilbyder
va_policemdtView the product →
This page is only available in Danish so far. The code and the export names are the same in either language.
Alle eksempler forudsætter at va_policemdt er i din fxmanifest.lua:
dependencies { 'es_extended', 'va_policemdt' }Butiksalarm der sender et opkald
En alarm der udløses, sender et højprioritets-opkald og rydder op efter sig selv.
AddEventHandler('minealarmer:udloest', function(butik, coords)
local call = exports.va_policemdt:CreateCall(
'Indbrudsalarm', butik, 'hoej', coords.x, coords.y
)
if call.assigned then
print(('%s: patrulje %s rykker ud'):format(butik, call.assigned.plate))
else
print(('%s: ingen ledig patrulje'):format(butik))
end
-- Alarmen nulstiller sig selv efter fem minutter. Lukker vi ikke opkaldet,
-- bliver den tildelte vogn hængende på udrykning indtil det udløber.
SetTimeout(5 * 60 * 1000, function()
exports.va_policemdt:CloseCall(call.id)
end)
end)Fartkamera med automatisk bøde
local ATK_IDENTIFIER = 'char1:atk-system'
AddEventHandler('minatk:maalt', function(citizenIdentifier, speed, limit)
if speed <= limit then return end
local res = exports.va_policemdt:IssueFine(ATK_IDENTIFIER, {
citizenId = citizenIdentifier,
lines = {{
paragraf = '§ 118',
description = ('Hastighed %d/%d (ATK)'):format(speed, limit),
amount = math.floor((speed - limit) * 60),
}},
})
if not res.ok then
return print('ATK: bøden kunne ikke skrives')
end
print(('ATK: %d kr, opkrævet: %s'):format(res.total, tostring(res.billed)))
end)Åben af tablet via zone
exports.ox_target:addBoxZone({
coords = vec3(441.7, -979.2, 30.7),
size = vec3(1.0, 1.0, 1.0),
rotation = 0.0,
options = {
{
label = 'Åbn Politi Tablet',
icon = 'fa-solid fa-tablet-screen-button',
onSelect = function()
exports.va_policemdt:OpenTablet()
end,
},
},
})Vagtbonus efter timer
RegisterCommand('minbonus', function(source)
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 sheet = exports.va_policemdt:GetTimesheet(officer.identifier)
if sheet.hoursMonth < 20 then
return TriggerClientEvent('chat:addMessage', src, {
args = { 'Løn', ('Du mangler %.1f timer.'):format(20 - sheet.hoursMonth) },
})
end
-- udbetal bonus …
end, false)Automatisk GPS-registrering fra garagen
AddEventHandler('garageScript:koeretoejUdleveret', function(src, plate, model)
if not exports.va_policemdt:IsPolice(src) then return end
-- Vognen er nu på kortet og på flådetavlen, uden at betjenten
-- skal huske /registergps.
exports.va_policemdt:TrackVehicle(plate, model)
end)
AddEventHandler('garageScript:koeretoejIndleveret', function(plate)
-- Ignoreres hvis der stadig sidder nogen i den — tag besætningen af først.
exports.va_policemdt:UntrackVehicle(plate)
end)Parkér flåden ved vagtskifte
RegisterCommand('parkerflaade', function()
local parked = 0
for _, v in ipairs(exports.va_policemdt:GetFleet().vehicles) do
if #v.occupants == 0 and v.status ~= 'garage' then
if exports.va_policemdt:SetVehicleStatus(v.id, 'garage') then
parked = parked + 1
end
end
end
print(('Parkerede %d vogne'):format(parked))
end, true) -- true = kun konsol og adminsDiscord-status over aktive udkald
Da API'et ikke har events, poller vi. Vælg intervallet efter hvor hurtigt du skal opdage ændringer - ikke lavere.
CreateThread(function()
local lastCount = -1
while true do
Wait(30000) -- 30 sekunder
local calls = exports.va_policemdt:GetCalls()
-- Skriv kun når tallet faktisk ændrer sig.
if #calls ~= lastCount then
lastCount = #calls
TriggerEvent('mindiscord:opdaterStatus', ('%d aktive udkald'):format(#calls))
end
end
end)