From 434a4cabfe2d58fbb877e70707a20ba56a8a02b9 Mon Sep 17 00:00:00 2001 From: renaiku Date: Sun, 6 Aug 2017 12:47:09 +0200 Subject: [PATCH] Add bags, makeup, ageing, eyebrows ... --- client/main.lua | 210 +++++++++++++++++++++++++++++++----------------- 1 file changed, 136 insertions(+), 74 deletions(-) diff --git a/client/main.lua b/client/main.lua index aa9fa324..8bf6469b 100644 --- a/client/main.lua +++ b/client/main.lua @@ -1,36 +1,54 @@ -local Components = { - {label = 'Sexe', name = 'sex', value = 0, min = 0 }, - {label = 'Visage', name = 'face', value = 0, min = 0 }, - {label = 'Peau', name = 'skin', value = 0, min = 0 }, - {label = 'Type Barbe', name = 'beard_1', value = 0, min = 0 }, - {label = 'Taille barbe', name = 'beard_2', value = 0, min = 0 }, - {label = 'Couleur barbe 1', name = 'beard_3', value = 0, min = 0 }, - {label = 'Couleur barbe 2', name = 'beard_4', value = 0, min = 0 }, - {label = 'Cheveux 1', name = 'hair_1', value = 0, min = 0 }, - {label = 'Cheveux 2', name = 'hair_2', value = 0, min = 0 }, - {label = 'Couleur cheveux 1', name = 'hair_color_1', value = 0, min = 0 }, - {label = 'Couleur cheveux 2', name = 'hair_color_2', value = 0, min = 0 }, - {label = 'T-Shirt 1', name = 'tshirt_1', value = 0, min = 0 }, - {label = 'T-Shirt 2', name = 'tshirt_2', value = 0, min = 0 , textureof = 'tshirt_1'}, - {label = 'Torse 1', name = 'torso_1', value = 0, min = 0 }, - {label = 'Torse 2', name = 'torso_2', value = 0, min = 0 , textureof = 'torso_1'}, - {label = 'Calques 1', name = 'decals_1', value = 0, min = 0 }, - {label = 'Calques 2', name = 'decals_2', value = 0, min = 0 , textureof = 'decals_1'}, - {label = 'Bras', name = 'arms', value = 0, min = 0 }, - {label = 'Jambes 1', name = 'pants_1', value = 0, min = 0 }, - {label = 'Jambes 2', name = 'pants_2', value = 0, min = 0 , textureof = 'pants_1'}, - {label = 'Chaussures 1', name = 'shoes_1', value = 0, min = 0 }, - {label = 'Chaussures 2', name = 'shoes_2', value = 0, min = 0 , textureof = 'shoes_1'}, - {label = 'Masque 1', name = 'mask_1', value = 0, min = 0 }, - {label = 'Masque 2', name = 'mask_2', value = 0, min = 0 , textureof = 'mask_1'}, - {label = 'Gilet pare-balle 1', name = 'bproof_1', value = 0, min = 0 }, - {label = 'Gilet pare-balle 2', name = 'bproof_2', value = 0, min = 0 , textureof = 'bproof_1'}, - {label = 'Chaine 1', name = 'chain_1', value = 0, min = 0 }, - {label = 'Chaine 2', name = 'chain_2', value = 0, min = 0 , textureof = 'chain_1'}, - {label = 'Casque 1', name = 'helmet_1', value = -1, min = -1, componentId = 0}, - {label = 'Casque 2', name = 'helmet_2', value = 0, min = 0 , textureof = 'helmet_1'}, - {label = 'Lunettes 1', name = 'glasses_1', value = 0, min = 0 }, - {label = 'Lunettes 2', name = 'glasses_2', value = 0, min = 0 , textureof = 'glasses_1'}, +local Components = { + {label = 'Sexe', name = 'sex', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65}, -- + {label = 'Visage', name = 'face', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65}, -- + {label = 'Peau', name = 'skin', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65}, -- + {label = 'Rides', name = 'age_1', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, -- + {label = 'Epaisseur rides', name = 'age_2', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, -- + {label = 'Type Barbe', name = 'beard_1', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, -- + {label = 'Taille barbe', name = 'beard_2', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, -- + {label = 'Couleur barbe 1', name = 'beard_3', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, -- + {label = 'Couleur barbe 2', name = 'beard_4', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, -- + {label = 'Cheveux 1', name = 'hair_1', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65}, -- + {label = 'Cheveux 2', name = 'hair_2', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65}, -- + {label = 'Couleur cheveux 1', name = 'hair_color_1', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65}, -- + {label = 'Couleur cheveux 2', name = 'hair_color_2', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65}, -- + {label = 'Type Sourcils', name = 'eyebrows_1', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, -- + {label = 'Taille Sourcils', name = 'eyebrows_2', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, -- + {label = 'Couleur Sourcils 1', name = 'eyebrows_3', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, -- + {label = 'Couleur Sourcils 2', name = 'eyebrows_4', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, -- + {label = 'Type Maquillage', name = 'makeup_1', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, -- + {label = 'Epaisseur Maquillage', name = 'makeup_2', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, -- + {label = 'Couleur Maquillage 1', name = 'makeup_3', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, -- + {label = 'Couleur Maquillage 2', name = 'makeup_4', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, -- + {label = 'Type Lipstick', name = 'lipstick_1', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, -- + {label = 'Epaisseur Lipstick', name = 'lipstick_2', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, -- + {label = 'Couleur Lipstick 1', name = 'lipstick_3', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, -- + {label = 'Couleur Lipstick 2', name = 'lipstick_4', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, -- + {label = 'Accessoire Oreilles',name = 'ears_1', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, -- + {label = 'Couleur Accessoire', name = 'ears_2', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65, textureof = 'ears_1'}, -- + {label = 'T-Shirt 1', name = 'tshirt_1', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15}, -- + {label = 'T-Shirt 2', name = 'tshirt_2', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15, textureof = 'tshirt_1'}, -- + {label = 'Torse 1', name = 'torso_1', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15}, -- + {label = 'Torse 2', name = 'torso_2', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15, textureof = 'torso_1'}, -- + {label = 'Calques 1', name = 'decals_1', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15}, -- + {label = 'Calques 2', name = 'decals_2', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15, textureof = 'decals_1'}, -- + {label = 'Bras', name = 'arms', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15}, -- + {label = 'Jambes 1', name = 'pants_1', value = 0, min = 0, zoomOffset = 0.8, camOffset = -0.5}, -- + {label = 'Jambes 2', name = 'pants_2', value = 0, min = 0, zoomOffset = 0.8, camOffset = -0.5, textureof = 'pants_1'}, -- + {label = 'Chaussures 1', name = 'shoes_1', value = 0, min = 0, zoomOffset = 0.8, camOffset = -0.8}, + {label = 'Chaussures 2', name = 'shoes_2', value = 0, min = 0, zoomOffset = 0.8, camOffset = -0.8, textureof = 'shoes_1'}, + {label = 'Masque 1', name = 'mask_1', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65}, -- + {label = 'Masque 2', name = 'mask_2', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65, textureof = 'mask_1'}, -- + {label = 'Gilet pare-balle 1', name = 'bproof_1', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15}, -- + {label = 'Gilet pare-balle 2', name = 'bproof_2', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15, textureof = 'bproof_1'}, -- + {label = 'Chaine 1', name = 'chain_1', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65}, -- + {label = 'Chaine 2', name = 'chain_2', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65, textureof = 'chain_1'}, -- + {label = 'Casque 1', name = 'helmet_1', value = -1, min = -1, componentId = 0, zoomOffset = 0.6, camOffset = 0.65}, -- + {label = 'Casque 2', name = 'helmet_2', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65, textureof = 'helmet_1'}, -- + {label = 'Lunettes 1', name = 'glasses_1', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65}, -- + {label = 'Lunettes 2', name = 'glasses_2', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65, textureof = 'glasses_1'}, -- + {label = 'Sac', name = 'bags_1', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15}, + {label = 'Couleur Sac', name = 'bags_2', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15, textureof = 'bags_1'} } local LastSex = 0 @@ -43,35 +61,35 @@ for i=1, #Components, 1 do end function LoadDefaultModel(loadMale) - + local playerPed = GetPlayerPed(-1) - local characterModel + local characterModel - if loadMale then - characterModel = GetHashKey('mp_m_freemode_01') - else - characterModel = GetHashKey('mp_f_freemode_01'); - end + if loadMale then + characterModel = GetHashKey('mp_m_freemode_01') + else + characterModel = GetHashKey('mp_f_freemode_01'); + end - RequestModel(characterModel) + RequestModel(characterModel) - Citizen.CreateThread(function() - - while not HasModelLoaded(characterModel) do - RequestModel(characterModel) - Citizen.Wait(0) - end + Citizen.CreateThread(function() - if IsModelInCdimage(characterModel) and IsModelValid(characterModel) then - SetPlayerModel(PlayerId(), characterModel) - SetPedDefaultComponentVariation(playerPed) - end + while not HasModelLoaded(characterModel) do + RequestModel(characterModel) + Citizen.Wait(0) + end - SetModelAsNoLongerNeeded(characterModel) + if IsModelInCdimage(characterModel) and IsModelValid(characterModel) then + SetPlayerModel(PlayerId(), characterModel) + SetPedDefaultComponentVariation(playerPed) + end - TriggerEvent('skinchanger:modelLoaded') + SetModelAsNoLongerNeeded(characterModel) - end) + TriggerEvent('skinchanger:modelLoaded') + + end) end @@ -83,14 +101,30 @@ function GetMaxVals() sex = 1, face = 45, skin = 45, - beard_1 = GetNumHeadOverlayValues(1), + age_1 = GetNumHeadOverlayValues(3)-1, + age_2 = 10, + beard_1 = GetNumHeadOverlayValues(1)-1, beard_2 = 10, - beard_3 = 63, - beard_4 = 63, + beard_3 = GetNumHairColors()-1, + beard_4 = GetNumHairColors()-1, hair_1 = GetNumberOfPedDrawableVariations(playerPed, 2) - 1, hair_2 = GetNumberOfPedTextureVariations(playerPed, 2, Character['hair_1']) - 1, - hair_color_1 = 22, - hair_color_2 = 4, + hair_color_1 = GetNumHairColors()-1, + hair_color_2 = GetNumHairColors()-1, + eyebrows_1 = GetNumHeadOverlayValues(2)-1, + eyebrows_2 = 10, + eyebrows_3 = GetNumHairColors()-1, + eyebrows_4 = GetNumHairColors()-1, + makeup_1 = GetNumHeadOverlayValues(4)-1, + makeup_2 = 10, + makeup_3 = 74, + makeup_4 = 74, + lipstick_1 = GetNumHeadOverlayValues(8)-1, + lipstick_2 = 10, + lipstick_3 = 9, + lipstick_4 = 9, + ears_1 = GetNumberOfPedPropDrawableVariations(playerPed, 1) - 1, + ears_2 = GetNumberOfPedPropTextureVariations(playerPed, 1, Character['ears_1'] - 1), tshirt_1 = GetNumberOfPedDrawableVariations(playerPed, 8) - 1, tshirt_2 = GetNumberOfPedTextureVariations(playerPed, 8, Character['tshirt_1']) - 1, torso_1 = GetNumberOfPedDrawableVariations(playerPed, 11) - 1, @@ -102,12 +136,14 @@ function GetMaxVals() pants_2 = GetNumberOfPedTextureVariations(playerPed, 4, Character['pants_1']) - 1, shoes_1 = GetNumberOfPedDrawableVariations(playerPed, 6) - 1, shoes_2 = GetNumberOfPedTextureVariations(playerPed, 6, Character['shoes_1']) - 1, - mask_1 = GetNumberOfPedDrawableVariations(playerPed, 1) - 1, - mask_2 = GetNumberOfPedTextureVariations(playerPed, 1, Character['mask_1']) - 1, - bproof_1 = GetNumberOfPedDrawableVariations(playerPed, 9) - 1, - bproof_2 = GetNumberOfPedTextureVariations(playerPed, 9, Character['bproof_1']) - 1, - chain_1 = GetNumberOfPedDrawableVariations(playerPed, 7) - 1, - chain_2 = GetNumberOfPedTextureVariations(playerPed, 7, Character['chain_1']) - 1, + mask_1 = GetNumberOfPedDrawableVariations(playerPed, 1) - 1, + mask_2 = GetNumberOfPedTextureVariations(playerPed, 1, Character['mask_1']) - 1, + bproof_1 = GetNumberOfPedDrawableVariations(playerPed, 9) - 1, + bproof_2 = GetNumberOfPedTextureVariations(playerPed, 9, Character['bproof_1']) - 1, + chain_1 = GetNumberOfPedDrawableVariations(playerPed, 7) - 1, + chain_2 = GetNumberOfPedTextureVariations(playerPed, 7, Character['chain_1']) - 1, + bags_1 = GetNumberOfPedDrawableVariations(playerPed, 5) - 1, + bags_2 = GetNumberOfPedTextureVariations(playerPed, 5, Character['bags_1']) - 1, helmet_1 = GetNumberOfPedPropDrawableVariations(playerPed, 0) - 1, helmet_2 = GetNumberOfPedTextureVariations(playerPed, 0, Character['helmet_1']) - 1, glasses_1 = GetNumberOfPedPropDrawableVariations(playerPed, 1) - 1, @@ -133,6 +169,8 @@ function ApplySkin(skin, clothes) k ~= 'sex' and k ~= 'face' and k ~= 'skin' and + k ~= 'age_1' and + k ~= 'age_2' and k ~= 'beard_1' and k ~= 'beard_2' and k ~= 'beard_3' and @@ -140,7 +178,19 @@ function ApplySkin(skin, clothes) k ~= 'hair_1' and k ~= 'hair_2' and k ~= 'hair_color_1' and - k ~= 'hair_color_2' + k ~= 'hair_color_2' and + k ~= 'eyebrows_1' and + k ~= 'eyebrows_2' and + k ~= 'eyebrows_3' and + k ~= 'eyebrows_4' and + k ~= 'makeup_1' and + k ~= 'makeup_2' and + k ~= 'makeup_3' and + k ~= 'makeup_4' and + k ~= 'lipstick_1' and + k ~= 'lipstick_2' and + k ~= 'lipstick_3' and + k ~= 'lipstick_4' then Character[k] = v end @@ -149,26 +199,34 @@ function ApplySkin(skin, clothes) end SetPedHeadBlendData(playerPed, Character['face'], Character['face'], Character['face'], Character['skin'], Character['skin'], Character['skin'], 1.0, 1.0, 1.0, true) - SetPedHeadOverlay(playerPed, 1, Character['beard_1'], (Character['beard_2'] / 10) + 0.0) -- Beard - SetPedHeadOverlayColor(playerPed, 1, 1, Character['beard_3'], Character['beard_4']) -- Beard Color + + SetPedHeadOverlay(playerPed, 3, Character['age_1'], (Character['age_2'] / 10) + 0.0) -- Age + opacity + SetPedHeadOverlay(playerPed, 1, Character['beard_1'], (Character['beard_2'] / 10) + 0.0) -- Beard + opacity + SetPedHeadOverlayColor(playerPed, 1, 1, Character['beard_3'], Character['beard_4']) -- Beard Color + SetPedHeadOverlay(playerPed, 2, Character['eyebrows_1'], (Character['eyebrows_2'] / 10) + 0.0) -- Eyebrows + opacity + SetPedHeadOverlayColor(playerPed, 1, 1, Character['eyebrows_3'], Character['eyebrows_4']) -- Eyebrows Color + SetPedHeadOverlay(playerPed, 4, Character['makeup_1'], (Character['makeup_2'] / 10) + 0.0) -- Makeup + opacity + SetPedHeadOverlayColor(playerPed, 1, 1, Character['makeup_3'], Character['makeup_4']) -- Makeup Color + SetPedHeadOverlay(playerPed, 8, Character['lipstick_1'], (Character['lipstick_2'] / 10) + 0.0) -- Lipstick + opacity + SetPedHeadOverlayColor(playerPed, 2, 1, Character['lipstick_3'], Character['lipstick_4']) -- Lipstick Color SetPedComponentVariation(playerPed, 2, Character['hair_1'], Character['hair_2'], 2) -- Hair - SetPedHairColor(playerPed, Character['hair_color_1'], Character['hair_color_2']) -- Hair Color + SetPedHairColor(playerPed, Character['hair_color_1'], Character['hair_color_2']) -- Hair Color + SetPedPropIndex(playerPed, 2, Character['ears_1'], Character['ears_2'], 2) -- Ears Accessories SetPedComponentVariation(playerPed, 8, Character['tshirt_1'],Character['tshirt_2'], 2) -- Tshirt SetPedComponentVariation(playerPed, 11, Character['torso_1'], Character['torso_2'], 2) -- torso parts SetPedComponentVariation(playerPed, 3, Character['arms'], 0, 2) -- torso SetPedComponentVariation(playerPed, 10, Character['decals_1'], Character['decals_2'], 2) -- decals SetPedComponentVariation(playerPed, 4, Character['pants_1'], Character['pants_2'], 2) -- pants SetPedComponentVariation(playerPed, 6, Character['shoes_1'], Character['shoes_2'], 2) -- shoes - SetPedComponentVariation(playerPed, 1, Character['mask_1'], Character['mask_2'], 2) -- mask - SetPedComponentVariation(playerPed, 9, Character['bproof_1'], Character['bproof_2'], 2) -- bulletproof + SetPedComponentVariation(playerPed, 1, Character['mask_1'], Character['mask_2'], 2) -- mask + SetPedComponentVariation(playerPed, 9, Character['bproof_1'], Character['bproof_2'], 2) -- bulletproof SetPedComponentVariation(playerPed, 7, Character['chain_1'], Character['chain_2'], 2) -- chain - + SetPedComponentVariation(playerPed, 5, Character['bags_1'], Character['bags_2'], 2) -- Bag if Character['helmet_1'] == -1 then ClearPedProp(playerPed, 0) else SetPedPropIndex(playerPed, 0, Character['helmet_1'], Character['helmet_2'], 2) -- Helmet end - SetPedPropIndex(playerPed, 1, Character['glasses_1'], Character['glasses_2'], 2) -- Glasses end @@ -185,6 +243,8 @@ AddEventHandler('skinchanger:getData', function(cb) for i=1, #components, 1 do if k == components[i].name then components[i].value = v + --components[i].zoomOffset = Components[i].zoomOffset + --components[i].camOffset = Components[i].camOffset end end end @@ -210,6 +270,8 @@ end) AddEventHandler('skinchanger:modelLoaded', function() + ClearPedProp(GetPlayerPed(-1), 0) + if LoadSkin ~= nil then ApplySkin(LoadSkin) @@ -236,7 +298,7 @@ AddEventHandler('skinchanger:loadSkin', function(skin) else LoadDefaultModel(false) end - + LastSex = skin['sex'] end)