Flåde og GPS

Læs flådetavlen, flyt vogne og spor køretøjer på kortet

Server-exports. Kaldes fra server_script.

Flådetavlen er betjentenes overblik over hvilke vogne der kører, hvem der sidder i dem, og hvad de laver. GPS-sporingen er den tilhørende live-position på kortet.

Statusser

En vogn står altid på præcis én af fire:

StatusBetyder
patruljePå patrulje — kun disse kan tildeles et udkald
udrykningUde på en opgave
stationaerHolder stille, fx ved et gerningssted
garageUde af drift

Kun vogne på patrulje kommer i betragtning, når et opkald skal tildeles. Efterlader du vogne på udrykning, tømmes puljen af udrykningsklare enheder.

GetFleet

Hele flådetavlen.

returnstable
felter
vehiclestable[]

Vogne på tavlen, hver med sin besætning.

vogn
idstring

Fx gps-AB12345. Bruges til SetVehicleStatus.

areastring

Områdebetegnelse, fx GPS-sporet.

statusstring

patrulje · udrykning · stationaer · garage

occupantstable[]

Besætningen. Se betjentformen nedenfor.

pooltable[]

Betjente på vagt, som ikke sidder i en vogn. Samme betjentform.

Betjentformen i occupants og pool:

lua
{
    id       = 'char1:abc…',   -- ESX identifier
    name     = 'M. Sørensen',
    initials = 'MS',
    callsign = 'Alpha-12',
    role     = 'foerer',       -- eller 'passager'
}

Den første der sætter sig i en vogn bliver foerer, alle efterfølgende bliver passager.

server.lua
local fleet = exports.va_policemdt:GetFleet()

print(('%d vogne, %d betjente uden vogn'):format(#fleet.vehicles, #fleet.pool))

for _, v in ipairs(fleet.vehicles) do
    print(('%s (%s) — %d ombord'):format(v.plate, v.status, #v.occupants))
end

SetVehicleStatus

Flyt en vogn mellem statusser.

vehicleIdstringpåkrævet

Vognens id fra GetFleet, fx gps-AB12345.

statusstringpåkrævet

patrulje, udrykning, stationaer eller garage.

returnsboolean

false ved ukendt vogn eller ugyldig status. Ugyldige statusser gemmes ikke.

server.lua
exports.va_policemdt:SetVehicleStatus('gps-AB12345', 'garage')

TrackVehicle

Sæt en vogn på live-kortet og flådetavlen.

platestringpåkrævet

Nummerpladen.

modelstringpåkrævet

Modelnavnet som det skal vises.

server.lua
exports.va_policemdt:TrackVehicle('AB12345', 'Police Interceptor')

Betjente gør normalt det her selv med /registergps inde i vognen. Brug exportet, når noget andet skal registrere vognen — fx et garagescript der automatisk sporer alt der køres ud.

UntrackVehicle

Fjern en sporet vogn igen.

platestringpåkrævet

Nummerpladen.

Kaldet ignoreres, så længe vognen stadig har besætning på tavlen. Tag besætningen af først, ellers sker der ingenting — og du får ingen fejl.

server.lua
exports.va_policemdt:UntrackVehicle('AB12345')

GetGpsUnits

Live-positioner for alle sporede vogne.

returnstable[]
enhed
positiontable

{ x = number, y = number }

onlineboolean

false betyder at sporingen har mistet køretøjet — positionen er da den sidst kendte.

server.lua
for _, unit in ipairs(exports.va_policemdt:GetGpsUnits()) do
    if not unit.online then
        print(('%s har mistet signal'):format(unit.plate))
    end
end

Et komplet eksempel

Parkér alle tomme vogne, når vagten slutter.

server.lua
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 admins