fix(esx_skin/client/modules/menu): fix texture variations not updating

This commit is contained in:
Ilias Rbayti
2024-11-27 21:38:48 +01:00
parent 346ce34902
commit 2b8841c95a
+23 -15
View File
@@ -47,7 +47,7 @@ function Menu:InsertElements()
value = GetPedPropIndex(playerPed, self.components[i].componentId)
end
local data = self.components[i]
local data = table.clone(self.components[i])
data.value = value
data.type = "slider"
data.max = self.maxValues[self.components[i].name]
@@ -78,27 +78,35 @@ function Menu:Change(data, menu)
Skin.zoomOffset = data.current.zoomOffset
Skin.camOffset = data.current.camOffset
if skin[data.current.name] ~= data.current.value then
-- Change skin element
exports["skinchanger"]:Change(data.current.name, data.current.value)
skin[data.current.name] = data.current.value
if skin[data.current.name] == data.current.value then
return
end
local newData = {}
-- Change skin element
exports["skinchanger"]:Change(data.current.name, data.current.value)
skin[data.current.name] = data.current.value
for i = 1, #self.elements, 1 do
-- Texture variation changed. We don't have to update anything.
if data.current.textureof then
return
end
-- Texture changed. Update variation max value.
for i = 1, #self.elements, 1 do
local element = self.elements[i]
if element.textureof == data.current.name then
local component = self.components[i]
newData.max = type(component.max) == "function" and component.max(PlayerPedId(), skin) or component.max
if self.elements[i].textureof ~= nil and data.current.name == self.elements[i].textureof then
newData.value = 0
if (ESX.IsFunctionReference(component.max)) then
self.elements[i].max = component.max(PlayerPedId(), skin)
end
self.elements[i].value = 0
menu.update({ name = self.elements[i].name }, newData)
menu.update({ name = self.elements[i].name }, self.elements[i])
menu.refresh()
break
end
self.elements = newData
menu.refresh()
end
end