From c6a7993c322db35499e869a3b7d68f06c94ed3ff Mon Sep 17 00:00:00 2001 From: Mycroft Date: Sat, 16 Jul 2022 14:40:55 +0100 Subject: [PATCH] refactor - Skin Changer: Formatting, lua54, readme --- [esx]/skinchanger/.editorconfig | 9 - [esx]/skinchanger/README.md | 113 ++--- [esx]/skinchanger/client/main.lua | 747 ++++++++++++------------------ [esx]/skinchanger/config.lua | 702 ++++++++++++++++++++++++++++ [esx]/skinchanger/fxmanifest.lua | 6 +- 5 files changed, 1048 insertions(+), 529 deletions(-) delete mode 100644 [esx]/skinchanger/.editorconfig diff --git a/[esx]/skinchanger/.editorconfig b/[esx]/skinchanger/.editorconfig deleted file mode 100644 index 9b425256..00000000 --- a/[esx]/skinchanger/.editorconfig +++ /dev/null @@ -1,9 +0,0 @@ -root = true - -[*] -indent_size = 4 -indent_style = tab -end_of_line = crlf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true \ No newline at end of file diff --git a/[esx]/skinchanger/README.md b/[esx]/skinchanger/README.md index 6bf24f50..fd03c3cf 100644 --- a/[esx]/skinchanger/README.md +++ b/[esx]/skinchanger/README.md @@ -1,68 +1,45 @@ -# skinchanger +

[ESX] SkinChanger

Discord - Website - Documentation -skinchanger is a resource that makes it easy to set and get player ped clothing. It supports the freemode peds `mp_m_freemode_01` and `mp_f_freemode_01`. +skinchanger is a resource used to both Set and Get Players clothing, accessories and Model - It supports the freemode peds `mp_m_freemode_01` and `mp_f_freemode_01` as well as all Ped Features. -## Download & Installation - -### Using [fvm](https://github.com/qlaffont/fvm-installer) -``` -fvm install --save esx-org/skinchanger -``` - -### Using Git -``` -cd resources -git clone https://github.com/ESX-Org/skinchanger skinchanger -``` - -### Manually -- Download https://github.com/ESX-Org/skinchanger/archive/master.zip - -## Installation -- Add this to your `server.cfg`: - -``` -start skinchanger -``` - -### Usage +## Usage ```lua local isMale = true local skin = { - sex = 1, - face = 0, - skin = 0, - beard_1 = 0, - beard_2 = 0, - beard_3 = 0, - beard_4 = 0, - hair_1 = 0, - hair_2 = 0, - hair_color_1 = 0, - hair_color_2 = 0, - tshirt_1 = 0, - tshirt_2 = 0, - torso_1 = 0, - torso_2 = 0, - decals_1 = 0, - decals_2 = 0, - arms = 0, - pants_1 = 0, - pants_2 = 0, - shoes_1 = 0, - shoes_2 = 0, - mask_1 = 0, - mask_2 = 0, - bproof_1 = 0, - bproof_2 = 0, - chain_1 = 0, - chain_2 = 0, - helmet_1 = 0, - helmet_2 = 0, - glasses_1 = 0, - glasses_2 = 0, + sex = 1, + face = 0, + skin = 0, + beard_1 = 0, + beard_2 = 0, + beard_3 = 0, + beard_4 = 0, + hair_1 = 0, + hair_2 = 0, + hair_color_1 = 0, + hair_color_2 = 0, + tshirt_1 = 0, + tshirt_2 = 0, + torso_1 = 0, + torso_2 = 0, + decals_1 = 0, + decals_2 = 0, + arms = 0, + pants_1 = 0, + pants_2 = 0, + shoes_1 = 0, + shoes_2 = 0, + mask_1 = 0, + mask_2 = 0, + bproof_1 = 0, + bproof_2 = 0, + chain_1 = 0, + chain_2 = 0, + helmet_1 = 0, + helmet_2 = 0, + glasses_1 = 0, + glasses_2 = 0, } -- Load freemode model @@ -73,26 +50,28 @@ TriggerEvent('skinchanger:loadSkin', skin) -- you can also load only some components : TriggerEvent('skinchanger:loadSkin', { - sex = 0, - beard_1 = 0, - beard_2 = 0, + sex = 0, + beard_1 = 0, + beard_2 = 0, }) -- Get list of components and maxVals TriggerEvent('skinchanger:getData', function(components, maxVals) - print('Components => ' .. json.encode(components)) - print('MaxVals => ' .. json.encode(maxVals)) + print('Components => ' .. json.encode(components)) + print('MaxVals => ' .. json.encode(maxVals)) end) -- Get current skin TriggerEvent('skinchanger:getSkin', function(skin) - print(json.encode(skin)) + print(json.encode(skin)) end) ``` # Legal -### License -skinchanger - make your own skin! + +## License + +skinchanger - Own your skin! Copyright (C) 2015-2022 Jérémie N'gadi @@ -100,4 +79,4 @@ This program Is free software: you can redistribute it And/Or modify it under th This program Is distributed In the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty Of MERCHANTABILITY Or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License For more details. -You should have received a copy Of the GNU General Public License along with this program. If Not, see http://www.gnu.org/licenses/. +You should have received a copy Of the GNU General Public License along with this program. If Not, see . diff --git a/[esx]/skinchanger/client/main.lua b/[esx]/skinchanger/client/main.lua index 99f45c0b..80cff99a 100644 --- a/[esx]/skinchanger/client/main.lua +++ b/[esx]/skinchanger/client/main.lua @@ -1,517 +1,362 @@ -local Components = { - {label = _U('sex'), name = 'sex', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65}, - {label = _U('mom'), name = 'mom', value = 21, min = 21, zoomOffset = 0.6, camOffset = 0.65}, - {label = _U('dad'), name = 'dad', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65}, - {label = _U('resemblance'), name = 'face_md_weight', value = 50, min = 0, zoomOffset = 0.6, camOffset = 0.65}, - {label = _U('skin_tone'), name = 'skin_md_weight', value = 50, min = 0, zoomOffset = 0.6, camOffset = 0.65}, - {label = _U('nose_1'), name = 'nose_1', value = 0, min = -10, zoomOffset = 0.6, camOffset = 0.65}, - {label = _U('nose_2'), name = 'nose_2', value = 0, min = -10, zoomOffset = 0.6, camOffset = 0.65}, - {label = _U('nose_3'), name = 'nose_3', value = 0, min = -10, zoomOffset = 0.6, camOffset = 0.65}, - {label = _U('nose_4'), name = 'nose_4', value = 0, min = -10, zoomOffset = 0.6, camOffset = 0.65}, - {label = _U('nose_5'), name = 'nose_5', value = 0, min = -10, zoomOffset = 0.6, camOffset = 0.65}, - {label = _U('nose_6'), name = 'nose_6', value = 0, min = -10, zoomOffset = 0.6, camOffset = 0.65}, - {label = _U('cheeks_1'), name = 'cheeks_1', value = 0, min = -10, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('cheeks_2'), name = 'cheeks_2', value = 0, min = -10, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('cheeks_3'), name = 'cheeks_3', value = 0, min = -10, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('lip_fullness'), name = 'lip_thickness', value = 0, min = -10, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('jaw_bone_width'), name = 'jaw_1', value = 0, min = -10, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('jaw_bone_length'), name = 'jaw_2', value = 0, min = -10, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('chin_height'), name = 'chin_1', value = 0, min = -10, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('chin_length'), name = 'chin_2', value = 0, min = -10, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('chin_width'), name = 'chin_3', value = 0, min = -10, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('chin_hole'), name = 'chin_4', value = 0, min = -10, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('neck_thickness'), name = 'neck_thickness', value = 0, min = -10, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('hair_1'), name = 'hair_1', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65}, - {label = _U('hair_2'), name = 'hair_2', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65}, - {label = _U('hair_color_1'), name = 'hair_color_1', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65}, - {label = _U('hair_color_2'), name = 'hair_color_2', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65}, - {label = _U('tshirt_1'), name = 'tshirt_1', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15, componentId = 8}, - {label = _U('tshirt_2'), name = 'tshirt_2', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15, textureof = 'tshirt_1'}, - {label = _U('torso_1'), name = 'torso_1', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15, componentId = 11}, - {label = _U('torso_2'), name = 'torso_2', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15, textureof = 'torso_1'}, - {label = _U('decals_1'), name = 'decals_1', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15, componentId = 10}, - {label = _U('decals_2'), name = 'decals_2', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15, textureof = 'decals_1'}, - {label = _U('arms'), name = 'arms', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15}, - {label = _U('arms_2'), name = 'arms_2', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15}, - {label = _U('pants_1'), name = 'pants_1', value = 0, min = 0, zoomOffset = 0.8, camOffset = -0.5, componentId = 4}, - {label = _U('pants_2'), name = 'pants_2', value = 0, min = 0, zoomOffset = 0.8, camOffset = -0.5, textureof = 'pants_1'}, - {label = _U('shoes_1'), name = 'shoes_1', value = 0, min = 0, zoomOffset = 0.8, camOffset = -0.8, componentId = 6}, - {label = _U('shoes_2'), name = 'shoes_2', value = 0, min = 0, zoomOffset = 0.8, camOffset = -0.8, textureof = 'shoes_1'}, - {label = _U('mask_1'), name = 'mask_1', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65, componentId = 1}, - {label = _U('mask_2'), name = 'mask_2', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65, textureof = 'mask_1'}, - {label = _U('bproof_1'), name = 'bproof_1', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15, componentId = 9}, - {label = _U('bproof_2'), name = 'bproof_2', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15, textureof = 'bproof_1'}, - {label = _U('chain_1'), name = 'chain_1', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65, componentId = 7}, - {label = _U('chain_2'), name = 'chain_2', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65, textureof = 'chain_1'}, - {label = _U('helmet_1'), name = 'helmet_1', value = -1, min = -1, zoomOffset = 0.6, camOffset = 0.65, componentId = 0 }, - {label = _U('helmet_2'), name = 'helmet_2', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65, textureof = 'helmet_1'}, - {label = _U('glasses_1'), name = 'glasses_1', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65, componentId = 1}, - {label = _U('glasses_2'), name = 'glasses_2', value = 0, min = 0, zoomOffset = 0.6, camOffset = 0.65, textureof = 'glasses_1'}, - {label = _U('watches_1'), name = 'watches_1', value = -1, min = -1, zoomOffset = 0.75, camOffset = 0.15, componentId = 6}, - {label = _U('watches_2'), name = 'watches_2', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15, textureof = 'watches_1'}, - {label = _U('bracelets_1'), name = 'bracelets_1', value = -1, min = -1, zoomOffset = 0.75, camOffset = 0.15, componentId = 7}, - {label = _U('bracelets_2'), name = 'bracelets_2', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15, textureof = 'bracelets_1'}, - {label = _U('bag'), name = 'bags_1', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15, componentId = 5}, - {label = _U('bag_color'), name = 'bags_2', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15, textureof = 'bags_1'}, - {label = _U('eye_color'), name = 'eye_color', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('eye_squint'), name = 'eye_squint', value = 0, min = -10, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('eyebrow_size'), name = 'eyebrows_2', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('eyebrow_type'), name = 'eyebrows_1', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('eyebrow_color_1'), name = 'eyebrows_3', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('eyebrow_color_2'), name = 'eyebrows_4', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('eyebrow_height'), name = 'eyebrows_5', value = 0, min = -10, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('eyebrow_depth'), name = 'eyebrows_6', value = 0, min = -10, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('makeup_type'), name = 'makeup_1', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('makeup_thickness'), name = 'makeup_2', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('makeup_color_1'), name = 'makeup_3', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('makeup_color_2'), name = 'makeup_4', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('lipstick_type'), name = 'lipstick_1', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('lipstick_thickness'), name = 'lipstick_2', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('lipstick_color_1'), name = 'lipstick_3', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('lipstick_color_2'), name = 'lipstick_4', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('ear_accessories'), name = 'ears_1', value = -1, min = -1, zoomOffset = 0.4, camOffset = 0.65, componentId = 2}, - {label = _U('ear_accessories_color'), name = 'ears_2', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65, textureof = 'ears_1'}, - {label = _U('chest_hair'), name = 'chest_1', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15}, - {label = _U('chest_hair_1'), name = 'chest_2', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15}, - {label = _U('chest_color'), name = 'chest_3', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15}, - {label = _U('bodyb'), name = 'bodyb_1', value = -1, min = -1, zoomOffset = 0.75, camOffset = 0.15}, - {label = _U('bodyb_size'), name = 'bodyb_2', value = 0, min = 0, zoomOffset = 0.75, camOffset = 0.15}, - {label = _U('bodyb_extra'), name = 'bodyb_3', value = -1, min = -1, zoomOffset = 0.4, camOffset = 0.15}, - {label = _U('bodyb_extra_thickness'), name = 'bodyb_4', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.15}, - {label = _U('wrinkles'), name = 'age_1', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('wrinkle_thickness'), name = 'age_2', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('blemishes'), name = 'blemishes_1', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('blemishes_size'), name = 'blemishes_2', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('blush'), name = 'blush_1', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('blush_1'), name = 'blush_2', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('blush_color'), name = 'blush_3', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('complexion'), name = 'complexion_1', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('complexion_1'), name = 'complexion_2', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('sun'), name = 'sun_1', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('sun_1'), name = 'sun_2', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('freckles'), name = 'moles_1', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('freckles_1'), name = 'moles_2', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('beard_type'), name = 'beard_1', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('beard_size'), name = 'beard_2', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('beard_color_1'), name = 'beard_3', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65}, - {label = _U('beard_color_2'), name = 'beard_4', value = 0, min = 0, zoomOffset = 0.4, camOffset = 0.65} -} +local LastSex = -1 +local LoadSkin = nil +local LoadClothes = nil +local Character = {} +local Components = Config.Components -local LastSex = -1 -local LoadSkin = nil -local LoadClothes = nil -local Character = {} - -for i=1, #Components, 1 do - Character[Components[i].name] = Components[i].value +for i = 1, #Components, 1 do + Character[Components[i].name] = Components[i].value end function LoadDefaultModel(malePed, cb) - local playerPed = PlayerPedId() - local characterModel + local playerPed = PlayerPedId() + local characterModel - if malePed then - characterModel = GetHashKey("mp_m_freemode_01") - else - characterModel = GetHashKey("mp_f_freemode_01") - end + if malePed then + characterModel = `mp_m_freemode_01` + else + characterModel = `mp_f_freemode_01` + end - RequestModel(characterModel) + RequestModel(characterModel) - CreateThread(function() - while not HasModelLoaded(characterModel) do - RequestModel(characterModel) - Wait(0) - end + CreateThread(function() + while not HasModelLoaded(characterModel) do + RequestModel(characterModel) + Wait(0) + end - if IsModelInCdimage(characterModel) and IsModelValid(characterModel) then - SetPlayerModel(PlayerId(), characterModel) - SetPedDefaultComponentVariation(playerPed) - end + if IsModelInCdimage(characterModel) and IsModelValid(characterModel) then + SetPlayerModel(PlayerId(), characterModel) + SetPedDefaultComponentVariation(playerPed) + end - SetModelAsNoLongerNeeded(characterModel) + SetModelAsNoLongerNeeded(characterModel) - if cb ~= nil then - cb() - end + if cb ~= nil then + cb() + end - TriggerEvent('skinchanger:modelLoaded') - end) + TriggerEvent('skinchanger:modelLoaded') + end) end function GetMaxVals() - local playerPed = PlayerPedId() + local playerPed = PlayerPedId() - local data = { - sex = 1, - mom = 45, -- numbers 21-41 and 45 are female (22 total) - dad = 44, -- numbers 0-20 and 42-44 are male (24 total) - face_md_weight = 100, - skin_md_weight = 100, - nose_1 = 10, - nose_2 = 10, - nose_3 = 10, - nose_4 = 10, - nose_5 = 10, - nose_6 = 10, - cheeks_1 = 10, - cheeks_2 = 10, - cheeks_3 = 10, - lip_thickness = 10, - jaw_1 = 10, - jaw_2 = 10, - chin_1 = 10, - chin_2 = 10, - chin_3 = 10, - chin_4 = 10, - neck_thickness = 10, - age_1 = GetPedHeadOverlayNum(3)-1, - age_2 = 10, - beard_1 = GetPedHeadOverlayNum(1)-1, - beard_2 = 10, - 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 = GetNumHairColors()-1, - hair_color_2 = GetNumHairColors()-1, - eye_color = 31, - eye_squint = 10, - eyebrows_1 = GetPedHeadOverlayNum(2)-1, - eyebrows_2 = 10, - eyebrows_3 = GetNumHairColors()-1, - eyebrows_4 = GetNumHairColors()-1, - eyebrows_5 = 10, - eyebrows_6 = 10, - makeup_1 = GetPedHeadOverlayNum(4)-1, - makeup_2 = 10, - makeup_3 = GetNumHairColors()-1, - makeup_4 = GetNumHairColors()-1, - lipstick_1 = GetPedHeadOverlayNum(8)-1, - lipstick_2 = 10, - lipstick_3 = GetNumHairColors()-1, - lipstick_4 = GetNumHairColors()-1, - blemishes_1 = GetPedHeadOverlayNum(0)-1, - blemishes_2 = 10, - blush_1 = GetPedHeadOverlayNum(5)-1, - blush_2 = 10, - blush_3 = GetNumHairColors()-1, - complexion_1 = GetPedHeadOverlayNum(6)-1, - complexion_2 = 10, - sun_1 = GetPedHeadOverlayNum(7)-1, - sun_2 = 10, - moles_1 = GetPedHeadOverlayNum(9)-1, - moles_2 = 10, - chest_1 = GetPedHeadOverlayNum(10)-1, - chest_2 = 10, - chest_3 = GetNumHairColors()-1, - bodyb_1 = GetPedHeadOverlayNum(11)-1, - bodyb_2 = 10, - bodyb_3 = GetPedHeadOverlayNum(12)-1, - bodyb_4 = 10, - ears_1 = GetNumberOfPedPropDrawableVariations (playerPed, 2) - 1, - ears_2 = GetNumberOfPedPropTextureVariations (playerPed, 2, 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, - torso_2 = GetNumberOfPedTextureVariations (playerPed, 11, Character['torso_1']) - 1, - decals_1 = GetNumberOfPedDrawableVariations (playerPed, 10) - 1, - decals_2 = GetNumberOfPedTextureVariations (playerPed, 10, Character['decals_1']) - 1, - arms = GetNumberOfPedDrawableVariations (playerPed, 3) - 1, - arms_2 = 10, - pants_1 = GetNumberOfPedDrawableVariations (playerPed, 4) - 1, - 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, - bags_1 = GetNumberOfPedDrawableVariations (playerPed, 5) - 1, - bags_2 = GetNumberOfPedTextureVariations (playerPed, 5, Character['bags_1']) - 1, - helmet_1 = GetNumberOfPedPropDrawableVariations (playerPed, 0) - 1, - helmet_2 = GetNumberOfPedPropTextureVariations (playerPed, 0, Character['helmet_1']) - 1, - glasses_1 = GetNumberOfPedPropDrawableVariations (playerPed, 1) - 1, - glasses_2 = GetNumberOfPedPropTextureVariations (playerPed, 1, Character['glasses_1'] - 1), - watches_1 = GetNumberOfPedPropDrawableVariations (playerPed, 6) - 1, - watches_2 = GetNumberOfPedPropTextureVariations (playerPed, 6, Character['watches_1']) - 1, - bracelets_1 = GetNumberOfPedPropDrawableVariations (playerPed, 7) - 1, - bracelets_2 = GetNumberOfPedPropTextureVariations (playerPed, 7, Character['bracelets_1'] - 1) - } + local data = { + sex = 1, + mom = 45, -- numbers 21-41 and 45 are female (22 total) + dad = 44, -- numbers 0-20 and 42-44 are male (24 total) + face_md_weight = 100, + skin_md_weight = 100, + nose_1 = 10, + nose_2 = 10, + nose_3 = 10, + nose_4 = 10, + nose_5 = 10, + nose_6 = 10, + cheeks_1 = 10, + cheeks_2 = 10, + cheeks_3 = 10, + lip_thickness = 10, + jaw_1 = 10, + jaw_2 = 10, + chin_1 = 10, + chin_2 = 10, + chin_3 = 10, + chin_4 = 10, + neck_thickness = 10, + age_1 = GetPedHeadOverlayNum(3) - 1, + age_2 = 10, + beard_1 = GetPedHeadOverlayNum(1) - 1, + beard_2 = 10, + 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 = GetNumHairColors() - 1, + hair_color_2 = GetNumHairColors() - 1, + eye_color = 31, + eye_squint = 10, + eyebrows_1 = GetPedHeadOverlayNum(2) - 1, + eyebrows_2 = 10, + eyebrows_3 = GetNumHairColors() - 1, + eyebrows_4 = GetNumHairColors() - 1, + eyebrows_5 = 10, + eyebrows_6 = 10, + makeup_1 = GetPedHeadOverlayNum(4) - 1, + makeup_2 = 10, + makeup_3 = GetNumHairColors() - 1, + makeup_4 = GetNumHairColors() - 1, + lipstick_1 = GetPedHeadOverlayNum(8) - 1, + lipstick_2 = 10, + lipstick_3 = GetNumHairColors() - 1, + lipstick_4 = GetNumHairColors() - 1, + blemishes_1 = GetPedHeadOverlayNum(0) - 1, + blemishes_2 = 10, + blush_1 = GetPedHeadOverlayNum(5) - 1, + blush_2 = 10, + blush_3 = GetNumHairColors() - 1, + complexion_1 = GetPedHeadOverlayNum(6) - 1, + complexion_2 = 10, + sun_1 = GetPedHeadOverlayNum(7) - 1, + sun_2 = 10, + moles_1 = GetPedHeadOverlayNum(9) - 1, + moles_2 = 10, + chest_1 = GetPedHeadOverlayNum(10) - 1, + chest_2 = 10, + chest_3 = GetNumHairColors() - 1, + bodyb_1 = GetPedHeadOverlayNum(11) - 1, + bodyb_2 = 10, + bodyb_3 = GetPedHeadOverlayNum(12) - 1, + bodyb_4 = 10, + ears_1 = GetNumberOfPedPropDrawableVariations(playerPed, 2) - 1, + ears_2 = GetNumberOfPedPropTextureVariations(playerPed, 2, 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, + torso_2 = GetNumberOfPedTextureVariations(playerPed, 11, Character['torso_1']) - 1, + decals_1 = GetNumberOfPedDrawableVariations(playerPed, 10) - 1, + decals_2 = GetNumberOfPedTextureVariations(playerPed, 10, Character['decals_1']) - 1, + arms = GetNumberOfPedDrawableVariations(playerPed, 3) - 1, + arms_2 = 10, + pants_1 = GetNumberOfPedDrawableVariations(playerPed, 4) - 1, + 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, + bags_1 = GetNumberOfPedDrawableVariations(playerPed, 5) - 1, + bags_2 = GetNumberOfPedTextureVariations(playerPed, 5, Character['bags_1']) - 1, + helmet_1 = GetNumberOfPedPropDrawableVariations(playerPed, 0) - 1, + helmet_2 = GetNumberOfPedPropTextureVariations(playerPed, 0, Character['helmet_1']) - 1, + glasses_1 = GetNumberOfPedPropDrawableVariations(playerPed, 1) - 1, + glasses_2 = GetNumberOfPedPropTextureVariations(playerPed, 1, Character['glasses_1'] - 1), + watches_1 = GetNumberOfPedPropDrawableVariations(playerPed, 6) - 1, + watches_2 = GetNumberOfPedPropTextureVariations(playerPed, 6, Character['watches_1']) - 1, + bracelets_1 = GetNumberOfPedPropDrawableVariations(playerPed, 7) - 1, + bracelets_2 = GetNumberOfPedPropTextureVariations(playerPed, 7, Character['bracelets_1'] - 1) + } - return data + return data end function ApplySkin(skin, clothes) - local playerPed = PlayerPedId() + local playerPed = PlayerPedId() - for k,v in pairs(skin) do - Character[k] = v - end + for k, v in pairs(skin) do + Character[k] = v + end - if clothes ~= nil then - for k,v in pairs(clothes) do - if - k ~= 'sex' and - k ~= 'mom' and - k ~= 'dad' and - k ~= 'face_md_weight' and - k ~= 'skin_md_weight' and - k ~= 'nose_1' and - k ~= 'nose_2' and - k ~= 'nose_3' and - k ~= 'nose_4' and - k ~= 'nose_5' and - k ~= 'nose_6' and - k ~= 'cheeks_1' and - k ~= 'cheeks_2' and - k ~= 'cheeks_3' and - k ~= 'lip_thickness' and - k ~= 'jaw_1' and - k ~= 'jaw_2' and - k ~= 'chin_1' and - k ~= 'chin_2' and - k ~= 'chin_3' and - k ~= 'chin_4' and - k ~= 'neck_thickness' and - k ~= 'age_1' and - k ~= 'age_2' and - k ~= 'eye_color' and - k ~= 'eye_squint' and - k ~= 'beard_1' and - k ~= 'beard_2' and - k ~= 'beard_3' and - k ~= 'beard_4' and - k ~= 'hair_1' and - k ~= 'hair_2' and - k ~= 'hair_color_1' and - k ~= 'hair_color_2' and - k ~= 'eyebrows_1' and - k ~= 'eyebrows_2' and - k ~= 'eyebrows_3' and - k ~= 'eyebrows_4' and - k ~= 'eyebrows_5' and - k ~= 'eyebrows_6' 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' and - k ~= 'blemishes_1' and - k ~= 'blemishes_2' and - k ~= 'blemishes_3' and - k ~= 'blush_1' and - k ~= 'blush_2' and - k ~= 'blush_3' and - k ~= 'complexion_1' and - k ~= 'complexion_2' and - k ~= 'sun_1' and - k ~= 'sun_2' and - k ~= 'moles_1' and - k ~= 'moles_2' and - k ~= 'chest_1' and - k ~= 'chest_2' and - k ~= 'chest_3' and - k ~= 'bodyb_1' and - k ~= 'bodyb_2' and - k ~= 'bodyb_3' and - k ~= 'bodyb_4' - then - Character[k] = v - end - end - end + if clothes ~= nil then + for k, v in pairs(clothes) do + if k ~= 'sex' and k ~= 'mom' and k ~= 'dad' and k ~= 'face_md_weight' and k ~= 'skin_md_weight' and k ~= + 'nose_1' and k ~= 'nose_2' and k ~= 'nose_3' and k ~= 'nose_4' and k ~= 'nose_5' and k ~= 'nose_6' and k ~= + 'cheeks_1' and k ~= 'cheeks_2' and k ~= 'cheeks_3' and k ~= 'lip_thickness' and k ~= 'jaw_1' and k ~= + 'jaw_2' and k ~= 'chin_1' and k ~= 'chin_2' and k ~= 'chin_3' and k ~= 'chin_4' and k ~= + 'neck_thickness' and k ~= 'age_1' and k ~= 'age_2' and k ~= 'eye_color' and k ~= 'eye_squint' and k ~= + 'beard_1' and k ~= 'beard_2' and k ~= 'beard_3' and k ~= 'beard_4' and k ~= 'hair_1' and k ~= 'hair_2' and + k ~= 'hair_color_1' and k ~= 'hair_color_2' and k ~= 'eyebrows_1' and k ~= 'eyebrows_2' and k ~= + 'eyebrows_3' and k ~= 'eyebrows_4' and k ~= 'eyebrows_5' and k ~= 'eyebrows_6' 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' and k ~= 'blemishes_1' and k ~= 'blemishes_2' and k ~= 'blemishes_3' and + k ~= 'blush_1' and k ~= 'blush_2' and k ~= 'blush_3' and k ~= 'complexion_1' and k ~= 'complexion_2' and + k ~= 'sun_1' and k ~= 'sun_2' and k ~= 'moles_1' and k ~= 'moles_2' and k ~= 'chest_1' and k ~= + 'chest_2' and k ~= 'chest_3' and k ~= 'bodyb_1' and k ~= 'bodyb_2' and k ~= 'bodyb_3' and k ~= 'bodyb_4' then + Character[k] = v + end + end + end - local face_weight = (Character['face_md_weight'] / 100) + 0.0 - local skin_weight = (Character['skin_md_weight'] / 100) + 0.0 - SetPedHeadBlendData (playerPed, Character['mom'], Character['dad'], 0, Character['mom'], Character['dad'], 0, face_weight, skin_weight, 0.0, false) + local face_weight = (Character['face_md_weight'] / 100) + 0.0 + local skin_weight = (Character['skin_md_weight'] / 100) + 0.0 + SetPedHeadBlendData(playerPed, Character['mom'], Character['dad'], 0, Character['mom'], Character['dad'], 0, + face_weight, skin_weight, 0.0, false) - SetPedFaceFeature (playerPed, 0, (Character['nose_1'] / 10) + 0.0) -- Nose Width - SetPedFaceFeature (playerPed, 1, (Character['nose_2'] / 10) + 0.0) -- Nose Peak Height - SetPedFaceFeature (playerPed, 2, (Character['nose_3'] / 10) + 0.0) -- Nose Peak Length - SetPedFaceFeature (playerPed, 3, (Character['nose_4'] / 10) + 0.0) -- Nose Bone Height - SetPedFaceFeature (playerPed, 4, (Character['nose_5'] / 10) + 0.0) -- Nose Peak Lowering - SetPedFaceFeature (playerPed, 5, (Character['nose_6'] / 10) + 0.0) -- Nose Bone Twist - SetPedFaceFeature (playerPed, 6, (Character['eyebrows_5'] / 10) + 0.0) -- Eyebrow height - SetPedFaceFeature (playerPed, 7, (Character['eyebrows_6'] / 10) + 0.0) -- Eyebrow depth - SetPedFaceFeature (playerPed, 8, (Character['cheeks_1'] / 10) + 0.0) -- Cheekbones Height - SetPedFaceFeature (playerPed, 9, (Character['cheeks_2'] / 10) + 0.0) -- Cheekbones Width - SetPedFaceFeature (playerPed, 10, (Character['cheeks_3'] / 10) + 0.0) -- Cheeks Width - SetPedFaceFeature (playerPed, 11, (Character['eye_squint'] / 10) + 0.0) -- Eyes squint - SetPedFaceFeature (playerPed, 12, (Character['lip_thickness'] / 10) + 0.0) -- Lip Fullness - SetPedFaceFeature (playerPed, 13, (Character['jaw_1'] / 10) + 0.0) -- Jaw Bone Width - SetPedFaceFeature (playerPed, 14, (Character['jaw_2'] / 10) + 0.0) -- Jaw Bone Length - SetPedFaceFeature (playerPed, 15, (Character['chin_1'] / 10) + 0.0) -- Chin Height - SetPedFaceFeature (playerPed, 16, (Character['chin_2'] / 10) + 0.0) -- Chin Length - SetPedFaceFeature (playerPed, 17, (Character['chin_3'] / 10) + 0.0) -- Chin Width - SetPedFaceFeature (playerPed, 18, (Character['chin_4'] / 10) + 0.0) -- Chin Hole Size - SetPedFaceFeature (playerPed, 19, (Character['neck_thickness'] / 10) + 0.0) -- Neck Thickness + SetPedFaceFeature(playerPed, 0, (Character['nose_1'] / 10) + 0.0) -- Nose Width + SetPedFaceFeature(playerPed, 1, (Character['nose_2'] / 10) + 0.0) -- Nose Peak Height + SetPedFaceFeature(playerPed, 2, (Character['nose_3'] / 10) + 0.0) -- Nose Peak Length + SetPedFaceFeature(playerPed, 3, (Character['nose_4'] / 10) + 0.0) -- Nose Bone Height + SetPedFaceFeature(playerPed, 4, (Character['nose_5'] / 10) + 0.0) -- Nose Peak Lowering + SetPedFaceFeature(playerPed, 5, (Character['nose_6'] / 10) + 0.0) -- Nose Bone Twist + SetPedFaceFeature(playerPed, 6, (Character['eyebrows_5'] / 10) + 0.0) -- Eyebrow height + SetPedFaceFeature(playerPed, 7, (Character['eyebrows_6'] / 10) + 0.0) -- Eyebrow depth + SetPedFaceFeature(playerPed, 8, (Character['cheeks_1'] / 10) + 0.0) -- Cheekbones Height + SetPedFaceFeature(playerPed, 9, (Character['cheeks_2'] / 10) + 0.0) -- Cheekbones Width + SetPedFaceFeature(playerPed, 10, (Character['cheeks_3'] / 10) + 0.0) -- Cheeks Width + SetPedFaceFeature(playerPed, 11, (Character['eye_squint'] / 10) + 0.0) -- Eyes squint + SetPedFaceFeature(playerPed, 12, (Character['lip_thickness'] / 10) + 0.0) -- Lip Fullness + SetPedFaceFeature(playerPed, 13, (Character['jaw_1'] / 10) + 0.0) -- Jaw Bone Width + SetPedFaceFeature(playerPed, 14, (Character['jaw_2'] / 10) + 0.0) -- Jaw Bone Length + SetPedFaceFeature(playerPed, 15, (Character['chin_1'] / 10) + 0.0) -- Chin Height + SetPedFaceFeature(playerPed, 16, (Character['chin_2'] / 10) + 0.0) -- Chin Length + SetPedFaceFeature(playerPed, 17, (Character['chin_3'] / 10) + 0.0) -- Chin Width + SetPedFaceFeature(playerPed, 18, (Character['chin_4'] / 10) + 0.0) -- Chin Hole Size + SetPedFaceFeature(playerPed, 19, (Character['neck_thickness'] / 10) + 0.0) -- Neck Thickness - SetPedHairColor (playerPed, Character['hair_color_1'], Character['hair_color_2']) -- Hair Color - SetPedHeadOverlay (playerPed, 3, Character['age_1'], (Character['age_2'] / 10) + 0.0) -- Age + opacity - SetPedHeadOverlay (playerPed, 0, Character['blemishes_1'], (Character['blemishes_2'] / 10) + 0.0) -- Blemishes + opacity - SetPedHeadOverlay (playerPed, 1, Character['beard_1'], (Character['beard_2'] / 10) + 0.0) -- Beard + opacity - SetPedEyeColor (playerPed, Character['eye_color']) -- Eyes color - SetPedHeadOverlay (playerPed, 2, Character['eyebrows_1'], (Character['eyebrows_2'] / 10) + 0.0) -- Eyebrows + opacity - SetPedHeadOverlay (playerPed, 4, Character['makeup_1'], (Character['makeup_2'] / 10) + 0.0) -- Makeup + opacity - SetPedHeadOverlay (playerPed, 8, Character['lipstick_1'], (Character['lipstick_2'] / 10) + 0.0) -- Lipstick + opacity - SetPedComponentVariation (playerPed, 2, Character['hair_1'], Character['hair_2'], 2) -- Hair - SetPedHeadOverlayColor (playerPed, 1, 1, Character['beard_3'], Character['beard_4']) -- Beard Color - SetPedHeadOverlayColor (playerPed, 2, 1, Character['eyebrows_3'], Character['eyebrows_4']) -- Eyebrows Color - SetPedHeadOverlayColor (playerPed, 4, 2, Character['makeup_3'], Character['makeup_4']) -- Makeup Color - SetPedHeadOverlayColor (playerPed, 8, 1, Character['lipstick_3'], Character['lipstick_4']) -- Lipstick Color - SetPedHeadOverlay (playerPed, 5, Character['blush_1'], (Character['blush_2'] / 10) + 0.0) -- Blush + opacity - SetPedHeadOverlayColor (playerPed, 5, 2, Character['blush_3']) -- Blush Color - SetPedHeadOverlay (playerPed, 6, Character['complexion_1'], (Character['complexion_2'] / 10) + 0.0) -- Complexion + opacity - SetPedHeadOverlay (playerPed, 7, Character['sun_1'], (Character['sun_2'] / 10) + 0.0) -- Sun Damage + opacity - SetPedHeadOverlay (playerPed, 9, Character['moles_1'], (Character['moles_2'] / 10) + 0.0) -- Moles/Freckles + opacity - SetPedHeadOverlay (playerPed, 10, Character['chest_1'], (Character['chest_2'] / 10) + 0.0) -- Chest Hair + opacity - SetPedHeadOverlayColor (playerPed, 10, 1, Character['chest_3']) -- Torso Color + SetPedHairColor(playerPed, Character['hair_color_1'], Character['hair_color_2']) -- Hair Color + SetPedHeadOverlay(playerPed, 3, Character['age_1'], (Character['age_2'] / 10) + 0.0) -- Age + opacity + SetPedHeadOverlay(playerPed, 0, Character['blemishes_1'], (Character['blemishes_2'] / 10) + 0.0) -- Blemishes + opacity + SetPedHeadOverlay(playerPed, 1, Character['beard_1'], (Character['beard_2'] / 10) + 0.0) -- Beard + opacity + SetPedEyeColor(playerPed, Character['eye_color']) -- Eyes color + SetPedHeadOverlay(playerPed, 2, Character['eyebrows_1'], (Character['eyebrows_2'] / 10) + 0.0) -- Eyebrows + opacity + SetPedHeadOverlay(playerPed, 4, Character['makeup_1'], (Character['makeup_2'] / 10) + 0.0) -- Makeup + opacity + SetPedHeadOverlay(playerPed, 8, Character['lipstick_1'], (Character['lipstick_2'] / 10) + 0.0) -- Lipstick + opacity + SetPedComponentVariation(playerPed, 2, Character['hair_1'], Character['hair_2'], 2) -- Hair + SetPedHeadOverlayColor(playerPed, 1, 1, Character['beard_3'], Character['beard_4']) -- Beard Color + SetPedHeadOverlayColor(playerPed, 2, 1, Character['eyebrows_3'], Character['eyebrows_4']) -- Eyebrows Color + SetPedHeadOverlayColor(playerPed, 4, 2, Character['makeup_3'], Character['makeup_4']) -- Makeup Color + SetPedHeadOverlayColor(playerPed, 8, 1, Character['lipstick_3'], Character['lipstick_4']) -- Lipstick Color + SetPedHeadOverlay(playerPed, 5, Character['blush_1'], (Character['blush_2'] / 10) + 0.0) -- Blush + opacity + SetPedHeadOverlayColor(playerPed, 5, 2, Character['blush_3']) -- Blush Color + SetPedHeadOverlay(playerPed, 6, Character['complexion_1'], (Character['complexion_2'] / 10) + 0.0) -- Complexion + opacity + SetPedHeadOverlay(playerPed, 7, Character['sun_1'], (Character['sun_2'] / 10) + 0.0) -- Sun Damage + opacity + SetPedHeadOverlay(playerPed, 9, Character['moles_1'], (Character['moles_2'] / 10) + 0.0) -- Moles/Freckles + opacity + SetPedHeadOverlay(playerPed, 10, Character['chest_1'], (Character['chest_2'] / 10) + 0.0) -- Chest Hair + opacity + SetPedHeadOverlayColor(playerPed, 10, 1, Character['chest_3']) -- Torso Color - if Character['bodyb_1'] == -1 then - SetPedHeadOverlay (playerPed, 11, 255, (Character['bodyb_2'] / 10) + 0.0) -- Body Blemishes + opacity - else - SetPedHeadOverlay (playerPed, 11, Character['bodyb_1'], (Character['bodyb_2'] / 10) + 0.0) - end + if Character['bodyb_1'] == -1 then + SetPedHeadOverlay(playerPed, 11, 255, (Character['bodyb_2'] / 10) + 0.0) -- Body Blemishes + opacity + else + SetPedHeadOverlay(playerPed, 11, Character['bodyb_1'], (Character['bodyb_2'] / 10) + 0.0) + end - if Character['bodyb_3'] == -1 then - SetPedHeadOverlay (playerPed, 12, 255, (Character['bodyb_4'] / 10) + 0.0) - else - SetPedHeadOverlay (playerPed, 12, Character['bodyb_3'], (Character['bodyb_4'] / 10) + 0.0) -- Blemishes 'added body effect' + opacity - end + if Character['bodyb_3'] == -1 then + SetPedHeadOverlay(playerPed, 12, 255, (Character['bodyb_4'] / 10) + 0.0) + else + SetPedHeadOverlay(playerPed, 12, Character['bodyb_3'], (Character['bodyb_4'] / 10) + 0.0) -- Blemishes 'added body effect' + opacity + end - if Character['ears_1'] == -1 then - ClearPedProp(playerPed, 2) - else - SetPedPropIndex (playerPed, 2, Character['ears_1'], Character['ears_2'], 2) -- Ears Accessories - end + if Character['ears_1'] == -1 then + ClearPedProp(playerPed, 2) + else + SetPedPropIndex(playerPed, 2, Character['ears_1'], Character['ears_2'], 2) -- Ears Accessories + end - 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'], Character['arms_2'], 2) -- Amrs - 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, 7, Character['chain_1'], Character['chain_2'], 2) -- chain - SetPedComponentVariation (playerPed, 5, Character['bags_1'], Character['bags_2'], 2) -- Bag + 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'], Character['arms_2'], 2) -- Amrs + 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, 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 + if Character['helmet_1'] == -1 then + ClearPedProp(playerPed, 0) + else + SetPedPropIndex(playerPed, 0, Character['helmet_1'], Character['helmet_2'], 2) -- Helmet + end - if Character['glasses_1'] == -1 then - ClearPedProp(playerPed, 1) - else - SetPedPropIndex (playerPed, 1, Character['glasses_1'], Character['glasses_2'], 2) -- Glasses - end + if Character['glasses_1'] == -1 then + ClearPedProp(playerPed, 1) + else + SetPedPropIndex(playerPed, 1, Character['glasses_1'], Character['glasses_2'], 2) -- Glasses + end - if Character['watches_1'] == -1 then - ClearPedProp(playerPed, 6) - else - SetPedPropIndex (playerPed, 6, Character['watches_1'], Character['watches_2'], 2) -- Watches - end + if Character['watches_1'] == -1 then + ClearPedProp(playerPed, 6) + else + SetPedPropIndex(playerPed, 6, Character['watches_1'], Character['watches_2'], 2) -- Watches + end - if Character['bracelets_1'] == -1 then - ClearPedProp(playerPed, 7) - else - SetPedPropIndex (playerPed, 7, Character['bracelets_1'], Character['bracelets_2'], 2) -- Bracelets - end + if Character['bracelets_1'] == -1 then + ClearPedProp(playerPed, 7) + else + SetPedPropIndex(playerPed, 7, Character['bracelets_1'], Character['bracelets_2'], 2) -- Bracelets + end end AddEventHandler('skinchanger:loadDefaultModel', function(loadMale, cb) - LoadDefaultModel(loadMale, cb) + LoadDefaultModel(loadMale, cb) end) AddEventHandler('skinchanger:getData', function(cb) - local components = json.decode(json.encode(Components)) + local components = json.decode(json.encode(Components)) - for k,v in pairs(Character) do - 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 + for k, v in pairs(Character) do + for i = 1, #components, 1 do + if k == components[i].name then + components[i].value = v + end + end + end - cb(components, GetMaxVals()) + cb(components, GetMaxVals()) end) AddEventHandler('skinchanger:change', function(key, val) - Character[key] = val + Character[key] = val - if key == 'sex' then - TriggerEvent('skinchanger:loadSkin', Character) - else - ApplySkin(Character) - end + if key == 'sex' then + TriggerEvent('skinchanger:loadSkin', Character) + else + ApplySkin(Character) + end end) AddEventHandler('skinchanger:getSkin', function(cb) - cb(Character) + cb(Character) end) AddEventHandler('skinchanger:modelLoaded', function() - ClearPedProp(PlayerPedId(), 0) + ClearPedProp(PlayerPedId(), 0) - if LoadSkin ~= nil then - ApplySkin(LoadSkin) - LoadSkin = nil - end + if LoadSkin ~= nil then + ApplySkin(LoadSkin) + LoadSkin = nil + end - if LoadClothes ~= nil then - ApplySkin(LoadClothes.playerSkin, LoadClothes.clothesSkin) - LoadClothes = nil - end + if LoadClothes ~= nil then + ApplySkin(LoadClothes.playerSkin, LoadClothes.clothesSkin) + LoadClothes = nil + end end) RegisterNetEvent('skinchanger:loadSkin') AddEventHandler('skinchanger:loadSkin', function(skin, cb) - if skin['sex'] ~= LastSex then - LoadSkin = skin + if skin['sex'] ~= LastSex then + LoadSkin = skin - if skin['sex'] == 0 then - TriggerEvent('skinchanger:loadDefaultModel', true, cb) - else - TriggerEvent('skinchanger:loadDefaultModel', false, cb) - end - else - ApplySkin(skin) + if skin['sex'] == 0 then + TriggerEvent('skinchanger:loadDefaultModel', true, cb) + else + TriggerEvent('skinchanger:loadDefaultModel', false, cb) + end + else + ApplySkin(skin) - if cb ~= nil then - cb() - end - end + if cb ~= nil then + cb() + end + end - LastSex = skin['sex'] + LastSex = skin['sex'] end) RegisterNetEvent('skinchanger:loadClothes') AddEventHandler('skinchanger:loadClothes', function(playerSkin, clothesSkin) - if playerSkin['sex'] ~= LastSex then - LoadClothes = { - playerSkin = playerSkin, - clothesSkin = clothesSkin - } + if playerSkin['sex'] ~= LastSex then + LoadClothes = { + playerSkin = playerSkin, + clothesSkin = clothesSkin + } - if playerSkin['sex'] == 0 then - TriggerEvent('skinchanger:loadDefaultModel', true) - else - TriggerEvent('skinchanger:loadDefaultModel', false) - end - else - ApplySkin(playerSkin, clothesSkin) - end + if playerSkin['sex'] == 0 then + TriggerEvent('skinchanger:loadDefaultModel', true) + else + TriggerEvent('skinchanger:loadDefaultModel', false) + end + else + ApplySkin(playerSkin, clothesSkin) + end - LastSex = playerSkin['sex'] + LastSex = playerSkin['sex'] end) diff --git a/[esx]/skinchanger/config.lua b/[esx]/skinchanger/config.lua index a3d6aa84..a7437122 100644 --- a/[esx]/skinchanger/config.lua +++ b/[esx]/skinchanger/config.lua @@ -1,3 +1,705 @@ Config = {} Config.Locale = 'en' + +Config.Components = {{ + label = _U('sex'), + name = 'sex', + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65 +}, { + label = _U('mom'), + name = 'mom', + value = 21, + min = 21, + zoomOffset = 0.6, + camOffset = 0.65 +}, { + label = _U('dad'), + name = 'dad', + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65 +}, { + label = _U('resemblance'), + name = 'face_md_weight', + value = 50, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65 +}, { + label = _U('skin_tone'), + name = 'skin_md_weight', + value = 50, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65 +}, { + label = _U('nose_1'), + name = 'nose_1', + value = 0, + min = -10, + zoomOffset = 0.6, + camOffset = 0.65 +}, { + label = _U('nose_2'), + name = 'nose_2', + value = 0, + min = -10, + zoomOffset = 0.6, + camOffset = 0.65 +}, { + label = _U('nose_3'), + name = 'nose_3', + value = 0, + min = -10, + zoomOffset = 0.6, + camOffset = 0.65 +}, { + label = _U('nose_4'), + name = 'nose_4', + value = 0, + min = -10, + zoomOffset = 0.6, + camOffset = 0.65 +}, { + label = _U('nose_5'), + name = 'nose_5', + value = 0, + min = -10, + zoomOffset = 0.6, + camOffset = 0.65 +}, { + label = _U('nose_6'), + name = 'nose_6', + value = 0, + min = -10, + zoomOffset = 0.6, + camOffset = 0.65 +}, { + label = _U('cheeks_1'), + name = 'cheeks_1', + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('cheeks_2'), + name = 'cheeks_2', + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('cheeks_3'), + name = 'cheeks_3', + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('lip_fullness'), + name = 'lip_thickness', + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('jaw_bone_width'), + name = 'jaw_1', + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('jaw_bone_length'), + name = 'jaw_2', + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('chin_height'), + name = 'chin_1', + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('chin_length'), + name = 'chin_2', + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('chin_width'), + name = 'chin_3', + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('chin_hole'), + name = 'chin_4', + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('neck_thickness'), + name = 'neck_thickness', + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('hair_1'), + name = 'hair_1', + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65 +}, { + label = _U('hair_2'), + name = 'hair_2', + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65 +}, { + label = _U('hair_color_1'), + name = 'hair_color_1', + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65 +}, { + label = _U('hair_color_2'), + name = 'hair_color_2', + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65 +}, { + label = _U('tshirt_1'), + name = 'tshirt_1', + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + componentId = 8 +}, { + label = _U('tshirt_2'), + name = 'tshirt_2', + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + textureof = 'tshirt_1' +}, { + label = _U('torso_1'), + name = 'torso_1', + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + componentId = 11 +}, { + label = _U('torso_2'), + name = 'torso_2', + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + textureof = 'torso_1' +}, { + label = _U('decals_1'), + name = 'decals_1', + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + componentId = 10 +}, { + label = _U('decals_2'), + name = 'decals_2', + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + textureof = 'decals_1' +}, { + label = _U('arms'), + name = 'arms', + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15 +}, { + label = _U('arms_2'), + name = 'arms_2', + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15 +}, { + label = _U('pants_1'), + name = 'pants_1', + value = 0, + min = 0, + zoomOffset = 0.8, + camOffset = -0.5, + componentId = 4 +}, { + label = _U('pants_2'), + name = 'pants_2', + value = 0, + min = 0, + zoomOffset = 0.8, + camOffset = -0.5, + textureof = 'pants_1' +}, { + label = _U('shoes_1'), + name = 'shoes_1', + value = 0, + min = 0, + zoomOffset = 0.8, + camOffset = -0.8, + componentId = 6 +}, { + label = _U('shoes_2'), + name = 'shoes_2', + value = 0, + min = 0, + zoomOffset = 0.8, + camOffset = -0.8, + textureof = 'shoes_1' +}, { + label = _U('mask_1'), + name = 'mask_1', + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + componentId = 1 +}, { + label = _U('mask_2'), + name = 'mask_2', + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + textureof = 'mask_1' +}, { + label = _U('bproof_1'), + name = 'bproof_1', + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + componentId = 9 +}, { + label = _U('bproof_2'), + name = 'bproof_2', + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + textureof = 'bproof_1' +}, { + label = _U('chain_1'), + name = 'chain_1', + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + componentId = 7 +}, { + label = _U('chain_2'), + name = 'chain_2', + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + textureof = 'chain_1' +}, { + label = _U('helmet_1'), + name = 'helmet_1', + value = -1, + min = -1, + zoomOffset = 0.6, + camOffset = 0.65, + componentId = 0 +}, { + label = _U('helmet_2'), + name = 'helmet_2', + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + textureof = 'helmet_1' +}, { + label = _U('glasses_1'), + name = 'glasses_1', + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + componentId = 1 +}, { + label = _U('glasses_2'), + name = 'glasses_2', + value = 0, + min = 0, + zoomOffset = 0.6, + camOffset = 0.65, + textureof = 'glasses_1' +}, { + label = _U('watches_1'), + name = 'watches_1', + value = -1, + min = -1, + zoomOffset = 0.75, + camOffset = 0.15, + componentId = 6 +}, { + label = _U('watches_2'), + name = 'watches_2', + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + textureof = 'watches_1' +}, { + label = _U('bracelets_1'), + name = 'bracelets_1', + value = -1, + min = -1, + zoomOffset = 0.75, + camOffset = 0.15, + componentId = 7 +}, { + label = _U('bracelets_2'), + name = 'bracelets_2', + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + textureof = 'bracelets_1' +}, { + label = _U('bag'), + name = 'bags_1', + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + componentId = 5 +}, { + label = _U('bag_color'), + name = 'bags_2', + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15, + textureof = 'bags_1' +}, { + label = _U('eye_color'), + name = 'eye_color', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('eye_squint'), + name = 'eye_squint', + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('eyebrow_size'), + name = 'eyebrows_2', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('eyebrow_type'), + name = 'eyebrows_1', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('eyebrow_color_1'), + name = 'eyebrows_3', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('eyebrow_color_2'), + name = 'eyebrows_4', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('eyebrow_height'), + name = 'eyebrows_5', + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('eyebrow_depth'), + name = 'eyebrows_6', + value = 0, + min = -10, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('makeup_type'), + name = 'makeup_1', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('makeup_thickness'), + name = 'makeup_2', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('makeup_color_1'), + name = 'makeup_3', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('makeup_color_2'), + name = 'makeup_4', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('lipstick_type'), + name = 'lipstick_1', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('lipstick_thickness'), + name = 'lipstick_2', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('lipstick_color_1'), + name = 'lipstick_3', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('lipstick_color_2'), + name = 'lipstick_4', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('ear_accessories'), + name = 'ears_1', + value = -1, + min = -1, + zoomOffset = 0.4, + camOffset = 0.65, + componentId = 2 +}, { + label = _U('ear_accessories_color'), + name = 'ears_2', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65, + textureof = 'ears_1' +}, { + label = _U('chest_hair'), + name = 'chest_1', + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15 +}, { + label = _U('chest_hair_1'), + name = 'chest_2', + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15 +}, { + label = _U('chest_color'), + name = 'chest_3', + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15 +}, { + label = _U('bodyb'), + name = 'bodyb_1', + value = -1, + min = -1, + zoomOffset = 0.75, + camOffset = 0.15 +}, { + label = _U('bodyb_size'), + name = 'bodyb_2', + value = 0, + min = 0, + zoomOffset = 0.75, + camOffset = 0.15 +}, { + label = _U('bodyb_extra'), + name = 'bodyb_3', + value = -1, + min = -1, + zoomOffset = 0.4, + camOffset = 0.15 +}, { + label = _U('bodyb_extra_thickness'), + name = 'bodyb_4', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.15 +}, { + label = _U('wrinkles'), + name = 'age_1', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('wrinkle_thickness'), + name = 'age_2', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('blemishes'), + name = 'blemishes_1', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('blemishes_size'), + name = 'blemishes_2', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('blush'), + name = 'blush_1', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('blush_1'), + name = 'blush_2', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('blush_color'), + name = 'blush_3', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('complexion'), + name = 'complexion_1', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('complexion_1'), + name = 'complexion_2', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('sun'), + name = 'sun_1', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('sun_1'), + name = 'sun_2', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('freckles'), + name = 'moles_1', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('freckles_1'), + name = 'moles_2', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('beard_type'), + name = 'beard_1', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('beard_size'), + name = 'beard_2', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('beard_color_1'), + name = 'beard_3', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}, { + label = _U('beard_color_2'), + name = 'beard_4', + value = 0, + min = 0, + zoomOffset = 0.4, + camOffset = 0.65 +}} diff --git a/[esx]/skinchanger/fxmanifest.lua b/[esx]/skinchanger/fxmanifest.lua index 9a5b9339..0ef661a1 100644 --- a/[esx]/skinchanger/fxmanifest.lua +++ b/[esx]/skinchanger/fxmanifest.lua @@ -2,9 +2,11 @@ fx_version 'adamant' game 'gta5' -description 'Skin Changer' +lua54 'yes' -version '1.0.3' +description 'Official ESX-Legacy resource for handling the Player`s Skin' + +version '1.7.5' client_scripts { '@es_extended/locale.lua',