89 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
if not config["codem-inventory"] then return end
 | 
						|
 | 
						|
local playerJob = ""
 | 
						|
local lastItems = {}
 | 
						|
 | 
						|
RegisterNetEvent('tgiCore:Client:OnPlayerLogout', function()
 | 
						|
    self.Functions.RemoveAllWeapons()
 | 
						|
end)
 | 
						|
 | 
						|
RegisterNetEvent('tgiCore:Client:OnPlayerLoaded')
 | 
						|
AddEventHandler('tgiCore:Client:OnPlayerLoaded', function(PlayerData)
 | 
						|
    playerJob = PlayerData.job.name
 | 
						|
    SetTimeout(2000, function() -- some waiting time because the character's inventory data is loaded later
 | 
						|
        lastItems = exports['codem-inventory']:GetClientPlayerInventory()
 | 
						|
        weaponCheck()
 | 
						|
    end)
 | 
						|
end)
 | 
						|
 | 
						|
RegisterNetEvent('tgiCore:Client:OnJobUpdate')
 | 
						|
AddEventHandler('tgiCore:Client:OnJobUpdate', function(job)
 | 
						|
    self.Functions.RemoveAllWeapons()
 | 
						|
    playerJob = job.name
 | 
						|
    weaponCheck()
 | 
						|
end)
 | 
						|
 | 
						|
RegisterNetEvent('codem-inventory:client:additem')
 | 
						|
AddEventHandler('codem-inventory:client:additem', function(slot, data)
 | 
						|
    lastItems[tostring(slot)] = data
 | 
						|
    weaponCheck()
 | 
						|
end)
 | 
						|
 | 
						|
RegisterNetEvent('codem-inventory:client:removeitemtoclientInventory')
 | 
						|
AddEventHandler('codem-inventory:client:removeitemtoclientInventory', function(slot, amount)
 | 
						|
    slot = tostring(slot)
 | 
						|
    if lastItems[slot] then
 | 
						|
        local itemAmount = lastItems[slot].count or lastItems[slot].amount
 | 
						|
        if itemAmount == amount then
 | 
						|
            lastItems[slot] = nil
 | 
						|
        end
 | 
						|
    end
 | 
						|
    weaponCheck()
 | 
						|
end)
 | 
						|
 | 
						|
RegisterNetEvent('codem-inventory:client:clearinventory')
 | 
						|
AddEventHandler('codem-inventory:client:clearinventory', function()
 | 
						|
    lastItems = {}
 | 
						|
    weaponCheck()
 | 
						|
end)
 | 
						|
 | 
						|
RegisterNetEvent('codem-inventory:client:setitembyslot')
 | 
						|
AddEventHandler('codem-inventory:client:setitembyslot', function(slot, itemData)
 | 
						|
    lastItems[tostring(slot)] = itemData
 | 
						|
    weaponCheck()
 | 
						|
end)
 | 
						|
 | 
						|
self.Functions.CheckWeaponIsRemoved = function()
 | 
						|
    if not next(self.weapons) then return end
 | 
						|
    for key, _ in pairs(self.weapons) do
 | 
						|
        local success = false
 | 
						|
        for _, item in pairs(lastItems) do
 | 
						|
            if key == item.info?.serie or item.name then
 | 
						|
                success = true
 | 
						|
                break
 | 
						|
            end
 | 
						|
        end
 | 
						|
        if not success then
 | 
						|
            self.Functions.RemoveWeapon(key)
 | 
						|
        end
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
function weaponCheck()
 | 
						|
    if not lastItems then return end
 | 
						|
    Wait(100)
 | 
						|
    self.Functions.CheckWeaponIsRemoved()
 | 
						|
    local isMale = GetEntityModel(PlayerPedId()) == `mp_m_freemode_01`
 | 
						|
    for _, item in pairs(lastItems) do
 | 
						|
        if item and item.type == "weapon" then
 | 
						|
            self.Functions.AddWeapon({
 | 
						|
                weapon = item.name,
 | 
						|
                key = item?.info?.serie or item.name,
 | 
						|
                attachments = config.tgiann_attachments and
 | 
						|
                    getTgiannAttachments(item.info.tgiattachments, joaat(item.name)) or item.info.attachments,
 | 
						|
                playerJob = playerJob,
 | 
						|
                isMale = isMale
 | 
						|
            })
 | 
						|
        end
 | 
						|
    end
 | 
						|
end
 |