-- Jutezak systeem voor ox_inventory -- Client-side logica if not lib then return end local hasJutezak = false local jutezakProp = nil local blackScreenActive = false -- Functie om zwart scherm te tonen local function ShowBlackScreen(show) if show and not blackScreenActive then blackScreenActive = true CreateThread(function() while blackScreenActive do DrawRect(0.5, 0.5, 1.0, 1.0, 0, 0, 0, 255) Wait(0) end end) elseif not show then blackScreenActive = false end end -- Functie om jutezak prop te plaatsen local function AttachJutezakProp(attach) local playerPed = PlayerPedId() if attach then -- Verwijder oude prop als die bestaat if jutezakProp and DoesEntityExist(jutezakProp) then DeleteEntity(jutezakProp) end -- Laad het model (we gebruiken een zak model) local model = `prop_money_bag_01` lib.requestModel(model, 5000) -- Maak de prop jutezakProp = CreateObject(model, 0.0, 0.0, 0.0, true, true, false) -- Attach aan het hoofd local boneIndex = GetPedBoneIndex(playerPed, 12844) -- Head bone (andere bone index) AttachEntityToEntity( jutezakProp, playerPed, boneIndex, 0.22, 0.04, 0, -- offset x, y, z 0, 270.0, 60.0, -- rotation x, y, z true, true, false, true, 1, true ) SetModelAsNoLongerNeeded(model) else -- Verwijder de prop if jutezakProp and DoesEntityExist(jutezakProp) then DeleteEntity(jutezakProp) jutezakProp = nil end end end -- Event om jutezak toe te passen of te verwijderen RegisterNetEvent('ox_inventory:applyJutezak', function(apply) hasJutezak = apply if apply then -- Activeer zwart scherm ShowBlackScreen(true) -- Plaats prop op hoofd AttachJutezakProp(true) -- Disable controls CreateThread(function() while hasJutezak do -- Disable weapon wheel DisableControlAction(0, 37, true) -- TAB -- Disable attacking DisableControlAction(0, 24, true) -- Attack DisableControlAction(0, 25, true) -- Aim DisableControlAction(0, 47, true) -- Weapon DisableControlAction(0, 58, true) -- Weapon DisableControlAction(0, 140, true) -- Melee Attack Light DisableControlAction(0, 141, true) -- Melee Attack Heavy DisableControlAction(0, 142, true) -- Melee Attack Alternate DisableControlAction(0, 143, true) -- Melee Block Wait(0) end end) else -- Deactiveer zwart scherm ShowBlackScreen(false) -- Verwijder prop AttachJutezakProp(false) end end) -- Cleanup bij resource stop AddEventHandler('onResourceStop', function(resourceName) if GetCurrentResourceName() ~= resourceName then return end if jutezakProp and DoesEntityExist(jutezakProp) then DeleteEntity(jutezakProp) end ShowBlackScreen(false) end) -- QTarget opties voor spelers if GetResourceState('qtarget') == 'started' then exports.qtarget:Player({ options = { { event = 'ox_inventory:placeJutezak', icon = 'fas fa-mask', label = 'Zak om hoofd plaatsen', canInteract = function() -- Check of de speler een jutezak heeft local hasItem = exports.ox_inventory:Search('count', 'jutezak') return hasItem and hasItem > 0 end, }, { event = 'ox_inventory:removeJutezak', icon = 'fas fa-hand', label = 'Zak van hoofd halen', canInteract = function() -- Deze optie is altijd beschikbaar (server checkt of er een zak op zit) return true end, } }, distance = 2 }) end -- Event handlers voor qtarget RegisterNetEvent('ox_inventory:placeJutezak', function(data) local targetId = GetPlayerServerId(NetworkGetPlayerIndexFromPed(data.entity)) TriggerServerEvent('ox_inventory:placeJutezak', targetId) end) RegisterNetEvent('ox_inventory:removeJutezak', function(data) local targetId = GetPlayerServerId(NetworkGetPlayerIndexFromPed(data.entity)) TriggerServerEvent('ox_inventory:removeJutezak', targetId) end) -- Export om te checken of lokale speler een zak op heeft exports('HasJutezakLocal', function() return hasJutezak end)