local QBCore = exports['qb-core']:GetCoreObject() local CurrentBackItems = {} local TempBackItems = {} local checking = true local currentWeapon = nil local slots = 41 local s = {} AddEventHandler('onResourceStart', function(resourceName) if (GetCurrentResourceName() ~= resourceName) then return end BackLoop() end) AddEventHandler('onResourceStop', function(resourceName) if (GetCurrentResourceName() ~= resourceName) then return end resetItems() end) RegisterNetEvent("backitems:showagain", function() resetItems() Wait(2000) BackLoop() end) RegisterNetEvent("QBCore:Client:OnPlayerUnload", function() resetItems() end) RegisterNetEvent("backitems:start", function() Wait(10000) BackLoop() end) RegisterNetEvent("backitems:displayItems", function(toggle) if toggle then for k,v in pairs(TempBackItems) do createBackItem(k) end BackLoop() else TempBackItems = CurrentBackItems checking = false for k,v in pairs(CurrentBackItems) do removeBackItem(k) end CurrentBackItems = {} end end) function resetItems() removeAllBackItems() CurrentBackItems = {} TempBackItems = {} currentWeapon = nil s = {} checking = false end function BackLoop() print("Du forsøgte at fjerne dit våben fra ryggen, så vi giver dig det lige tilbage :) (Stop med at snyde)") checking = true CreateThread(function() while checking do local player = QBCore.Functions.GetPlayerData() while player == nil do player = QBCore.Functions.GetPlayerData() Wait(500) end for i = 1, slots do s[i] = player.items[i] end check() Wait(1000) end end) end function check() for i = 1, slots do if s[i] ~= nil then local name = s[i].name if BackItems[name] then if name ~= currentWeapon then createBackItem(name) end end end end for k,v in pairs(CurrentBackItems) do local hasItem = false for j = 1, slots do if s[j] ~= nil then local name = s[j].name if name == k then hasItem = true end end end if not hasItem then removeBackItem(k) end end end function createBackItem(item) if not CurrentBackItems[item] then if BackItems[item] then local i = BackItems[item] local model = i["model"] local ped = PlayerPedId() local bone = GetPedBoneIndex(ped, i["back_bone"]) RequestModel(model) while not HasModelLoaded(model) do Wait(10) end SetModelAsNoLongerNeeded(model) CurrentBackItems[item] = CreateObject(GetHashKey(model), 1.0, 1.0, 1.0, true, true, false) local y = i["y"] if QBCore.Functions.GetPlayerData().charinfo.gender == 1 then y = y + 0.035 end AttachEntityToEntity(CurrentBackItems[item], ped, bone, i["x"], y, i["z"], i["x_rotation"], i["y_rotation"], i["z_rotation"], 0, 1, 0, 1, 0, 1) SetEntityCompletelyDisableCollision(CurrentBackItems[item], false, true) end end end function removeBackItem(item) if CurrentBackItems[item] then DeleteEntity(CurrentBackItems[item]) CurrentBackItems[item] = nil end end function removeAllBackItems() for k,v in pairs(CurrentBackItems) do removeBackItem(k) end end RegisterNetEvent('weapons:client:SetCurrentWeapon', function(weap, shootbool) if weap == nil then createBackItem(currentWeapon) currentWeapon = nil else if currentWeapon ~= nil then createBackItem(currentWeapon) currentWeapon = nil end currentWeapon = tostring(weap.name) removeBackItem(currentWeapon) end end)