From 298e32cafca754ba89be067d2f6620529988bf32 Mon Sep 17 00:00:00 2001 From: andristum <47616367+andristum@users.noreply.github.com> Date: Sun, 27 Oct 2019 05:34:37 +0100 Subject: [PATCH] 1.5.0 Facial Expressions --- Client/AnimationList.lua | 28 +++++++++++++ Client/Emote.lua | 9 ++++ Client/EmoteMenu.lua | 89 +++++++++++++++++++++++++++------------- Client/Walk.lua | 10 ++--- Config.lua | 2 + 5 files changed, 103 insertions(+), 35 deletions(-) diff --git a/Client/AnimationList.lua b/Client/AnimationList.lua index a4ec29f..a8face7 100644 --- a/Client/AnimationList.lua +++ b/Client/AnimationList.lua @@ -1,4 +1,32 @@ DP = {} + +DP.Expressions = { + ["Angry"] = {"Expression", "mood_angry_1"}, + ["Drunk"] = {"Expression", "mood_drunk_1"}, + ["Dumb"] = {"Expression", "pose_injured_1"}, + ["Electrocuted"] = {"Expression", "electrocuted_1"}, + ["Grumpy"] = {"Expression", "effort_1"}, + ["Grumpy2"] = {"Expression", "mood_drivefast_1"}, + ["Grumpy3"] = {"Expression", "pose_angry_1"}, + ["Happy"] = {"Expression", "mood_happy_1"}, + ["Injured"] = {"Expression", "mood_injured_1"}, + ["Joyful"] = {"Expression", "mood_dancing_low_1"}, + ["Mouthbreather"] = {"Expression", "smoking_hold_1"}, + ["Never Blink"] = {"Expression", "pose_normal_1"}, + ["One Eye"] = {"Expression", "pose_aiming_1"}, + ["Shocked"] = {"Expression", "shocked_1"}, + ["Shocked2"] = {"Expression", "shocked_2"}, + ["Sleeping"] = {"Expression", "mood_sleeping_1"}, + ["Sleeping2"] = {"Expression", "dead_1"}, + ["Sleeping3"] = {"Expression", "dead_2"}, + ["Smug"] = {"Expression", "mood_smug_1"}, + ["Speculative"] = {"Expression", "mood_aiming_1"}, + ["Stressed"] = {"Expression", "mood_stressed_1"}, + ["Sulking"] = {"Expression", "mood_sulk_1"}, + ["Weird"] = {"Expression", "effort_2"}, + ["Weird2"] = {"Expression", "effort_3"}, +} + DP.Walks = { ["Alien Run"] = {"move_m@alien"}, ["Arrogant"] = {"move_f@arrogant@a"}, diff --git a/Client/Emote.lua b/Client/Emote.lua index 3bb56b3..4d9f3f6 100644 --- a/Client/Emote.lua +++ b/Client/Emote.lua @@ -146,6 +146,10 @@ function EmoteMenuStart(args, hard) EmoteChatMessage("'"..name.."' is not a valid emote") end end + elseif etype == "expression" then + if DP.Expressions[name] ~= nil then + if OnEmotePlay(DP.Expressions[name]) then end + end end end @@ -252,6 +256,11 @@ function OnEmotePlay(EmoteName) DestroyAllProps() end + if ChosenDict == "Expression" then + SetFacialIdleAnimOverride(PlayerPedId(), ChosenAnimation, 0) + return + end + if ChosenDict == "MaleScenario" or "Scenario" then CheckGender() if ChosenDict == "MaleScenario" then diff --git a/Client/EmoteMenu.lua b/Client/EmoteMenu.lua index 8b3315c..a991726 100644 --- a/Client/EmoteMenu.lua +++ b/Client/EmoteMenu.lua @@ -32,6 +32,7 @@ local FavEmoteTable = {} local DanceTable = {} local PropETable = {} local WalkTable = {} +local FaceTable = {} local FavoriteEmote = "" Citizen.CreateThread(function() @@ -50,34 +51,11 @@ Citizen.CreateThread(function() end end) -function AddWalkMenu(menu) - local submenu = _menuPool:AddSubMenu(menu, "Walking Styles", "", "", "shopui_title_sm_hangar", "shopui_title_sm_hangar") - - walkreset = NativeUI.CreateItem("Reset to default", "Reset to default") - submenu:AddItem(walkreset) - table.insert(WalkTable, "Reset to default") - - WalkInjured = NativeUI.CreateItem("Injured", "") - submenu:AddItem(WalkInjured) - table.insert(WalkTable, "move_m@injured") - - for a,b in pairsByKeys(DP.Walks) do - x = table.unpack(b) - walkitem = NativeUI.CreateItem(a, "") - submenu:AddItem(walkitem) - table.insert(WalkTable, x) - end - - submenu.OnItemSelect = function(sender, item, index) - WalkMenuStart(WalkTable[index]) - end -end - function AddEmoteMenu(menu) - local submenu = _menuPool:AddSubMenu(menu, "Emotes", "", "", "shopui_title_sm_hangar", "shopui_title_sm_hangar") - local dancemenu = _menuPool:AddSubMenu(submenu, "🕺 Dance Emotes", "", "", "shopui_title_sm_hangar", "shopui_title_sm_hangar") - local propmenu = _menuPool:AddSubMenu(submenu, "📦 Prop Emotes", "", "", "shopui_title_sm_hangar", "shopui_title_sm_hangar") - local favmenu = _menuPool:AddSubMenu(submenu, "🌟 Keybind", "Select an emote here to set it as your bound emote.", "", "shopui_title_sm_hangar", "shopui_title_sm_hangar") + local submenu = _menuPool:AddSubMenu(menu, "Emotes", "", "", "Custom_Menu_Head", "Custom_Menu_Head") + local dancemenu = _menuPool:AddSubMenu(submenu, "🕺 Dance Emotes", "", "", "Custom_Menu_Head", "Custom_Menu_Head") + local propmenu = _menuPool:AddSubMenu(submenu, "📦 Prop Emotes", "", "", "Custom_Menu_Head", "Custom_Menu_Head") + local favmenu = _menuPool:AddSubMenu(submenu, "🌟 Keybind", "Select an emote here to set it as your bound emote.", "", "Custom_Menu_Head", "Custom_Menu_Head") unbind2item = NativeUI.CreateItem("Reset keybind", "Reset keybind") unbinditem = NativeUI.CreateItem("❓ Prop Emotes can be located at the end", "Reset keybind") favmenu:AddItem(unbinditem) @@ -153,11 +131,63 @@ function AddEmoteSettingsMenu(menu) end end +function AddWalkMenu(menu) + local submenu = _menuPool:AddSubMenu(menu, "Walking Styles", "", "", "Custom_Menu_Head", "Custom_Menu_Head") + + walkreset = NativeUI.CreateItem("Normal (Reset)", "Reset to default") + submenu:AddItem(walkreset) + table.insert(WalkTable, "Reset to default") + + WalkInjured = NativeUI.CreateItem("Injured", "") + submenu:AddItem(WalkInjured) + table.insert(WalkTable, "move_m@injured") + + for a,b in pairsByKeys(DP.Walks) do + x = table.unpack(b) + walkitem = NativeUI.CreateItem(a, "") + submenu:AddItem(walkitem) + table.insert(WalkTable, x) + end + + submenu.OnItemSelect = function(sender, item, index) + if item ~= walkreset then + WalkMenuStart(WalkTable[index]) + else + ResetPedMovementClipset(PlayerPedId()) + end + end +end + +function AddFaceMenu(menu) + local submenu = _menuPool:AddSubMenu(menu, "Facial Expressions", "", "", "Custom_Menu_Head", "Custom_Menu_Head") + + facereset = NativeUI.CreateItem("Normal (Reset)", "Reset to default") + submenu:AddItem(facereset) + table.insert(FaceTable, "") + + for a,b in pairsByKeys(DP.Expressions) do + x,y,z = table.unpack(b) + faceitem = NativeUI.CreateItem(a, "") + submenu:AddItem(faceitem) + table.insert(FaceTable, a) + end + + submenu.OnItemSelect = function(sender, item, index) + if item ~= facereset then + EmoteMenuStart(FaceTable[index], "expression") + else + ClearFacialIdleAnimOverride(PlayerPedId()) + end + end +end + function AddInfoMenu(menu) - local infomenu = _menuPool:AddSubMenu(menu, "Info / Update notes", "Check here for update notes (1.4.2c)", "", "shopui_title_sm_hangar", "shopui_title_sm_hangar") + local infomenu = _menuPool:AddSubMenu(menu, "Info / Update notes", "Check here for update notes (1.5.0)", "", "Custom_Menu_Head", "Custom_Menu_Head") contact = NativeUI.CreateItem("Suggestions?", "'dullpear_dev' on FiveM forums for any feature/emote suggestions! ✉️") + u150 = NativeUI.CreateItem("1.5.0", "Added Facial Expressions menu (if enabled by server owner)") u142 = NativeUI.CreateItem("1.4.2", "Added many new prop emotes (guitar-guitar3, book, bouquet, teddy, backpack, burger and more)") infomenu:AddItem(contact) + infomenu:AddItem(u150) infomenu:AddItem(u142) end @@ -175,6 +205,9 @@ AddEmoteSettingsMenu(mainMenu) if Config.WalkingStylesEnabled then AddWalkMenu(mainMenu) end +if Config.ExpressionsEnabled then + AddFaceMenu(mainMenu) +end AddInfoMenu(mainMenu) _menuPool:RefreshIndex() diff --git a/Client/Walk.lua b/Client/Walk.lua index fddc8e5..2e8ef8e 100644 --- a/Client/Walk.lua +++ b/Client/Walk.lua @@ -1,11 +1,7 @@ function WalkMenuStart(name) - if name == "Reset to default" then - ResetPedMovementClipset(PlayerPedId()) - else - RequestWalking(name) - SetPedMovementClipset(PlayerPedId(), name, 0.2) - RemoveAnimSet(name) - end + RequestWalking(name) + SetPedMovementClipset(PlayerPedId(), name, 0.2) + RemoveAnimSet(name) end function RequestWalking(set) diff --git a/Config.lua b/Config.lua index dd2aa72..0c491fc 100644 --- a/Config.lua +++ b/Config.lua @@ -18,6 +18,8 @@ Config = { MenuImage = "https://i.imgur.com/kgzvDwQ.png", -- You can change the menu position here MenuPosition = "right", -- (left, right) +-- You can disable the Facial Expressions menu here. + ExpressionsEnabled = true, -- You can disable the Walking Styles menu here. WalkingStylesEnabled = true, MenuKeybind = 170 -- Get the button number here https://docs.fivem.net/game-references/controls/