From 216f64848226c03d9d49cffde9f022c7308d619d Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Wed, 13 Aug 2025 13:46:44 +0200 Subject: [PATCH] feat: sync player data inv & loadout --- [core]/es_extended/client/modules/events.lua | 19 ++++++++++ [core]/es_extended/imports.lua | 39 ++++++++++++++++++++ [core]/es_extended/server/classes/player.lua | 2 + 3 files changed, 60 insertions(+) diff --git a/[core]/es_extended/client/modules/events.lua b/[core]/es_extended/client/modules/events.lua index 764a897a..a44239bd 100644 --- a/[core]/es_extended/client/modules/events.lua +++ b/[core]/es_extended/client/modules/events.lua @@ -196,6 +196,25 @@ if not Config.CustomInventory then end end) + ESX.SecureNetEvent("esx:addLoadoutItem", function(weaponName, weaponLabel, ammo) + table.insert(ESX.PlayerData.loadout, { + name = weaponName, + ammo = ammo, + label = weaponLabel, + components = {}, + tintIndex = 0, + }) + end) + + ESX.SecureNetEvent("esx:removeLoadoutItem", function(weaponName, weaponLabel) + for i = 1, #ESX.PlayerData.loadout do + if ESX.PlayerData.loadout[i].name == weaponName then + table.remove(ESX.PlayerData.loadout, i) + break + end + end + end) + RegisterNetEvent("esx:addWeapon", function() error("event ^5'esx:addWeapon'^1 Has Been Removed. Please use ^5xPlayer.addWeapon^1 Instead!") end) diff --git a/[core]/es_extended/imports.lua b/[core]/es_extended/imports.lua index 3ea31a3b..edd5ec8a 100644 --- a/[core]/es_extended/imports.lua +++ b/[core]/es_extended/imports.lua @@ -48,6 +48,45 @@ if not IsDuplicityVersion() then -- Only register this event for the client ESX.PlayerData = {} end) + if not ESX.GetConfig("CustomInventory") then + ESX.SecureNetEvent("esx:addInventoryItem", function(item, count, showNotification) + for k, v in ipairs(ESX.PlayerData.inventory) do + if v.name == item then + ESX.PlayerData.inventory[k].count = count + break + end + end + end) + + ESX.SecureNetEvent("esx:removeInventoryItem", function(item, count, showNotification) + for i = 1, #ESX.PlayerData.inventory do + if ESX.PlayerData.inventory[i].name == item then + ESX.PlayerData.inventory[i].count = count + break + end + end + end) + + ESX.SecureNetEvent("esx:addLoadoutItem", function(weaponName, weaponLabel, ammo) + table.insert(ESX.PlayerData.loadout, { + name = weaponName, + ammo = ammo, + label = weaponLabel, + components = {}, + tintIndex = 0, + }) + end) + + ESX.SecureNetEvent("esx:removeLoadoutItem", function(weaponName, weaponLabel) + for i = 1, #ESX.PlayerData.loadout do + if ESX.PlayerData.loadout[i].name == weaponName then + table.remove(ESX.PlayerData.loadout, i) + break + end + end + end) + end + local external = { { "Class", "class.lua" }, { "Point", "point.lua" } } for i = 1, #external do local module = external[i] diff --git a/[core]/es_extended/server/classes/player.lua b/[core]/es_extended/server/classes/player.lua index df1d1ee5..fb02f3aa 100644 --- a/[core]/es_extended/server/classes/player.lua +++ b/[core]/es_extended/server/classes/player.lua @@ -580,6 +580,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, GiveWeaponToPed(GetPlayerPed(self.source), joaat(weaponName), ammo, false, false) self.triggerEvent("esx:addInventoryItem", weaponLabel, false, true) + self.triggerEvent("esx:addLoadoutItem", weaponName, weaponLabel, ammo) end end @@ -692,6 +693,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, if weaponLabel then self.triggerEvent("esx:removeInventoryItem", weaponLabel, false, true) + self.triggerEvent("esx:removeLoadoutItem", weaponName, weaponLabel) end end