142 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			142 lines
		
	
	
	
		
			4 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)
 | 
