local resourceName = "progressbar" local configValue = BridgeClientConfig.ProgressBarSystem if (configValue == "auto" and GetResourceState(resourceName) ~= "started") or (configValue ~= "auto" and configValue ~= resourceName) then return end ProgressBar = ProgressBar or {} local function convertFromOx(options) if not options then return options end local prop1 = options.prop?[1] or options.prop or {} local prop2 = options.prop?[2] or {} return { name = options.label, duration = options.duration, label = options.label, useWhileDead = options.useWhileDead, canCancel = options.canCancel, controlDisables = { disableMovement = options.disable?.move, disableCarMovement = options.disable?.car, disableMouse = options.disable?.mouse, disableCombat = options.disable?.combat }, animation = { animDict = options.anim?.dict, anim = options.anim?.clip }, prop = { model = prop1.model, bone = prop1.bone, coords = prop1.pos, rotation = prop1.rot }, propTwo = { model = prop2.model, bone = prop2.bone, coords = prop2.pos, rotation = prop2.rot } } end ---comment ---@param options table ---@param cb any ---@param qbFormat boolean ---@return nil function ProgressBar.Open(options, cb, qbFormat) if not exports['progressbar'] then return false end if not qbFormat then options = convertFromOx(options) end exports['progressbar']:Progress(options, cb) end -- Example usage: --[[ RegisterCommand("progressbar", function() ProgressBar.Open({ duration = 5000, label = "Searching", disable = { move = true, combat = true }, anim = { dict = "anim@amb@clubhouse@tutorial@bkr_tut_ig3@", clip = "machinic_loop_mechandplayer" }, prop = { model = "prop_ar_arrow_3", pos = vector3(0.0, 0.0, 0.0), rot = vector3(0.0, 0.0, 0.0) }, }, function(cancelled) print(cancelled and "Cancelled" or "Complete") end) end) --]]