Zerix Development

Z-staff

Exports, events, callbacks en state bags van Z-staff.

Zelfde export-namen op ESX, Qbox en QBCore.

Exports (server)

ExportArgumentenReturn
IsOnDutysourceboolean
IsStaffsourceboolean (en kan grantStaff op het panel triggeren)
SetDutysource, goingOnDuty{ ok, duty, error?, unchanged? }
ToggleDutysourcezelfde als SetDuty
GetAllowedIdentifiers—Config.allowedIdentifiers

Voorbeeld:

if exports['Z-staff']:IsOnDuty(src) then
    -- staff in dienst
end

local result = exports['Z-staff']:SetDuty(src, true)
-- result.ok, result.duty, result.error = 'busy' | 'permission'

Het panel zelf gebruikt IsOnDuty in Utils.isOnStaffDuty. Andere scripts (logs, HUD, staff-tag) kunnen hetzelfde export gebruiken.

Exports (client)

ExportReturn
IsOnDutylokale onDuty boolean
if exports['Z-staff']:IsOnDuty() then
    -- client is in dienst
end

Server events (luisteren)

EventArgsWanneer
Z-staff:server:dutyChangedsource, goingOnDutyna geslaagde duty-wissel

Z-staff luistert hierop om clock-in/out en erp-staff:client:dutyOff te doen.

AddEventHandler('Z-staff:server:dutyChanged', function(src, onDuty)
    print(src, onDuty and 'in dienst' or 'uit dienst')
end)

Client events

EventFrameworkWat
Z-staff:client:setDutyalleanimatie + outfit
esx:playerLoaded / esx:onPlayerLogoutESXsync / wissen
qbx_core:client:playerLoaded / playerLoggedOutQboxsync / wissen
QBCore:Client:OnPlayerLoaded / OnPlayerUnloadQbox + QBCoresync / wissen

Callbacks

NaamKantReturn
Z-staff:client:getClothingclient{ components, props }
Z-staff:server:isOnDutyserverboolean
Z-staff:server:getDutyStateserver{ onDuty, clothing }

State bags

BagScopeWaarde
staffdienstplayer, replicatedtrue / false
Player(src).state.staffdienst
LocalPlayer.state.staffdienst

Metadata

ESX

xPlayer.getMeta('staffdienst')
-- { onduty = true/false, clothing = { components, props } | nil }

Qbox / QBCore

player.PlayerData.metadata.staffdienst
-- { onduty = true/false, clothing = { components, props } | nil }

Bij uitdienst wordt clothing nil. Bij in dienst staat de snapshot van het civiele outfit erin.

Events die dienst naar het panel stuurt

CallDoel
exports[panel]:grantStaff(src)rank forceren als identifier/ACE/framework-group matcht
exports[panel]:getStaff(src)bestaande rank lezen
exports[panel]:refreshStaff(src)Discord opnieuw ophalen
exports[panel]:setDuty(src, bool)uren + panel-state
TriggerClientEvent('erp-staff:client:dutyOff', src)panel sluiten + tools uit

De 0 als dummy-eerste-arg in panelExport is expres: sommige FiveM export-wrappers eten het eerste argument op.