Scripts/resources/[il]/illenium-appearance/client/framework/esx/compatibility.lua
2024-12-29 20:49:12 +01:00

58 lines
1.7 KiB
Lua

if not Framework.ESX() then return end
local client = client
local firstSpawn = false
AddEventHandler("esx_skin:resetFirstSpawn", function()
firstSpawn = true
end)
AddEventHandler("esx_skin:playerRegistered", function()
if(firstSpawn) then
InitializeCharacter(Framework.GetGender(true))
end
end)
RegisterNetEvent("skinchanger:loadSkin2", function(ped, skin)
if not skin.model then skin.model = "mp_m_freemode_01" end
client.setPedAppearance(ped, skin)
Framework.CachePed()
end)
RegisterNetEvent("skinchanger:getSkin", function(cb)
while not Framework.PlayerData do
Wait(1000)
end
lib.callback("illenium-appearance:server:getAppearance", false, function(appearance)
cb(appearance)
Framework.CachePed()
end)
end)
RegisterNetEvent("skinchanger:loadSkin", function(skin, cb)
if skin.model then
client.setPlayerAppearance(skin)
else -- add validation invisible when failed registration (maybe server restarted when apply skin)
SetInitialClothes(Config.InitialPlayerClothes[Framework.GetGender(true)])
end
if Framework.PlayerData and Framework.PlayerData.loadout then
TriggerEvent("esx:restoreLoadout")
end
Framework.CachePed()
if cb ~= nil then
cb()
end
end)
RegisterNetEvent("skinchanger:loadClothes", function(_, clothes)
local components = Framework.ConvertComponents(clothes, client.getPedComponents(cache.ped))
local props = Framework.ConvertProps(clothes, client.getPedProps(cache.ped))
client.setPedComponents(cache.ped, components)
client.setPedProps(cache.ped, props)
end)
RegisterNetEvent("esx_skin:openSaveableMenu", function(onSubmit, onCancel)
InitializeCharacter(Framework.GetGender(true), onSubmit, onCancel)
end)