if not Config.UseTarget then return end if not Target.IsOX() then return end local ZoneIDMap = {} local function convert(options) local distance = options.distance options = options.options for _, v in pairs(options) do v.onSelect = v.action v.distance = v.distance or distance v.name = v.name or v.label v.groups = v.job or v.gang v.type = nil v.action = nil v.job = nil v.gang = nil v.qtarget = true end return options end function Target.RemoveZone(zone) exports["ox_target"]:removeZone(ZoneIDMap[zone]) end function Target.AddTargetEntity(entity, parameters) exports["ox_target"]:addLocalEntity(entity, convert(parameters)) end function Target.AddBoxZone(name, coords, size, parameters) local rotation = parameters.rotation ZoneIDMap[name] = exports["ox_target"]:addBoxZone({ coords = coords, size = size, rotation = rotation, debug = Config.Debug, options = convert(parameters) }) end function Target.AddPolyZone(name, points, parameters) ZoneIDMap[name] = exports["ox_target"]:addPolyZone({ points = points, debug = Config.Debug, options = convert(parameters) }) end function Target.IsTargetStarted() return GetResourceState("ox_target") == "started" end