problème esx_truck_inventory

Bonsoir j’ai un problème avec l’esx_truck_inventory

● Machine locale
● Framework ESX
● Nom de la ressource esx_jb_advanced_truck_inventory

j’ai modifié la touche pour ouvrir le coffre mais rien ne se passe j’ai essayé de changer les touches plusieurs fois mais rien à faire.
j’ai bien start la ressource dans le server.cfg

voici le client/main.lua je ne sais pas si il y a une erreur ou quoi si quelqu’un peut m’aider merci d’avance :wink:

Citation
local Keys = {
[“ESC”] = 322, [“F1”] = 288, [“F2”] = 289, [“F3”] = 170, [“F5”] = 166, [“F6”] = 167, [“F7”] = 168, [“F8”] = 169, [“F9”] = 56, [“F10”] = 57,
["~"] = 243, [“1”] = 157, [“2”] = 158, [“3”] = 160, [“4”] = 164, [“5”] = 165, [“6”] = 159, [“7”] = 161, [“8”] = 162, [“9”] = 163, ["-"] = 84, ["="] = 83, [“BACKSPACE”] = 177,
[“TAB”] = 37, [“Q”] = 44, [“W”] = 32, [“E”] = 38, [“R”] = 45, [“T”] = 245, [“Y”] = 246, [“U”] = 303, [“P”] = 199, ["["] = 39, ["]"] = 40, [“ENTER”] = 18,
[“CAPS”] = 137, [“A”] = 34, [“S”] = 8, [“D”] = 9, [“F”] = 23, [“G”] = 47, [“H”] = 74, [“K”] = 311, [“L”] = 182,
[“LEFTSHIFT”] = 21, [“Z”] = 20, [“X”] = 73, [“C”] = 26, [“V”] = 0, [“B”] = 29, [“N”] = 249, [“M”] = 244, [","] = 82, ["."] = 81,["-"] = 84,
[“LEFTCTRL”] = 36, [“LEFTALT”] = 19, [“SPACE”] = 22, [“RIGHTCTRL”] = 70,
[“HOME”] = 213, [“PAGEUP”] = 10, [“PAGEDOWN”] = 11, [“DELETE”] = 178,
[“LEFT”] = 174, [“RIGHT”] = 175, [“TOP”] = 27, [“DOWN”] = 173,
[“NENTER”] = 201, [“N4”] = 108, [“N5”] = 60, [“N6”] = 107, [“N+”] = 96, [“N-”] = 97, [“N7”] = 117, [“N8”] = 61, [“N9”] = 118
}

ESX = nil
local GUI = {}
local PlayerData = {}
local lastVehicle = nil
local lastOpen = false
GUI.Time = 0
local vehiclePlate = {}
local arrayWeight = Config.localWeight
local CloseToVehicle = false
local entityWorld = nil
local globalplate = nil

function getItemyWeight(item)
local weight = 0
local itemWeight = 0

if item ~= nil then
itemWeight = Config.DefaultWeight
if arrayWeight[item] ~= nil then
itemWeight = arrayWeight[item]
end
end
return itemWeight
end

Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent(‘esx:getSharedObject’, function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)

RegisterNetEvent(‘esx:playerLoaded’)
AddEventHandler(‘esx:playerLoaded’, function(xPlayer)
PlayerData = xPlayer
TriggerServerEvent(“esx_truck_inventory:getOwnedVehicule”)
end)

RegisterNetEvent(‘esx:setJob’)
AddEventHandler(‘esx:setJob’, function(job)
PlayerData.job = job
end)

RegisterNetEvent(‘esx_truck_inventory:setOwnedVehicule’)
AddEventHandler(‘esx_truck_inventory:setOwnedVehicule’, function(vehicle)
vehiclePlate = vehicle
end)

function VehicleInFront()
local pos = GetEntityCoords(GetPlayerPed(-1))
local entityWorld = GetOffsetFromEntityInWorldCoords(GetPlayerPed(-1), 0.0, 4.0, 0.0)
local rayHandle = CastRayPointToPoint(pos.x, pos.y, pos.z, entityWorld.x, entityWorld.y, entityWorld.z, 10, GetPlayerPed(-1), 0)
local a, b, c, d, result = GetRaycastResult(rayHandle)
return result
end

function VehicleMaxSpeed(vehicle,weight,maxweight)
local percent = (weight/maxweight)*100
local hashk= GetEntityModel(vehicle)
if percent > 80 then
SetEntityMaxSpeed(vehFront,GetVehicleModelMaxSpeed(hashk)/1.4)
elseif percent > 50 then
SetEntityMaxSpeed(vehFront,GetVehicleModelMaxSpeed(hashk)/1.2)
else
SetEntityMaxSpeed(vehFront,GetVehicleModelMaxSpeed(hashk))
end
end

function openmenuvehicle()
local playerPed = GetPlayerPed(-1)
local coords = GetEntityCoords(playerPed)
local vehicle =VehicleInFront()
globalplate = GetVehicleNumberPlateText(vehicle)
if globalplate ~= nil or globalplate ~= “” or globalplate ~= " " then
ESX.TriggerServerCallback(‘esx_truck:checkvehicle’,function(valid)
if (not valid) then
– CloseToVehicle = true
– TriggerServerEvent(‘esx_truck_inventory:AddVehicleList’, globalplate)
local vehFront = VehicleInFront()
local x,y,z = table.unpack(GetEntityCoords(GetPlayerPed(-1),true))
local closecar = GetClosestVehicle(x, y, z, 4.0, 0, 71)
if vehFront > 0 and closecar ~= nil and GetPedInVehicleSeat(closecar, -1) ~= GetPlayerPed(-1) then
lastVehicle = vehFront
local model = GetDisplayNameFromVehicleModel(GetEntityModel(closecar))
local locked = GetVehicleDoorLockStatus(closecar)
local class = GetVehicleClass(vehFront)
ESX.UI.Menu.CloseAll()
if ESX.UI.Menu.IsOpen(‘default’, GetCurrentResourceName(), ‘inventory’) then
SetVehicleDoorShut(vehFront, 5, false)
else
if locked == 1 or class == 15 or class == 16 or class == 14 then
SetVehicleDoorOpen(vehFront, 5, false, false)
ESX.UI.Menu.CloseAll()
if globalplate ~= nil or globalplate ~= “” or globalplate ~= " " then
CloseToVehicle = true
TriggerServerEvent(‘esx_truck_inventory:AddVehicleList’, globalplate)
TriggerServerEvent(“esx_truck_inventory:getInventory”, GetVehicleNumberPlateText(vehFront))
end
else
ESX.ShowNotification(‘Ce coffre est ~r~fermé’)
end
end
else
ESX.ShowNotification(‘Pas de ~r~véhicule~w~ à proximité’)
end
lastOpen = true
GUI.Time = GetGameTimer()
else
TriggerEvent(‘esx:showNotification’, “Quelqu’un regarde déja le coffre.”)
end
end, globalplate)
end

end
local count = 0
– Key controls
Citizen.CreateThread(function()
while true do

Wait(0)
if IsControlPressed(0, Keys["244"]) and (GetGameTimer() - GUI.Time) > 1000 then
	if count == 0 then
		openmenuvehicle()
		count = count +1
	else
		Wait(2000)
		count = 0
	end
elseif lastOpen and IsControlPressed(0, Keys["BACKSPACE"]) and (GetGameTimer() - GUI.Time) > 150 then
  CloseToVehicle = false
  lastOpen = false
  if lastVehicle > 0 then
  	SetVehicleDoorShut(lastVehicle, 5, false)
	local lastvehicleplatetext = GetVehicleNumberPlateText(lastVehicle)
	TriggerServerEvent('esx_truck_inventory:RemoveVehicleList', lastvehicleplatetext)
  	lastVehicle = 0
  end
  GUI.Time  = GetGameTimer()
end

end
end)

– CloseToVehicle
Citizen.CreateThread(function()
while true do

Wait(0)
local pos = GetEntityCoords(GetPlayerPed(-1))
if CloseToVehicle then
	local vehicle = GetClosestVehicle(pos['x'], pos['y'], pos['z'], 2.0, 0, 70)
	if DoesEntityExist(vehicle) then
		CloseToVehicle = true
	else
		TriggerServerEvent('esx_truck_inventory:RemoveVehicleList', globalplate)
		CloseToVehicle = false
		lastOpen = false
		ESX.UI.Menu.CloseAll()
		SetVehicleDoorShut(lastVehicle, 5, false)
	end
end

end
end)

RegisterNetEvent(‘esx_truck_inventory:getInventoryLoaded’)
AddEventHandler(‘esx_truck_inventory:getInventoryLoaded’, function(inventory,weight)
local elements = {}
local vehFrontBack = VehicleInFront()
TriggerServerEvent(“esx_truck_inventory:getOwnedVehicule”)

table.insert(elements, {
  label     = 'Déposer',
  count     = 0,
  value     = 'deposit',
})

if inventory ~= nil and #inventory > 0 then
	for i=1, #inventory, 1 do
	if inventory[i].type == 'item_standard' then
	      table.insert(elements, {
	        label     = inventory[i].label .. ' x' .. inventory[i].count,
	        count     = inventory[i].count,
	        value     = inventory[i].name,
			type	  = inventory[i].type
	      })			
		elseif inventory[i].type == 'item_weapon' then
		  table.insert(elements, {
			label     = inventory[i].label .. ' | munitions: ' .. inventory[i].count,
			count     = inventory[i].count,
			value     = inventory[i].name,
			type	  = inventory[i].type
		  })	
		elseif inventory[i].type == 'item_account' then
		  table.insert(elements, {
			label     = inventory[i].label .. ' [ $' .. inventory[i].count..' ]',
			count     = inventory[i].count,
			value     = inventory[i].name,
			type	  = inventory[i].type
		  })	
		end
	end
end



ESX.UI.Menu.Open(
  'default', GetCurrentResourceName(), 'inventory_deposit',
  {
    title    = 'Contenu du coffre',
    align    = 'bottom-right',
    elements = elements,
  },
  function(data, menu)
  	if data.current.value == 'deposit' then
  		local elem = {}
		-- xPlayer.getAccount('black_money').money
		-- table.insert(elements, {label = 'Argent sale: ' .. inventory.blackMoney, type = 'item_account', value = 'black_money'})
		
  		PlayerData = ESX.GetPlayerData()
		for i=1, #PlayerData.accounts, 1 do
			if PlayerData.accounts[i].name == 'black_money' then
			  -- if PlayerData.accounts[i].money > 0 then
			    table.insert(elem, {
			      label     = PlayerData.accounts[i].label .. ' [ $'.. math.floor(PlayerData.accounts[i].money+0.5) ..' ]',
			      count     = PlayerData.accounts[i].money,
			      value     = PlayerData.accounts[i].name,
			      name      = PlayerData.accounts[i].label,
				  limit     = PlayerData.accounts[i].limit,
				  type		= 'item_account',
			    })
			  -- end
			end
		end
		
		for i=1, #PlayerData.inventory, 1 do
			if PlayerData.inventory[i].count > 0 then
			    table.insert(elem, {
			      label     = PlayerData.inventory[i].label .. ' x' .. PlayerData.inventory[i].count,
			      count     = PlayerData.inventory[i].count,
			      value     = PlayerData.inventory[i].name,
			      name      = PlayerData.inventory[i].label,
				  limit     = PlayerData.inventory[i].limit,
				  type		= 'item_standard',
			    })
			end
		end
		
	local playerPed  = GetPlayerPed(-1)
	local weaponList = ESX.GetWeaponList()

	for i=1, #weaponList, 1 do

	  local weaponHash = GetHashKey(weaponList[i].name)

	  if HasPedGotWeapon(playerPed,  weaponHash,  false) and weaponList[i].name ~= 'WEAPON_UNARMED' then
		local ammo = GetAmmoInPedWeapon(playerPed, weaponHash)
		table.insert(elem, {label = weaponList[i].label .. ' [' .. ammo .. ']',name = weaponList[i].label, type = 'item_weapon', value = weaponList[i].name, count = ammo})
	  end

	end
	

		ESX.UI.Menu.Open(
		  'default', GetCurrentResourceName(), 'inventory_player',
		  {
		    title    = 'Contenu de l\'inventaire',
		    align    = 'bottom-right',
		    elements = elem,
		  },function(data3, menu3)
			ESX.UI.Menu.Open(
			  'dialog', GetCurrentResourceName(), 'inventory_item_count_give',
			  {
			    title = 'quantité'
			  },
			  function(data4, menu4)
        local quantity = tonumber(data4.value)
        local Itemweight =tonumber(getItemyWeight(data3.current.value)) * quantity
        local totalweight = tonumber(weight) + Itemweight
        vehFront = VehicleInFront()

        local typeVeh = GetVehicleClass(vehFront)

        if totalweight > Config.VehicleLimit[typeVeh] then
          max = true
        else
          max = false
        end

        ownedV = 0
        while vehiclePlate == '' do
          Wait(1000)
        end
        for i=1, #vehiclePlate do
          if vehiclePlate[i].plate == GetVehicleNumberPlateText(vehFront) then
            ownedV = 1
            break
          else
            ownedV = 0
          end
        end

        --fin test

        if quantity > 0 and quantity <= tonumber(data3.current.count) and vehFront > 0  then
          local MaxVh =(tonumber(Config.VehicleLimit[typeVeh])/1000)
          local Kgweight =  totalweight/1000
          if not max then
          	local x,y,z = table.unpack(GetEntityCoords(GetPlayerPed(-1),true))
			    	local closecar = GetClosestVehicle(x, y, z, 4.0, 0, 71)

          --  VehicleMaxSpeed(closecar,totalweight,Config.VehicleLimit[GetVehicleClass(closecar)])

			TriggerServerEvent('esx_truck_inventory:addInventoryItem', GetVehicleClass(closecar), GetDisplayNameFromVehicleModel(GetEntityModel(closecar)), GetVehicleNumberPlateText(vehFront), data3.current.value, quantity, data3.current.name, data3.current.type, ownedV)
            ESX.ShowNotification('Poid du coffre : ~g~'.. Kgweight .. ' Kg / '..MaxVh..' Kg')
			Citizen.Wait(500)
			TriggerServerEvent("esx_truck_inventory:getInventory", GetVehicleNumberPlateText(vehFront))
          else
            ESX.ShowNotification('Vous avez atteint la limite des ~r~ '..MaxVh..' Kg')
          end
		else
			ESX.ShowNotification('~r~ Quantité invalide')
		end

			    ESX.UI.Menu.CloseAll()


			  end,
			  function(data4, menu4)
	            SetVehicleDoorShut(vehFrontBack, 5, false)
			    ESX.UI.Menu.CloseAll()
				local lastvehicleplatetext = GetVehicleNumberPlateText(vehFrontBack)
				TriggerServerEvent('esx_truck_inventory:RemoveVehicleList', lastvehicleplatetext)
			  end
			)
		end,
			function(data, menu)
				menu.close()
			end)
	elseif data.current.type == 'cancel' then
		menu.close()
  	else
		ESX.UI.Menu.Open(
		  'dialog', GetCurrentResourceName(), 'inventory_item_count_give',
		  {
		    title = 'quantité'
		  },
		  function(data2, menu2)

		    local quantity = tonumber(data2.value)
			PlayerData = ESX.GetPlayerData()
		    vehFront = VehicleInFront()

      --test
      local Itemweight =tonumber(getItemyWeight(data.current.value)) * quantity
      local poid = weight - Itemweight


		
      for i=1, #PlayerData.inventory, 1 do
		
        if PlayerData.inventory[i].name == data.current.value then
          if tonumber(PlayerData.inventory[i].limit) < tonumber(PlayerData.inventory[i].count) + quantity and PlayerData.inventory[i].limit ~= -1 then
            max = true
          else
            max = false
          end
        end
      end

      --fin test


		if quantity > 0 and quantity <= tonumber(data.current.count) and vehFront > 0 then
        if not max then
           TriggerServerEvent('esx_truck_inventory:removeInventoryItem', GetVehicleNumberPlateText(vehFront), data.current.value, data.current.type, quantity)
		   local typeVeh = GetVehicleClass(vehFront)
		   local MaxVh =(tonumber(Config.VehicleLimit[typeVeh])/1000)
		   local Itemweight =tonumber(getItemyWeight(data.current.value)) * quantity
		   local totalweight = tonumber(weight) - Itemweight
		   local Kgweight =  totalweight/1000
		   ESX.ShowNotification('Poid du coffre : ~g~'.. Kgweight .. ' Kg / '..MaxVh..' Kg')
        else
          ESX.ShowNotification('~r~ Tu en porte trops')
        end
		    else
		      ESX.ShowNotification('~r~ Quantité invalide')
		    end

		    ESX.UI.Menu.CloseAll()

        	local vehFront = VehicleInFront()
          	if vehFront > 0 then
          		ESX.SetTimeout(1500, function()
              		TriggerServerEvent("esx_truck_inventory:getInventory", GetVehicleNumberPlateText(vehFront))
          		end)
            else
              SetVehicleDoorShut(vehFrontBack, 5, false)
            end
		  end,
		  function(data2, menu2)
                    --SetVehicleDoorShut(vehFrontBack, 5, false)
                    ESX.UI.Menu.CloseAll()
                    local lastvehicleplatetext = GetVehicleNumberPlateText(vehFrontBack)
                    TriggerServerEvent('esx_truck_inventory:RemoveVehicleList', lastvehicleplatetext)
                end
            )
        end
    end,
	function(data, menu)
		menu.close()
	end
)

end)

function dump(o)
if type(o) == ‘table’ then
local s = ‘{ ’
for k,v in pairs(o) do
if type(k) ~= ‘number’ then k = ‘"’…k…’"’ end
s = s … ‘[’…k…’] = ’ … dump(v) … ‘,’
end
return s … '} ’
else
return tostring(o)
end
end

Citation

bonjour,

est ce que sans changer la touche cela fonctionne?