143 lines
4.0 KiB
Lua
143 lines
4.0 KiB
Lua
|
local function typeof(var)
|
||
|
local _type = type(var);
|
||
|
if (_type ~= "table" and _type ~= "userdata") then
|
||
|
return _type;
|
||
|
end
|
||
|
local _meta = getmetatable(var);
|
||
|
if (_meta ~= nil and _meta._NAME ~= nil) then
|
||
|
return _meta._NAME;
|
||
|
else
|
||
|
return _type;
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function LoadJobOutfit(oData)
|
||
|
local ped = cache.ped
|
||
|
|
||
|
local data = oData.outfitData
|
||
|
|
||
|
if typeof(data) ~= "table" then
|
||
|
data = json.decode(data)
|
||
|
end
|
||
|
|
||
|
-- Pants
|
||
|
if data["pants"] ~= nil then
|
||
|
SetPedComponentVariation(ped, 4, data["pants"].item, data["pants"].texture, 0)
|
||
|
end
|
||
|
|
||
|
-- Arms
|
||
|
if data["arms"] ~= nil then
|
||
|
SetPedComponentVariation(ped, 3, data["arms"].item, data["arms"].texture, 0)
|
||
|
end
|
||
|
|
||
|
-- T-Shirt
|
||
|
if data["t-shirt"] ~= nil then
|
||
|
SetPedComponentVariation(ped, 8, data["t-shirt"].item, data["t-shirt"].texture, 0)
|
||
|
end
|
||
|
|
||
|
-- Vest
|
||
|
if data["vest"] ~= nil then
|
||
|
SetPedComponentVariation(ped, 9, data["vest"].item, data["vest"].texture, 0)
|
||
|
end
|
||
|
|
||
|
-- Torso 2
|
||
|
if data["torso2"] ~= nil then
|
||
|
SetPedComponentVariation(ped, 11, data["torso2"].item, data["torso2"].texture, 0)
|
||
|
end
|
||
|
|
||
|
-- Shoes
|
||
|
if data["shoes"] ~= nil then
|
||
|
SetPedComponentVariation(ped, 6, data["shoes"].item, data["shoes"].texture, 0)
|
||
|
end
|
||
|
|
||
|
-- Badge
|
||
|
if data["decals"] ~= nil then
|
||
|
SetPedComponentVariation(ped, 10, data["decals"].item, data["decals"].texture, 0)
|
||
|
end
|
||
|
|
||
|
-- Accessory
|
||
|
local tracker = Config.TrackerClothingOptions
|
||
|
|
||
|
if data["accessory"] ~= nil then
|
||
|
if Framework.HasTracker() then
|
||
|
SetPedComponentVariation(ped, 7, tracker.drawable, tracker.texture, 0)
|
||
|
else
|
||
|
SetPedComponentVariation(ped, 7, data["accessory"].item, data["accessory"].texture, 0)
|
||
|
end
|
||
|
else
|
||
|
if Framework.HasTracker() then
|
||
|
SetPedComponentVariation(ped, 7, tracker.drawable, tracker.texture, 0)
|
||
|
else
|
||
|
local drawableId = GetPedDrawableVariation(ped, 7)
|
||
|
|
||
|
if drawableId ~= -1 then
|
||
|
local textureId = GetPedTextureVariation(ped, 7)
|
||
|
if drawableId == tracker.drawable and textureId == tracker.texture then
|
||
|
SetPedComponentVariation(ped, 7, -1, 0, 2)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
-- Mask
|
||
|
if data["mask"] ~= nil then
|
||
|
SetPedComponentVariation(ped, 1, data["mask"].item, data["mask"].texture, 0)
|
||
|
end
|
||
|
|
||
|
-- Bag
|
||
|
if data["bag"] ~= nil then
|
||
|
SetPedComponentVariation(ped, 5, data["bag"].item, data["bag"].texture, 0)
|
||
|
end
|
||
|
|
||
|
-- Hat
|
||
|
if data["hat"] ~= nil then
|
||
|
if data["hat"].item ~= -1 and data["hat"].item ~= 0 then
|
||
|
SetPedPropIndex(ped, 0, data["hat"].item, data["hat"].texture, true)
|
||
|
else
|
||
|
ClearPedProp(ped, 0)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
-- Glass
|
||
|
if data["glass"] ~= nil then
|
||
|
if data["glass"].item ~= -1 and data["glass"].item ~= 0 then
|
||
|
SetPedPropIndex(ped, 1, data["glass"].item, data["glass"].texture, true)
|
||
|
else
|
||
|
ClearPedProp(ped, 1)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
-- Ear
|
||
|
if data["ear"] ~= nil then
|
||
|
if data["ear"].item ~= -1 and data["ear"].item ~= 0 then
|
||
|
SetPedPropIndex(ped, 2, data["ear"].item, data["ear"].texture, true)
|
||
|
else
|
||
|
ClearPedProp(ped, 2)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
local length = 0
|
||
|
for _ in pairs(data) do
|
||
|
length = length + 1
|
||
|
end
|
||
|
|
||
|
if Config.PersistUniforms and length > 1 then
|
||
|
TriggerServerEvent("illenium-appearance:server:syncUniform", {
|
||
|
jobName = oData.jobName,
|
||
|
gender = oData.gender,
|
||
|
label = oData.name
|
||
|
})
|
||
|
end
|
||
|
end
|
||
|
|
||
|
RegisterNetEvent("illenium-appearance:client:loadJobOutfit", LoadJobOutfit)
|
||
|
|
||
|
RegisterNetEvent("illenium-appearance:client:openOutfitMenu", function()
|
||
|
OpenMenu(nil, "outfit")
|
||
|
end)
|
||
|
|
||
|
RegisterNetEvent("illenium-apearance:client:outfitsCommand", function(isJob)
|
||
|
local outfits = GetPlayerJobOutfits(isJob)
|
||
|
TriggerEvent("illenium-appearance:client:openJobOutfitsMenu", outfits)
|
||
|
end)
|