From b02523f985fc1b32dbad48b1adf92cc16aa8db6b Mon Sep 17 00:00:00 2001 From: KingMcDonalds Date: Wed, 6 Jul 2022 11:56:17 -0700 Subject: [PATCH] new emote menu new props and more emotes --- resources/dpemotes-master/NativeUI.lua | 3875 ++++++++++++++++ resources/dpemotes-master/README.md | 215 + .../dpemotes-master/client/AnimationList.lua | 4016 +++++++++++++++++ resources/dpemotes-master/client/Emote.lua | 451 ++ .../dpemotes-master/client/EmoteMenu.lua | 327 ++ resources/dpemotes-master/client/Keybinds.lua | 126 + resources/dpemotes-master/client/Ragdoll.lua | 24 + resources/dpemotes-master/client/Syncing.lua | 236 + resources/dpemotes-master/client/Walk.lua | 41 + resources/dpemotes-master/config.lua | 589 +++ resources/dpemotes-master/fxmanifest.lua | 36 + resources/dpemotes-master/printer.lua | 1 + .../dpemotes-master/screenshots/boop.jpg | Bin 0 -> 400834 bytes .../dpemotes-master/screenshots/cb_before.jpg | Bin 0 -> 88118 bytes .../dpemotes-master/screenshots/cp_after.jpg | Bin 0 -> 141054 bytes .../dpemotes-master/screenshots/flag1.jpg | Bin 0 -> 273356 bytes .../dpemotes-master/screenshots/flag2.jpg | Bin 0 -> 274308 bytes .../dpemotes-master/screenshots/flag3.jpg | Bin 0 -> 269061 bytes .../dpemotes-master/screenshots/flag4.jpg | Bin 0 -> 271519 bytes .../dpemotes-master/screenshots/flag5.jpg | Bin 0 -> 271483 bytes .../dpemotes-master/screenshots/flag6.jpg | Bin 0 -> 271105 bytes .../dpemotes-master/screenshots/flag7.jpg | Bin 0 -> 270858 bytes .../dpemotes-master/screenshots/flag8.jpg | Bin 0 -> 271727 bytes .../dpemotes-master/screenshots/flag9.jpg | Bin 0 -> 275474 bytes .../dpemotes-master/screenshots/menu.jpg | Bin 0 -> 322164 bytes .../dpemotes-master/screenshots/umbrella.jpg | Bin 0 -> 254331 bytes resources/dpemotes-master/server/Server.lua | 125 + resources/dpemotes-master/server/Updates.lua | 33 + .../misssnowie@hearthands.ycd | Bin 0 -> 6109 bytes .../misssnowie@little_doggy_lying_down.ycd | Bin 0 -> 2955 bytes .../[Props]/FixedClipboard/p_cs_clipboard.ydr | 3 + .../[Props]/Pride Props/_manifestlilflags.ymf | Bin 0 -> 544 bytes .../Pride Props/_manifestprideprops.ymf | Bin 0 -> 480 bytes .../[Props]/Pride Props/lilflags_ytyp.ytyp | Bin 0 -> 635 bytes .../[Props]/Pride Props/lilprideflag1.ydr | 3 + .../[Props]/Pride Props/lilprideflag2.ydr | 3 + .../[Props]/Pride Props/lilprideflag3.ydr | 3 + .../[Props]/Pride Props/lilprideflag4.ydr | 3 + .../[Props]/Pride Props/lilprideflag5.ydr | 3 + .../[Props]/Pride Props/lilprideflag6.ydr | 3 + .../[Props]/Pride Props/lilprideflag7.ydr | 3 + .../[Props]/Pride Props/lilprideflag8.ydr | 3 + .../[Props]/Pride Props/lilprideflag9.ydr | 3 + .../[Props]/Pride Props/pride_sign_01.ydr | 3 + .../stream/[Props]/Pride Props/prideflag1.ydr | 3 + .../stream/[Props]/Pride Props/prideflag2.ydr | 3 + .../stream/[Props]/Pride Props/prideflag3.ydr | 3 + .../stream/[Props]/Pride Props/prideflag4.ydr | 3 + .../stream/[Props]/Pride Props/prideflag5.ydr | 3 + .../stream/[Props]/Pride Props/prideflag6.ydr | 3 + .../stream/[Props]/Pride Props/prideflag7.ydr | 3 + .../stream/[Props]/Pride Props/prideflag8.ydr | 3 + .../stream/[Props]/Pride Props/prideflag9.ydr | 3 + .../[Props]/Pride Props/prideprops_ytyp.ytyp | Bin 0 -> 698 bytes .../[Props]/Umbrella/p_amb_brolly_01.ydr | 3 + .../stream/[Props]/badge1/_manifest.ymf | Bin 0 -> 320 bytes .../stream/[Props]/badge1/badge1.ytyp | Bin 0 -> 493 bytes .../[Props]/badge1/prop_lspd_badge+hidr.ytd | 3 + .../stream/[Props]/badge1/prop_lspd_badge.ydr | 3 + .../stream/[Props]/badge2/_manifest.ymf | Bin 0 -> 320 bytes .../stream/[Props]/badge2/copbadge.ytyp | Bin 0 -> 507 bytes .../[Props]/badge2/prop_cop_badge+hidr.ytd | 3 + .../stream/[Props]/badge2/prop_cop_badge.ydr | 3 + resources/dpemotes-master/version | 1 + server.cfg | 3 +- 65 files changed, 10173 insertions(+), 1 deletion(-) create mode 100644 resources/dpemotes-master/NativeUI.lua create mode 100644 resources/dpemotes-master/README.md create mode 100644 resources/dpemotes-master/client/AnimationList.lua create mode 100644 resources/dpemotes-master/client/Emote.lua create mode 100644 resources/dpemotes-master/client/EmoteMenu.lua create mode 100644 resources/dpemotes-master/client/Keybinds.lua create mode 100644 resources/dpemotes-master/client/Ragdoll.lua create mode 100644 resources/dpemotes-master/client/Syncing.lua create mode 100644 resources/dpemotes-master/client/Walk.lua create mode 100644 resources/dpemotes-master/config.lua create mode 100644 resources/dpemotes-master/fxmanifest.lua create mode 100644 resources/dpemotes-master/printer.lua create mode 100644 resources/dpemotes-master/screenshots/boop.jpg create mode 100644 resources/dpemotes-master/screenshots/cb_before.jpg create mode 100644 resources/dpemotes-master/screenshots/cp_after.jpg create mode 100644 resources/dpemotes-master/screenshots/flag1.jpg create mode 100644 resources/dpemotes-master/screenshots/flag2.jpg create mode 100644 resources/dpemotes-master/screenshots/flag3.jpg create mode 100644 resources/dpemotes-master/screenshots/flag4.jpg create mode 100644 resources/dpemotes-master/screenshots/flag5.jpg create mode 100644 resources/dpemotes-master/screenshots/flag6.jpg create mode 100644 resources/dpemotes-master/screenshots/flag7.jpg create mode 100644 resources/dpemotes-master/screenshots/flag8.jpg create mode 100644 resources/dpemotes-master/screenshots/flag9.jpg create mode 100644 resources/dpemotes-master/screenshots/menu.jpg create mode 100644 resources/dpemotes-master/screenshots/umbrella.jpg create mode 100644 resources/dpemotes-master/server/Server.lua create mode 100644 resources/dpemotes-master/server/Updates.lua create mode 100644 resources/dpemotes-master/stream/[Custom Emotes]/MissSnowieEmotes/misssnowie@hearthands.ycd create mode 100644 resources/dpemotes-master/stream/[Custom Emotes]/MissSnowieEmotes/misssnowie@little_doggy_lying_down.ycd create mode 100644 resources/dpemotes-master/stream/[Props]/FixedClipboard/p_cs_clipboard.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/_manifestlilflags.ymf create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/_manifestprideprops.ymf create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/lilflags_ytyp.ytyp create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/lilprideflag1.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/lilprideflag2.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/lilprideflag3.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/lilprideflag4.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/lilprideflag5.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/lilprideflag6.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/lilprideflag7.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/lilprideflag8.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/lilprideflag9.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/pride_sign_01.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/prideflag1.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/prideflag2.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/prideflag3.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/prideflag4.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/prideflag5.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/prideflag6.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/prideflag7.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/prideflag8.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/prideflag9.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/Pride Props/prideprops_ytyp.ytyp create mode 100644 resources/dpemotes-master/stream/[Props]/Umbrella/p_amb_brolly_01.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/badge1/_manifest.ymf create mode 100644 resources/dpemotes-master/stream/[Props]/badge1/badge1.ytyp create mode 100644 resources/dpemotes-master/stream/[Props]/badge1/prop_lspd_badge+hidr.ytd create mode 100644 resources/dpemotes-master/stream/[Props]/badge1/prop_lspd_badge.ydr create mode 100644 resources/dpemotes-master/stream/[Props]/badge2/_manifest.ymf create mode 100644 resources/dpemotes-master/stream/[Props]/badge2/copbadge.ytyp create mode 100644 resources/dpemotes-master/stream/[Props]/badge2/prop_cop_badge+hidr.ytd create mode 100644 resources/dpemotes-master/stream/[Props]/badge2/prop_cop_badge.ydr create mode 100644 resources/dpemotes-master/version diff --git a/resources/dpemotes-master/NativeUI.lua b/resources/dpemotes-master/NativeUI.lua new file mode 100644 index 000000000..3fa972771 --- /dev/null +++ b/resources/dpemotes-master/NativeUI.lua @@ -0,0 +1,3875 @@ +UIResRectangle = setmetatable({}, UIResRectangle) +UIResRectangle.__index = UIResRectangle +UIResRectangle.__call = function() return "Rectangle" end + +UIResText = setmetatable({}, UIResText) +UIResText.__index = UIResText +UIResText.__call = function() return "Text" end + +Sprite = setmetatable({}, Sprite) +Sprite.__index = Sprite +Sprite.__call = function() return "Sprite" end + +UIMenuItem = setmetatable({}, UIMenuItem) +UIMenuItem.__index = UIMenuItem +UIMenuItem.__call = function() return "UIMenuItem", "UIMenuItem" end + +UIMenuCheckboxItem = setmetatable({}, UIMenuCheckboxItem) +UIMenuCheckboxItem.__index = UIMenuCheckboxItem +UIMenuCheckboxItem.__call = function() return "UIMenuItem", "UIMenuCheckboxItem" end + +UIMenuListItem = setmetatable({}, UIMenuListItem) +UIMenuListItem.__index = UIMenuListItem +UIMenuListItem.__call = function() return "UIMenuItem", "UIMenuListItem" end + +UIMenuSliderItem = setmetatable({}, UIMenuSliderItem) +UIMenuSliderItem.__index = UIMenuSliderItem +UIMenuSliderItem.__call = function() return "UIMenuItem", "UIMenuSliderItem" end + +UIMenuColouredItem = setmetatable({}, UIMenuColouredItem) +UIMenuColouredItem.__index = UIMenuColouredItem +UIMenuColouredItem.__call = function() return "UIMenuItem", "UIMenuColouredItem" end + +UIMenuProgressItem = setmetatable({}, UIMenuProgressItem) +UIMenuProgressItem.__index = UIMenuProgressItem +UIMenuProgressItem.__call = function() return "UIMenuItem", "UIMenuProgressItem" end + +UIMenuHeritageWindow = setmetatable({}, UIMenuHeritageWindow) +UIMenuHeritageWindow.__index = UIMenuHeritageWindow +UIMenuHeritageWindow.__call = function() return "UIMenuWindow", "UIMenuHeritageWindow" end + +UIMenuGridPanel = setmetatable({}, UIMenuGridPanel) +UIMenuGridPanel.__index = UIMenuGridPanel +UIMenuGridPanel.__call = function() return "UIMenuPanel", "UIMenuGridPanel" end + +UIMenuColourPanel = setmetatable({}, UIMenuColourPanel) +UIMenuColourPanel.__index = UIMenuColourPanel +UIMenuColourPanel.__call = function() return "UIMenuPanel", "UIMenuColourPanel" end + +UIMenuPercentagePanel = setmetatable({}, UIMenuPercentagePanel) +UIMenuPercentagePanel.__index = UIMenuPercentagePanel +UIMenuPercentagePanel.__call = function() return "UIMenuPanel", "UIMenuPercentagePanel" end + +UIMenu = setmetatable({}, UIMenu) +UIMenu.__index = UIMenu +UIMenu.__call = function() return "UIMenu" end + +MenuPool = setmetatable({}, MenuPool) +MenuPool.__index = MenuPool + +NativeUI = {} + +CharacterMap = { [' '] = 6, ['!'] = 6, ['"'] = 6, ['#'] = 11, ['$'] = 10, ['%'] = 17, ['&'] = 13, ['\\'] = 4, ['('] = 6, [')'] = 6, ['*'] = 7, ['+'] = 10, [','] = 4, ['-'] = 6, ['.'] = 4, ['/'] = 7, ['0'] = 12, ['1'] = 7, ['2'] = 11, ['3'] = 11, ['4'] = 11, ['5'] = 11, ['6'] = 12, ['7'] = 10, ['8'] = 11, ['9'] = 11, [':'] = 5, [';'] = 4, ['<'] = 9, ['='] = 9, ['>'] = 9, ['?'] = 10, ['@'] = 15, ['A'] = 12, ['B'] = 13, ['C'] = 14, ['D'] = 14, ['E'] = 12, ['F'] = 12, ['G'] = 15, ['H'] = 14, ['I'] = 5, ['J'] = 11, ['K'] = 13, ['L'] = 11, ['M'] = 16, ['N'] = 14, ['O'] = 16, ['P'] = 12, ['Q'] = 15, ['R'] = 13, ['S'] = 12, ['T'] = 11, ['U'] = 13, ['V'] = 12, ['W'] = 18, ['X'] = 11, ['Y'] = 11, ['Z'] = 12, ['['] = 6, [']'] = 6, ['^'] = 9, ['_'] = 18, ['`'] = 8, ['a'] = 11, ['b'] = 12, ['c'] = 11, ['d'] = 12, ['e'] = 12, ['f'] = 5, ['g'] = 13, ['h'] = 11, ['i'] = 4, ['j'] = 4, ['k'] = 10, ['l'] = 4, ['m'] = 18, ['n'] = 11, ['o'] = 12, ['p'] = 12, ['q'] = 12, ['r'] = 7, ['s'] = 9, ['t'] = 5, ['u'] = 11, ['v'] = 10, ['w'] = 14, ['x'] = 9, ['y'] = 10, ['z'] = 9, ['{'] = 6, ['|'] = 3, ['}'] = 6 } + +BadgeStyle = { None = 0, BronzeMedal = 1, GoldMedal = 2, SilverMedal = 3, Alert = 4, Crown = 5, Ammo = 6, Armour = 7, Barber = 8, Clothes = 9, Franklin = 10, Bike = 11, Car = 12, Gun = 13, Heart = 14, Makeup = 15, Mask = 16, Michael = 17, Star = 18, Tattoo = 19, Trevor = 20, Lock = 21, Tick = 22 } + +BadgeTexture = { + [0] = function() return "" end, + [1] = function() return "mp_medal_bronze" end, + [2] = function() return "mp_medal_gold" end, + [3] = function() return "medal_silver" end, + [4] = function() return "mp_alerttriangle" end, + [5] = function() return "mp_hostcrown" end, + [6] = function(Selected) if Selected then return "shop_ammo_icon_b" else return "shop_ammo_icon_a" end end, + [7] = function(Selected) if Selected then return "shop_armour_icon_b" else return "shop_armour_icon_a" end end, + [8] = function(Selected) if Selected then return "shop_barber_icon_b" else return "shop_barber_icon_a" end end, + [9] = function(Selected) if Selected then return "shop_clothing_icon_b" else return "shop_clothing_icon_a" end end, + [10] = function(Selected) if Selected then return "shop_franklin_icon_b" else return "shop_franklin_icon_a" end end, + [11] = function(Selected) if Selected then return "shop_garage_bike_icon_b" else return "shop_garage_bike_icon_a" end end, + [12] = function(Selected) if Selected then return "shop_garage_icon_b" else return "shop_garage_icon_a" end end, + [13] = function(Selected) if Selected then return "shop_gunclub_icon_b" else return "shop_gunclub_icon_a" end end, + [14] = function(Selected) if Selected then return "shop_health_icon_b" else return "shop_health_icon_a" end end, + [15] = function(Selected) if Selected then return "shop_makeup_icon_b" else return "shop_makeup_icon_a" end end, + [16] = function(Selected) if Selected then return "shop_mask_icon_b" else return "shop_mask_icon_a" end end, + [17] = function(Selected) if Selected then return "shop_michael_icon_b" else return "shop_michael_icon_a" end end, + [18] = function() return "shop_new_star" end, + [19] = function(Selected) if Selected then return "shop_tattoos_icon_b" else return "shop_tattoos_icon_a" end end, + [20] = function(Selected) if Selected then return "shop_trevor_icon_b" else return "shop_trevor_icon_a" end end, + [21] = function() return "shop_lock" end, + [22] = function() return "shop_tick_icon" end, +} + +BadgeDictionary = { + [0] = function(Selected) + if Selected then + return "commonmenu" + else + return "commonmenu" + end + end, +} + +BadgeColour = { + [5] = function(Selected) if Selected then return 0, 0, 0, 255 else return 255, 255, 255, 255 end end, + [21] = function(Selected) if Selected then return 0, 0, 0, 255 else return 255, 255, 255, 255 end end, + [22] = function(Selected) if Selected then return 0, 0, 0, 255 else return 255, 255, 255, 255 end end, +} + +Colours = { + PureWhite = { 255, 255, 255, 255 }, + White = { 240, 240, 240, 255 }, + Black = { 0, 0, 0, 255 }, + Grey = { 155, 155, 155, 255 }, + GreyLight = { 205, 205, 205, 255 }, + GreyDark = { 77, 77, 77, 255 }, + Red = { 224, 50, 50, 255 }, + RedLight = { 240, 153, 153, 255 }, + RedDark = { 112, 25, 25, 255 }, + Blue = { 93, 182, 229, 255 }, + BlueLight = { 174, 219, 242, 255 }, + BlueDark = { 47, 92, 115, 255 }, + Yellow = { 240, 200, 80, 255 }, + YellowLight = { 254, 235, 169, 255 }, + YellowDark = { 126, 107, 41, 255 }, + Orange = { 255, 133, 85, 255 }, + OrangeLight = { 255, 194, 170, 255 }, + OrangeDark = { 127, 66, 42, 255 }, + Green = { 114, 204, 114, 255 }, + GreenLight = { 185, 230, 185, 255 }, + GreenDark = { 57, 102, 57, 255 }, + Purple = { 132, 102, 226, 255 }, + PurpleLight = { 192, 179, 239, 255 }, + PurpleDark = { 67, 57, 111, 255 }, + Pink = { 203, 54, 148, 255 }, + RadarHealth = { 53, 154, 71, 255 }, + RadarArmour = { 93, 182, 229, 255 }, + RadarDamage = { 235, 36, 39, 255 }, + NetPlayer1 = { 194, 80, 80, 255 }, + NetPlayer2 = { 156, 110, 175, 255 }, + NetPlayer3 = { 255, 123, 196, 255 }, + NetPlayer4 = { 247, 159, 123, 255 }, + NetPlayer5 = { 178, 144, 132, 255 }, + NetPlayer6 = { 141, 206, 167, 255 }, + NetPlayer7 = { 113, 169, 175, 255 }, + NetPlayer8 = { 211, 209, 231, 255 }, + NetPlayer9 = { 144, 127, 153, 255 }, + NetPlayer10 = { 106, 196, 191, 255 }, + NetPlayer11 = { 214, 196, 153, 255 }, + NetPlayer12 = { 234, 142, 80, 255 }, + NetPlayer13 = { 152, 203, 234, 255 }, + NetPlayer14 = { 178, 98, 135, 255 }, + NetPlayer15 = { 144, 142, 122, 255 }, + NetPlayer16 = { 166, 117, 94, 255 }, + NetPlayer17 = { 175, 168, 168, 255 }, + NetPlayer18 = { 232, 142, 155, 255 }, + NetPlayer19 = { 187, 214, 91, 255 }, + NetPlayer20 = { 12, 123, 86, 255 }, + NetPlayer21 = { 123, 196, 255, 255 }, + NetPlayer22 = { 171, 60, 230, 255 }, + NetPlayer23 = { 206, 169, 13, 255 }, + NetPlayer24 = { 71, 99, 173, 255 }, + NetPlayer25 = { 42, 166, 185, 255 }, + NetPlayer26 = { 186, 157, 125, 255 }, + NetPlayer27 = { 201, 225, 255, 255 }, + NetPlayer28 = { 240, 240, 150, 255 }, + NetPlayer29 = { 237, 140, 161, 255 }, + NetPlayer30 = { 249, 138, 138, 255 }, + NetPlayer31 = { 252, 239, 166, 255 }, + NetPlayer32 = { 240, 240, 240, 255 }, + SimpleBlipDefault = { 159, 201, 166, 255 }, + MenuBlue = { 140, 140, 140, 255 }, + MenuGreyLight = { 140, 140, 140, 255 }, + MenuBlueExtraDark = { 40, 40, 40, 255 }, + MenuYellow = { 240, 160, 0, 255 }, + MenuYellowDark = { 240, 160, 0, 255 }, + MenuGreen = { 240, 160, 0, 255 }, + MenuGrey = { 140, 140, 140, 255 }, + MenuGreyDark = { 60, 60, 60, 255 }, + MenuHighlight = { 30, 30, 30, 255 }, + MenuStandard = { 140, 140, 140, 255 }, + MenuDimmed = { 75, 75, 75, 255 }, + MenuExtraDimmed = { 50, 50, 50, 255 }, + BriefTitle = { 95, 95, 95, 255 }, + MidGreyMp = { 100, 100, 100, 255 }, + NetPlayer1Dark = { 93, 39, 39, 255 }, + NetPlayer2Dark = { 77, 55, 89, 255 }, + NetPlayer3Dark = { 124, 62, 99, 255 }, + NetPlayer4Dark = { 120, 80, 80, 255 }, + NetPlayer5Dark = { 87, 72, 66, 255 }, + NetPlayer6Dark = { 74, 103, 83, 255 }, + NetPlayer7Dark = { 60, 85, 88, 255 }, + NetPlayer8Dark = { 105, 105, 64, 255 }, + NetPlayer9Dark = { 72, 63, 76, 255 }, + NetPlayer10Dark = { 53, 98, 95, 255 }, + NetPlayer11Dark = { 107, 98, 76, 255 }, + NetPlayer12Dark = { 117, 71, 40, 255 }, + NetPlayer13Dark = { 76, 101, 117, 255 }, + NetPlayer14Dark = { 65, 35, 47, 255 }, + NetPlayer15Dark = { 72, 71, 61, 255 }, + NetPlayer16Dark = { 85, 58, 47, 255 }, + NetPlayer17Dark = { 87, 84, 84, 255 }, + NetPlayer18Dark = { 116, 71, 77, 255 }, + NetPlayer19Dark = { 93, 107, 45, 255 }, + NetPlayer20Dark = { 6, 61, 43, 255 }, + NetPlayer21Dark = { 61, 98, 127, 255 }, + NetPlayer22Dark = { 85, 30, 115, 255 }, + NetPlayer23Dark = { 103, 84, 6, 255 }, + NetPlayer24Dark = { 35, 49, 86, 255 }, + NetPlayer25Dark = { 21, 83, 92, 255 }, + NetPlayer26Dark = { 93, 98, 62, 255 }, + NetPlayer27Dark = { 100, 112, 127, 255 }, + NetPlayer28Dark = { 120, 120, 75, 255 }, + NetPlayer29Dark = { 152, 76, 93, 255 }, + NetPlayer30Dark = { 124, 69, 69, 255 }, + NetPlayer31Dark = { 10, 43, 50, 255 }, + NetPlayer32Dark = { 95, 95, 10, 255 }, + Bronze = { 180, 130, 97, 255 }, + Silver = { 150, 153, 161, 255 }, + Gold = { 214, 181, 99, 255 }, + Platinum = { 166, 221, 190, 255 }, + Gang1 = { 29, 100, 153, 255 }, + Gang2 = { 214, 116, 15, 255 }, + Gang3 = { 135, 125, 142, 255 }, + Gang4 = { 229, 119, 185, 255 }, + SameCrew = { 252, 239, 166, 255 }, + Freemode = { 45, 110, 185, 255 }, + PauseBg = { 0, 0, 0, 255 }, + Friendly = { 93, 182, 229, 255 }, + Enemy = { 194, 80, 80, 255 }, + Location = { 240, 200, 80, 255 }, + Pickup = { 114, 204, 114, 255 }, + PauseSingleplayer = { 114, 204, 114, 255 }, + FreemodeDark = { 22, 55, 92, 255 }, + InactiveMission = { 154, 154, 154, 255 }, + Damage = { 194, 80, 80, 255 }, + PinkLight = { 252, 115, 201, 255 }, + PmMitemHighlight = { 252, 177, 49, 255 }, + ScriptVariable = { 0, 0, 0, 255 }, + Yoga = { 109, 247, 204, 255 }, + Tennis = { 241, 101, 34, 255 }, + Golf = { 214, 189, 97, 255 }, + ShootingRange = { 112, 25, 25, 255 }, + FlightSchool = { 47, 92, 115, 255 }, + NorthBlue = { 93, 182, 229, 255 }, + SocialClub = { 234, 153, 28, 255 }, + PlatformBlue = { 11, 55, 123, 255 }, + PlatformGreen = { 146, 200, 62, 255 }, + PlatformGrey = { 234, 153, 28, 255 }, + FacebookBlue = { 66, 89, 148, 255 }, + IngameBg = { 0, 0, 0, 255 }, + Darts = { 114, 204, 114, 255 }, + Waypoint = { 164, 76, 242, 255 }, + Michael = { 101, 180, 212, 255 }, + Franklin = { 171, 237, 171, 255 }, + Trevor = { 255, 163, 87, 255 }, + GolfP1 = { 240, 240, 240, 255 }, + GolfP2 = { 235, 239, 30, 255 }, + GolfP3 = { 255, 149, 14, 255 }, + GolfP4 = { 246, 60, 161, 255 }, + WaypointLight = { 210, 166, 249, 255 }, + WaypointDark = { 82, 38, 121, 255 }, + PanelLight = { 0, 0, 0, 255 }, + MichaelDark = { 72, 103, 116, 255 }, + FranklinDark = { 85, 118, 85, 255 }, + TrevorDark = { 127, 81, 43, 255 }, + ObjectiveRoute = { 240, 200, 80, 255 }, + PausemapTint = { 0, 0, 0, 255 }, + PauseDeselect = { 100, 100, 100, 255 }, + PmWeaponsPurchasable = { 45, 110, 185, 255 }, + PmWeaponsLocked = { 240, 240, 240, 255 }, + ScreenBg = { 0, 0, 0, 255 }, + Chop = { 224, 50, 50, 255 }, + PausemapTintHalf = { 0, 0, 0, 255 }, + NorthBlueOfficial = { 0, 71, 133, 255 }, + ScriptVariable2 = { 0, 0, 0, 255 }, + H = { 33, 118, 37, 255 }, + HDark = { 37, 102, 40, 255 }, + T = { 234, 153, 28, 255 }, + TDark = { 225, 140, 8, 255 }, + HShard = { 20, 40, 0, 255 }, + ControllerMichael = { 48, 255, 255, 255 }, + ControllerFranklin = { 48, 255, 0, 255 }, + ControllerTrevor = { 176, 80, 0, 255 }, + ControllerChop = { 127, 0, 0, 255 }, + VideoEditorVideo = { 53, 166, 224, 255 }, + VideoEditorAudio = { 162, 79, 157, 255 }, + VideoEditorText = { 104, 192, 141, 255 }, + HbBlue = { 29, 100, 153, 255 }, + HbYellow = { 234, 153, 28, 255 }, + VideoEditorScore = { 240, 160, 1, 255 }, + VideoEditorAudioFadeout = { 59, 34, 57, 255 }, + VideoEditorTextFadeout = { 41, 68, 53, 255 }, + VideoEditorScoreFadeout = { 82, 58, 10, 255 }, + HeistBackground = { 37, 102, 40, 255 }, + VideoEditorAmbient = { 240, 200, 80, 255 }, + VideoEditorAmbientFadeout = { 80, 70, 34, 255 }, + Gb = { 255, 133, 85, 255 }, + G = { 255, 194, 170, 255 }, + B = { 255, 133, 85, 255 }, + LowFlow = { 240, 200, 80, 255 }, + LowFlowDark = { 126, 107, 41, 255 }, + G1 = { 247, 159, 123, 255 }, + G2 = { 226, 134, 187, 255 }, + G3 = { 239, 238, 151, 255 }, + G4 = { 113, 169, 175, 255 }, + G5 = { 160, 140, 193, 255 }, + G6 = { 141, 206, 167, 255 }, + G7 = { 181, 214, 234, 255 }, + G8 = { 178, 144, 132, 255 }, + G9 = { 0, 132, 114, 255 }, + G10 = { 216, 85, 117, 255 }, + G11 = { 30, 100, 152, 255 }, + G12 = { 43, 181, 117, 255 }, + G13 = { 233, 141, 79, 255 }, + G14 = { 137, 210, 215, 255 }, + G15 = { 134, 125, 141, 255 }, + Adversary = { 109, 34, 33, 255 }, + DegenRed = { 255, 0, 0, 255 }, + DegenYellow = { 255, 255, 0, 255 }, + DegenGreen = { 0, 255, 0, 255 }, + DegenCyan = { 0, 255, 255, 255 }, + DegenBlue = { 0, 0, 255, 255 }, + DegenMagenta = { 255, 0, 255, 255 }, + Stunt1 = { 38, 136, 234, 255 }, + Stunt2 = { 224, 50, 50, 255 }, +} + +--[[ + Utils.lua + Utilities +--]] + +function GetResolution() + local W, H = GetActiveScreenResolution() + if (W / H) > 3.5 then + return GetScreenResolution() + else + return W, H + end +end + +function FormatXWYH(Value, Value2) + return Value / 1920, Value2 / 1080 +end + +function math.round(num, numDecimalPlaces) + return tonumber(string.format("%." .. (numDecimalPlaces or 0) .. "f", num)) +end + +function tobool(input) + if input == "true" or tonumber(input) == 1 or input == true then + return true + else + return false + end +end + +function string.split(inputstr, sep) + if sep == nil then + sep = "%s" + end + local t = {}; + i = 1 + for str in string.gmatch(inputstr, "([^" .. sep .. "]+)") do + t[i] = str + i = i + 1 + end + + return t +end + +function string.starts(String, Start) + return string.sub(String, 1, string.len(Start)) == Start +end + +function IsMouseInBounds(X, Y, Width, Height) + local MX, MY = math.round(GetControlNormal(0, 239) * 1920), math.round(GetControlNormal(0, 240) * 1080) + MX, MY = FormatXWYH(MX, MY) + X, Y = FormatXWYH(X, Y) + Width, Height = FormatXWYH(Width, Height) + return (MX >= X and MX <= X + Width) and (MY > Y and MY < Y + Height) +end + +function GetSafeZoneBounds() + local SafeSize = GetSafeZoneSize() + SafeSize = math.round(SafeSize, 2) + SafeSize = (SafeSize * 100) - 90 + SafeSize = 10 - SafeSize + + local W, H = 1920, 1080 + + return { X = math.round(SafeSize * ((W / H) * 5.4)), Y = math.round(SafeSize * 5.4) } +end + +function Controller() + return not IsInputDisabled(2) +end + +--[[ + UIResRectangle.lua + Elements +--]] + +function UIResRectangle.New(X, Y, Width, Height, R, G, B, A) + local _UIResRectangle = { + X = tonumber(X) or 0, + Y = tonumber(Y) or 0, + Width = tonumber(Width) or 0, + Height = tonumber(Height) or 0, + _Colour = { R = tonumber(R) or 255, G = tonumber(G) or 255, B = tonumber(B) or 255, A = tonumber(A) or 255 }, + } + return setmetatable(_UIResRectangle, UIResRectangle) +end + +function UIResRectangle:Position(X, Y) + if tonumber(X) and tonumber(Y) then + self.X = tonumber(X) + self.Y = tonumber(Y) + else + return { X = self.X, Y = self.Y } + end +end + +function UIResRectangle:Size(Width, Height) + if tonumber(Width) and tonumber(Height) then + self.Width = tonumber(Width) + self.Height = tonumber(Height) + else + return { Width = self.Width, Height = self.Height } + end +end + +function UIResRectangle:Colour(R, G, B, A) + if tonumber(R) or tonumber(G) or tonumber(B) or tonumber(A) then + self._Colour.R = tonumber(R) or 255 + self._Colour.B = tonumber(B) or 255 + self._Colour.G = tonumber(G) or 255 + self._Colour.A = tonumber(A) or 255 + else + return self._Colour + end +end + +function UIResRectangle:Draw() + local Position = self:Position() + local Size = self:Size() + Size.Width, Size.Height = FormatXWYH(Size.Width, Size.Height) + Position.X, Position.Y = FormatXWYH(Position.X, Position.Y) + DrawRect(Position.X + Size.Width * 0.5, Position.Y + Size.Height * 0.5, Size.Width, Size.Height, self._Colour.R, self._Colour.G, self._Colour.B, self._Colour.A) +end + +function DrawRectangle(X, Y, Width, Height, R, G, B, A) + X, Y, Width, Height = X or 0, Y or 0, Width or 0, Height or 0 + X, Y = FormatXWYH(X, Y) + Width, Height = FormatXWYH(Width, Height) + DrawRect(X + Width * 0.5, Y + Height * 0.5, Width, Height, tonumber(R) or 255, tonumber(G) or 255, tonumber(B) or 255, tonumber(A) or 255) +end + +--[[ + UIResText.lua + Elements +--]] + +function GetCharacterCount(str) + local characters = 0 + for c in str:gmatch("[%z\1-\127\194-\244][\128-\191]*") do + local a = c:byte(1, -1) + if a ~= nil then + characters = characters + 1 + end + end + return characters +end + +function GetByteCount(str) + local bytes = 0 + + for c in str:gmatch("[%z\1-\127\194-\244][\128-\191]*") do + local a, b, c, d = c:byte(1, -1) + if a ~= nil then + bytes = bytes + 1 + end + if b ~= nil then + bytes = bytes + 1 + end + if c ~= nil then + bytes = bytes + 1 + end + if d ~= nil then + bytes = bytes + 1 + end + end + return bytes +end + +function AddLongStringForAscii(str) + local maxbytelength = 99 + for i = 0, GetCharacterCount(str), 99 do + AddTextComponentSubstringPlayerName(string.sub(str, i, math.min(maxbytelength, GetCharacterCount(str) - i))) --needs changed + end +end + +function AddLongStringForUtf8(str) + local maxbytelength = 99 + local bytecount = GetByteCount(str) + + if bytecount < maxbytelength then + AddTextComponentSubstringPlayerName(str) + return + end + + local startIndex = 0 + + for i = 0, GetCharacterCount(str), 1 do + local length = i - startIndex + if GetByteCount(string.sub(str, startIndex, length)) > maxbytelength then + AddTextComponentSubstringPlayerName(string.sub(str, startIndex, length - 1)) + i = i - 1 + startIndex = startIndex + (length - 1) + end + end + AddTextComponentSubstringPlayerName(string.sub(str, startIndex, GetCharacterCount(str) - startIndex)) +end + +function AddLongString(str) + local bytecount = GetByteCount(str) + if bytecount == GetCharacterCount(str) then + AddLongStringForAscii(str) + else + AddLongStringForUtf8(str) + end +end + +function MeasureStringWidthNoConvert(str, font, scale) + BeginTextCommandWidth("STRING") + AddLongString(str) + SetTextFont(font or 0) + SetTextScale(1.0, scale or 0) + return EndTextCommandGetWidth(true) +end + +function MeasureStringWidth(str, font, scale) + return MeasureStringWidthNoConvert(str, font, scale) * 1920 +end + +function UIResText.New(Text, X, Y, Scale, R, G, B, A, Font, Alignment, DropShadow, Outline, WordWrap) + local _UIResText = { + _Text = tostring(Text) or "", + X = tonumber(X) or 0, + Y = tonumber(Y) or 0, + Scale = tonumber(Scale) or 0, + _Colour = { R = tonumber(R) or 255, G = tonumber(G) or 255, B = tonumber(B) or 255, A = tonumber(A) or 255 }, + Font = tonumber(Font) or 0, + Alignment = Alignment or nil, + DropShadow = Dropshadow or nil, + Outline = Outline or nil, + WordWrap = tonumber(WordWrap) or 0, + } + return setmetatable(_UIResText, UIResText) +end + +function UIResText:Position(X, Y) + if tonumber(X) and tonumber(Y) then + self.X = tonumber(X) + self.Y = tonumber(Y) + else + return { X = self.X, Y = self.Y } + end +end + +function UIResText:Colour(R, G, B, A) + if tonumber(R) and tonumber(G) and tonumber(B) and tonumber(A) then + self._Colour.R = tonumber(R) + self._Colour.B = tonumber(B) + self._Colour.G = tonumber(G) + self._Colour.A = tonumber(A) + else + return self._Colour + end +end + +function UIResText:Text(Text) + if tostring(Text) and Text ~= nil then + self._Text = tostring(Text) + else + return self._Text + end +end + +function UIResText:Draw() + local Position = self:Position() + Position.X, Position.Y = FormatXWYH(Position.X, Position.Y) + + SetTextFont(self.Font) + SetTextScale(1.0, self.Scale) + SetTextColour(self._Colour.R, self._Colour.G, self._Colour.B, self._Colour.A) + + if self.DropShadow then + SetTextDropShadow() + end + if self.Outline then + SetTextOutline() + end + + if self.Alignment ~= nil then + if self.Alignment == 1 or self.Alignment == "Center" or self.Alignment == "Centre" then + SetTextCentre(true) + elseif self.Alignment == 2 or self.Alignment == "Right" then + SetTextRightJustify(true) + SetTextWrap(0, Position.X) + end + end + + if tonumber(self.WordWrap) then + if tonumber(self.WordWrap) ~= 0 then + SetTextWrap(Position.X, Position.X + (tonumber(self.WordWrap) / Resolution.Width)) + end + end + + BeginTextCommandDisplayText("STRING") + AddLongString(self._Text) + EndTextCommandDisplayText(Position.X, Position.Y) +end + +function RenderText(Text, X, Y, Font, Scale, R, G, B, A, Alignment, DropShadow, Outline, WordWrap) + Text = tostring(Text) + X, Y = FormatXWYH(X, Y) + SetTextFont(Font or 0) + SetTextScale(1.0, Scale or 0) + SetTextColour(R or 255, G or 255, B or 255, A or 255) + + if DropShadow then + SetTextDropShadow() + end + if Outline then + SetTextOutline() + end + + if Alignment ~= nil then + if Alignment == 1 or Alignment == "Center" or Alignment == "Centre" then + SetTextCentre(true) + elseif Alignment == 2 or Alignment == "Right" then + SetTextRightJustify(true) + SetTextWrap(0, X) + end + end + + if tonumber(WordWrap) then + if tonumber(WordWrap) ~= 0 then + WordWrap, _ = FormatXWYH(WordWrap, 0) + SetTextWrap(WordWrap, X - WordWrap) + end + end + + BeginTextCommandDisplayText("STRING") + AddLongString(Text) + EndTextCommandDisplayText(X, Y) +end + +--[[ + Sprite.lua + Elements +--]] + +function Sprite.New(TxtDictionary, TxtName, X, Y, Width, Height, Heading, R, G, B, A) + local _Sprite = { + TxtDictionary = tostring(TxtDictionary), + TxtName = tostring(TxtName), + X = tonumber(X) or 0, + Y = tonumber(Y) or 0, + Width = tonumber(Width) or 0, + Height = tonumber(Height) or 0, + Heading = tonumber(Heading) or 0, + _Colour = { R = tonumber(R) or 255, G = tonumber(G) or 255, B = tonumber(B) or 255, A = tonumber(A) or 255 }, + } + return setmetatable(_Sprite, Sprite) +end + +function Sprite:Position(X, Y) + if tonumber(X) and tonumber(Y) then + self.X = tonumber(X) + self.Y = tonumber(Y) + else + return { X = self.X, Y = self.Y } + end +end + +function Sprite:Size(Width, Height) + if tonumber(Width) and tonumber(Width) then + self.Width = tonumber(Width) + self.Height = tonumber(Height) + else + return { Width = self.Width, Height = self.Height } + end +end + +function Sprite:Colour(R, G, B, A) + if tonumber(R) or tonumber(G) or tonumber(B) or tonumber(A) then + self._Colour.R = tonumber(R) or 255 + self._Colour.B = tonumber(B) or 255 + self._Colour.G = tonumber(G) or 255 + self._Colour.A = tonumber(A) or 255 + else + return self._Colour + end +end + +function Sprite:Draw() + if not HasStreamedTextureDictLoaded(self.TxtDictionary) then + RequestStreamedTextureDict(self.TxtDictionary, true) + end + local Position = self:Position() + local Size = self:Size() + Size.Width, Size.Height = FormatXWYH(Size.Width, Size.Height) + Position.X, Position.Y = FormatXWYH(Position.X, Position.Y) + DrawSprite(self.TxtDictionary, self.TxtName, Position.X + Size.Width * 0.5, Position.Y + Size.Height * 0.5, Size.Width, Size.Height, self.Heading, self._Colour.R, self._Colour.G, self._Colour.B, self._Colour.A) +end + +function DrawTexture(TxtDictionary, TxtName, X, Y, Width, Height, Heading, R, G, B, A) + if not HasStreamedTextureDictLoaded(tostring(TxtDictionary) or "") then + RequestStreamedTextureDict(tostring(TxtDictionary) or "", true) + end + X, Y, Width, Height = X or 0, Y or 0, Width or 0, Height or 0 + X, Y = FormatXWYH(X, Y) + Width, Height = FormatXWYH(Width, Height) + DrawSprite(tostring(TxtDictionary) or "", tostring(TxtName) or "", X + Width * 0.5, Y + Height * 0.5, Width, Height, tonumber(Heading) or 0, tonumber(R) or 255, tonumber(G) or 255, tonumber(B) or 255, tonumber(A) or 255) +end + +--[[ + StringMeasurer.lua + Elements +--]] + +function MeasureString(str) + local output = 0 + for i = 1, GetCharacterCount(str), 1 do + if CharacterMap[string.sub(str, i, i)] then + output = output + CharacterMap[string.sub(str, i, i)] + 1 + end + end + return output +end + +--[[ + Badge.lua + Elements +--]] + +function GetBadgeTexture(Badge, Selected) + if BadgeTexture[Badge] then + return BadgeTexture[Badge](Selected) + else + return "" + end +end + +function GetBadgeDictionary(Badge, Selected) + if BadgeDictionary[Badge] then + return BadgeDictionary[Badge](Selected) + else + return "commonmenu" + end +end + +function GetBadgeColour(Badge, Selected) + if BadgeColour[Badge] then + return BadgeColour[Badge](Selected) + else + return 255, 255, 255, 255 + end +end + +--[[ + Colours.lua + Elements +--]] + +--[[ + UIMenuItem.lua + Items +--]] + +function UIMenuItem.New(Text, Description) + _UIMenuItem = { + Rectangle = UIResRectangle.New(0, 0, 431, 38, 255, 255, 255, 20), + Text = UIResText.New(tostring(Text) or "", 8, 0, 0.33, 245, 245, 245, 255, 0), + _Description = tostring(Description) or ""; + SelectedSprite = Sprite.New("commonmenu", "gradient_nav", 0, 0, 431, 38), + LeftBadge = { Sprite = Sprite.New("commonmenu", "", 0, 0, 40, 40), Badge = 0 }, + RightBadge = { Sprite = Sprite.New("commonmenu", "", 0, 0, 40, 40), Badge = 0 }, + Label = { + Text = UIResText.New("", 0, 0, 0.35, 245, 245, 245, 255, 0, "Right"), + MainColour = { R = 255, G = 255, B = 255, A = 255 }, + HighlightColour = { R = 0, G = 0, B = 0, A = 255 }, + }, + _Selected = false, + _Hovered = false, + _Enabled = true, + _Offset = { X = 0, Y = 0 }, + ParentMenu = nil, + Panels = {}, + Activated = function(menu, item, panels) end, + ActivatedPanel = function(menu, item, panel, panelvalue) end, + } + return setmetatable(_UIMenuItem, UIMenuItem) +end + +function UIMenuItem:SetParentMenu(Menu) + if Menu ~= nil and Menu() == "UIMenu" then + self.ParentMenu = Menu + else + return self.ParentMenu + end +end + +function UIMenuItem:Selected(bool) + if bool ~= nil then + self._Selected = tobool(bool) + else + return self._Selected + end +end + +function UIMenuItem:Hovered(bool) + if bool ~= nil then + self._Hovered = tobool(bool) + else + return self._Hovered + end +end + +function UIMenuItem:Enabled(bool) + if bool ~= nil then + self._Enabled = tobool(bool) + else + return self._Enabled + end +end + +function UIMenuItem:Description(str) + if tostring(str) and str ~= nil then + self._Description = tostring(str) + else + return self._Description + end +end + +function UIMenuItem:Offset(X, Y) + if tonumber(X) or tonumber(Y) then + if tonumber(X) then + self._Offset.X = tonumber(X) + end + if tonumber(Y) then + self._Offset.Y = tonumber(Y) + end + else + return self._Offset + end +end + +function UIMenuItem:Position(Y) + if tonumber(Y) then + self.Rectangle:Position(self._Offset.X, Y + 144 + self._Offset.Y) + self.SelectedSprite:Position(0 + self._Offset.X, Y + 144 + self._Offset.Y) + self.Text:Position(8 + self._Offset.X, Y + 147 + self._Offset.Y) + self.LeftBadge.Sprite:Position(0 + self._Offset.X, Y + 142 + self._Offset.Y) + self.RightBadge.Sprite:Position(385 + self._Offset.X, Y + 142 + self._Offset.Y) + self.Label.Text:Position(420 + self._Offset.X, Y + 148 + self._Offset.Y) + end +end + +function UIMenuItem:RightLabel(Text, MainColour, HighlightColour) + if tostring(Text) and Text ~= nil then + if type(MainColour) == "table" then + self.Label.MainColour = MainColour + end + if type(HighlightColour) == "table" then + self.Label.HighlightColour = HighlightColour + end + self.Label.Text:Text(tostring(Text)) + else + return self.Label.Text:Text() + end +end + +function UIMenuItem:SetLeftBadge(Badge) + if tonumber(Badge) then + self.LeftBadge.Badge = tonumber(Badge) + end +end + +function UIMenuItem:SetRightBadge(Badge) + if tonumber(Badge) then + self.RightBadge.Badge = tonumber(Badge) + end +end + +function UIMenuItem:Text(Text) + if tostring(Text) and Text ~= nil then + self.Text:Text(tostring(Text)) + else + return self.Text:Text() + end +end + +function UIMenuItem:AddPanel(Panel) + if Panel() == "UIMenuPanel" then + table.insert(self.Panels, Panel) + Panel:SetParentItem(self) + end +end + +function UIMenuItem:RemovePanelAt(Index) + if tonumber(Index) then + if self.Panels[Index] then + table.remove(self.Panels, tonumber(Index)) + end + end +end + +function UIMenuItem:FindPanelIndex(Panel) + if Panel() == "UIMenuPanel" then + for Index = 1, #self.Panels do + if self.Panels[Index] == Panel then + return Index + end + end + end + return nil +end + +function UIMenuItem:FindPanelItem() + for Index = #self.Items, 1, -1 do + if self.Items[Index].Panel then + return Index + end + end + return nil +end + +function UIMenuItem:Draw() + self.Rectangle:Size(431 + self.ParentMenu.WidthOffset, self.Rectangle.Height) + self.SelectedSprite:Size(431 + self.ParentMenu.WidthOffset, self.SelectedSprite.Height) + + if self._Hovered and not self._Selected then + self.Rectangle:Draw() + end + + if self._Selected then + self.SelectedSprite:Draw() + end + + if self._Enabled then + if self._Selected then + self.Text:Colour(0, 0, 0, 255) + self.Label.Text:Colour(self.Label.HighlightColour.R, self.Label.HighlightColour.G, self.Label.HighlightColour.B, self.Label.HighlightColour.A) + else + self.Text:Colour(245, 245, 245, 255) + self.Label.Text:Colour(self.Label.MainColour.R, self.Label.MainColour.G, self.Label.MainColour.B, self.Label.MainColour.A) + end + else + self.Text:Colour(163, 159, 148, 255) + self.Label.Text:Colour(163, 159, 148, 255) + end + + if self.LeftBadge.Badge == BadgeStyle.None then + self.Text:Position(8 + self._Offset.X, self.Text.Y) + else + self.Text:Position(35 + self._Offset.X, self.Text.Y) + self.LeftBadge.Sprite.TxtDictionary = GetBadgeDictionary(self.LeftBadge.Badge, self._Selected) + self.LeftBadge.Sprite.TxtName = GetBadgeTexture(self.LeftBadge.Badge, self._Selected) + self.LeftBadge.Sprite:Colour(GetBadgeColour(self.LeftBadge.Badge, self._Selected)) + self.LeftBadge.Sprite:Draw() + end + + if self.RightBadge.Badge ~= BadgeStyle.None then + self.RightBadge.Sprite:Position(385 + self._Offset.X + self.ParentMenu.WidthOffset, self.RightBadge.Sprite.Y) + self.RightBadge.Sprite.TxtDictionary = GetBadgeDictionary(self.RightBadge.Badge, self._Selected) + self.RightBadge.Sprite.TxtName = GetBadgeTexture(self.RightBadge.Badge, self._Selected) + self.RightBadge.Sprite:Colour(GetBadgeColour(self.RightBadge.Badge, self._Selected)) + self.RightBadge.Sprite:Draw() + end + + if self.Label.Text:Text() ~= "" and string.len(self.Label.Text:Text()) > 0 then + self.Label.Text:Position(420 + self._Offset.X + self.ParentMenu.WidthOffset, self.Label.Text.Y) + self.Label.Text:Draw() + end + + self.Text:Draw() +end + +--[[ + UIMenuCheckboxItem.lua + Items +--]] + +function UIMenuCheckboxItem.New(Text, Check, Description) + local _UIMenuCheckboxItem = { + Base = UIMenuItem.New(Text or "", Description or ""), + CheckedSprite = Sprite.New("commonmenu", "shop_box_blank", 410, 95, 50, 50), + Checked = tobool(Check), + CheckboxEvent = function(menu, item, checked) end, + } + return setmetatable(_UIMenuCheckboxItem, UIMenuCheckboxItem) +end + +function UIMenuCheckboxItem:SetParentMenu(Menu) + if Menu() == "UIMenu" then + self.Base.ParentMenu = Menu + else + return self.Base.ParentMenu + end +end + +function UIMenuCheckboxItem:Position(Y) + if tonumber(Y) then + self.Base:Position(Y) + self.CheckedSprite:Position(380 + self.Base._Offset.X + self.Base.ParentMenu.WidthOffset, Y + 138 + self.Base._Offset.Y) + end +end + +function UIMenuCheckboxItem:Selected(bool) + if bool ~= nil then + self.Base._Selected = tobool(bool) + else + return self.Base._Selected + end +end + +function UIMenuCheckboxItem:Hovered(bool) + if bool ~= nil then + self.Base._Hovered = tobool(bool) + else + return self.Base._Hovered + end +end + +function UIMenuCheckboxItem:Enabled(bool) + if bool ~= nil then + self.Base._Enabled = tobool(bool) + else + return self.Base._Enabled + end +end + +function UIMenuCheckboxItem:Description(str) + if tostring(str) and str ~= nil then + self.Base._Description = tostring(str) + else + return self.Base._Description + end +end + +function UIMenuCheckboxItem:Offset(X, Y) + if tonumber(X) or tonumber(Y) then + if tonumber(X) then + self.Base._Offset.X = tonumber(X) + end + if tonumber(Y) then + self.Base._Offset.Y = tonumber(Y) + end + else + return self.Base._Offset + end +end + +function UIMenuCheckboxItem:Text(Text) + if tostring(Text) and Text ~= nil then + self.Base.Text:Text(tostring(Text)) + else + return self.Base.Text:Text() + end +end + +function UIMenuCheckboxItem:SetLeftBadge() + error("This item does not support badges") +end + +function UIMenuCheckboxItem:SetRightBadge() + error("This item does not support badges") +end + +function UIMenuCheckboxItem:RightLabel() + error("This item does not support a right label") +end + +function UIMenuCheckboxItem:Draw() + self.Base:Draw() + self.CheckedSprite:Position(380 + self.Base._Offset.X + self.Base.ParentMenu.WidthOffset, self.CheckedSprite.Y) + if self.Base:Selected() then + if self.Checked then + self.CheckedSprite.TxtName = "shop_box_tickb" + else + self.CheckedSprite.TxtName = "shop_box_blankb" + end + else + if self.Checked then + self.CheckedSprite.TxtName = "shop_box_tick" + else + self.CheckedSprite.TxtName = "shop_box_blank" + end + end + self.CheckedSprite:Draw() +end + +--[[ + UIMenuListItem.lua + Items +--]] + +function UIMenuListItem.New(Text, Items, Index, Description) + if type(Items) ~= "table" then Items = {} end + if Index == 0 then Index = 1 end + local _UIMenuListItem = { + Base = UIMenuItem.New(Text or "", Description or ""), + Items = Items, + LeftArrow = Sprite.New("commonmenu", "arrowleft", 110, 105, 30, 30), + RightArrow = Sprite.New("commonmenu", "arrowright", 280, 105, 30, 30), + ItemText = UIResText.New("", 290, 104, 0.35, 255, 255, 255, 255, 0, "Right"), + _Index = tonumber(Index) or 1, + Panels = {}, + OnListChanged = function(menu, item, newindex) end, + OnListSelected = function(menu, item, newindex) end, + } + return setmetatable(_UIMenuListItem, UIMenuListItem) +end + +function UIMenuListItem:SetParentMenu(Menu) + if Menu ~= nil and Menu() == "UIMenu" then + self.Base.ParentMenu = Menu + else + return self.Base.ParentMenu + end +end + +function UIMenuListItem:Position(Y) + if tonumber(Y) then + self.LeftArrow:Position(300 + self.Base._Offset.X + self.Base.ParentMenu.WidthOffset, 147 + Y + self.Base._Offset.Y) + self.RightArrow:Position(400 + self.Base._Offset.X + self.Base.ParentMenu.WidthOffset, 147 + Y + self.Base._Offset.Y) + self.ItemText:Position(300 + self.Base._Offset.X + self.Base.ParentMenu.WidthOffset, 147 + Y + self.Base._Offset.Y) + self.Base:Position(Y) + end +end + +function UIMenuListItem:Selected(bool) + if bool ~= nil then + self.Base._Selected = tobool(bool) + else + return self.Base._Selected + end +end + +function UIMenuListItem:Hovered(bool) + if bool ~= nil then + self.Base._Hovered = tobool(bool) + else + return self.Base._Hovered + end +end + +function UIMenuListItem:Enabled(bool) + if bool ~= nil then + self.Base._Enabled = tobool(bool) + else + return self.Base._Enabled + end +end + +function UIMenuListItem:Description(str) + if tostring(str) and str ~= nil then + self.Base._Description = tostring(str) + else + return self.Base._Description + end +end + +function UIMenuListItem:Offset(X, Y) + if tonumber(X) or tonumber(Y) then + if tonumber(X) then + self.Base._Offset.X = tonumber(X) + end + if tonumber(Y) then + self.Base._Offset.Y = tonumber(Y) + end + else + return self.Base._Offset + end +end + +function UIMenuListItem:Text(Text) + if tostring(Text) and Text ~= nil then + self.Base.Text:Text(tostring(Text)) + else + return self.Base.Text:Text() + end +end + +function UIMenuListItem:Index(Index) + if tonumber(Index) then + if tonumber(Index) > #self.Items then + self._Index = 1 + elseif tonumber(Index) < 1 then + self._Index = #self.Items + else + self._Index = tonumber(Index) + end + else + return self._Index + end +end + +function UIMenuListItem:ItemToIndex(Item) + for i = 1, #self.Items do + if type(Item) == type(self.Items[i]) and Item == self.Items[i] then + return i + elseif type(self.Items[i]) == "table" and (type(Item) == type(self.Items[i].Name) or type(Item) == type(self.Items[i].Value)) and (Item == self.Items[i].Name or Item == self.Items[i].Value) then + return i + end + end +end + +function UIMenuListItem:IndexToItem(Index) + if tonumber(Index) then + if tonumber(Index) == 0 then Index = 1 end + if self.Items[tonumber(Index)] then + return self.Items[tonumber(Index)] + end + end +end + +function UIMenuListItem:SetLeftBadge() + error("This item does not support badges") +end + +function UIMenuListItem:SetRightBadge() + error("This item does not support badges") +end + +function UIMenuListItem:RightLabel() + error("This item does not support a right label") +end + +function UIMenuListItem:AddPanel(Panel) + if Panel() == "UIMenuPanel" then + table.insert(self.Panels, Panel) + Panel:SetParentItem(self) + end +end + +function UIMenuListItem:RemovePanelAt(Index) + if tonumber(Index) then + if self.Panels[Index] then + table.remove(self.Panels, tonumber(Index)) + end + end +end + +function UIMenuListItem:FindPanelIndex(Panel) + if Panel() == "UIMenuPanel" then + for Index = 1, #self.Panels do + if self.Panels[Index] == Panel then + return Index + end + end + end + return nil +end + +function UIMenuListItem:FindPanelItem() + for Index = #self.Items, 1, -1 do + if self.Items[Index].Panel then + return Index + end + end + return nil +end + +function UIMenuListItem:Draw() + self.Base:Draw() + + if self:Enabled() then + if self:Selected() then + self.ItemText:Colour(0, 0, 0, 255) + self.LeftArrow:Colour(0, 0, 0, 255) + self.RightArrow:Colour(0, 0, 0, 255) + else + self.ItemText:Colour(245, 245, 245, 255) + self.LeftArrow:Colour(245, 245, 245, 255) + self.RightArrow:Colour(245, 245, 245, 255) + end + else + self.ItemText:Colour(163, 159, 148, 255) + self.LeftArrow:Colour(163, 159, 148, 255) + self.RightArrow:Colour(163, 159, 148, 255) + end + + local Text = (type(self.Items[self._Index]) == "table") and tostring(self.Items[self._Index].Name) or tostring(self.Items[self._Index]) + local Offset = MeasureStringWidth(Text, 0, 0.35) + + self.ItemText:Text(Text) + self.LeftArrow:Position(378 - Offset + self.Base._Offset.X + self.Base.ParentMenu.WidthOffset, self.LeftArrow.Y) + + if self:Selected() then + self.LeftArrow:Draw() + self.RightArrow:Draw() + self.ItemText:Position(403 + self.Base._Offset.X + self.Base.ParentMenu.WidthOffset, self.ItemText.Y) + else + self.ItemText:Position(418 + self.Base._Offset.X + self.Base.ParentMenu.WidthOffset, self.ItemText.Y) + end + + self.ItemText:Draw() +end + +--[[ + UIMenuSliderItem.lua + Items +--]] + +function UIMenuSliderItem.New(Text, Items, Index, Description, Divider) + if type(Items) ~= "table" then Items = {} end + if Index == 0 then Index = 1 end + local _UIMenuSliderItem = { + Base = UIMenuItem.New(Text or "", Description or ""), + Items = Items, + ShowDivider = tobool(Divider), + LeftArrow = Sprite.New("commonmenutu", "arrowleft", 0, 105, 15, 15), + RightArrow = Sprite.New("commonmenutu", "arrowright", 0, 105, 15, 15), + Background = UIResRectangle.New(0, 0, 150, 9, 4, 32, 57, 255), + Slider = UIResRectangle.New(0, 0, 75, 9, 57, 116, 200, 255), + Divider = UIResRectangle.New(0, 0, 2.5, 20, 245, 245, 245, 255), + _Index = tonumber(Index) or 1, + OnSliderChanged = function(menu, item, newindex) end, + OnSliderSelected = function(menu, item, newindex) end, + } + return setmetatable(_UIMenuSliderItem, UIMenuSliderItem) +end + +function UIMenuSliderItem:SetParentMenu(Menu) + if Menu() == "UIMenu" then + self.Base.ParentMenu = Menu + else + return self.Base.ParentMenu + end +end + +function UIMenuSliderItem:Position(Y) + if tonumber(Y) then + self.Background:Position(250 + self.Base._Offset.X + self.Base.ParentMenu.WidthOffset, Y + 158.5 + self.Base._Offset.Y) + self.Slider:Position(250 + self.Base._Offset.X + self.Base.ParentMenu.WidthOffset, Y + 158.5 + self.Base._Offset.Y) + self.Divider:Position(323.5 + self.Base._Offset.X + self.Base.ParentMenu.WidthOffset, Y + 153 + self.Base._Offset.Y) + self.LeftArrow:Position(235 + self.Base._Offset.X + self.Base.ParentMenu.WidthOffset, 155.5 + Y + self.Base._Offset.Y) + self.RightArrow:Position(400 + self.Base._Offset.X + self.Base.ParentMenu.WidthOffset, 155.5 + Y + self.Base._Offset.Y) + self.Base:Position(Y) + end +end + +function UIMenuSliderItem:Selected(bool) + if bool ~= nil then + self.Base._Selected = tobool(bool) + else + return self.Base._Selected + end +end + +function UIMenuSliderItem:Hovered(bool) + if bool ~= nil then + self.Base._Hovered = tobool(bool) + else + return self.Base._Hovered + end +end + +function UIMenuSliderItem:Enabled(bool) + if bool ~= nil then + self.Base._Enabled = tobool(bool) + else + return self.Base._Enabled + end +end + +function UIMenuSliderItem:Description(str) + if tostring(str) and str ~= nil then + self.Base._Description = tostring(str) + else + return self.Base._Description + end +end + +function UIMenuSliderItem:Offset(X, Y) + if tonumber(X) or tonumber(Y) then + if tonumber(X) then + self.Base._Offset.X = tonumber(X) + end + if tonumber(Y) then + self.Base._Offset.Y = tonumber(Y) + end + else + return self.Base._Offset + end +end + +function UIMenuSliderItem:Text(Text) + if tostring(Text) and Text ~= nil then + self.Base.Text:Text(tostring(Text)) + else + return self.Base.Text:Text() + end +end + +function UIMenuSliderItem:Index(Index) + if tonumber(Index) then + if tonumber(Index) > #self.Items then + self._Index = 1 + elseif tonumber(Index) < 1 then + self._Index = #self.Items + else + self._Index = tonumber(Index) + end + else + return self._Index + end +end + +function UIMenuSliderItem:ItemToIndex(Item) + for i = 1, #self.Items do + if type(Item) == type(self.Items[i]) and Item == self.Items[i] then + return i + end + end +end + +function UIMenuSliderItem:IndexToItem(Index) + if tonumber(Index) then + if tonumber(Index) == 0 then Index = 1 end + if self.Items[tonumber(Index)] then + return self.Items[tonumber(Index)] + end + end +end + +function UIMenuSliderItem:SetLeftBadge() + error("This item does not support badges") +end + +function UIMenuSliderItem:SetRightBadge() + error("This item does not support badges") +end + +function UIMenuSliderItem:RightLabel() + error("This item does not support a right label") +end + +function UIMenuSliderItem:Draw() + self.Base:Draw() + + if self:Enabled() then + if self:Selected() then + self.LeftArrow:Colour(0, 0, 0, 255) + self.RightArrow:Colour(0, 0, 0, 255) + else + self.LeftArrow:Colour(245, 245, 245, 255) + self.RightArrow:Colour(245, 245, 245, 255) + end + else + self.LeftArrow:Colour(163, 159, 148, 255) + self.RightArrow:Colour(163, 159, 148, 255) + end + + local Offset = ((self.Background.Width - self.Slider.Width) / (#self.Items - 1)) * (self._Index - 1) + + self.Slider:Position(250 + self.Base._Offset.X + Offset + self.Base.ParentMenu.WidthOffset, self.Slider.Y) + + if self:Selected() then + self.LeftArrow:Draw() + self.RightArrow:Draw() + end + + self.Background:Draw() + self.Slider:Draw() + if self.ShowDivider then + self.Divider:Draw() + end +end + +--[[ + UIMenuColouredItem.lua + Items +--]] + +function UIMenuColouredItem.New(Text, Description, MainColour, HighlightColour) + if type(Colour) ~= "table" then Colour = { R = 0, G = 0, B = 0, A = 255 } end + if type(HighlightColour) ~= "table" then Colour = { R = 255, G = 255, B = 255, A = 255 } end + local _UIMenuColouredItem = { + Base = UIMenuItem.New(Text or "", Description or ""), + Rectangle = UIResRectangle.New(0, 0, 431, 38, MainColour.R, MainColour.G, MainColour.B, MainColour.A), + MainColour = MainColour, + HighlightColour = HighlightColour, + Activated = function(menu, item) end, + } + _UIMenuColouredItem.Base.SelectedSprite:Colour(HighlightColour.R, HighlightColour.G, HighlightColour.B, HighlightColour.A) + return setmetatable(_UIMenuColouredItem, UIMenuColouredItem) +end + +function UIMenuColouredItem:SetParentMenu(Menu) + if Menu() == "UIMenu" then + self.Base.ParentMenu = Menu + else + return self.Base.ParentMenu + end +end + +function UIMenuColouredItem:Position(Y) + if tonumber(Y) then + self.Base:Position(Y) + self.Rectangle:Position(self.Base._Offset.X, Y + 144 + self.Base._Offset.Y) + end +end + +function UIMenuColouredItem:Selected(bool) + if bool ~= nil then + self.Base._Selected = tobool(bool) + else + return self.Base._Selected + end +end + +function UIMenuColouredItem:Hovered(bool) + if bool ~= nil then + self.Base._Hovered = tobool(bool) + else + return self.Base._Hovered + end +end + +function UIMenuColouredItem:Enabled(bool) + if bool ~= nil then + self.Base._Enabled = tobool(bool) + else + return self.Base._Enabled + end +end + +function UIMenuColouredItem:Description(str) + if tostring(str) and str ~= nil then + self.Base._Description = tostring(str) + else + return self.Base._Description + end +end + +function UIMenuColouredItem:Offset(X, Y) + if tonumber(X) or tonumber(Y) then + if tonumber(X) then + self.Base._Offset.X = tonumber(X) + end + if tonumber(Y) then + self.Base._Offset.Y = tonumber(Y) + end + else + return self.Base._Offset + end +end + +function UIMenuColouredItem:Text(Text) + if tostring(Text) and Text ~= nil then + self.Base.Text:Text(tostring(Text)) + else + return self.Base.Text:Text() + end +end + +function UIMenuColouredItem:RightLabel(Text, MainColour, HighlightColour) + if tostring(Text) and Text ~= nil then + if type(MainColour) == "table" then + self.Base.Label.MainColour = MainColour + end + if type(HighlightColour) == "table" then + self.Base.Label.HighlightColour = HighlightColour + end + self.Base.Label.Text:Text(tostring(Text)) + else + return self.Base.Label.Text:Text() + end +end + +function UIMenuColouredItem:SetLeftBadge(Badge) + if tonumber(Badge) then + self.Base.LeftBadge.Badge = tonumber(Badge) + end +end + +function UIMenuColouredItem:SetRightBadge(Badge) + if tonumber(Badge) then + self.Base.RightBadge.Badge = tonumber(Badge) + end +end + +function UIMenuColouredItem:Draw() + self.Rectangle:Size(431 + self.ParentMenu.WidthOffset, self.Rectangle.Height) + self.Rectangle:Draw() + self.Base:Draw() +end + +--[[ + UIMenuProgressItem.lua + Items +--]] + +function UIMenuProgressItem.New(Text, Items, Index, Description, Counter) + if type(Items) ~= "table" then Items = {} end + if Index == 0 then Index = 1 end + local _UIMenuProgressItem = { + Base = UIMenuItem.New(Text or "", Description or ""), + Data = { + Items = Items, + Counter = tobool(Counter), + Max = 407.5, + Index = tonumber(Index) or 1, + }, + Background = UIResRectangle.New(0, 0, 415, 20), + Bar = UIResRectangle.New(0, 0, 407.5, 12.5), + OnProgressChanged = function(menu, item, newindex) end, + OnProgressSelected = function(menu, item, newindex) end, + } + + _UIMenuProgressItem.Base.Rectangle.Height = 60 + _UIMenuProgressItem.Base.SelectedSprite.Height = 60 + + if _UIMenuProgressItem.Data.Counter then + _UIMenuProgressItem.Base:RightLabel(_UIMenuProgressItem.Data.Index .. "/" .. #_UIMenuProgressItem.Data.Items) + else + _UIMenuProgressItem.Base:RightLabel((type(_UIMenuProgressItem.Data.Items[_UIMenuProgressItem.Data.Index]) == "table") and tostring(_UIMenuProgressItem.Data.Items[_UIMenuProgressItem.Data.Index].Name) or tostring(_UIMenuProgressItem.Data.Items[_UIMenuProgressItem.Data.Index])) + end + + _UIMenuProgressItem.Bar.Width = _UIMenuProgressItem.Data.Index / #_UIMenuProgressItem.Data.Items * _UIMenuProgressItem.Data.Max + + return setmetatable(_UIMenuProgressItem, UIMenuProgressItem) +end + +function UIMenuProgressItem:SetParentMenu(Menu) + if Menu() == "UIMenu" then + self.Base.ParentMenu = Menu + else + return self.Base.ParentMenu + end +end + +function UIMenuProgressItem:Position(Y) + if tonumber(Y) then + self.Base:Position(Y) + self.Background:Position(8 + self.Base._Offset.X + self.Base.ParentMenu.WidthOffset, 177 + Y + self.Base._Offset.Y) + self.Bar:Position(11.75 + self.Base._Offset.X + self.Base.ParentMenu.WidthOffset, 180.75 + Y + self.Base._Offset.Y) + end +end + +function UIMenuProgressItem:Selected(bool) + if bool ~= nil then + self.Base._Selected = tobool(bool) + else + return self.Base._Selected + end +end + +function UIMenuProgressItem:Hovered(bool) + if bool ~= nil then + self.Base._Hovered = tobool(bool) + else + return self.Base._Hovered + end +end + +function UIMenuProgressItem:Enabled(bool) + if bool ~= nil then + self.Base._Enabled = tobool(bool) + else + return self.Base._Enabled + end +end + +function UIMenuProgressItem:Description(str) + if tostring(str) and str ~= nil then + self.Base._Description = tostring(str) + else + return self.Base._Description + end +end + +function UIMenuProgressItem:Offset(X, Y) + if tonumber(X) or tonumber(Y) then + if tonumber(X) then + self.Base._Offset.X = tonumber(X) + end + if tonumber(Y) then + self.Base._Offset.Y = tonumber(Y) + end + else + return self.Base._Offset + end +end + +function UIMenuProgressItem:Text(Text) + if tostring(Text) and Text ~= nil then + self.Base.Text:Text(tostring(Text)) + else + return self.Base.Text:Text() + end +end + +function UIMenuProgressItem:Index(Index) + if tonumber(Index) then + if tonumber(Index) > #self.Data.Items then + self.Data.Index = 1 + elseif tonumber(Index) < 1 then + self.Data.Index = #self.Data.Items + else + self.Data.Index = tonumber(Index) + end + + if self.Data.Counter then + self.Base:RightLabel(self.Data.Index .. "/" .. #self.Data.Items) + else + self.Base:RightLabel((type(self.Data.Items[self.Data.Index]) == "table") and tostring(self.Data.Items[self.Data.Index].Name) or tostring(self.Data.Items[self.Data.Index])) + end + + self.Bar.Width = self.Data.Index / #self.Data.Items * self.Data.Max + else + return self.Data.Index + end +end + +function UIMenuProgressItem:ItemToIndex(Item) + for i = 1, #self.Data.Items do + if type(Item) == type(self.Data.Items[i]) and Item == self.Data.Items[i] then + return i + elseif type(self.Data.Items[i]) == "table" and (type(Item) == type(self.Data.Items[i].Name) or type(Item) == type(self.Data.Items[i].Value)) and (Item == self.Data.Items[i].Name or Item == self.Data.Items[i].Value) then + return i + end + end +end + +function UIMenuProgressItem:IndexToItem(Index) + if tonumber(Index) then + if tonumber(Index) == 0 then Index = 1 end + if self.Data.Items[tonumber(Index)] then + return self.Data.Items[tonumber(Index)] + end + end +end + +function UIMenuProgressItem:SetLeftBadge() + error("This item does not support badges") +end + +function UIMenuProgressItem:SetRightBadge() + error("This item does not support badges") +end + +function UIMenuProgressItem:RightLabel() + error("This item does not support a right label") +end + +function UIMenuProgressItem:CalculateProgress(CursorX) + local Progress = CursorX - self.Bar.X + self:Index(math.round(#self.Data.Items * (((Progress >= 0 and Progress <= self.Data.Max) and Progress or ((Progress < 0) and 0 or self.Data.Max)) / self.Data.Max))) +end + +function UIMenuProgressItem:Draw() + self.Base:Draw() + + if self.Base._Selected then + self.Background:Colour(table.unpack(Colours.Black)) + self.Bar:Colour(table.unpack(Colours.White)) + else + self.Background:Colour(table.unpack(Colours.White)) + self.Bar:Colour(table.unpack(Colours.Black)) + end + + self.Background:Draw() + self.Bar:Draw() +end + +--[[ + UIMenuHeritageWindow.lua + Windows +--]] + +function UIMenuHeritageWindow.New(Mum, Dad) + if not tonumber(Mum) then Mum = 0 end + if not (Mum >= 0 and Mum <= 21) then Mum = 0 end + if not tonumber(Dad) then Dad = 0 end + if not (Dad >= 0 and Dad <= 23) then Dad = 0 end + _UIMenuHeritageWindow = { + Background = Sprite.New("pause_menu_pages_char_mom_dad", "mumdadbg", 0, 0, 431, 228), -- Background is required, must be a sprite or a rectangle. + MumSprite = Sprite.New("char_creator_portraits", ((Mum < 21) and "female_" .. Mum or "special_female_" .. (tonumber(string.sub(Mum, 2, 2)) - 1)), 0, 0, 228, 228), + DadSprite = Sprite.New("char_creator_portraits", ((Dad < 21) and "male_" .. Dad or "special_male_" .. (tonumber(string.sub(Dad, 2, 2)) - 1)), 0, 0, 228, 228), + Mum = Mum, + Dad = Dad, + _Offset = { X = 0, Y = 0 }, -- required + ParentMenu = nil, -- required + } + return setmetatable(_UIMenuHeritageWindow, UIMenuHeritageWindow) +end + +function UIMenuHeritageWindow:SetParentMenu(Menu) -- required + if Menu() == "UIMenu" then + self.ParentMenu = Menu + else + return self.ParentMenu + end +end + +function UIMenuHeritageWindow:Offset(X, Y) -- required + if tonumber(X) or tonumber(Y) then + if tonumber(X) then + self._Offset.X = tonumber(X) + end + if tonumber(Y) then + self._Offset.Y = tonumber(Y) + end + else + return self._Offset + end +end + +function UIMenuHeritageWindow:Position(Y) -- required + if tonumber(Y) then + self.Background:Position(self._Offset.X, 144 + Y + self._Offset.Y) + self.MumSprite:Position(self._Offset.X + (self.ParentMenu.WidthOffset / 2) + 25, 144 + Y + self._Offset.Y) + self.DadSprite:Position(self._Offset.X + (self.ParentMenu.WidthOffset / 2) + 195, 144 + Y + self._Offset.Y) + end +end + +function UIMenuHeritageWindow:Index(Mum, Dad) + if not tonumber(Mum) then Mum = self.Mum end + if not (Mum >= 0 and Mum <= 21) then Mum = self.Mum end + if not tonumber(Dad) then Dad = self.Dad end + if not (Dad >= 0 and Dad <= 23) then Dad = self.Dad end + + self.Mum = Mum + self.Dad = Dad + + self.MumSprite.TxtName = ((self.Mum < 21) and "female_" .. self.Mum or "special_female_" .. (tonumber(string.sub(Mum, 2, 2)) - 1)) + self.DadSprite.TxtName = ((self.Dad < 21) and "male_" .. self.Dad or "special_male_" .. (tonumber(string.sub(Dad, 2, 2)) - 1)) +end + +function UIMenuHeritageWindow:Draw() -- required + self.Background:Size(431 + self.ParentMenu.WidthOffset, 228) + self.Background:Draw() + self.DadSprite:Draw() + self.MumSprite:Draw() +end + +--[[ + UIMenuGridPanel.lua + Panels +--]] + +UIMenuGridPanel = setmetatable({}, UIMenuGridPanel) +UIMenuGridPanel.__index = UIMenuGridPanel +UIMenuGridPanel.__call = function() return "UIMenuPanel", "UIMenuGridPanel" end + +function UIMenuGridPanel.New(TopText, LeftText, RightText, BottomText) + _UIMenuGridPanel = { + Data = { + Enabled = true, + }, + Background = Sprite.New("commonmenu", "gradient_bgd", 0, 0, 431, 275), + Grid = Sprite.New("pause_menu_pages_char_mom_dad", "nose_grid", 0, 0, 200, 200, 0), + Circle = Sprite.New("mpinventory", "in_world_circle", 0, 0, 20, 20, 0), + Audio = { Slider = "CONTINUOUS_SLIDER", Library = "HUD_FRONTEND_DEFAULT_SOUNDSET", Id = nil }, + ParentItem = nil, + Text = { + Top = UIResText.New(TopText or "Top", 0, 0, 0.35, 255, 255, 255, 255, 0, "Centre"), + Left = UIResText.New(LeftText or "Left", 0, 0, 0.35, 255, 255, 255, 255, 0, "Centre"), + Right = UIResText.New(RightText or "Right", 0, 0, 0.35, 255, 255, 255, 255, 0, "Centre"), + Bottom = UIResText.New(BottomText or "Bottom", 0, 0, 0.35, 255, 255, 255, 255, 0, "Centre"), + }, + } + return setmetatable(_UIMenuGridPanel, UIMenuGridPanel) +end + +function UIMenuGridPanel:SetParentItem(Item) -- required + if Item() == "UIMenuItem" then + self.ParentItem = Item + else + return self.ParentItem + end +end + +function UIMenuGridPanel:Enabled(Enabled) + if type(Enabled) == "boolean" then + self.Data.Enabled = Enabled + else + return self.Data.Enabled + end +end + +function UIMenuGridPanel:CirclePosition(X, Y) + if tonumber(X) and tonumber(Y) then + self.Circle.X = (self.Grid.X + 20) + ((self.Grid.Width - 40) * ((X >= 0.0 and X <= 1.0) and X or 0.0)) - (self.Circle.Width / 2) + self.Circle.Y = (self.Grid.Y + 20) + ((self.Grid.Height - 40) * ((Y >= 0.0 and Y <= 1.0) and Y or 0.0)) - (self.Circle.Height / 2) + else + return math.round((self.Circle.X - (self.Grid.X + 20) + (self.Circle.Width / 2)) / (self.Grid.Width - 40), 2), math.round((self.Circle.Y - (self.Grid.Y + 20) + (self.Circle.Height / 2)) / (self.Grid.Height - 40), 2) + end +end + +function UIMenuGridPanel:Position(Y) -- required + if tonumber(Y) then + local ParentOffsetX, ParentOffsetWidth = self.ParentItem:Offset().X, self.ParentItem:SetParentMenu().WidthOffset + + self.Background:Position(ParentOffsetX, Y) + self.Grid:Position(ParentOffsetX + 115.5 + (ParentOffsetWidth / 2), 37.5 + Y) + self.Text.Top:Position(ParentOffsetX + 215.5 + (ParentOffsetWidth / 2), 5 + Y) + self.Text.Left:Position(ParentOffsetX + 57.75 + (ParentOffsetWidth / 2), 120 + Y) + self.Text.Right:Position(ParentOffsetX + 373.25 + (ParentOffsetWidth / 2), 120 + Y) + self.Text.Bottom:Position(ParentOffsetX + 215.5 + (ParentOffsetWidth / 2), 240 + Y) + + if not self.CircleLocked then + self.CircleLocked = true + self:CirclePosition(0.5, 0.5) + end + end +end + +function UIMenuGridPanel:UpdateParent(X, Y) + local _, ParentType = self.ParentItem() + if ParentType == "UIMenuListItem" then + local PanelItemIndex = self.ParentItem:FindPanelItem() + if PanelItemIndex then + self.ParentItem.Items[PanelItemIndex].Value[self.ParentItem:FindPanelIndex(self)] = { X = X, Y = Y } + self.ParentItem:Index(PanelItemIndex) + self.ParentItem.Base.ParentMenu.OnListChange(self.ParentItem.Base.ParentMenu, self.ParentItem, self.ParentItem._Index) + self.ParentItem.OnListChanged(self.ParentItem.Base.ParentMenu, self.ParentItem, self.ParentItem._Index) + else + local PanelIndex = self.ParentItem:FindPanelIndex(self) + for Index = 1, #self.ParentItem.Items do + if type(self.ParentItem.Items[Index]) == "table" then + if not self.ParentItem.Items[Index].Panels then self.ParentItem.Items[Index].Panels = {} end + self.ParentItem.Items[Index].Panels[PanelIndex] = { X = X, Y = Y } + else + self.ParentItem.Items[Index] = { Name = tostring(self.ParentItem.Items[Index]), Value = self.ParentItem.Items[Index], Panels = { [PanelIndex] = { X = X, Y = Y } } } + end + end + self.ParentItem.Base.ParentMenu.OnListChange(self.ParentItem.Base.ParentMenu, self.ParentItem, self.ParentItem._Index) + self.ParentItem.OnListChanged(self.ParentItem.Base.ParentMenu, self.ParentItem, self.ParentItem._Index) + end + elseif ParentType == "UIMenuItem" then + self.ParentItem.ActivatedPanel(self.ParentItem.ParentMenu, self.ParentItem, self, { X = X, Y = Y }) + end +end + +function UIMenuGridPanel:Functions() + local SafeZone = { X = 0, Y = 0 } + if self.ParentItem:SetParentMenu().Settings.ScaleWithSafezone then + SafeZone = GetSafeZoneBounds() + end + + if IsMouseInBounds(self.Grid.X + 20 + SafeZone.X, self.Grid.Y + 20 + SafeZone.Y, self.Grid.Width - 40, self.Grid.Height - 40) then + if IsDisabledControlJustPressed(0, 24) then + if not self.Pressed then + self.Pressed = true + Citizen.CreateThread(function() + self.Audio.Id = GetSoundId() + PlaySoundFrontend(self.Audio.Id, self.Audio.Slider, self.Audio.Library, 1) + while IsDisabledControlPressed(0, 24) and IsMouseInBounds(self.Grid.X + 20 + SafeZone.X, self.Grid.Y + 20 + SafeZone.Y, self.Grid.Width - 40, self.Grid.Height - 40) do + Citizen.Wait(0) + local CursorX, CursorY = math.round(GetControlNormal(0, 239) * 1920) - SafeZone.X - (self.Circle.Width / 2), math.round(GetControlNormal(0, 240) * 1080) - SafeZone.Y - (self.Circle.Height / 2) + + self.Circle:Position(((CursorX > (self.Grid.X + 10 + self.Grid.Width - 40)) and (self.Grid.X + 10 + self.Grid.Width - 40) or ((CursorX < (self.Grid.X + 20 - (self.Circle.Width / 2))) and (self.Grid.X + 20 - (self.Circle.Width / 2)) or CursorX)), ((CursorY > (self.Grid.Y + 10 + self.Grid.Height - 40)) and (self.Grid.Y + 10 + self.Grid.Height - 40) or ((CursorY < (self.Grid.Y + 20 - (self.Circle.Height / 2))) and (self.Grid.Y + 20 - (self.Circle.Height / 2)) or CursorY))) + end + StopSound(self.Audio.Id) + ReleaseSoundId(self.Audio.Id) + self.Pressed = false + end) + Citizen.CreateThread(function() + while IsDisabledControlPressed(0, 24) and IsMouseInBounds(self.Grid.X + 20 + SafeZone.X, self.Grid.Y + 20 + SafeZone.Y, self.Grid.Width - 40, self.Grid.Height - 40) do + Citizen.Wait(75) + local ResultX, ResultY = math.round((self.Circle.X - (self.Grid.X + 20) + (self.Circle.Width / 2)) / (self.Grid.Width - 40), 2), math.round((self.Circle.Y - (self.Grid.Y + 20) + (self.Circle.Height / 2)) / (self.Grid.Height - 40), 2) + + self:UpdateParent((((ResultX >= 0.0 and ResultX <= 1.0) and ResultX or ((ResultX <= 0) and 0.0) or 1.0) * 2) - 1, (((ResultY >= 0.0 and ResultY <= 1.0) and ResultY or ((ResultY <= 0) and 0.0) or 1.0) * 2) - 1) + end + end) + end + end + end +end + +function UIMenuGridPanel:Draw() -- required + if self.Data.Enabled then + self.Background:Size(431 + self.ParentItem:SetParentMenu().WidthOffset, 275) + + self.Background:Draw() + self.Grid:Draw() + self.Circle:Draw() + self.Text.Top:Draw() + self.Text.Left:Draw() + self.Text.Right:Draw() + self.Text.Bottom:Draw() + self:Functions() + end +end + +--[[ + UIMenuColourPanel.lua + Panels +--]] + +UIMenuColourPanel = setmetatable({}, UIMenuColourPanel) +UIMenuColourPanel.__index = UIMenuColourPanel +UIMenuColourPanel.__call = function() return "UIMenuPanel", "UIMenuColourPanel" end + +function UIMenuColourPanel.New(Title, Colours) + _UIMenuColourPanel = { + Data = { + Pagination = { + Min = 1, + Max = 8, + Total = 8, + }, + Index = 1000, + Items = Colours, + Title = Title or "Title", + Enabled = true, + Value = 1, + }, + Background = Sprite.New("commonmenu", "gradient_bgd", 0, 0, 431, 112), + Bar = {}, + LeftArrow = Sprite.New("commonmenu", "arrowleft", 0, 0, 30, 30), + RightArrow = Sprite.New("commonmenu", "arrowright", 0, 0, 30, 30), + SelectedRectangle = UIResRectangle.New(0, 0, 44.5, 8), + Text = UIResText.New(Title .. " (1 of " .. #Colours .. ")" or "Title" .. " (1 of " .. #Colours .. ")", 0, 0, 0.35, 255, 255, 255, 255, 0, "Centre"), + ParentItem = nil, + } + + for Index = 1, #Colours do + if Index < 10 then + table.insert(_UIMenuColourPanel.Bar, UIResRectangle.New(0, 0, 44.5, 44.5, table.unpack(Colours[Index]))) + else + break + end + end + + if #_UIMenuColourPanel.Data.Items ~= 0 then + _UIMenuColourPanel.Data.Index = 1000 - (1000 % #_UIMenuColourPanel.Data.Items) + _UIMenuColourPanel.Data.Pagination.Max = _UIMenuColourPanel.Data.Pagination.Total + 1 + _UIMenuColourPanel.Data.Pagination.Min = 0 + end + return setmetatable(_UIMenuColourPanel, UIMenuColourPanel) +end + +function UIMenuColourPanel:SetParentItem(Item) -- required + if Item() == "UIMenuItem" then + self.ParentItem = Item + else + return self.ParentItem + end +end + +function UIMenuColourPanel:Enabled(Enabled) + if type(Enabled) == "boolean" then + self.Data.Enabled = Enabled + else + return self.Data.Enabled + end +end + +function UIMenuColourPanel:Position(Y) -- required + if tonumber(Y) then + local ParentOffsetX, ParentOffsetWidth = self.ParentItem:Offset().X, self.ParentItem:SetParentMenu().WidthOffset + + self.Background:Position(ParentOffsetX, Y) + for Index = 1, #self.Bar do + self.Bar[Index]:Position(15 + (44.5 * (Index - 1)) + ParentOffsetX + (ParentOffsetWidth / 2), 55 + Y) + end + self.SelectedRectangle:Position(15 + (44.5 * ((self:CurrentSelection() - self.Data.Pagination.Min) - 1)) + ParentOffsetX + (ParentOffsetWidth / 2), 47 + Y) + self.LeftArrow:Position(7.5 + ParentOffsetX + (ParentOffsetWidth / 2), 15 + Y) + self.RightArrow:Position(393.5 + ParentOffsetX + (ParentOffsetWidth / 2), 15 + Y) + self.Text:Position(215.5 + ParentOffsetX + (ParentOffsetWidth / 2), 15 + Y) + end +end + +function UIMenuColourPanel:CurrentSelection(value, PreventUpdate) + if tonumber(value) then + if #self.Data.Items == 0 then + self.Data.Index = 0 + end + + self.Data.Index = 1000000 - (1000000 % #self.Data.Items) + tonumber(value) + + if self:CurrentSelection() > self.Data.Pagination.Max then + self.Data.Pagination.Min = self:CurrentSelection() - (self.Data.Pagination.Total + 1) + self.Data.Pagination.Max = self:CurrentSelection() + elseif self:CurrentSelection() < self.Data.Pagination.Min then + self.Data.Pagination.Min = self:CurrentSelection() - 1 + self.Data.Pagination.Max = self:CurrentSelection() + (self.Data.Pagination.Total + 1) + end + + self:UpdateSelection(PreventUpdate) + else + if #self.Data.Items == 0 then + return 1 + else + if self.Data.Index % #self.Data.Items == 0 then + return 1 + else + return self.Data.Index % #self.Data.Items + 1 + end + end + end +end + +function UIMenuColourPanel:UpdateParent(Colour) + local _, ParentType = self.ParentItem() + if ParentType == "UIMenuListItem" then + local PanelItemIndex = self.ParentItem:FindPanelItem() + local PanelIndex = self.ParentItem:FindPanelIndex(self) + if PanelItemIndex then + self.ParentItem.Items[PanelItemIndex].Value[PanelIndex] = Colour + self.ParentItem:Index(PanelItemIndex) + self.ParentItem.Base.ParentMenu.OnListChange(self.ParentItem.Base.ParentMenu, self.ParentItem, self.ParentItem._Index) + self.ParentItem.OnListChanged(self.ParentItem.Base.ParentMenu, self.ParentItem, self.ParentItem._Index) + else + for Index = 1, #self.ParentItem.Items do + if type(self.ParentItem.Items[Index]) == "table" then + if not self.ParentItem.Items[Index].Panels then self.ParentItem.Items[Index].Panels = {} end + self.ParentItem.Items[Index].Panels[PanelIndex] = Colour + else + self.ParentItem.Items[Index] = { Name = tostring(self.ParentItem.Items[Index]), Value = self.ParentItem.Items[Index], Panels = { [PanelIndex] = Colour } } + end + end + self.ParentItem.Base.ParentMenu.OnListChange(self.ParentItem.Base.ParentMenu, self.ParentItem, self.ParentItem._Index) + self.ParentItem.OnListChanged(self.ParentItem.Base.ParentMenu, self.ParentItem, self.ParentItem._Index) + end + elseif ParentType == "UIMenuItem" then + self.ParentItem.ActivatedPanel(self.ParentItem.ParentMenu, self.ParentItem, self, Colour) + end +end + +function UIMenuColourPanel:UpdateSelection(PreventUpdate) + local CurrentSelection = self:CurrentSelection() + if not PreventUpdate then + self:UpdateParent(CurrentSelection) + end + self.SelectedRectangle:Position(15 + (44.5 * ((CurrentSelection - self.Data.Pagination.Min) - 1)) + self.ParentItem:Offset().X, self.SelectedRectangle.Y) + for Index = 1, 9 do + self.Bar[Index]:Colour(table.unpack(self.Data.Items[self.Data.Pagination.Min + Index])) + end + self.Text:Text(self.Data.Title .. " (" .. CurrentSelection .. " of " .. #self.Data.Items .. ")") +end + +function UIMenuColourPanel:Functions() + + local SafeZone = { X = 0, Y = 0 } + if self.ParentItem:SetParentMenu().Settings.ScaleWithSafezone then + SafeZone = GetSafeZoneBounds() + end + + + if IsMouseInBounds(self.LeftArrow.X + SafeZone.X, self.LeftArrow.Y + SafeZone.Y, self.LeftArrow.Width, self.LeftArrow.Height) then + if IsDisabledControlJustPressed(0, 24) then + if #self.Data.Items > self.Data.Pagination.Total + 1 then + if self:CurrentSelection() <= self.Data.Pagination.Min + 1 then + if self:CurrentSelection() == 1 then + self.Data.Pagination.Min = #self.Data.Items - (self.Data.Pagination.Total + 1) + self.Data.Pagination.Max = #self.Data.Items + self.Data.Index = 1000 - (1000 % #self.Data.Items) + self.Data.Index = self.Data.Index + (#self.Data.Items - 1) + self:UpdateSelection() + else + self.Data.Pagination.Min = self.Data.Pagination.Min - 1 + self.Data.Pagination.Max = self.Data.Pagination.Max - 1 + self.Data.Index = self.Data.Index - 1 + self:UpdateSelection() + end + else + self.Data.Index = self.Data.Index - 1 + self:UpdateSelection() + end + else + self.Data.Index = self.Data.Index - 1 + self:UpdateSelection() + end + end + end + + if IsMouseInBounds(self.RightArrow.X + SafeZone.X, self.RightArrow.Y + SafeZone.Y, self.RightArrow.Width, self.RightArrow.Height) then + if IsDisabledControlJustPressed(0, 24) then + if #self.Data.Items > self.Data.Pagination.Total + 1 then + if self:CurrentSelection() >= self.Data.Pagination.Max then + if self:CurrentSelection() == #self.Data.Items then + self.Data.Pagination.Min = 0 + self.Data.Pagination.Max = self.Data.Pagination.Total + 1 + self.Data.Index = 1000 - (1000 % #self.Data.Items) + self:UpdateSelection() + else + self.Data.Pagination.Max = self.Data.Pagination.Max + 1 + self.Data.Pagination.Min = self.Data.Pagination.Max - (self.Data.Pagination.Total + 1) + self.Data.Index = self.Data.Index + 1 + self:UpdateSelection() + end + else + self.Data.Index = self.Data.Index + 1 + self:UpdateSelection() + end + else + self.Data.Index = self.Data.Index + 1 + self:UpdateSelection() + end + end + end + + for Index = 1, #self.Bar do + if IsMouseInBounds(self.Bar[Index].X + SafeZone.X, self.Bar[Index].Y + SafeZone.Y, self.Bar[Index].Width, self.Bar[Index].Height) then + if IsDisabledControlJustPressed(0, 24) then + self:CurrentSelection(self.Data.Pagination.Min + Index - 1) + end + end + end +end + +function UIMenuColourPanel:Draw() -- required + if self.Data.Enabled then + self.Background:Size(431 + self.ParentItem:SetParentMenu().WidthOffset, 112) + + self.Background:Draw() + self.LeftArrow:Draw() + self.RightArrow:Draw() + self.Text:Draw() + self.SelectedRectangle:Draw() + for Index = 1, #self.Bar do + self.Bar[Index]:Draw() + end + self:Functions() + end +end + +--[[ + UIMenuPercentagePanel.lua + Panels +--]] + +UIMenuPercentagePanel = setmetatable({}, UIMenuPercentagePanel) +UIMenuPercentagePanel.__index = UIMenuPercentagePanel +UIMenuPercentagePanel.__call = function() return "UIMenuPanel", "UIMenuPercentagePanel" end + +function UIMenuPercentagePanel.New(MinText, MaxText) + _UIMenuPercentagePanel = { + Data = { + Enabled = true, + }, + Background = Sprite.New("commonmenu", "gradient_bgd", 0, 0, 431, 76), + ActiveBar = UIResRectangle.New(0, 0, 413, 10, 245, 245, 245, 255), + BackgroundBar = UIResRectangle.New(0, 0, 413, 10, 87, 87, 87, 255), + Text = { + Min = UIResText.New(MinText or "0%", 0, 0, 0.35, 255, 255, 255, 255, 0, "Centre"), + Max = UIResText.New("100%", 0, 0, 0.35, 255, 255, 255, 255, 0, "Centre"), + Title = UIResText.New(MaxText or "Opacity", 0, 0, 0.35, 255, 255, 255, 255, 0, "Centre"), + }, + Audio = { Slider = "CONTINUOUS_SLIDER", Library = "HUD_FRONTEND_DEFAULT_SOUNDSET", Id = nil }, + ParentItem = nil, + } + + return setmetatable(_UIMenuPercentagePanel, UIMenuPercentagePanel) +end + +function UIMenuPercentagePanel:SetParentItem(Item) -- required + if Item() == "UIMenuItem" then + self.ParentItem = Item + else + return self.ParentItem + end +end + +function UIMenuPercentagePanel:Enabled(Enabled) + if type(Enabled) == "boolean" then + self.Data.Enabled = Enabled + else + return self.Data.Enabled + end +end + +function UIMenuPercentagePanel:Position(Y) -- required + if tonumber(Y) then + local ParentOffsetX, ParentOffsetWidth = self.ParentItem:Offset().X, self.ParentItem:SetParentMenu().WidthOffset + self.Background:Position(ParentOffsetX, Y) + self.ActiveBar:Position(ParentOffsetX + (ParentOffsetWidth / 2) + 9, 50 + Y) + self.BackgroundBar:Position(ParentOffsetX + (ParentOffsetWidth / 2) + 9, 50 + Y) + self.Text.Min:Position(ParentOffsetX + (ParentOffsetWidth / 2) + 25, 15 + Y) + self.Text.Max:Position(ParentOffsetX + (ParentOffsetWidth / 2) + 398, 15 + Y) + self.Text.Title:Position(ParentOffsetX + (ParentOffsetWidth / 2) + 215.5, 15 + Y) + end +end + +function UIMenuPercentagePanel:Percentage(Value) + if tonumber(Value) then + local Percent = ((Value < 0.0) and 0.0) or ((Value > 1.0) and 1.0 or Value) + self.ActiveBar:Size(self.BackgroundBar.Width * Percent, self.ActiveBar.Height) + else + local SafeZone = { X = 0, Y = 0 } + if self.ParentItem:SetParentMenu().Settings.ScaleWithSafezone then + SafeZone = GetSafeZoneBounds() + end + + local Progress = (math.round(GetControlNormal(0, 239) * 1920) - SafeZone.X) - self.ActiveBar.X + return math.round(((Progress >= 0 and Progress <= 413) and Progress or ((Progress < 0) and 0 or 413)) / self.BackgroundBar.Width, 2) + end +end + +function UIMenuPercentagePanel:UpdateParent(Percentage) + local _, ParentType = self.ParentItem() + if ParentType == "UIMenuListItem" then + local PanelItemIndex = self.ParentItem:FindPanelItem() + if PanelItemIndex then + self.ParentItem.Items[PanelItemIndex].Value[self.ParentItem:FindPanelIndex(self)] = Percentage + self.ParentItem:Index(PanelItemIndex) + self.ParentItem.Base.ParentMenu.OnListChange(self.ParentItem.Base.ParentMenu, self.ParentItem, self.ParentItem._Index) + self.ParentItem.OnListChanged(self.ParentItem.Base.ParentMenu, self.ParentItem, self.ParentItem._Index) + else + local PanelIndex = self.ParentItem:FindPanelIndex(self) + for Index = 1, #self.ParentItem.Items do + if type(self.ParentItem.Items[Index]) == "table" then + if not self.ParentItem.Items[Index].Panels then self.ParentItem.Items[Index].Panels = {} end + self.ParentItem.Items[Index].Panels[PanelIndex] = Percentage + else + self.ParentItem.Items[Index] = { Name = tostring(self.ParentItem.Items[Index]), Value = self.ParentItem.Items[Index], Panels = { [PanelIndex] = Percentage } } + end + end + self.ParentItem.Base.ParentMenu.OnListChange(self.ParentItem.Base.ParentMenu, self.ParentItem, self.ParentItem._Index) + self.ParentItem.OnListChanged(self.ParentItem.Base.ParentMenu, self.ParentItem, self.ParentItem._Index) + end + elseif ParentType == "UIMenuItem" then + self.ParentItem.ActivatedPanel(self.ParentItem.ParentMenu, self.ParentItem, self, Percentage) + end +end + +function UIMenuPercentagePanel:Functions() + + local SafeZone = { X = 0, Y = 0 } + if self.ParentItem:SetParentMenu().Settings.ScaleWithSafezone then + SafeZone = GetSafeZoneBounds() + end + + if IsMouseInBounds(self.BackgroundBar.X + SafeZone.X, self.BackgroundBar.Y - 4 + SafeZone.Y, self.BackgroundBar.Width, self.BackgroundBar.Height + 8) then + if IsDisabledControlJustPressed(0, 24) then + if not self.Pressed then + self.Pressed = true + Citizen.CreateThread(function() + self.Audio.Id = GetSoundId() + PlaySoundFrontend(self.Audio.Id, self.Audio.Slider, self.Audio.Library, 1) + while IsDisabledControlPressed(0, 24) and IsMouseInBounds(self.BackgroundBar.X + SafeZone.X, self.BackgroundBar.Y - 4 + SafeZone.Y, self.BackgroundBar.Width, self.BackgroundBar.Height + 8) do + Citizen.Wait(0) + local Progress = (math.round(GetControlNormal(0, 239) * 1920) - SafeZone.X) - self.ActiveBar.X + self.ActiveBar:Size(((Progress >= 0 and Progress <= 413) and Progress or ((Progress < 0) and 0 or 413)), self.ActiveBar.Height) + end + StopSound(self.Audio.Id) + ReleaseSoundId(self.Audio.Id) + self.Pressed = false + end) + Citizen.CreateThread(function() + while IsDisabledControlPressed(0, 24) and IsMouseInBounds(self.BackgroundBar.X + SafeZone.X, self.BackgroundBar.Y - 4 + SafeZone.Y, self.BackgroundBar.Width, self.BackgroundBar.Height + 8) do + Citizen.Wait(75) + local Progress = (math.round(GetControlNormal(0, 239) * 1920) - SafeZone.X) - self.ActiveBar.X + self:UpdateParent(math.round(((Progress >= 0 and Progress <= 413) and Progress or ((Progress < 0) and 0 or 413)) / self.BackgroundBar.Width, 2)) + end + end) + end + end + end +end + +function UIMenuPercentagePanel:Draw() -- required + if self.Data.Enabled then + self.Background:Size(431 + self.ParentItem:SetParentMenu().WidthOffset, 76) + self.Background:Draw() + self.BackgroundBar:Draw() + self.ActiveBar:Draw() + self.Text.Min:Draw() + self.Text.Max:Draw() + self.Text.Title:Draw() + self:Functions() + end +end + +--[[ + UIMenu.lua + Menus +--]] + +function UIMenu.New(Title, Subtitle, X, Y, TxtDictionary, TxtName) + local X, Y = tonumber(X) or 0, tonumber(Y) or 0 + if Title ~= nil then Title = tostring(Title) or "" else Title = "" end + if Subtitle ~= nil then Subtitle = tostring(Subtitle) or "" else Subtitle = "" end + if TxtDictionary ~= nil then TxtDictionary = tostring(TxtDictionary) or "commonmenu" else TxtDictionary = "commonmenu" end + if TxtName ~= nil then TxtName = tostring(TxtName) or "interaction_bgd" else TxtName = "interaction_bgd" end + local _UIMenu = { + Logo = Sprite.New(TxtDictionary, TxtName, 0 + X, 0 + Y, 431, 107), + Banner = nil, + Title = UIResText.New(Title, 215 + X, 20 + Y, 1.15, 255, 255, 255, 255, 1, 1), + Subtitle = { ExtraY = 0 }, + WidthOffset = 0, + Position = { X = X, Y = Y }, + Pagination = { Min = 0, Max = 9, Total = 9 }, + PageCounter = { PreText = "" }, + Extra = {}, + Description = {}, + Items = {}, + Windows = {}, + Children = {}, + Controls = { + Back = { + Enabled = true, + }, + Select = { + Enabled = true, + }, + Left = { + Enabled = true, + }, + Right = { + Enabled = true, + }, + Up = { + Enabled = true, + }, + Down = { + Enabled = true, + }, + }, + ParentMenu = nil, + ParentItem = nil, + _Visible = false, + ActiveItem = 1000, + Dirty = false; + ReDraw = true, + InstructionalScaleform = RequestScaleformMovie("INSTRUCTIONAL_BUTTONS"), + InstructionalButtons = {}, + OnIndexChange = function(menu, newindex) end, + OnListChange = function(menu, list, newindex) end, + OnSliderChange = function(menu, slider, newindex) end, + OnProgressChange = function(menu, progress, newindex) end, + OnCheckboxChange = function(menu, item, checked) end, + OnListSelect = function(menu, list, index) end, + OnSliderSelect = function(menu, slider, index) end, + OnProgressSelect = function(menu, progress, index) end, + OnItemSelect = function(menu, item, index) end, + OnMenuChanged = function(menu, newmenu, forward) end, + OnMenuClosed = function(menu) end, + Settings = { + InstructionalButtons = true, + MultilineFormats = true, + ScaleWithSafezone = true, + ResetCursorOnOpen = false, + MouseControlsEnabled = false, + MouseEdgeEnabled = false, + ControlDisablingEnabled = true, + Audio = { + Library = "HUD_FRONTEND_DEFAULT_SOUNDSET", + UpDown = "NAV_UP_DOWN", + LeftRight = "NAV_LEFT_RIGHT", + Select = "SELECT", + Back = "BACK", + Error = "ERROR", + }, + EnabledControls = { + Controller = { + { 0, 2 }, -- Look Up and Down + { 0, 1 }, -- Look Left and Right + { 0, 25 }, -- Aim + { 0, 24 }, -- Attack + }, + Keyboard = { + { 0, 0 }, -- Camera + { 0, 1 }, -- Look Left and Right + { 0, 2 }, -- Look Up and Down + { 0, 8 }, -- Fly Up and Down + { 0, 9 }, -- Fly Left and Right + { 0, 21 }, -- Sprint + { 0, 22 }, -- Jump + { 0, 23 }, -- Enter + { 0, 24 }, -- Attack + { 0, 25 }, -- Aim + { 0, 26 }, -- C + { 0, 30 }, -- Move Left and Right + { 0, 31 }, -- Move Up and Down + { 0, 47 }, -- G + { 0, 59 }, -- Move Vehicle Left and Right + { 0, 71 }, -- Accelerate Vehicle + { 0, 72 }, -- Vehicle Brake + { 0, 73 }, -- X + { 0, 75 }, -- Exit Vehicle + { 0, 76 }, -- Vehicle Handbrake + { 0, 89 }, -- Fly Yaw Left + { 0, 90 }, -- Fly Yaw Right + { 0, 108 }, -- Num Pad 4 + { 0, 109 }, -- Num Pad 6 + { 0, 110 }, -- Num Pad 5 + { 0, 111 }, -- Num Pad 8 + { 0, 117 }, -- Num Pad 7 + { 0, 118 }, -- Num Pad 9 + { 0, 171 }, -- CAPSLOCK + { 0, 187 }, -- Down + { 0, 188 }, -- Up + { 0, 189 }, -- Left + { 0, 190 }, -- Right + { 0, 195 }, -- X axis + { 0, 196 }, -- Y axis + { 0, 201 }, -- Select + { 0, 202 }, -- Back + { 0, 203 }, -- Spacebar? + { 0, 217 }, -- Select + { 0, 239 }, -- Cursor X + { 0, 240 }, -- Cursor Y + { 0, 241 }, -- Scroll up + { 0, 242 }, -- Scroll down + { 0, 249 }, -- N + { 0, 305 }, -- B + { 0, 306 }, -- N + }, + } + } + } + + if Subtitle ~= "" and Subtitle ~= nil then + _UIMenu.Subtitle.Rectangle = UIResRectangle.New(0 + _UIMenu.Position.X, 107 + _UIMenu.Position.Y, 431, 37, 0, 0, 0, 255) + _UIMenu.Subtitle.Text = UIResText.New(Subtitle, 8 + _UIMenu.Position.X, 110 + _UIMenu.Position.Y, 0.35, 245, 245, 245, 255, 0) + _UIMenu.Subtitle.BackupText = Subtitle + _UIMenu.Subtitle.Formatted = false + if string.starts(Subtitle, "~") then + _UIMenu.PageCounter.PreText = string.sub(Subtitle, 1, 3) + end + _UIMenu.PageCounter.Text = UIResText.New("", 425 + _UIMenu.Position.X, 110 + _UIMenu.Position.Y, 0.35, 245, 245, 245, 255, 0, "Right") + _UIMenu.Subtitle.ExtraY = 37 + end + + _UIMenu.ArrowSprite = Sprite.New("commonmenu", "shop_arrows_upanddown", 190 + _UIMenu.Position.X, 147 + 37 * (_UIMenu.Pagination.Total + 1) + _UIMenu.Position.Y - 37 + _UIMenu.Subtitle.ExtraY, 50, 50) + _UIMenu.Extra.Up = UIResRectangle.New(0 + _UIMenu.Position.X, 144 + 38 * (_UIMenu.Pagination.Total + 1) + _UIMenu.Position.Y - 37 + _UIMenu.Subtitle.ExtraY, 431, 18, 0, 0, 0, 200) + _UIMenu.Extra.Down = UIResRectangle.New(0 + _UIMenu.Position.X, 144 + 18 + 38 * (_UIMenu.Pagination.Total + 1) + _UIMenu.Position.Y - 37 + _UIMenu.Subtitle.ExtraY, 431, 18, 0, 0, 0, 200) + + _UIMenu.Description.Bar = UIResRectangle.New(_UIMenu.Position.X, 123, 431, 4, 0, 0, 0, 255) + _UIMenu.Description.Rectangle = Sprite.New("commonmenu", "gradient_bgd", _UIMenu.Position.X, 127, 431, 30) + _UIMenu.Description.Text = UIResText.New("Description", _UIMenu.Position.X + 5, 125, 0.35) + + _UIMenu.Background = Sprite.New("commonmenu", "gradient_bgd", _UIMenu.Position.X, 144 + _UIMenu.Position.Y - 37 + _UIMenu.Subtitle.ExtraY, 290, 25) + + Citizen.CreateThread(function() + if not HasScaleformMovieLoaded(_UIMenu.InstructionalScaleform) then + _UIMenu.InstructionalScaleform = RequestScaleformMovie("INSTRUCTIONAL_BUTTONS") + while not HasScaleformMovieLoaded(_UIMenu.InstructionalScaleform) do + Citizen.Wait(0) + end + end + end) + return setmetatable(_UIMenu, UIMenu) +end + +function UIMenu:SetMenuWidthOffset(Offset) + if tonumber(Offset) then + self.WidthOffset = math.floor(tonumber(Offset)) + self.Logo:Size(431 + self.WidthOffset, 107) + self.Title:Position(((self.WidthOffset + 431) / 2) + self.Position.X, 20 + self.Position.Y) + if self.Subtitle.Rectangle ~= nil then + self.Subtitle.Rectangle:Size(431 + self.WidthOffset + 100, 37) + self.PageCounter.Text:Position(425 + self.Position.X + self.WidthOffset, 110 + self.Position.Y) + end + if self.Banner ~= nil then + self.Banner:Size(431 + self.WidthOffset, 107) + end + end +end + +function UIMenu:DisEnableControls(bool) + if bool then + EnableAllControlActions(2) + else + DisableAllControlActions(2) + end + + if bool then + return + else + if Controller() then + for Index = 1, #self.Settings.EnabledControls.Controller do + EnableControlAction(self.Settings.EnabledControls.Controller[Index][1], self.Settings.EnabledControls.Controller[Index][2], true) + end + else + for Index = 1, #self.Settings.EnabledControls.Keyboard do + EnableControlAction(self.Settings.EnabledControls.Keyboard[Index][1], self.Settings.EnabledControls.Keyboard[Index][2], true) + end + end + end +end + +function UIMenu:InstructionalButtons(bool) + if bool ~= nil then + self.Settings.InstrucitonalButtons = tobool(bool) + end +end + +function UIMenu:SetBannerSprite(Sprite, IncludeChildren) + if Sprite() == "Sprite" then + self.Logo = Sprite + self.Logo:Size(431 + self.WidthOffset, 107) + self.Logo:Position(self.Position.X, self.Position.Y) + self.Banner = nil + if IncludeChildren then + for Item, Menu in pairs(self.Children) do + Menu.Logo = Sprite + Menu.Logo:Size(431 + self.WidthOffset, 107) + Menu.Logo:Position(self.Position.X, self.Position.Y) + Menu.Banner = nil + end + end + end +end + +function UIMenu:SetBannerRectangle(Rectangle, IncludeChildren) + if Rectangle() == "Rectangle" then + self.Banner = Rectangle + self.Banner:Size(431 + self.WidthOffset, 107) + self.Banner:Position(self.Position.X, self.Position.Y) + self.Logo = nil + if IncludeChildren then + for Item, Menu in pairs(self.Children) do + Menu.Banner = Rectangle + Menu.Banner:Size(431 + self.WidthOffset, 107) + Menu:Position(self.Position.X, self.Position.Y) + Menu.Logo = nil + end + end + end +end + +function UIMenu:CurrentSelection(value) + if tonumber(value) then + if #self.Items == 0 then + self.ActiveItem = 0 + end + + self.Items[self:CurrentSelection()]:Selected(false) + self.ActiveItem = 1000000 - (1000000 % #self.Items) + tonumber(value) + + if self:CurrentSelection() > self.Pagination.Max then + self.Pagination.Min = self:CurrentSelection() - self.Pagination.Total + self.Pagination.Max = self:CurrentSelection() + elseif self:CurrentSelection() < self.Pagination.Min then + self.Pagination.Min = self:CurrentSelection() + self.Pagination.Max = self:CurrentSelection() + self.Pagination.Total + end + else + if #self.Items == 0 then + return 1 + else + if self.ActiveItem % #self.Items == 0 then + return 1 + else + return self.ActiveItem % #self.Items + 1 + end + end + end +end + +function UIMenu:CalculateWindowHeight() + local Height = 0 + for i = 1, #self.Windows do + Height = Height + self.Windows[i].Background:Size().Height + end + return Height +end + +function UIMenu:CalculateItemHeightOffset(Item) + if Item.Base then + return Item.Base.Rectangle.Height + else + return Item.Rectangle.Height + end +end + +function UIMenu:CalculateItemHeight() + local ItemOffset = 0 + self.Subtitle.ExtraY - 37 + for i = self.Pagination.Min + 1, self.Pagination.Max do + local Item = self.Items[i] + if Item ~= nil then + ItemOffset = ItemOffset + self:CalculateItemHeightOffset(Item) + end + end + return ItemOffset +end + +function UIMenu:RecalculateDescriptionPosition() + local WindowHeight = self:CalculateWindowHeight() + self.Description.Bar:Position(self.Position.X, 149 + self.Position.Y + WindowHeight) + self.Description.Rectangle:Position(self.Position.X, 149 + self.Position.Y + WindowHeight) + self.Description.Text:Position(self.Position.X + 8, 155 + self.Position.Y + WindowHeight) + + self.Description.Bar:Size(431 + self.WidthOffset, 4) + self.Description.Rectangle:Size(431 + self.WidthOffset, 30) + + self.Description.Bar:Position(self.Position.X, self:CalculateItemHeight() + ((#self.Items > (self.Pagination.Total + 1)) and 37 or 0) + self.Description.Bar:Position().Y) + self.Description.Rectangle:Position(self.Position.X, self:CalculateItemHeight() + ((#self.Items > (self.Pagination.Total + 1)) and 37 or 0) + self.Description.Rectangle:Position().Y) + self.Description.Text:Position(self.Position.X + 8, self:CalculateItemHeight() + ((#self.Items > (self.Pagination.Total + 1)) and 37 or 0) + self.Description.Text:Position().Y) +end + +function UIMenu:CaclulatePanelPosition(HasDescription) + local Height = self:CalculateWindowHeight() + 149 + self.Position.Y + + if HasDescription then + Height = Height + self.Description.Rectangle:Size().Height + 5 + end + + return self:CalculateItemHeight() + ((#self.Items > (self.Pagination.Total + 1)) and 37 or 0) + Height +end + +function UIMenu:AddWindow(Window) + if Window() == "UIMenuWindow" then + Window:SetParentMenu(self) + Window:Offset(self.Position.X, self.Position.Y) + table.insert(self.Windows, Window) + self.ReDraw = true + self:RecalculateDescriptionPosition() + end +end + +function UIMenu:RemoveWindowAt(Index) + if tonumber(Index) then + if self.Windows[Index] then + table.remove(self.Windows, Index) + self.ReDraw = true + self:RecalculateDescriptionPosition() + end + end +end + +function UIMenu:AddItem(Item) + if Item() == "UIMenuItem" then + local SelectedItem = self:CurrentSelection() + Item:SetParentMenu(self) + Item:Offset(self.Position.X, self.Position.Y) + Item:Position((#self.Items * 25) - 37 + self.Subtitle.ExtraY) + table.insert(self.Items, Item) + self:RecalculateDescriptionPosition() + self:CurrentSelection(SelectedItem) + end +end + +function UIMenu:RemoveItemAt(Index) + if tonumber(Index) then + if self.Items[Index] then + local SelectedItem = self:CurrentSelection() + if #self.Items > self.Pagination.Total and self.Pagination.Max == #self.Items - 1 then + self.Pagination.Min = self.Pagination.Min - 1 + self.Pagination.Max = self.Pagination.Max + 1 + end + table.remove(self.Items, tonumber(Index)) + self:RecalculateDescriptionPosition() + self:CurrentSelection(SelectedItem) + end + end +end + +function UIMenu:RefreshIndex() + if #self.Items == 0 then + self.ActiveItem = 1000 + self.Pagination.Max = self.Pagination.Total + 1 + self.Pagination.Min = 0 + return + end + self.Items[self:CurrentSelection()]:Selected(false) + self.ActiveItem = 1000 - (1000 % #self.Items) + self.Pagination.Max = self.Pagination.Total + 1 + self.Pagination.Min = 0 + self.ReDraw = true +end + +function UIMenu:Clear() + self.Items = {} + self.ReDraw = true + self:RecalculateDescriptionPosition() +end + +function UIMenu:MultilineFormat(str) + if tostring(str) then + + local PixelPerLine = 425 + self.WidthOffset + local AggregatePixels = 0 + local output = "" + local words = string.split(tostring(str), " ") + + for i = 1, #words do + local offset = MeasureStringWidth(words[i], 0, 0.35) + AggregatePixels = AggregatePixels + offset + if AggregatePixels > PixelPerLine then + output = output .. "\n" .. words[i] .. " " + AggregatePixels = offset + MeasureString(" ") + else + output = output .. words[i] .. " " + AggregatePixels = AggregatePixels + MeasureString(" ") + end + end + return output + end +end + +function UIMenu:DrawCalculations() + local WindowHeight = self:CalculateWindowHeight() + + if self.Settings.MultilineFormats then + if self.Subtitle.Rectangle and not self.Subtitle.Formatted then + self.Subtitle.Formatted = true + self.Subtitle.Text:Text(self:MultilineFormat(self.Subtitle.Text:Text())) + + local Linecount = #string.split(self.Subtitle.Text:Text(), "\n") + self.Subtitle.ExtraY = ((Linecount == 1) and 37 or ((Linecount + 1) * 22)) + self.Subtitle.Rectangle:Size(431 + self.WidthOffset, self.Subtitle.ExtraY) + end + elseif self.Subtitle.Formatted then + self.Subtitle.Formatted = false + self.Subtitle.ExtraY = 37 + self.Subtitle.Rectangle:Size(431 + self.WidthOffset, self.Subtitle.ExtraY) + self.Subtitle.Text:Text(self.Subtitle.BackupText) + end + + self.Background:Size(431 + self.WidthOffset, self:CalculateItemHeight() + WindowHeight + ((self.Subtitle.ExtraY > 0) and 0 or 37)) + + self.Extra.Up:Size(431 + self.WidthOffset, 18) + self.Extra.Down:Size(431 + self.WidthOffset, 18) + + self.Extra.Up:Position(self.Position.X, 144 + self:CalculateItemHeight() + self.Position.Y + WindowHeight) + self.Extra.Down:Position(self.Position.X, 144 + 18 + self:CalculateItemHeight() + self.Position.Y + WindowHeight) + + if self.WidthOffset > 0 then + self.ArrowSprite:Position(190 + self.Position.X + (self.WidthOffset / 2), 137 + self:CalculateItemHeight() + self.Position.Y + WindowHeight) + else + self.ArrowSprite:Position(190 + self.Position.X + self.WidthOffset, 137 + self:CalculateItemHeight() + self.Position.Y + WindowHeight) + end + + self.ReDraw = false + + if #self.Items ~= 0 and self.Items[self:CurrentSelection()]:Description() ~= "" then + self:RecalculateDescriptionPosition() + + local description = self.Items[self:CurrentSelection()]:Description() + if self.Settings.MultilineFormats then + self.Description.Text:Text(self:MultilineFormat(description)) + else + self.Description.Text:Text(description) + end + + local Linecount = #string.split(self.Description.Text:Text(), "\n") + self.Description.Rectangle:Size(431 + self.WidthOffset, ((Linecount == 1) and 37 or ((Linecount + 1) * 22))) + end +end + +function UIMenu:Visible(bool) + if bool ~= nil then + self._Visible = tobool(bool) + self.JustOpened = tobool(bool) + self.Dirty = tobool(bool) + self:UpdateScaleform() + if self.ParentMenu ~= nil or tobool(bool) == false then + return + end + if self.Settings.ResetCursorOnOpen then + local W, H = GetScreenResolution() + SetCursorLocation(W / 2, H / 2) + SetCursorSprite(1) + end + else + return self._Visible + end +end + +function UIMenu:ProcessControl() + if not self._Visible then + return + end + + if self.JustOpened then + self.JustOpened = false + return + end + + if self.Controls.Back.Enabled and (IsDisabledControlJustReleased(0, 177) or IsDisabledControlJustReleased(1, 177) or IsDisabledControlJustReleased(2, 177) or IsDisabledControlJustReleased(0, 199) or IsDisabledControlJustReleased(1, 199) or IsDisabledControlJustReleased(2, 199)) then + self:GoBack() + end + + if #self.Items == 0 then + return + end + + if not self.UpPressed then + if self.Controls.Up.Enabled and (IsDisabledControlJustPressed(0, 172) or IsDisabledControlJustPressed(1, 172) or IsDisabledControlJustPressed(2, 172) or IsDisabledControlJustPressed(0, 241) or IsDisabledControlJustPressed(1, 241) or IsDisabledControlJustPressed(2, 241) or IsDisabledControlJustPressed(2, 241)) then + Citizen.CreateThread(function() + self.UpPressed = true + if #self.Items > self.Pagination.Total + 1 then + self:GoUpOverflow() + else + self:GoUp() + end + self:UpdateScaleform() + Citizen.Wait(120) + while self.Controls.Up.Enabled and (IsDisabledControlPressed(0, 172) or IsDisabledControlPressed(1, 172) or IsDisabledControlPressed(2, 172) or IsDisabledControlPressed(0, 241) or IsDisabledControlPressed(1, 241) or IsDisabledControlPressed(2, 241) or IsDisabledControlPressed(2, 241)) do + if #self.Items > self.Pagination.Total + 1 then + self:GoUpOverflow() + else + self:GoUp() + end + self:UpdateScaleform() + Citizen.Wait(50) + end + self.UpPressed = false + end) + end + end + + if not self.DownPressed then + if self.Controls.Down.Enabled and (IsDisabledControlJustPressed(0, 173) or IsDisabledControlJustPressed(1, 173) or IsDisabledControlJustPressed(2, 173) or IsDisabledControlJustPressed(0, 242) or IsDisabledControlJustPressed(1, 242) or IsDisabledControlJustPressed(2, 242)) then + Citizen.CreateThread(function() + self.DownPressed = true + if #self.Items > self.Pagination.Total + 1 then + self:GoDownOverflow() + else + self:GoDown() + end + self:UpdateScaleform() + Citizen.Wait(120) + while self.Controls.Down.Enabled and (IsDisabledControlPressed(0, 173) or IsDisabledControlPressed(1, 173) or IsDisabledControlPressed(2, 173) or IsDisabledControlPressed(0, 242) or IsDisabledControlPressed(1, 242) or IsDisabledControlPressed(2, 242)) do + if #self.Items > self.Pagination.Total + 1 then + self:GoDownOverflow() + else + self:GoDown() + end + self:UpdateScaleform() + Citizen.Wait(50) + end + self.DownPressed = false + end) + end + end + + if not self.LeftPressed then + if self.Controls.Left.Enabled and (IsDisabledControlPressed(0, 174) or IsDisabledControlPressed(1, 174) or IsDisabledControlPressed(2, 174)) then + Citizen.CreateThread(function() + self.LeftPressed = true + self:GoLeft() + Citizen.Wait(175) + while self.Controls.Left.Enabled and (IsDisabledControlPressed(0, 174) or IsDisabledControlPressed(1, 174) or IsDisabledControlPressed(2, 174)) do + self:GoLeft() + Citizen.Wait(125) + end + self.LeftPressed = false + end) + end + end + + if not self.RightPressed then + if self.Controls.Right.Enabled and (IsDisabledControlPressed(0, 175) or IsDisabledControlPressed(1, 175) or IsDisabledControlPressed(2, 175)) then + Citizen.CreateThread(function() + self.RightPressed = true + self:GoRight() + Citizen.Wait(175) + while self.Controls.Right.Enabled and (IsDisabledControlPressed(0, 175) or IsDisabledControlPressed(1, 175) or IsDisabledControlPressed(2, 175)) do + self:GoRight() + Citizen.Wait(125) + end + self.RightPressed = false + end) + end + end + + if self.Controls.Select.Enabled and (IsDisabledControlJustPressed(0, 201) or IsDisabledControlJustPressed(1, 201) or IsDisabledControlJustPressed(2, 201)) then + self:SelectItem() + end +end + +function UIMenu:GoUpOverflow() + if #self.Items <= self.Pagination.Total + 1 then + return + end + + if self:CurrentSelection() <= self.Pagination.Min + 1 then + if self:CurrentSelection() == 1 then + self.Pagination.Min = #self.Items - (self.Pagination.Total + 1) + self.Pagination.Max = #self.Items + self.Items[self:CurrentSelection()]:Selected(false) + self.ActiveItem = 1000 - (1000 % #self.Items) + self.ActiveItem = self.ActiveItem + (#self.Items - 1) + self.Items[self:CurrentSelection()]:Selected(true) + else + self.Pagination.Min = self.Pagination.Min - 1 + self.Pagination.Max = self.Pagination.Max - 1 + self.Items[self:CurrentSelection()]:Selected(false) + self.ActiveItem = self.ActiveItem - 1 + self.Items[self:CurrentSelection()]:Selected(true) + end + else + self.Items[self:CurrentSelection()]:Selected(false) + self.ActiveItem = self.ActiveItem - 1 + self.Items[self:CurrentSelection()]:Selected(true) + end + PlaySoundFrontend(-1, self.Settings.Audio.UpDown, self.Settings.Audio.Library, true) + self.OnIndexChange(self, self:CurrentSelection()) + self.ReDraw = true +end + +function UIMenu:GoUp() + if #self.Items > self.Pagination.Total + 1 then + return + end + self.Items[self:CurrentSelection()]:Selected(false) + self.ActiveItem = self.ActiveItem - 1 + self.Items[self:CurrentSelection()]:Selected(true) + PlaySoundFrontend(-1, self.Settings.Audio.UpDown, self.Settings.Audio.Library, true) + self.OnIndexChange(self, self:CurrentSelection()) + self.ReDraw = true +end + +function UIMenu:GoDownOverflow() + if #self.Items <= self.Pagination.Total + 1 then + return + end + + if self:CurrentSelection() >= self.Pagination.Max then + if self:CurrentSelection() == #self.Items then + self.Pagination.Min = 0 + self.Pagination.Max = self.Pagination.Total + 1 + self.Items[self:CurrentSelection()]:Selected(false) + self.ActiveItem = 1000 - (1000 % #self.Items) + self.Items[self:CurrentSelection()]:Selected(true) + else + self.Pagination.Max = self.Pagination.Max + 1 + self.Pagination.Min = self.Pagination.Max - (self.Pagination.Total + 1) + self.Items[self:CurrentSelection()]:Selected(false) + self.ActiveItem = self.ActiveItem + 1 + self.Items[self:CurrentSelection()]:Selected(true) + end + else + self.Items[self:CurrentSelection()]:Selected(false) + self.ActiveItem = self.ActiveItem + 1 + self.Items[self:CurrentSelection()]:Selected(true) + end + PlaySoundFrontend(-1, self.Settings.Audio.UpDown, self.Settings.Audio.Library, true) + self.OnIndexChange(self, self:CurrentSelection()) + self.ReDraw = true +end + +function UIMenu:GoDown() + if #self.Items > self.Pagination.Total + 1 then + return + end + + self.Items[self:CurrentSelection()]:Selected(false) + self.ActiveItem = self.ActiveItem + 1 + self.Items[self:CurrentSelection()]:Selected(true) + PlaySoundFrontend(-1, self.Settings.Audio.UpDown, self.Settings.Audio.Library, true) + self.OnIndexChange(self, self:CurrentSelection()) + self.ReDraw = true +end + +function UIMenu:GoLeft() + local type, subtype = self.Items[self:CurrentSelection()]() + if subtype ~= "UIMenuListItem" and subtype ~= "UIMenuSliderItem" and subtype ~= "UIMenuProgressItem" then + return + end + + if not self.Items[self:CurrentSelection()]:Enabled() then + PlaySoundFrontend(-1, self.Settings.Audio.Error, self.Settings.Audio.Library, true) + return + end + + if subtype == "UIMenuListItem" then + local Item = self.Items[self:CurrentSelection()] + Item:Index(Item._Index - 1) + self.OnListChange(self, Item, Item._Index) + Item.OnListChanged(self, Item, Item._Index) + PlaySoundFrontend(-1, self.Settings.Audio.LeftRight, self.Settings.Audio.Library, true) + elseif subtype == "UIMenuSliderItem" then + local Item = self.Items[self:CurrentSelection()] + Item:Index(Item._Index - 1) + self.OnSliderChange(self, Item, Item:Index()) + Item.OnSliderChanged(self, Item, Item._Index) + PlaySoundFrontend(-1, self.Settings.Audio.LeftRight, self.Settings.Audio.Library, true) + elseif subtype == "UIMenuProgressItem" then + local Item = self.Items[self:CurrentSelection()] + Item:Index(Item.Data.Index - 1) + self.OnProgressChange(self, Item, Item.Data.Index) + Item.OnProgressChanged(self, Item, Item.Data.Index) + PlaySoundFrontend(-1, self.Settings.Audio.LeftRight, self.Settings.Audio.Library, true) + end +end + +function UIMenu:GoRight() + local type, subtype = self.Items[self:CurrentSelection()]() + if subtype ~= "UIMenuListItem" and subtype ~= "UIMenuSliderItem" and subtype ~= "UIMenuProgressItem" then + return + end + + if not self.Items[self:CurrentSelection()]:Enabled() then + PlaySoundFrontend(-1, self.Settings.Audio.Error, self.Settings.Audio.Library, true) + return + end + + if subtype == "UIMenuListItem" then + local Item = self.Items[self:CurrentSelection()] + Item:Index(Item._Index + 1) + self.OnListChange(self, Item, Item._Index) + Item.OnListChanged(self, Item, Item._Index) + PlaySoundFrontend(-1, self.Settings.Audio.LeftRight, self.Settings.Audio.Library, true) + elseif subtype == "UIMenuSliderItem" then + local Item = self.Items[self:CurrentSelection()] + Item:Index(Item._Index + 1) + self.OnSliderChange(self, Item, Item:Index()) + Item.OnSliderChanged(self, Item, Item._Index) + PlaySoundFrontend(-1, self.Settings.Audio.LeftRight, self.Settings.Audio.Library, true) + elseif subtype == "UIMenuProgressItem" then + local Item = self.Items[self:CurrentSelection()] + Item:Index(Item.Data.Index + 1) + self.OnProgressChange(self, Item, Item.Data.Index) + Item.OnProgressChanged(self, Item, Item.Data.Index) + PlaySoundFrontend(-1, self.Settings.Audio.LeftRight, self.Settings.Audio.Library, true) + end +end + +function UIMenu:SelectItem() + if not self.Items[self:CurrentSelection()]:Enabled() then + PlaySoundFrontend(-1, self.Settings.Audio.Error, self.Settings.Audio.Library, true) + return + end + local Item = self.Items[self:CurrentSelection()] + local type, subtype = Item() + if subtype == "UIMenuCheckboxItem" then + Item.Checked = not Item.Checked + PlaySoundFrontend(-1, self.Settings.Audio.Select, self.Settings.Audio.Library, true) + self.OnCheckboxChange(self, Item, Item.Checked) + Item.CheckboxEvent(self, Item, Item.Checked) + elseif subtype == "UIMenuListItem" then + PlaySoundFrontend(-1, self.Settings.Audio.Select, self.Settings.Audio.Library, true) + self.OnListSelect(self, Item, Item._Index) + Item.OnListSelected(self, Item, Item._Index) + elseif subtype == "UIMenuSliderItem" then + PlaySoundFrontend(-1, self.Settings.Audio.Select, self.Settings.Audio.Library, true) + self.OnSliderSelect(self, Item, Item._Index) + Item.OnSliderSelected(Item._Index) + elseif subtype == "UIMenuProgressItem" then + PlaySoundFrontend(-1, self.Settings.Audio.Select, self.Settings.Audio.Library, true) + self.OnProgressSelect(self, Item, Item.Data.Index) + Item.OnProgressSelected(Item.Data.Index) + else + PlaySoundFrontend(-1, self.Settings.Audio.Select, self.Settings.Audio.Library, true) + self.OnItemSelect(self, Item, self:CurrentSelection()) + Item.Activated(self, Item) + if not self.Children[Item] then + return + end + self:Visible(false) + self.Children[Item]:Visible(true) + self.OnMenuChanged(self, self.Children[self.Items[self:CurrentSelection()]], true) + end +end + +function UIMenu:GoBack() + PlaySoundFrontend(-1, self.Settings.Audio.Back, self.Settings.Audio.Library, true) + self:Visible(false) + if self.ParentMenu ~= nil then + self.ParentMenu:Visible(true) + self.OnMenuChanged(self, self.ParentMenu, false) + if self.Settings.ResetCursorOnOpen then + local W, H = GetActiveScreenResolution() + SetCursorLocation(W / 2, H / 2) + end + end + self.OnMenuClosed(self) +end + +function UIMenu:BindMenuToItem(Menu, Item) + if Menu() == "UIMenu" and Item() == "UIMenuItem" then + Menu.ParentMenu = self + Menu.ParentItem = Item + self.Children[Item] = Menu + end +end + +function UIMenu:ReleaseMenuFromItem(Item) + if Item() == "UIMenuItem" then + if not self.Children[Item] then + return false + end + self.Children[Item].ParentMenu = nil + self.Children[Item].ParentItem = nil + self.Children[Item] = nil + return true + end +end + +function UIMenu:Draw() + if not self._Visible then + return + end + + HideHudComponentThisFrame(19) + + if self.Settings.ControlDisablingEnabled then + self:DisEnableControls(false) + end + + if self.Settings.InstructionalButtons then + DrawScaleformMovieFullscreen(self.InstructionalScaleform, 255, 255, 255, 255, 0) + end + + if self.Settings.ScaleWithSafezone then + ScreenDrawPositionBegin(76, 84) + ScreenDrawPositionRatio(0, 0, 0, 0) + end + + if self.ReDraw then + self:DrawCalculations() + end + + if self.Logo then + self.Logo:Draw() + elseif self.Banner then + self.Banner:Draw() + end + + self.Title:Draw() + + if self.Subtitle.Rectangle then + self.Subtitle.Rectangle:Draw() + self.Subtitle.Text:Draw() + end + + if #self.Items ~= 0 or #self.Windows ~= 0 then + self.Background:Draw() + end + + if #self.Windows ~= 0 then + local WindowOffset = 0 + for index = 1, #self.Windows do + if self.Windows[index - 1] then + WindowOffset = WindowOffset + self.Windows[index - 1].Background:Size().Height + end + local Window = self.Windows[index] + Window:Position(WindowOffset + self.Subtitle.ExtraY - 37) + Window:Draw() + end + end + + if #self.Items == 0 then + if self.Settings.ScaleWithSafezone then + ScreenDrawPositionEnd() + end + return + end + + local CurrentSelection = self:CurrentSelection() + self.Items[CurrentSelection]:Selected(true) + + if self.Items[CurrentSelection]:Description() ~= "" then + self.Description.Bar:Draw() + self.Description.Rectangle:Draw() + self.Description.Text:Draw() + end + + if self.Items[CurrentSelection].Panels ~= nil then + if #self.Items[CurrentSelection].Panels ~= 0 then + local PanelOffset = self:CaclulatePanelPosition(self.Items[CurrentSelection]:Description() ~= "") + for index = 1, #self.Items[CurrentSelection].Panels do + if self.Items[CurrentSelection].Panels[index - 1] then + PanelOffset = PanelOffset + self.Items[CurrentSelection].Panels[index - 1].Background:Size().Height + 5 + end + self.Items[CurrentSelection].Panels[index]:Position(PanelOffset) + self.Items[CurrentSelection].Panels[index]:Draw() + end + end + end + + local WindowHeight = self:CalculateWindowHeight() + + if #self.Items <= self.Pagination.Total + 1 then + local ItemOffset = self.Subtitle.ExtraY - 37 + WindowHeight + for index = 1, #self.Items do + Item = self.Items[index] + Item:Position(ItemOffset) + Item:Draw() + ItemOffset = ItemOffset + self:CalculateItemHeightOffset(Item) + end + else + local ItemOffset = self.Subtitle.ExtraY - 37 + WindowHeight + for index = self.Pagination.Min + 1, self.Pagination.Max, 1 do + if self.Items[index] then + Item = self.Items[index] + Item:Position(ItemOffset) + Item:Draw() + ItemOffset = ItemOffset + self:CalculateItemHeightOffset(Item) + end + end + + self.Extra.Up:Draw() + self.Extra.Down:Draw() + self.ArrowSprite:Draw() + + if self.PageCounter.Text ~= nil then + local Caption = self.PageCounter.PreText .. CurrentSelection .. " / " .. #self.Items + self.PageCounter.Text:Text(Caption) + self.PageCounter.Text:Draw() + end + end + + if self.Settings.ScaleWithSafezone then + ScreenDrawPositionEnd() + end +end + +function UIMenu:ProcessMouse() + if not self._Visible or self.JustOpened or #self.Items == 0 or tobool(Controller()) or not self.Settings.MouseControlsEnabled then + EnableControlAction(0, 2, true) + EnableControlAction(0, 1, true) + EnableControlAction(0, 25, true) + EnableControlAction(0, 24, true) + if self.Dirty then + for _, Item in pairs(self.Items) do + if Item:Hovered() then + Item:Hovered(false) + end + end + end + return + end + + local SafeZone = { X = 0, Y = 0 } + local WindowHeight = self:CalculateWindowHeight() + if self.Settings.ScaleWithSafezone then + SafeZone = GetSafeZoneBounds() + end + + local Limit = #self.Items + local ItemOffset = 0 + + ShowCursorThisFrame() + + if #self.Items > self.Pagination.Total + 1 then + Limit = self.Pagination.Max + end + + if IsMouseInBounds(0, 0, 30, 1080) and self.Settings.MouseEdgeEnabled then + SetGameplayCamRelativeHeading(GetGameplayCamRelativeHeading() + 5) + SetCursorSprite(6) + elseif IsMouseInBounds(1920 - 30, 0, 30, 1080) and self.Settings.MouseEdgeEnabled then + SetGameplayCamRelativeHeading(GetGameplayCamRelativeHeading() - 5) + SetCursorSprite(7) + elseif self.Settings.MouseEdgeEnabled then + SetCursorSprite(1) + end + + for i = self.Pagination.Min + 1, Limit, 1 do + local X, Y = self.Position.X + SafeZone.X, self.Position.Y + 144 - 37 + self.Subtitle.ExtraY + ItemOffset + SafeZone.Y + WindowHeight + local Item = self.Items[i] + local Type, SubType = Item() + local Width, Height = 431 + self.WidthOffset, self:CalculateItemHeightOffset(Item) + + if IsMouseInBounds(X, Y, Width, Height) then + Item:Hovered(true) + if not self.Controls.MousePressed then + if IsDisabledControlJustPressed(0, 24) then + Citizen.CreateThread(function() + local _X, _Y, _Width, _Height = X, Y, Width, Height + self.Controls.MousePressed = true + if Item:Selected() and Item:Enabled() then + if SubType == "UIMenuListItem" then + if IsMouseInBounds(Item.LeftArrow.X + SafeZone.X, Item.LeftArrow.Y + SafeZone.Y, Item.LeftArrow.Width, Item.LeftArrow.Height) then + self:GoLeft() + elseif not IsMouseInBounds(Item.RightArrow.X + SafeZone.X, Item.RightArrow.Y + SafeZone.Y, Item.RightArrow.Width, Item.RightArrow.Height) then + self:SelectItem() + end + if IsMouseInBounds(Item.RightArrow.X + SafeZone.X, Item.RightArrow.Y + SafeZone.Y, Item.RightArrow.Width, Item.RightArrow.Height) then + self:GoRight() + elseif not IsMouseInBounds(Item.LeftArrow.X + SafeZone.X, Item.LeftArrow.Y + SafeZone.Y, Item.LeftArrow.Width, Item.LeftArrow.Height) then + self:SelectItem() + end + elseif SubType == "UIMenuSliderItem" then + if IsMouseInBounds(Item.LeftArrow.X + SafeZone.X, Item.LeftArrow.Y + SafeZone.Y, Item.LeftArrow.Width, Item.LeftArrow.Height) then + self:GoLeft() + elseif not IsMouseInBounds(Item.RightArrow.X + SafeZone.X, Item.RightArrow.Y + SafeZone.Y, Item.RightArrow.Width, Item.RightArrow.Height) then + self:SelectItem() + end + if IsMouseInBounds(Item.RightArrow.X + SafeZone.X, Item.RightArrow.Y + SafeZone.Y, Item.RightArrow.Width, Item.RightArrow.Height) then + self:GoRight() + elseif not IsMouseInBounds(Item.LeftArrow.X + SafeZone.X, Item.LeftArrow.Y + SafeZone.Y, Item.LeftArrow.Width, Item.LeftArrow.Height) then + self:SelectItem() + end + elseif SubType == "UIMenuProgressItem" then + if IsMouseInBounds(Item.Bar.X + SafeZone.X, Item.Bar.Y + SafeZone.Y - 12, Item.Data.Max, Item.Bar.Height + 24) then + Item:CalculateProgress(math.round(GetControlNormal(0, 239) * 1920) - SafeZone.X) + self.OnProgressChange(self, Item, Item.Data.Index) + Item.OnProgressChanged(self, Item, Item.Data.Index) + else + self:SelectItem() + end + else + self:SelectItem() + end + elseif not Item:Selected() then + self:CurrentSelection(i - 1) + PlaySoundFrontend(-1, self.Settings.Audio.Error, self.Settings.Audio.Library, true) + self.OnIndexChange(self, self:CurrentSelection()) + self.ReDraw = true + self:UpdateScaleform() + elseif not Item:Enabled() and Item:Selected() then + PlaySoundFrontend(-1, self.Settings.Audio.Error, self.Settings.Audio.Library, true) + end + Citizen.Wait(175) + while IsDisabledControlPressed(0, 24) and IsMouseInBounds(_X, _Y, _Width, _Height) do + if Item:Selected() and Item:Enabled() then + if SubType == "UIMenuListItem" then + if IsMouseInBounds(Item.LeftArrow.X + SafeZone.X, Item.LeftArrow.Y + SafeZone.Y, Item.LeftArrow.Width, Item.LeftArrow.Height) then + self:GoLeft() + end + if IsMouseInBounds(Item.RightArrow.X + SafeZone.X, Item.RightArrow.Y + SafeZone.Y, Item.RightArrow.Width, Item.RightArrow.Height) then + self:GoRight() + end + elseif SubType == "UIMenuSliderItem" then + if IsMouseInBounds(Item.LeftArrow.X + SafeZone.X, Item.LeftArrow.Y + SafeZone.Y, Item.LeftArrow.Width, Item.LeftArrow.Height) then + self:GoLeft() + end + if IsMouseInBounds(Item.RightArrow.X + SafeZone.X, Item.RightArrow.Y + SafeZone.Y, Item.RightArrow.Width, Item.RightArrow.Height) then + self:GoRight() + end + elseif SubType == "UIMenuProgressItem" then + if IsMouseInBounds(Item.Bar.X + SafeZone.X, Item.Bar.Y + SafeZone.Y - 12, Item.Data.Max, Item.Bar.Height + 24) then + Item:CalculateProgress(math.round(GetControlNormal(0, 239) * 1920) - SafeZone.X) + self.OnProgressChange(self, Item, Item.Data.Index) + Item.OnProgressChanged(self, Item, Item.Data.Index) + else + self:SelectItem() + end + end + elseif not Item:Selected() then + self:CurrentSelection(i - 1) + PlaySoundFrontend(-1, self.Settings.Audio.Error, self.Settings.Audio.Library, true) + self.OnIndexChange(self, self:CurrentSelection()) + self.ReDraw = true + self:UpdateScaleform() + elseif not Item:Enabled() and Item:Selected() then + PlaySoundFrontend(-1, self.Settings.Audio.Error, self.Settings.Audio.Library, true) + end + Citizen.Wait(125) + end + self.Controls.MousePressed = false + end) + end + end + else + Item:Hovered(false) + end + ItemOffset = ItemOffset + self:CalculateItemHeightOffset(Item) + end + + local ExtraX, ExtraY = self.Position.X + SafeZone.X, 144 + self:CalculateItemHeight() + self.Position.Y + SafeZone.Y + WindowHeight + + if #self.Items <= self.Pagination.Total + 1 then return end + + if IsMouseInBounds(ExtraX, ExtraY, 431 + self.WidthOffset, 18) then + self.Extra.Up:Colour(30, 30, 30, 255) + if not self.Controls.MousePressed then + if IsDisabledControlJustPressed(0, 24) then + Citizen.CreateThread(function() + local _ExtraX, _ExtraY = ExtraX, ExtraY + self.Controls.MousePressed = true + if #self.Items > self.Pagination.Total + 1 then + self:GoUpOverflow() + else + self:GoUp() + end + Citizen.Wait(175) + while IsDisabledControlPressed(0, 24) and IsMouseInBounds(_ExtraX, _ExtraY, 431 + self.WidthOffset, 18) do + if #self.Items > self.Pagination.Total + 1 then + self:GoUpOverflow() + else + self:GoUp() + end + Citizen.Wait(125) + end + self.Controls.MousePressed = false + end) + end + end + else + self.Extra.Up:Colour(0, 0, 0, 200) + end + + if IsMouseInBounds(ExtraX, ExtraY + 18, 431 + self.WidthOffset, 18) then + self.Extra.Down:Colour(30, 30, 30, 255) + if not self.Controls.MousePressed then + if IsDisabledControlJustPressed(0, 24) then + Citizen.CreateThread(function() + local _ExtraX, _ExtraY = ExtraX, ExtraY + self.Controls.MousePressed = true + if #self.Items > self.Pagination.Total + 1 then + self:GoDownOverflow() + else + self:GoDown() + end + Citizen.Wait(175) + while IsDisabledControlPressed(0, 24) and IsMouseInBounds(_ExtraX, _ExtraY + 18, 431 + self.WidthOffset, 18) do + if #self.Items > self.Pagination.Total + 1 then + self:GoDownOverflow() + else + self:GoDown() + end + Citizen.Wait(125) + end + self.Controls.MousePressed = false + end) + end + end + else + self.Extra.Down:Colour(0, 0, 0, 200) + end +end + +function UIMenu:AddInstructionButton(button) + if type(button) == "table" and #button == 2 then + table.insert(self.InstructionalButtons, button) + end +end + +function UIMenu:RemoveInstructionButton(button) + if type(button) == "table" then + for i = 1, #self.InstructionalButtons do + if button == self.InstructionalButtons[i] then + table.remove(self.InstructionalButtons, i) + break + end + end + else + if tonumber(button) then + if self.InstructionalButtons[tonumber(button)] then + table.remove(self.InstructionalButtons, tonumber(button)) + end + end + end +end + +function UIMenu:AddEnabledControl(Inputgroup, Control, Controller) + if tonumber(Inputgroup) and tonumber(Control) then + table.insert(self.Settings.EnabledControls[(Controller and "Controller" or "Keyboard")], { Inputgroup, Control }) + end +end + +function UIMenu:RemoveEnabledControl(Inputgroup, Control, Controller) + local Type = (Controller and "Controller" or "Keyboard") + for Index = 1, #self.Settings.EnabledControls[Type] do + if Inputgroup == self.Settings.EnabledControls[Type][Index][1] and Control == self.Settings.EnabledControls[Type][Index][2] then + table.remove(self.Settings.EnabledControls[Type], Index) + break + end + end +end + +function UIMenu:UpdateScaleform() + if not self._Visible or not self.Settings.InstructionalButtons then + return + end + + PushScaleformMovieFunction(self.InstructionalScaleform, "CLEAR_ALL") + PopScaleformMovieFunction() + + PushScaleformMovieFunction(self.InstructionalScaleform, "TOGGLE_MOUSE_BUTTONS") + PushScaleformMovieFunctionParameterInt(0) + PopScaleformMovieFunction() + + PushScaleformMovieFunction(self.InstructionalScaleform, "CREATE_CONTAINER") + PopScaleformMovieFunction() + + PushScaleformMovieFunction(self.InstructionalScaleform, "SET_DATA_SLOT") + PushScaleformMovieFunctionParameterInt(0) + PushScaleformMovieFunctionParameterString(GetControlInstructionalButton(2, 176, 0)) + PushScaleformMovieFunctionParameterString("Select") + PopScaleformMovieFunction() + + if self.Controls.Back.Enabled then + PushScaleformMovieFunction(self.InstructionalScaleform, "SET_DATA_SLOT") + PushScaleformMovieFunctionParameterInt(1) + PushScaleformMovieFunctionParameterString(GetControlInstructionalButton(2, 177, 0)) + PushScaleformMovieFunctionParameterString("Back") + PopScaleformMovieFunction() + end + + local count = 2 + + for i = 1, #self.InstructionalButtons do + if self.InstructionalButtons[i] then + if #self.InstructionalButtons[i] == 2 then + PushScaleformMovieFunction(self.InstructionalScaleform, "SET_DATA_SLOT") + PushScaleformMovieFunctionParameterInt(count) + PushScaleformMovieFunctionParameterString(self.InstructionalButtons[i][1]) + PushScaleformMovieFunctionParameterString(self.InstructionalButtons[i][2]) + PopScaleformMovieFunction() + count = count + 1 + end + end + end + + PushScaleformMovieFunction(self.InstructionalScaleform, "DRAW_INSTRUCTIONAL_BUTTONS") + PushScaleformMovieFunctionParameterInt(-1) + PopScaleformMovieFunction() +end + +--[[ + MenuPool.lua + Menus +--]] + +function MenuPool.New() + local _MenuPool = { + Menus = {} + } + return setmetatable(_MenuPool, MenuPool) +end + +function MenuPool:AddSubMenu(Menu, Text, Description, KeepPosition, KeepBanner) + if Menu() == "UIMenu" then + local Item = UIMenuItem.New(tostring(Text), Description or "") + Menu:AddItem(Item) + local SubMenu + if KeepPosition then + SubMenu = UIMenu.New(Menu.Title:Text(), Text, Menu.Position.X, Menu.Position.Y) + else + SubMenu = UIMenu.New(Menu.Title:Text(), Text) + end + if KeepBanner then + if Menu.Logo ~= nil then + SubMenu.Logo = Menu.Logo + else + SubMenu.Logo = nil + SubMenu.Banner = Menu.Banner + end + end + self:Add(SubMenu) + Menu:BindMenuToItem(SubMenu, Item) + return SubMenu + end +end + +function MenuPool:Add(Menu) + if Menu() == "UIMenu" then + table.insert(self.Menus, Menu) + end +end + +function MenuPool:Clear() + self = { + Menus = {} + } +end + +function MenuPool:Remove() + self = nil +end + +function MenuPool:MouseEdgeEnabled(bool) + if bool ~= nil then + for _, Menu in pairs(self.Menus) do + Menu.Settings.MouseEdgeEnabled = tobool(bool) + end + end +end + +function MenuPool:ControlDisablingEnabled(bool) + if bool ~= nil then + for _, Menu in pairs(self.Menus) do + Menu.Settings.ControlDisablingEnabled = tobool(bool) + end + end +end + +function MenuPool:ResetCursorOnOpen(bool) + if bool ~= nil then + for _, Menu in pairs(self.Menus) do + Menu.Settings.ResetCursorOnOpen = tobool(bool) + end + end +end + +function MenuPool:MultilineFormats(bool) + if bool ~= nil then + for _, Menu in pairs(self.Menus) do + Menu.Settings.MultilineFormats = tobool(bool) + end + end +end + +function MenuPool:Audio(Attribute, Setting) + if Attribute ~= nil and Setting ~= nil then + for _, Menu in pairs(self.Menus) do + if Menu.Settings.Audio[Attribute] then + Menu.Settings.Audio[Attribute] = Setting + end + end + end +end + +function MenuPool:WidthOffset(offset) + if tonumber(offset) then + for _, Menu in pairs(self.Menus) do + Menu:SetMenuWidthOffset(tonumber(offset)) + end + end +end + +function MenuPool:CounterPreText(str) + if str ~= nil then + for _, Menu in pairs(self.Menus) do + Menu.PageCounter.PreText = tostring(str) + end + end +end + +function MenuPool:DisableInstructionalButtons(bool) + if bool ~= nil then + for _, Menu in pairs(self.Menus) do + Menu.Settings.InstructionalButtons = tobool(bool) + end + end +end + +function MenuPool:MouseControlsEnabled(bool) + if bool ~= nil then + for _, Menu in pairs(self.Menus) do + Menu.Settings.MouseControlsEnabled = tobool(bool) + end + end +end + +function MenuPool:RefreshIndex() + for _, Menu in pairs(self.Menus) do + Menu:RefreshIndex() + end +end + +function MenuPool:ProcessMenus() + self:ProcessControl() + self:ProcessMouse() + self:Draw() +end + +function MenuPool:ProcessControl() + for _, Menu in pairs(self.Menus) do + if Menu:Visible() then + Menu:ProcessControl() + end + end +end + +function MenuPool:ProcessMouse() + for _, Menu in pairs(self.Menus) do + if Menu:Visible() then + Menu:ProcessMouse() + end + end +end + +function MenuPool:Draw() + for _, Menu in pairs(self.Menus) do + if Menu:Visible() then + Menu:Draw() + end + end +end + +function MenuPool:IsAnyMenuOpen() + local open = false + for _, Menu in pairs(self.Menus) do + if Menu:Visible() then + open = true + break + end + end + return open +end + +function MenuPool:CloseAllMenus() + for _, Menu in pairs(self.Menus) do + if Menu:Visible() then + Menu:Visible(false) + Menu.OnMenuClosed(Menu) + end + end +end + +function MenuPool:SetBannerSprite(Sprite) + if Sprite() == "Sprite" then + for _, Menu in pairs(self.Menus) do + Menu:SetBannerSprite(Sprite) + end + end +end + +function MenuPool:SetBannerRectangle(Rectangle) + if Rectangle() == "Rectangle" then + for _, Menu in pairs(self.Menus) do + Menu:SetBannerRectangle(Rectangle) + end + end +end + +function MenuPool:TotalItemsPerPage(Value) + if tonumber(Value) then + for _, Menu in pairs(self.Menus) do + Menu.Pagination.Total = Value - 1 + end + end +end + +--[[ + Wrappers +--]] + +function NativeUI.CreatePool() + return MenuPool.New() +end + +function NativeUI.CreateMenu(Title, Subtitle, X, Y, TxtDictionary, TxtName) + return UIMenu.New(Title, Subtitle, X, Y, TxtDictionary, TxtName) +end + +function NativeUI.CreateItem(Text, Description) + return UIMenuItem.New(Text, Description) +end + +function NativeUI.CreateColouredItem(Text, Description, MainColour, HighlightColour) + return UIMenuColouredItem.New(Text, Description, MainColour, HighlightColour) +end + +function NativeUI.CreateCheckboxItem(Text, Check, Description) + return UIMenuCheckboxItem.New(Text, Check, Description) +end + +function NativeUI.CreateListItem(Text, Items, Index, Description) + return UIMenuListItem.New(Text, Items, Index, Description) +end + +function NativeUI.CreateSliderItem(Text, Items, Index, Description, Divider) + return UIMenuSliderItem.New(Text, Items, Index, Description, Divider) +end + +function NativeUI.CreateProgressItem(Text, Items, Index, Description, Counter) + return UIMenuProgressItem.New(Text, Items, Index, Description, Counter) +end + +function NativeUI.CreateHeritageWindow(Mum, Dad) + return UIMenuHeritageWindow.New(Mum, Dad) +end + +function NativeUI.CreateGridPanel(TopText, LeftText, RightText, BottomText) + return UIMenuGridPanel.New(TopText, LeftText, RightText, BottomText) +end + +function NativeUI.CreateColourPanel(Title, Colours) + return UIMenuColourPanel.New(Title, Colours) +end + +function NativeUI.CreatePercentagePanel(MinText, MaxText) + return UIMenuPercentagePanel.New(MinText, MaxText) +end + +function NativeUI.CreateSprite(TxtDictionary, TxtName, X, Y, Width, Height, Heading, R, G, B, A) + return Sprite.New(TxtDictionary, TxtName, X, Y, Width, Height, Heading, R, G, B, A) +end + +function NativeUI.CreateRectangle(X, Y, Width, Height, R, G, B, A) + return UIResRectangle.New(X, Y, Width, Height, R, G, B, A) +end + +function NativeUI.CreateText(Text, X, Y, Scale, R, G, B, A, Font, Alignment, DropShadow, Outline, WordWrap) + return UIResText.New(Text, X, Y, Scale, R, G, B, A, Font, Alignment, DropShadow, Outline, WordWrap) +end diff --git a/resources/dpemotes-master/README.md b/resources/dpemotes-master/README.md new file mode 100644 index 000000000..75a08d9ed --- /dev/null +++ b/resources/dpemotes-master/README.md @@ -0,0 +1,215 @@ +# DpEmotes 🏋️ + +Emotes / Animations for FiveM with human, animal and prop support 🐩 + +# Available in: + +* Brazilian Portuguese 🇧🇷 + +* Czech 🇨🇿 + +* Danish 🇩🇰 + +* Dutch 🇳🇱 + +* English 🇬🇧 + +* Finnish 🇫🇮 + +* French 🇫🇷 + +* German 🇩🇪 + +* Italian 🇮🇹 + +* Spanish 🇪🇸 + +* Swedish 🇸🇪 + +All languages were either translated using Google Translate or contributed by you, the community. + +If you happen to find any incorrect translations or would like to add more languages, please feel free to provide an "issue" with the correct / additional translations. + +Languages can be selected and/or added in config.lua. + +----------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +# Ragdoll 🥴 + +* To enable ragdoll, change `RagdollEnabled = false,` to true in config.lua. + +* To change which key is responsible for ragdoll, `RagdollKeybind = 303` is currently set to `U` by default., -- Get the button number [here](https://docs.fivem.net/game-references/controls/) + +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ + +# Menu Keybind 🎛️ + +**Important Note:** + +The keybind uses RegisterKeyMapping. By default, the server owner configured keybind in the *initial* config.lua will be the default key, however once the keybind is set for a user, it'll stay with this new value. Editing the config keybind will change it for new players only. + +* Menu key:* F5 + +F3 and F4 clash with [Menyoo](https://github.com/MAFINS/MenyooSP) and controllers 🎮 + +Server owners can change this in the `config.lua`; + +```lua +MenuKeybind = 'F5', -- Get the button string here https://docs.fivem.net/docs/game-references/input-mapper-parameter-ids/keyboard/ +``` + +Alternatively, the player base can set their own menu keybind to open DpEmotes + +```lua +Esc > settings > keybinds > fivem > dpemotes +``` + +----------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +# Keybinds and SQL 🎛️ + +The original dpemotes uses mysql-async which was then changed to ghmattimysql. Unfortunately, they are no longer maintained. + +To use the SQL features, install the [oxmysql](https://github.com/overextended/oxmysql) resource. If you do not want to use the SQL features, comment out the `oxmysql` region in fxmanifest.lua. + + +----------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +# Screenshots 📸 + + + +| | | | +|-|-|-| +| | | | +| | | | +| | | | +| | | +| | + + + +----------------------------------------------------------------------------------------------------------------------------------------------------- + + +# Installation Instructions ⚙️: + +* add DpEmotes to your `server.cfg` + +* [Enforce gamebuild to latest build](https://forum.cfx.re/t/tutorial-forcing-gamebuild-to-casino-cayo-perico-or-tuners-update/4784977) for all emotes and props to work correctly + +* start dpemotes + + +----------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +# Shared emotes 👩🏻‍❤️‍💋‍👨🏼 + +Emotes will work with either `SyncOffsetFront` or `Attachto`. + +- If it is with `SyncOffsetFront`, then the offset used is the one of the emote the player started.
+For example, if player one starts the emote `handshake`, then player one will have the SyncOffsetFront but not the other player. + + +- If it is with `Attachto`, then it'll either be player one's data used for attaching, or the player two's data.
+For example, if player one start the emote carry, then the other player will be attached but not the player one because Attachto is set in `carry2` and not `carry`.
+- If player one starts the emote `carry2`, then player one will be attached and not the other player. +it's the player who start the animation who will in most cases be moved + + +*Special case, if both emote have the `Attachto` then only the player who started the emote will be attached.* + +You can find a list of ped bones to attach the other player here: [Ped Bones](https://wiki.rage.mp/index.php?title=Bones) + +Using the website provided above, enter the bone ID, ie `1356` and not 111, which is the Bone Index. + + + + +----------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + +# Add-Ons 🛠️ + +* Fixed an issue with the clipboard and adds textures to paper (/e clipboard) + +* Changes umbrella texture to black (/e umbrella) + +# Optional Add-Ons 🛠️ + +* Adds textures to the mugshot prop (/e mugshot) + +* Retextured protest sign (can be changed using Texture Toolkit: https://www.gta5-mods.com/tools/texture-toolkit) + +**Grab it here:** + +[Add-Ons For DpEmotes](https://github.com/TayMcKenzieNZ/addonsfordpemotes) + + +-------------------------------------------------------- + + +# Additional Instructions ⚙️ + +[Please check the fivem forum thread](https://forum.fivem.net/t/dpemotes-356ish-emotes-usable-while-walking-props-and-more/843105) + + + +---------------------- + +# Police Badge 👮 + +- Custom LSPD police badge by [LSPDFR member Sam](https://www.lcpdfr.com/downloads/gta5mods/misc/23386-lspd-police-badge/) + +- LSPD reskinned badge by [GTA5Mods user Sladus_Slawonkus](https://www.gta5-mods.com/misc/lspd-police-badge-replace-sladus_slawonkus) + + +---------------------- + +# FAQs 🗨️ + +**Q: Why do some emotes not work with females?** + +**A:** Blame Rockstar Games. I've done my best to replicate animations to work with females, however some male scenarios have sound effects and particles, of which I am unfamiliar with and syncing particles is out of my expertise. + +---------------------- + +**Q: Why do some emotes not work at all?** + +**A:** Check the Installation Instructions above as you need to be on the highest FiveM gamebuild. + +---------------------- + +**Q: Why do I see particle effects but other players don't?** + +**A:** Dullpear and I can't figure out how to sync particles. If you know how, feel free to inform me. + +---------------------- + +**Q: I bought this script off someone and notice it had a lot of the same animations. Can you help me?** + +**A:** You got scammed and that's your fault. Dpemotes is and always will be **FREE**. + +---------------------- + +**Q: Can I add my own emotes to this?** + +**A:** Of course, see my in depth [tutorial](https://forum.cfx.re/t/how-to-menyoo-to-dpemotes-conversion/4775018) for using Menyoo and converting them to work with dpemotes. + +You may sell ***custom made*** animations, however the menu must remain free. + +---------------------- + +**Q: I bought a pack of custom animations, how can I add them to your fork of dpemotes?** + +**A:** Usually the person who created them will provide code snippets for adding animations to dpemotes. If for whatever reason they haven't, you should contact them. + +---------------------- + +**Q: How do I reset the SQL keybinds?** + +**A:** No idea, but apparently only the server owner can 🤷🏻‍♂️ Google exist; Maybe contact the creator. + +---------------------- + + diff --git a/resources/dpemotes-master/client/AnimationList.lua b/resources/dpemotes-master/client/AnimationList.lua new file mode 100644 index 000000000..e6ab0db46 --- /dev/null +++ b/resources/dpemotes-master/client/AnimationList.lua @@ -0,0 +1,4016 @@ +-- DPEmotes forked by TayMcKenzieNZ requires you to be on the latest FiveM Gamebuild for all emotes to function. +-- If an emote does not work, you may be on an older gamebuild. +-- To get a higher gamebuild, see ReadMe on github repositorty +DP = {} + +-- EXPRESSIONS -- + +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" }, +} + + +--- WALKSTYLES --- + + +DP.Walks = { + ["Alien"] = { "move_m@alien" }, + ["Armored"] = { "anim_group_move_ballistic" }, + ["Arrogant"] = { "move_f@arrogant@a" }, + ["Brave"] = { "move_m@brave" }, + ["Casual"] = { "move_m@casual@a" }, + ["Casual 2"] = { "move_m@casual@b" }, + ["Casual 3"] = { "move_m@casual@c" }, + ["Casual 4"] = { "move_m@casual@d" }, + ["Casual 5"] = { "move_m@casual@e" }, + ["Casual 6"] = { "move_m@casual@f" }, + ["Chichi"] = { "move_f@chichi" }, + ["Confident"] = { "move_m@confident" }, + ["Cop"] = { "move_m@business@a" }, + ["Cop 2"] = { "move_m@business@b" }, + ["Cop 3"] = { "move_m@business@c" }, + ["Default Female"] = { "move_f@multiplayer" }, + ["Default Male"] = { "move_m@multiplayer" }, + ["Drunk"] = { "move_m@drunk@a" }, + ["Drunk"] = { "move_m@drunk@slightlydrunk" }, + ["Drunk 2"] = { "move_m@buzzed" }, + ["Drunk 3"] = { "move_m@drunk@verydrunk" }, + ["Femme"] = { "move_f@femme@" }, + ["Fire"] = { "move_characters@franklin@fire" }, + ["Fire2"] = { "move_characters@michael@fire" }, + ["Fire3"] = { "move_m@fire" }, + ["Flee"] = { "move_f@flee@a" }, + ["Franklin"] = { "move_p_m_one" }, + ["Gangster"] = { "move_m@gangster@generic" }, + ["Gangster 2"] = { "move_m@gangster@ng" }, + ["Gangster 3"] = { "move_m@gangster@var_e" }, + ["Gangster 4"] = { "move_m@gangster@var_f" }, + ["Gangster 5"] = { "move_m@gangster@var_i" }, + ["Grooving"] = { "anim@move_m@grooving@" }, + ["Guard"] = { "move_m@prison_gaurd" }, + ["Handcuffs"] = { "move_m@prisoner_cuffed" }, + ["Heels"] = { "move_f@heels@c" }, + ["Heels 2"] = { "move_f@heels@d" }, + ["Hiking"] = { "move_m@hiking" }, + ["Hipster"] = { "move_m@hipster@a" }, + ["Hobo"] = { "move_m@hobo@a" }, + ["Hurry"] = { "move_f@hurry@a" }, + ["Janitor"] = { "move_p_m_zero_janitor" }, + ["Janitor 2"] = { "move_p_m_zero_slow" }, + ["Jog"] = { "move_m@jog@" }, + ["Lemar"] = { "anim_group_move_lemar_alley" }, + ["Lester"] = { "move_heist_lester" }, + ["Lester 2"] = { "move_lester_caneup" }, + ["Maneater"] = { "move_f@maneater" }, + ["Michael"] = { "move_ped_bucket" }, + ["Money"] = { "move_m@money" }, + ["Muscle"] = { "move_m@muscle@a" }, + ["Posh"] = { "move_m@posh@" }, + ["Posh 2"] = { "move_f@posh@" }, + ["Quick"] = { "move_m@quick" }, + ["Runner"] = { "female_fast_runner" }, + ["Sad"] = { "move_m@sad@a" }, + ["Sassy"] = { "move_m@sassy" }, + ["Sassy 2"] = { "move_f@sassy" }, + ["Scared"] = { "move_f@scared" }, + ["Sexy"] = { "move_f@sexy@a" }, + ["Shady"] = { "move_m@shadyped@a" }, + ["Slow"] = { "move_characters@jimmy@slow@" }, + ["Swagger"] = { "move_m@swagger" }, + ["Tough"] = { "move_m@tough_guy@" }, + ["Tough 2"] = { "move_f@tough_guy@" }, + ["Trash"] = { "clipset@move@trash_fast_turn" }, + ["Trash 2"] = { "missfbi4prepp1_garbageman" }, + ["Trevor"] = { "move_p_m_two" }, + ["Wide"] = { "move_m@bag" }, + ["Chubby Male"] = { "move_chubby" }, --male + ["Chubby Female"] = { "move_f@chubby@a" }, --female + ["Depressed"] = { "move_m@depressed@a" }, + ["Depressed 2"] = { "move_m@depressed@b" }, + + + + + -- I cant get these to work for some reason, if anyone knows a fix, let me know + + + + + -- ["Caution"] = {"move_m@caution"}, -- breaks menu + --["Chubby"] = {"anim@move_m@chubby@a"},-- breaks menu + -- ["Crazy"] = {"move_m@crazy"},-- breaks menu + -- ["Joy"] = {"move_m@joy@a"},-- breaks menu + -- ["Power"] = {"move_m@power"},-- breaks menu + -- ["Wading"] = {"move_m@wading"} -- breaks menu + -- ["Depressed 3"] = { "move_m@depressed@c" }, -- breaks menu + -- ["Depressed 4"] = { "move_m@depressed@d" }, -- breaks menu + -- ["Caution"] = { "move_m@caution" },-- breaks menu + -- ["Crazy"] = { "move_m@crazy" }, -- breaks menu + -- ["Joy"] = { "move_m@joy@a" }, -- breaks menu + -- ["Power"] = { "move_m@power" }, -- breaks menu + -- ["Power Walk"] = { "move_m@powerwalk" }, -- breaks menu + -- ["Tired"] = { "move_m@tired" }, -- breaks menu + -- --["Wading"] = {"move_m@wading"},-- breaks menu +} + + +--- SHARED EMOTES --- I can not figue these out and would love to get custom emotes shared. DullPear doesn't answer his DMs. RIP. + +DP.Shared = { + --[emotename] = {dictionary, animation, displayname, targetemotename, additionalanimationoptions} + -- you dont have to specify targetemoteanem, if you do dont it will just play the same animation on both. + -- targetemote is used for animations that have a corresponding animation to the other player. + ["handshake"] = { "mp_ped_interaction", "handshake_guy_a", "Handshake", "Handshake2", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 3000, + SyncOffsetFront = 0.9 + }}, + ["handshake2"] = { "mp_ped_interaction", "handshake_guy_b", "Handshake 2", "handshake", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 3000 + }}, + ["hug"] = { "mp_ped_interaction", "kisses_guy_a", "Hug", "hug2", AnimationOptions = { + EmoteMoving = false, + EmoteDuration = 5000, + SyncOffsetFront = 1.05, + }}, + ["hug2"] = { "mp_ped_interaction", "kisses_guy_b", "Hug 2", "hug", AnimationOptions = { + EmoteMoving = false, + EmoteDuration = 5000, + SyncOffsetFront = 1.13 + }}, + ["hug3"] = { "misscarsteal2chad_goodbye", "chad_armsaround_chad", "Hug 3", "hug4", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + SyncOffsetFront = 0.05, + }}, + ["hug4"] = { "misscarsteal2chad_goodbye", "chad_armsaround_girl", "Hug 4", "hug3", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + SyncOffsetFront = 0.13 + }}, + ["kiss"] = { "mp_ped_interaction", "kisses_guy_a", "Kiss", "kiss2", AnimationOptions = { + EmoteMoving = false, + EmoteDuration = 5000, + SyncOffsetFront = 1.05, + }}, + ["kiss2"] = { "mp_ped_interaction", "kisses_guy_b", "Kiss 2", "kiss", AnimationOptions = { + EmoteMoving = false, + EmoteDuration = 5000, + SyncOffsetFront = 1.13 + }}, + ["bro"] = { "mp_ped_interaction", "hugs_guy_a", "Bro", "bro2", AnimationOptions = { + SyncOffsetFront = 1.14 + }}, + ["bro2"] = { "mp_ped_interaction", "hugs_guy_b", "Bro 2", "bro", AnimationOptions = { + SyncOffsetFront = 1.14 + }}, + ["give"] = { "mp_common", "givetake1_a", "Give", "give2", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 2000 + }}, + ["give2"] = { "mp_common", "givetake1_b", "Give 2", "give", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 2000 + }}, + ["baseball"] = { "anim@arena@celeb@flat@paired@no_props@", "baseball_a_player_a", "Baseball", "baseballthrow" }, + ["baseballthrow"] = { "anim@arena@celeb@flat@paired@no_props@", "baseball_a_player_b", "Baseball Throw", "baseball" }, + ["stickup"] = { "random@countryside_gang_fight", "biker_02_stickup_loop", "Stick Up", "stickupscared", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["stickupscared"] = { "missminuteman_1ig_2", "handsup_base", "Stickup Scared", "stickup", AnimationOptions = { + EmoteMoving = true, + EmoteLoop = true, + }}, + ["punch"] = { "melee@unarmed@streamed_variations", "plyr_takedown_rear_lefthook", "Punch", "punched" }, + ["punched"] = { "melee@unarmed@streamed_variations", "victim_takedown_front_cross_r", "Punched", "punch" }, + ["headbutt"] = { "melee@unarmed@streamed_variations", "plyr_takedown_front_headbutt", "Headbutt", "headbutted" }, + ["headbutted"] = { "melee@unarmed@streamed_variations", "victim_takedown_front_headbutt", "Headbutted", "headbutt" }, + ["slap2"] = { "melee@unarmed@streamed_variations", "plyr_takedown_front_backslap", "Slap 2", "slapped2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + EmoteDuration = 2000, + }}, + ["slap"] = { "melee@unarmed@streamed_variations", "plyr_takedown_front_slap", "Slap", "slapped", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + EmoteDuration = 2000, + }}, + ["slapped"] = { "melee@unarmed@streamed_variations", "victim_takedown_front_slap", "Slapped", "slap" }, + ["slapped2"] = { "melee@unarmed@streamed_variations", "victim_takedown_front_backslap", "Slapped 2", "slap2" }, + ["receiveblowjob"] = { "misscarsteal2pimpsex", "pimpsex_punter", "Receive Blowjob", "giveblowjob", AnimationOptions = { + EmoteMoving = false, + EmoteDuration = 30000, + SyncOffsetFront = 0.63 + }}, + ["giveblowjob"] = { "misscarsteal2pimpsex", "pimpsex_hooker", "Give Blowjob", "receiveblowjob", AnimationOptions = { + EmoteMoving = false, + EmoteDuration = 30000, + SyncOffsetFront = 0.63 + }}, + ["streetsexmale"] = { "misscarsteal2pimpsex", "shagloop_pimp", "Street Sex Male", "streetsexfemale", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + SyncOffsetFront = 0.50 + }}, + ["streetsexfemale"] = { "misscarsteal2pimpsex", "shagloop_hooker", "Street Sex Female", "streetsexmale", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + SyncOffsetFront = 0.50 + }}, + ["carry"] = { "missfinale_c2mcs_1", "fin_c2_mcs_1_camman", "Carry", "carry2", AnimationOptions = { + EmoteMoving = true, + EmoteLoop = true, + } }, + ["carry2"] = { "nm", "firemans_carry", "Be carried", "carry", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + Attachto = true, + bone = 0, + xPos = 0.27, + yPos = 0.10, + zPos = 0.60, + xRot = 0.0, + yRot = 0.0, + zRot = 10.0, + } }, +} + + +--- DANCING EMOTES, SOME WITH PROPS --- + + +DP.Dances = { + ["dance"] = { "anim@amb@nightclub@dancers@podium_dancers@", "hi_dance_facedj_17_v2_male^5", "Dance", AnimationOptions = { + EmoteLoop = true, + }}, + ["dance2"] = { "anim@amb@nightclub@mini@dance@dance_solo@male@var_b@", "high_center_down", "Dance 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["dance3"] = { "anim@amb@nightclub@mini@dance@dance_solo@male@var_a@", "high_center", "Dance 3", AnimationOptions = { + EmoteLoop = true, + }}, + ["dance4"] = { "anim@amb@nightclub@mini@dance@dance_solo@male@var_b@", "high_center_up", "Dance 4", AnimationOptions = { + EmoteLoop = true, + }}, + ["dance5"] = { "anim@amb@casino@mini@dance@dance_solo@female@var_a@", "med_center", "Dance 5", AnimationOptions = { + EmoteLoop = true + }}, + ["dance6"] = { "misschinese2_crystalmazemcs1_cs", "dance_loop_tao", "Dance 6", AnimationOptions = { + EmoteLoop = true, + }}, + ["dance7"] = { "misschinese2_crystalmazemcs1_ig", "dance_loop_tao", "Dance 7", AnimationOptions = { + EmoteLoop = true, + }}, + ["dance8"] = { "missfbi3_sniping", "dance_m_default", "Dance 8", AnimationOptions = { + EmoteLoop = true, + }}, + ["dance9"] = { "anim@amb@nightclub@mini@dance@dance_solo@female@var_a@", "med_center_up", "Dance 9", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancef"] = { "anim@amb@nightclub@dancers@solomun_entourage@", "mi_dance_facedj_17_v1_female^1", "Dance F", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancef2"] = { "anim@amb@nightclub@mini@dance@dance_solo@female@var_a@", "high_center", "Dance F2", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancef3"] = { "anim@amb@nightclub@mini@dance@dance_solo@female@var_a@", "high_center_up", "Dance F3", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancef4"] = { "anim@amb@nightclub@dancers@crowddance_facedj@hi_intensity", "hi_dance_facedj_09_v2_female^1", "Dance F4", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancef5"] = { "anim@amb@nightclub@dancers@crowddance_facedj@hi_intensity", "hi_dance_facedj_09_v2_female^3", "Dance F5", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancef6"] = { "anim@amb@nightclub@mini@dance@dance_solo@female@var_a@", "high_center_up", "Dance F6", AnimationOptions = { + EmoteLoop = true, + }}, + ["danceclub"] = { "anim@amb@nightclub_island@dancers@beachdance@", "hi_idle_a_m03", "Dance Club", AnimationOptions = { + EmoteLoop = true + }}, + ["danceclubb"] = { "anim@amb@nightclub_island@dancers@beachdance@", "hi_idle_a_m05", "Dance Club 2", AnimationOptions = { + EmoteLoop = true + }}, + ["danceclubc"] = { "anim@amb@nightclub_island@dancers@beachdance@", "hi_idle_a_m02", "Dance Club 3", AnimationOptions = { + EmoteLoop = true + }}, + ["danceclubd"] = { "anim@amb@nightclub_island@dancers@beachdance@", "hi_idle_b_f01", "Dance Club 4", AnimationOptions = { + EmoteLoop = true + }}, + ["danceclube"] = { "anim@amb@nightclub_island@dancers@club@", "hi_idle_a_f02", "Dance Club 5", AnimationOptions = { + EmoteLoop = true + }}, + ["danceclubf"] = { "anim@amb@nightclub_island@dancers@club@", "hi_idle_b_m03", "Dance Club 6", AnimationOptions = { + EmoteLoop = true + }}, + ["danceclubg"] = { "anim@amb@nightclub_island@dancers@club@", "hi_idle_d_f01", "Dance Club 7", AnimationOptions = { + EmoteLoop = true + }}, + ["danceclubh"] = { "anim@amb@nightclub_island@dancers@crowddance_facedj@", "mi_dance_facedj_17_v2_male^4", "Dance Club 8 ", AnimationOptions = { + EmoteLoop = true, + }}, + ["danceclubi"] = { "anim@amb@nightclub_island@dancers@crowddance_single_props@", "mi_dance_prop_13_v1_male^3", "Dance Club 9 ", AnimationOptions = { + EmoteLoop = true, + }}, + ["danceclubj"] = { "anim@amb@nightclub_island@dancers@crowddance_groups@groupd@", "mi_dance_crowd_13_v2_male^1", "Dance Club 10 ", AnimationOptions = { + EmoteLoop = true, + }}, + ["danceclubk"] = { "anim@amb@nightclub_island@dancers@crowddance_facedj@", "mi_dance_facedj_15_v2_male^4", "Dance Club 11 ", AnimationOptions = { + EmoteLoop = true, + }}, + ["danceclubl"] = { "anim@amb@nightclub@mini@dance@dance_solo@female@var_a@", "high_center_up", "Dance Club 12", AnimationOptions = { + EmoteLoop = true, + }}, + ["danceclubm"] = { "anim@amb@nightclub_island@dancers@crowddance_facedj@", "hi_dance_facedj_hu_15_v2_male^5", "Dance Club 13 ", AnimationOptions = { + EmoteLoop = true, + }}, + ["danceclubn"] = { "anim@amb@nightclub_island@dancers@crowddance_facedj@", "hi_dance_facedj_hu_17_male^5", "Dance Club 14 ", AnimationOptions = { + EmoteLoop = true, + }}, + ["danceclubo"] = { "anim@amb@nightclub@mini@dance@dance_solo@shuffle@", "high_center", "Dance Club 15 ", AnimationOptions = { + EmoteLoop = true, + }}, + ["danceclubp"] = { "anim@amb@nightclub@mini@dance@dance_solo@shuffle@", "high_left_down", "Dance Club 16 ", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancedrink"] = { "anim@amb@nightclub_island@dancers@beachdanceprop@", "mi_idle_c_m01", "Dance Drink (Beer)", AnimationOptions = { + Prop = 'prop_beer_amopen', + PropBone = 28422, + PropPlacement = { 0.0, 0.00, 0.0, 0.0, 0.0, 20.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dancedrink2"] = { "anim@amb@nightclub_island@dancers@beachdanceprop@", "mi_loop_f1", "Dance Drink 2 (Wine)", AnimationOptions = { + Prop = 'p_wine_glass_s', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, -0.0900, 0.0, 0.0, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dancedrink3"] = { "anim@amb@nightclub_island@dancers@beachdanceprop@", "mi_loop_m04", "Dance Drink 3 (Whiskey)", AnimationOptions = { + Prop = 'ba_prop_battle_whiskey_opaque_s', + PropBone = 28422, + PropPlacement = { -0.0100, 0.00, 0.0, 0.0, 0.0, 10.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dancedrink4"] = { "anim@amb@nightclub_island@dancers@beachdanceprops@male@", "mi_idle_b_m04", "Dance Drink 4 (Whiskey)", AnimationOptions = { + Prop = 'ba_prop_battle_whiskey_opaque_s', + PropBone = 28422, + PropPlacement = { -0.0100, 0.00, 0.0, 0.0, 0.0, 10.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dancedrink5"] = { "anim@amb@nightclub_island@dancers@crowddance_single_props@", "hi_dance_prop_09_v1_female^3", "Dance Drink 5 (Wine)", AnimationOptions = { + Prop = 'p_wine_glass_s', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, -0.0900, 0.0, 0.0, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dancedrink6"] = { "anim@amb@nightclub_island@dancers@crowddance_single_props@", "hi_dance_prop_09_v1_male^3", "Dance Drink 6 (Beer)", AnimationOptions = { + Prop = 'prop_beer_logopen', + PropBone = 28422, + PropPlacement = { 0.0090, 0.0010, -0.0310, 180.0, 180.0, -69.99 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dancedrink7"] = { "anim@amb@nightclub_island@dancers@crowddance_single_props@", "hi_dance_prop_11_v1_female^3", "Dance Drink 7 (Wine)", AnimationOptions = { + Prop = 'p_wine_glass_s', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, -0.0900, 0.0, 0.0, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dancedrink8"] = { "anim@amb@nightclub_island@dancers@crowddance_single_props@", "hi_dance_prop_11_v1_female^1", "Dance Drink 8 (Wine)", AnimationOptions = { + Prop = 'p_wine_glass_s', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, -0.0900, 0.0, 0.0, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["danceslow2"] = { "anim@amb@nightclub@mini@dance@dance_solo@female@var_a@", "low_center", "Dance Slow 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["danceslow3"] = { "anim@amb@nightclub@mini@dance@dance_solo@female@var_a@", "low_center_down", "Dance Slow 3", AnimationOptions = { + EmoteLoop = true, + }}, + ["danceslow4"] = { "anim@amb@nightclub@mini@dance@dance_solo@female@var_b@", "low_center", "Dance Slow 4", AnimationOptions = { + EmoteLoop = true, + }}, + ["danceupper"] = { "anim@amb@nightclub@mini@dance@dance_solo@female@var_b@", "high_center", "Dance Upper", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["danceupper2"] = { "anim@amb@nightclub@mini@dance@dance_solo@female@var_b@", "high_center_up", "Dance Upper 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["danceshy"] = { "anim@amb@nightclub@mini@dance@dance_solo@male@var_a@", "low_center", "Dance Shy", AnimationOptions = { + EmoteLoop = true, + }}, + ["danceshy2"] = { "anim@amb@nightclub@mini@dance@dance_solo@female@var_b@", "low_center_down", "Dance Shy 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["danceslow"] = { "anim@amb@nightclub@mini@dance@dance_solo@male@var_b@", "low_center", "Dance Slow", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancesilly9"] = { "rcmnigel1bnmt_1b", "dance_loop_tyler", "Dance Silly 9", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancesilly"] = { "special_ped@mountain_dancer@monologue_3@monologue_3a", "mnt_dnc_buttwag", "Dance Silly", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancesilly2"] = { "move_clown@p_m_zero_idles@", "fidget_short_dance", "Dance Silly 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancesilly3"] = { "move_clown@p_m_two_idles@", "fidget_short_dance", "Dance Silly 3", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancesilly4"] = { "anim@amb@nightclub@lazlow@hi_podium@", "danceidle_hi_11_buttwiggle_b_laz", "Dance Silly 4", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancesilly5"] = { "timetable@tracy@ig_5@idle_a", "idle_a", "Dance Silly 5", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancesilly6"] = { "timetable@tracy@ig_8@idle_b", "idle_d", "Dance Silly 6", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancesilly7"] = { "anim@amb@casino@mini@dance@dance_solo@female@var_b@", "med_center", "Dance Silly 7", AnimationOptions = { + EmoteLoop = true + }}, + ["dancesilly8"] = { "anim@amb@casino@mini@dance@dance_solo@female@var_b@", "high_center", "Dance Silly 8", AnimationOptions = { + EmoteLoop = true + }}, + ["dancesilly9"] = { "anim@mp_player_intcelebrationfemale@the_woogie", "the_woogie", "Dance Silly 9", AnimationOptions = { + EmoteLoop = true + }}, + ["danceglowstick"] = { "anim@amb@nightclub@lazlow@hi_railing@", "ambclub_13_mi_hi_sexualgriding_laz", "Dance Glowsticks", AnimationOptions = { + Prop = 'ba_prop_battle_glowstick_01', + PropBone = 28422, + PropPlacement = { 0.0700, 0.1400, 0.0, -80.0, 20.0 }, + SecondProp = 'ba_prop_battle_glowstick_01', + SecondPropBone = 60309, + SecondPropPlacement = { 0.0700, 0.0900, 0.0, -120.0, -20.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["danceglowstick2"] = { "anim@amb@nightclub@lazlow@hi_railing@", "ambclub_12_mi_hi_bootyshake_laz", "Dance Glowsticks 2", AnimationOptions = { + Prop = 'ba_prop_battle_glowstick_01', + PropBone = 28422, + PropPlacement = { 0.0700, 0.1400, 0.0, -80.0, 20.0 }, + SecondProp = 'ba_prop_battle_glowstick_01', + SecondPropBone = 60309, + SecondPropPlacement = { 0.0700, 0.0900, 0.0, -120.0, -20.0 }, + EmoteLoop = true, + }}, + ["danceglowstick3"] = { "anim@amb@nightclub@lazlow@hi_railing@", "ambclub_09_mi_hi_bellydancer_laz", "Dance Glowsticks 3", AnimationOptions = { + Prop = 'ba_prop_battle_glowstick_01', + PropBone = 28422, + PropPlacement = { 0.0700, 0.1400, 0.0, -80.0, 20.0 }, + SecondProp = 'ba_prop_battle_glowstick_01', + SecondPropBone = 60309, + SecondPropPlacement = { 0.0700, 0.0900, 0.0, -120.0, -20.0 }, + EmoteLoop = true, + }}, + ["dancehorse"] = { "anim@amb@nightclub@lazlow@hi_dancefloor@", "dancecrowd_li_15_handup_laz", "Dance Horse", AnimationOptions = { + Prop = "ba_prop_battle_hobby_horse", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["dancehorse2"] = { "anim@amb@nightclub@lazlow@hi_dancefloor@", "crowddance_hi_11_handup_laz", "Dance Horse 2", AnimationOptions = { + Prop = "ba_prop_battle_hobby_horse", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + }}, + ["dancehorse3"] = { "anim@amb@nightclub@lazlow@hi_dancefloor@", "dancecrowd_li_11_hu_shimmy_laz", "Dance Horse 3", AnimationOptions = { + Prop = "ba_prop_battle_hobby_horse", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + }}, + ["dj"] = { "anim@amb@nightclub@djs@dixon@", "dixn_dance_cntr_open_dix", "DJ", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["dj2"] = { "anim@amb@nightclub@djs@solomun@", "sol_idle_ctr_mid_a_sol", "DJ 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dj3"] = { "anim@amb@nightclub@djs@solomun@", "sol_dance_l_sol", "DJ 3", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dj4"] = { "anim@amb@nightclub@djs@black_madonna@", "dance_b_idle_a_blamadon", "DJ 4", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dj5"] = { "anim@amb@nightclub@djs@dixon@", "dixn_end_dix", "DJ 5", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dj5"] = { "anim@amb@nightclub@djs@dixon@", "dixn_idle_cntr_a_dix", "DJ 5", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dj6"] = { "anim@amb@nightclub@djs@dixon@", "dixn_idle_cntr_b_dix", "DJ 6", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dj7"] = { "anim@amb@nightclub@djs@dixon@", "dixn_idle_cntr_g_dix", "DJ 7", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dj8"] = { "anim@amb@nightclub@djs@dixon@", "dixn_idle_cntr_gb_dix", "DJ 8", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dj9"] = { "anim@amb@nightclub@djs@dixon@", "dixn_sync_cntr_j_dix", "DJ 9", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = false, + }}, + ["twerk"] = { "switch@trevor@mocks_lapdance", "001443_01_trvs_28_idle_stripper", "Twerk", AnimationOptions = { + EmoteLoop = true, + }}, + ["lapdance"] = { "mp_safehouse", "lap_dance_girl", "Lapdance" }, + ["lapdance2"] = { "mini@strip_club@private_dance@idle", "priv_dance_idle", "Lapdance 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["lapdance3"] = { "mini@strip_club@private_dance@part1", "priv_dance_p1", "Lapdance 3", AnimationOptions = { + EmoteLoop = true, + }}, + ["lapdance4"] = { "mini@strip_club@private_dance@part2", "priv_dance_p2", "Lapdance 4", AnimationOptions = { + EmoteLoop = true, + }}, + ["lapdance5"] = { "mini@strip_club@private_dance@part3", "priv_dance_p3", "Lapdance 5", AnimationOptions = { + EmoteLoop = true, + }}, + ["lapdance6"] = { "oddjobs@assassinate@multi@yachttarget@lapdance", "yacht_ld_f", "Lapdance 6", AnimationOptions = { + EmoteLoop = true, + }}, + ["lapdancewith"] = { "mini@strip_club@lap_dance_2g@ld_2g_p3", "ld_2g_p3_s2", "Lapdance With", AnimationOptions = { + EmoteLoop = true, + }}, + ["lapdancewith2"] = { "mini@strip_club@lap_dance_2g@ld_2g_p2", "ld_2g_p2_s2", "Lapdance With2", AnimationOptions = { + EmoteLoop = true, + }}, + ["lapdancewith3"] = { "mini@strip_club@lap_dance_2g@ld_2g_p1", "ld_2g_p1_s2", "Lapdance With3", AnimationOptions = { + EmoteLoop = true, + }}, + ["lapchair"] = { "mini@strip_club@lap_dance@ld_girl_a_song_a_p1", "ld_girl_a_song_a_p1_f", "Lap Chair", AnimationOptions = { + EmoteLoop = true, + }}, + ["lapchair2"] = { "mini@strip_club@lap_dance@ld_girl_a_song_a_p2", "ld_girl_a_song_a_p2_f", "Lap Chair2", AnimationOptions = { + EmoteLoop = true, + }}, + ["lapchair3"] = { "mini@strip_club@lap_dance@ld_girl_a_song_a_p3", "ld_girl_a_song_a_p3_f", "Lap Chair3", AnimationOptions = { + EmoteLoop = true, + }}, + ["salsa"] = { "anim@mp_player_intuppersalsa_roll", "idle_a", "Salso Roll", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancecrankdat"] = { "anim@amb@nightclub@mini@dance@dance_solo@shuffle@", "high_right_up", "Dance Crank Dat", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancecrankdat2"] = { "anim@amb@nightclub@mini@dance@dance_solo@shuffle@", "high_right_down", "Dance Crank Dat 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancemonkey"] = { "anim@amb@nightclub@mini@dance@dance_solo@techno_monkey@", "high_center", "Monkey Dance ", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancemonkey2"] = { "anim@amb@nightclub@mini@dance@dance_solo@techno_monkey@", "high_center_down", "Monkey Dance 2 ", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancemonkey3"] = { "anim@amb@nightclub@mini@dance@dance_solo@techno_monkey@", "med_center_down", "Monkey Dance 3 ", AnimationOptions = { + EmoteLoop = true, + }}, + ["boxdance"] = { "anim@amb@nightclub@mini@dance@dance_solo@beach_boxing@", "med_right_down", "Boxing Dance Solo ", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancehiphop"] = { "anim@amb@nightclub@mini@dance@dance_paired@dance_d@", "ped_a_dance_idle", "Hip Hop Dance ", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancehiphop2"] = { "anim@amb@nightclub@mini@dance@dance_paired@dance_b@", "ped_a_dance_idle", "Hip Hop Dance 2 ", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancehiphop3"] = { "anim@amb@nightclub@mini@dance@dance_paired@dance_a@", "ped_a_dance_idle", "Hip Hop Dance 3 ", AnimationOptions = { + EmoteLoop = true, + }}, + ["dancepride"] = { "anim@amb@nightclub@lazlow@hi_railing@", "ambclub_09_mi_hi_bellydancer_laz", "Dance Pride A", AnimationOptions = { + Prop = 'lilprideflag1', --- Rainbow + PropBone = 18905, + PropPlacement = { 0.0900, 0.0000, 0.0300, -39.911, 93.9166, -5.8062 }, + SecondProp = 'lilprideflag1', + SecondPropBone = 57005, + SecondPropPlacement = { 0.0900, -0.0200, -0.0300, -90.2454, 5.7068, -28.7797 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["danceprideb"] = { "anim@amb@nightclub@lazlow@hi_railing@", "ambclub_09_mi_hi_bellydancer_laz", "Dance Pride B - LGBTQIA", AnimationOptions = { + Prop = 'lilprideflag2', --- LGBTQIA + PropBone = 18905, + PropPlacement = { 0.0900, 0.0000, 0.0300, -39.911, 93.9166, -5.8062 }, + SecondProp = 'lilprideflag2', + SecondPropBone = 57005, + SecondPropPlacement = { 0.0900, -0.0200, -0.0300, -90.2454, 5.7068, -28.7797 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dancepridec"] = { "anim@amb@nightclub@lazlow@hi_railing@", "ambclub_09_mi_hi_bellydancer_laz", "Dance Pride C - Bisexual", AnimationOptions = { + Prop = 'lilprideflag3', --- Bisexual + PropBone = 18905, + PropPlacement = { 0.0900, 0.0000, 0.0300, -39.911, 93.9166, -5.8062 }, + SecondProp = 'lilprideflag3', + SecondPropBone = 57005, + SecondPropPlacement = { 0.0900, -0.0200, -0.0300, -90.2454, 5.7068, -28.7797 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dancepridec"] = { "anim@amb@nightclub@lazlow@hi_railing@", "ambclub_09_mi_hi_bellydancer_laz", "Dance Pride C - Lesbian", AnimationOptions = { + Prop = 'lilprideflag4', --- Lesbian + PropBone = 18905, + PropPlacement = { 0.0900, 0.0000, 0.0300, -39.911, 93.9166, -5.8062 }, + SecondProp = 'lilprideflag4', + SecondPropBone = 57005, + SecondPropPlacement = { 0.0900, -0.0200, -0.0300, -90.2454, 5.7068, -28.7797 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["danceprided"] = { "anim@amb@nightclub@lazlow@hi_railing@", "ambclub_09_mi_hi_bellydancer_laz", "Dance Pride D - Pansexual", AnimationOptions = { + Prop = 'lilprideflag5', --- Pansexual + PropBone = 18905, + PropPlacement = { 0.0900, 0.0000, 0.0300, -39.911, 93.9166, -5.8062 }, + SecondProp = 'lilprideflag5', + SecondPropBone = 57005, + SecondPropPlacement = { 0.0900, -0.0200, -0.0300, -90.2454, 5.7068, -28.7797 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dancepridee"] = { "anim@amb@nightclub@lazlow@hi_railing@", "ambclub_09_mi_hi_bellydancer_laz", "Dance Pride E - Transexual", AnimationOptions = { + Prop = 'lilprideflag6', --- Transexual + PropBone = 18905, + PropPlacement = { 0.0900, 0.0000, 0.0300, -39.911, 93.9166, -5.8062 }, + SecondProp = 'lilprideflag6', + SecondPropBone = 57005, + SecondPropPlacement = { 0.0900, -0.0200, -0.0300, -90.2454, 5.7068, -28.7797 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dancepridef"] = { "anim@amb@nightclub@lazlow@hi_railing@", "ambclub_09_mi_hi_bellydancer_laz", "Dance Pride F - Non Binary", AnimationOptions = { + Prop = 'lilprideflag7', --- Lesbian + PropBone = 18905, + PropPlacement = { 0.0900, 0.0000, 0.0300, -39.911, 93.9166, -5.8062 }, + SecondProp = 'lilprideflag7', + SecondPropBone = 57005, + SecondPropPlacement = { 0.0900, -0.0200, -0.0300, -90.2454, 5.7068, -28.7797 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["danceprideg"] = { "anim@amb@nightclub@lazlow@hi_railing@", "ambclub_09_mi_hi_bellydancer_laz", "Dance Pride G - Asexual", AnimationOptions = { + Prop = 'lilprideflag8', --- Asexual + PropBone = 18905, + PropPlacement = { 0.0900, 0.0000, 0.0300, -39.911, 93.9166, -5.8062 }, + SecondProp = 'lilprideflag8', + SecondPropBone = 57005, + SecondPropPlacement = { 0.0900, -0.0200, -0.0300, -90.2454, 5.7068, -28.7797 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["danceprideh"] = { "anim@amb@nightclub@lazlow@hi_railing@", "ambclub_09_mi_hi_bellydancer_laz", "Dance Pride H - Straight Ally", AnimationOptions = { + Prop = 'lilprideflag9', --- Straight Ally + PropBone = 18905, + PropPlacement = { 0.0900, 0.0000, 0.0300, -39.911, 93.9166, -5.8062 }, + SecondProp = 'lilprideflag9', + SecondPropBone = 57005, + SecondPropPlacement = { 0.0900, -0.0200, -0.0300, -90.2454, 5.7068, -28.7797 }, + EmoteLoop = true, + EmoteMoving = false, + }}, +} + + +---- ANIMAL EMOTES ---- +---- BIG DOG ---- + +DP.AnimalEmotes = { + ["bdogbark"] = { "creatures@rottweiler@amb@world_dog_barking@idle_a", "idle_a", "Bark (big dog)", AnimationOptions = { + EmoteLoop = true + }}, + ["bdogbeg"] = { "creatures@rottweiler@tricks@", "beg_loop", "Beg (big dog)", AnimationOptions = { + EmoteLoop = true + }}, + ["bdogbeg2"] = { "creatures@rottweiler@tricks@", "paw_right_loop", "Beg 2 (big dog)", AnimationOptions = { + EmoteLoop = true + }}, + ["bdogdump"] = { "creatures@rottweiler@move", "dump_loop", "Dump (big dog)", AnimationOptions = { + Prop = 'prop_big_shit_02', + PropBone = 51826, + PropPlacement = { 0.0, 0.2000, -0.4600, 0.0, -20.00, 0.0 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["bdogitch"] = { "creatures@rottweiler@amb@world_dog_sitting@idle_a", "idle_a", "Itch (big dog)", AnimationOptions = { + EmoteDuration = 2000 + }}, + ["bdogsleep"] = { "creatures@rottweiler@amb@sleep_in_kennel@", "sleep_in_kennel", "Sleep (big dog)", AnimationOptions = { + EmoteLoop = true + }}, + ["bdogsit"] = { "creatures@rottweiler@amb@world_dog_sitting@base", "base", "Sit (big dog)", AnimationOptions = { + EmoteLoop = true + }}, + ["bdogpee"] = { "creatures@rottweiler@move", "pee_left_idle", "Pee (big dog)", AnimationOptions = { + EmoteLoop = false + }}, + ["bdogpee2"] = { "creatures@rottweiler@move", "pee_right_idle", "Pee 2 (big dog)", AnimationOptions = { + EmoteLoop = false + }}, + ["sdogbark"] = { "creatures@pug@amb@world_dog_barking@idle_a", "idle_a", "Bark (small dog)", AnimationOptions = { + EmoteLoop = true + }}, + ["bdogglowa"] = { "creatures@rottweiler@amb@world_dog_sitting@base", "nill", "Glow Stick (big dog)", AnimationOptions = { + Prop = 'ba_prop_battle_glowstick_01', + PropBone = 31086, + PropPlacement = { 0.2000, 0.000, -0.0600, 90.00, 0.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["bdogglowb"] = { "creatures@rottweiler@amb@world_dog_sitting@base", "base", "Glow Stick Sitting (big dog)", AnimationOptions = { + Prop = 'ba_prop_battle_glowstick_01', + PropBone = 31086, + PropPlacement = { 0.2000, 0.000, -0.0600, 90.00, 0.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["bdogpridea"] = { "creatures@rottweiler@amb@world_dog_sitting@base", "base", "Sit Pride A (big dog)", AnimationOptions = { + Prop = 'lilprideflag1', ---Rainbow + PropBone = 31086, + PropPlacement = { 0.1900, 0.0000, -0.0500, 100.0000, 90.0000, 0.0000 }, + SecondProp = 'lilprideflag1', + SecondPropBone = 31086, + SecondPropPlacement = { 0.1940, 0.020, -0.0500, -90.0000, -90.0000, 0.0000 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["bdogprideb"] = { "creatures@rottweiler@amb@world_dog_sitting@base", "base", "Sit Pride B - LGBTQIA (big dog)", AnimationOptions = { + Prop = 'lilprideflag2', --LGBTQIA + PropBone = 31086, + PropPlacement = { 0.1900, 0.0000, -0.0500, 100.0000, 90.0000, 0.0000 }, + SecondProp = 'lilprideflag2', + SecondPropBone = 31086, + SecondPropPlacement = { 0.1940, 0.020, -0.0500, -90.0000, -90.0000, 0.0000 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["bdogpridec"] = { "creatures@rottweiler@amb@world_dog_sitting@base", "base", "Sit Pride C - Bisexual (big dog)", AnimationOptions = { + Prop = 'lilprideflag3', --Bisexual + PropBone = 31086, + PropPlacement = { 0.1900, 0.0000, -0.0500, 100.0000, 90.0000, 0.0000 }, + SecondProp = 'lilprideflag3', + SecondPropBone = 31086, + SecondPropPlacement = { 0.1940, 0.020, -0.0500, -90.0000, -90.0000, 0.0000 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["bdogprided"] = { "creatures@rottweiler@amb@world_dog_sitting@base", "base", "Sit Pride D - Lesbian (big dog)", AnimationOptions = { + Prop = 'lilprideflag4', --Lesbian + PropBone = 31086, + PropPlacement = { 0.1900, 0.0000, -0.0500, 100.0000, 90.0000, 0.0000 }, + SecondProp = 'lilprideflag4', + SecondPropBone = 31086, + SecondPropPlacement = { 0.1940, 0.020, -0.0500, -90.0000, -90.0000, 0.0000 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["bdogpridee"] = { "creatures@rottweiler@amb@world_dog_sitting@base", "base", "Sit Pride E - Pansexual (big dog)", AnimationOptions = { + Prop = 'lilprideflag5', --Pansexual + PropBone = 31086, + PropPlacement = { 0.1900, 0.0000, -0.0500, 100.0000, 90.0000, 0.0000 }, + SecondProp = 'lilprideflag5', + SecondPropBone = 31086, + SecondPropPlacement = { 0.1940, 0.020, -0.0500, -90.0000, -90.0000, 0.0000 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["bdogpridef"] = { "creatures@rottweiler@amb@world_dog_sitting@base", "base", "Sit Pride F - Transexual (big dog)", AnimationOptions = { + Prop = 'lilprideflag6', --Transexual + PropBone = 31086, + PropPlacement = { 0.1900, 0.0000, -0.0500, 100.0000, 90.0000, 0.0000 }, + SecondProp = 'lilprideflag6', + SecondPropBone = 31086, + SecondPropPlacement = { 0.1940, 0.020, -0.0500, -90.0000, -90.0000, 0.0000 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["bdogprideg"] = { "creatures@rottweiler@amb@world_dog_sitting@base", "base", "Sit Pride G - Non Binary (big dog)", AnimationOptions = { + Prop = 'lilprideflag7', --Non Binary + PropBone = 31086, + PropPlacement = { 0.1900, 0.0000, -0.0500, 100.0000, 90.0000, 0.0000 }, + SecondProp = 'lilprideflag7', + SecondPropBone = 31086, + SecondPropPlacement = { 0.1940, 0.020, -0.0500, -90.0000, -90.0000, 0.0000 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["bdogprideh"] = { "creatures@rottweiler@amb@world_dog_sitting@base", "base", "Sit Pride H - Asexual (big dog)", AnimationOptions = { + Prop = 'lilprideflag8', --Non Binary + PropBone = 31086, + PropPlacement = { 0.1900, 0.0000, -0.0500, 100.0000, 90.0000, 0.0000 }, + SecondProp = 'lilprideflag8', + SecondPropBone = 31086, + SecondPropPlacement = { 0.1940, 0.020, -0.0500, -90.0000, -90.0000, 0.0000 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["bdogpridei"] = { "creatures@rottweiler@amb@world_dog_sitting@base", "base", "Sit Pride I - Straight Ally (big dog)", AnimationOptions = { + Prop = 'lilprideflag9', --Straight Ally + PropBone = 31086, + PropPlacement = { 0.1900, 0.0000, -0.0500, 100.0000, 90.0000, 0.0000 }, + SecondProp = 'lilprideflag9', + SecondPropBone = 31086, + SecondPropPlacement = { 0.1940, 0.020, -0.0500, -90.0000, -90.0000, 0.0000 }, + EmoteLoop = true, + EmoteMoving = false, + + +---- ANIMAL EMOTES ---- +---- SMALL DOG ---- + + + }}, + ["sdogitch"] = { "creatures@pug@amb@world_dog_sitting@idle_a", "idle_a", "Itch (small dog)", AnimationOptions = { + EmoteDuration = 2000 + }}, + ["sdogsit"] = { "creatures@pug@amb@world_dog_sitting@idle_a", "idle_b", "Sit (small dog)", AnimationOptions = { + EmoteLoop = true + }}, + ["sdogld"] = { "misssnowie@little_doggy_lying_down", "base", "Lay Down (small dog)", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogshake"] = { "creatures@pug@amb@world_dog_barking@idle_a", "idle_c", "Shake (small dog)", AnimationOptions = { + EmoteLoop = true + }}, + ["sdogdance"] = { "creatures@pug@move", "idle_turn_0", "Dance (small dog)", AnimationOptions = { + Prop = 'ba_prop_battle_glowstick_01', + PropBone = 31086, + PropPlacement = { 0.1500, -0.0300, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogdance2"] = { "creatures@pug@move", "idle_turn_0", "Dance 2 (small dog)", AnimationOptions = { + Prop = 'ba_prop_battle_glowstick_01', + PropBone = 31086, + PropPlacement = { 0.1500, -0.0300, 0.0, 0.0, 0.0 }, + SecondProp = 'prop_cs_sol_glasses', + SecondPropBone = 31086, + SecondPropPlacement = { 0.0500, 0.0300, 0.000, -100.0000003, 90.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogdancepridea"] = { "creatures@pug@move", "idle_turn_0", "Dance Pride A (small dog)", AnimationOptions = { + Prop = 'lilprideflag1', + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + SecondProp = 'prop_cs_sol_glasses', + SecondPropBone = 31086, + SecondPropPlacement = { 0.0500, 0.0300, 0.000, -100.0000003, 90.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogdanceprideb"] = { "creatures@pug@move", "idle_turn_0", "Dance Pride B - LGBTQIA (small dog)", AnimationOptions = { + Prop = 'lilprideflag2', --LGBTQIA + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + SecondProp = 'prop_cs_sol_glasses', + SecondPropBone = 31086, + SecondPropPlacement = { 0.0500, 0.0300, 0.000, -100.0000003, 90.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogdancepridec"] = { "creatures@pug@move", "idle_turn_0", "Dance Pride C - Bisexual (small dog)", AnimationOptions = { + Prop = 'lilprideflag3', --Bisexual + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + SecondProp = 'prop_cs_sol_glasses', + SecondPropBone = 31086, + SecondPropPlacement = { 0.0500, 0.0300, 0.000, -100.0000003, 90.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogdanceprided"] = { "creatures@pug@move", "idle_turn_0", "Dance Pride D - Lesbian (small dog)", AnimationOptions = { + Prop = 'lilprideflag4', --Lesbian + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + SecondProp = 'prop_cs_sol_glasses', + SecondPropBone = 31086, + SecondPropPlacement = { 0.0500, 0.0300, 0.000, -100.0000003, 90.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogdancepridee"] = { "creatures@pug@move", "idle_turn_0", "Dance Pride E - Pansexual (small dog)", AnimationOptions = { + Prop = 'lilprideflag5', --Pansexual + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + SecondProp = 'prop_cs_sol_glasses', + SecondPropBone = 31086, + SecondPropPlacement = { 0.0500, 0.0300, 0.000, -100.0000003, 90.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogdancepridef"] = { "creatures@pug@move", "idle_turn_0", "Dance Pride F - Transexual (small dog)", AnimationOptions = { + Prop = 'lilprideflag6', --Transexual + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + SecondProp = 'prop_cs_sol_glasses', + SecondPropBone = 31086, + SecondPropPlacement = { 0.0500, 0.0300, 0.000, -100.0000003, 90.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogdanceprideg"] = { "creatures@pug@move", "idle_turn_0", "Dance Pride G - Non Binary (small dog)", AnimationOptions = { + Prop = 'lilprideflag7', --Non Binary + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + SecondProp = 'prop_cs_sol_glasses', + SecondPropBone = 31086, + SecondPropPlacement = { 0.0500, 0.0300, 0.000, -100.0000003, 90.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogdanceprideh"] = { "creatures@pug@move", "idle_turn_0", "Dance Pride H - Asexual (small dog)", AnimationOptions = { + Prop = 'lilprideflag8', --Asexual + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + SecondProp = 'prop_cs_sol_glasses', + SecondPropBone = 31086, + SecondPropPlacement = { 0.0500, 0.0300, 0.000, -100.0000003, 90.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogdancepridei"] = { "creatures@pug@move", "idle_turn_0", "Dance Pride I - Straight Ally (small dog)", AnimationOptions = { + Prop = 'lilprideflag9', --Straight Ally + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + SecondProp = 'prop_cs_sol_glasses', + SecondPropBone = 31086, + SecondPropPlacement = { 0.0500, 0.0300, 0.000, -100.0000003, 90.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogbb"] = { "creatures@pug@move", "nill", "Baseball (small dog)", AnimationOptions = { + Prop = 'w_am_baseball', + PropBone = 31086, + PropPlacement = { 0.1500, -0.0500, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogburger"] = { "creatures@pug@move", "nill", "Burger (small dog)", AnimationOptions = { + Prop = 'prop_cs_burger_01', + PropBone = 31086, + PropPlacement = { 0.1500, -0.0400, 0.0000, -90.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogcontroller"] = { "creatures@pug@move", "nill", "Controller (small dog)", AnimationOptions = { + Prop = 'prop_controller_01', + PropBone = 31086, + PropPlacement = { 0.1800, -0.0300, 0.0000, -180.000, 90.0000, 0.0000 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogdolla"] = { "creatures@pug@move", "nill", "Dollar Bill (small dog)", AnimationOptions = { + Prop = 'p_banknote_onedollar_s', + PropBone = 31086, + PropPlacement = { 0.1700, -0.0100, 0.0000, 90.0000, 0.0000, 0.000 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogdolla2"] = { "creatures@pug@move", "nill", "Dollar Bill Scrunched (small dog)", AnimationOptions = { + Prop = 'bkr_prop_scrunched_moneypage', + PropBone = 31086, + PropPlacement = { 0.1700, 0.000, 0.0000, 90.0000, 00.0000, 00.0000 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogdolla3"] = { "creatures@pug@move", "nill", "Money Stack (small dog)", AnimationOptions = { + Prop = 'bkr_prop_money_wrapped_01', + PropBone = 31086, + PropPlacement = { 0.1700, -0.0100, 0.0000, 90.0000, 0.0000, 0.000 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogdolla4"] = { "creatures@pug@move", "nill", "Money Bag (small dog)", AnimationOptions = { + Prop = 'ch_prop_ch_moneybag_01a', + PropBone = 31086, + PropPlacement = { 0.1200, -0.2000, 0.0000, -79.9999997, 90.00, 0.0000 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogmic"] = { "creatures@pug@move", "nill", "Microphone (small dog)", AnimationOptions = { + Prop = 'p_ing_microphonel_01', + PropBone = 31086, + PropPlacement = { 0.1500, -0.0170, 0.0300, 0.000, 0.0000, 0.0000 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogteddy"] = { "creatures@pug@move", "nill", "Teddy (small dog)", AnimationOptions = { + Prop = 'v_ilev_mr_rasberryclean', + PropBone = 31086, + PropPlacement = { 0.1500, -0.1100, -0.23, 0.000, 0.0000, 0.0000 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogteddy2"] = { "creatures@pug@amb@world_dog_sitting@idle_a", "idle_b", "Teddy 2 (small dog)", AnimationOptions = { + Prop = 'v_ilev_mr_rasberryclean', + PropBone = 31086, + PropPlacement = { 0.1500, -0.1100, -0.23, 0.000, 0.0000, 0.0000 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogtennis"] = { "creatures@pug@move", "nill", "Tennis Ball (small dog)", AnimationOptions = { + Prop = 'prop_tennis_ball', + PropBone = 31086, + PropPlacement = { 0.1500, -0.0600, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogtennisr"] = { "creatures@pug@move", "nill", "Tennis Racket (small dog)", AnimationOptions = { + Prop = 'prop_tennis_rack_01', + PropBone = 31086, + PropPlacement = { 0.1500, -0.0200, 0.00, 0.000, 0.0000, -28.0000 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogrose"] = { "creatures@pug@move", "nill", "Rose (small dog)", AnimationOptions = { + Prop = 'prop_single_rose', + PropBone = 12844, + PropPlacement = { 0.1090, -0.0140, 0.0500, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogrose2"] = { "creatures@pug@amb@world_dog_sitting@idle_a", "idle_b", "Rose Sit (small dog)", AnimationOptions = { + Prop = 'prop_single_rose', + PropBone = 12844, + PropPlacement = { 0.1090, -0.0140, 0.0500, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogggun"] = { "creatures@pug@move", "nill", "Gun Gold (small dog)", AnimationOptions = { + Prop = 'w_pi_pistol_luxe', + PropBone = 12844, + PropPlacement = { 0.2010, -0.0080, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdoggun2"] = { "creatures@pug@amb@world_dog_sitting@idle_a", "idle_b", "Gun Gold Sit (small dog)", AnimationOptions = { + Prop = 'w_pi_pistol_luxe', + PropBone = 12844, + PropPlacement = { 0.2010, -0.0080, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogstun"] = { "creatures@pug@move", "nill", "Stun Gun (small dog)", AnimationOptions = { + Prop = 'w_pi_stungun', + PropBone = 12844, + PropPlacement = { 0.1400, -0.0100, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = false, + PtfxAsset = "core", + PtfxName = "blood_stungun", + PtfxPlacement = { 0.208, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 }, + PtfxInfo = Config.Languages[Config.MenuLanguage]['stun'], + PtfxWait = 200, + }}, + ["sdoggl1"] = { "creatures@pug@move", "nill", "Aviators (small dog)", AnimationOptions = { + Prop = 'prop_aviators_01', + PropBone = 31086, + PropPlacement = { 0.0500, 0.0400, 0.000, -90.00, 90.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdoggl2"] = { "creatures@pug@amb@world_dog_sitting@idle_a", "idle_b", "Aviators Sitting (small dog)", AnimationOptions = { + Prop = 'prop_aviators_01', + PropBone = 31086, + PropPlacement = { 0.0500, 0.0400, 0.000, -90.00, 90.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdoggl3"] = { "creatures@pug@move", "nill", "Sunglasses (small dog)", AnimationOptions = { + Prop = 'prop_cs_sol_glasses', + PropBone = 31086, + PropPlacement = { 0.0500, 0.0300, 0.000, -100.0000003, 90.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdoggl4"] = { "creatures@pug@amb@world_dog_sitting@idle_a", "idle_b", "Sunglasses Sitting (small dog)", AnimationOptions = { + Prop = 'prop_cs_sol_glasses', + PropBone = 31086, + PropPlacement = { 0.0500, 0.0300, 0.000, -100.0000003, 90.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdoghd1"] = { "creatures@pug@move", "nill", "Hot Dog (small dog)", AnimationOptions = { + Prop = 'prop_cs_hotdog_01', + PropBone = 31086, + PropPlacement = { 0.1300, -0.0250, 0.000, -88.272053, -9.8465858, -0.1488562 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdoghd2"] = { "creatures@pug@amb@world_dog_sitting@idle_a", "idle_b", "Hot Dog Sitting (small dog)", AnimationOptions = { + Prop = 'prop_cs_hotdog_01', + PropBone = 31086, + PropPlacement = { 0.1300, -0.0250, 0.000, -88.272053, -9.8465858, -0.1488562 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdoghlmt1"] = { "creatures@pug@move", "nill", "Helmet 1 (small dog)", AnimationOptions = { + Prop = 'ba_prop_battle_sports_helmet', + PropBone = 31086, + PropPlacement = { 0.00, -0.0200, 0.000, -90.00, 90.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdoghlmt2"] = { "creatures@pug@move", "nill", "Helmet 2 (small dog)", AnimationOptions = { + Prop = 'prop_hard_hat_01', + PropBone = 31086, + PropPlacement = { 0.00, 0.1300, 0.000, -90.00, 90.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdoghat"] = { "creatures@pug@move", "nill", "Hat 1 (small dog)", AnimationOptions = { + Prop = 'prop_proxy_hat_01', + PropBone = 31086, + PropPlacement = { 0.0, 0.1200, 0.000, -99.8510766, 80.1489234, 1.7279411 }, + SecondProp = 'prop_aviators_01', + SecondPropBone = 31086, + SecondPropPlacement = { 0.0500, 0.0400, 0.000, -90.00, 90.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdoghat2"] = { "creatures@pug@amb@world_dog_sitting@idle_a", "idle_b", "Hat 2 Sitting (small dog)", AnimationOptions = { + Prop = 'prop_proxy_hat_01', + PropBone = 31086, + PropPlacement = { 0.0, 0.1200, 0.000, -99.8510766, 80.1489234, 1.7279411 }, + SecondProp = 'prop_aviators_01', + SecondPropBone = 31086, + SecondPropPlacement = { 0.0500, 0.0400, 0.000, -90.00, 90.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogsteak"] = { "creatures@pug@move", "nill", "Steak (small dog)", AnimationOptions = { + Prop = 'prop_cs_steak', + PropBone = 31086, + PropPlacement = { 0.1800, -0.0200, 0.000, 90.00, 0.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogsteak2"] = { "creatures@pug@amb@world_dog_sitting@idle_a", "idle_c", "Steak 2 Lay Down (small dog)", AnimationOptions = { + Prop = 'prop_cs_steak', + PropBone = 31086, + PropPlacement = { 0.1800, -0.0200, 0.000, 90.00, 0.00, 0.00 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogpridea"] = { "creatures@pug@move", "nill", "Pride A (small dog)", AnimationOptions = { + Prop = 'lilprideflag1', + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogprideb"] = { "creatures@pug@move", "nill", "Pride B - LGBTQIA (small dog)", AnimationOptions = { + Prop = 'lilprideflag2',--LGBTQIA + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogpridec"] = { "creatures@pug@move", "nill", "Pride C - Bisexual (small dog)", AnimationOptions = { + Prop = 'lilprideflag3',--Bisexual + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogprided"] = { "creatures@pug@move", "nill", "Pride D - Lesbian (small dog)", AnimationOptions = { + Prop = 'lilprideflag4',--Lesbian + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogpridee"] = { "creatures@pug@move", "nill", "Pride E - Pansexual (small dog)", AnimationOptions = { + Prop = 'lilprideflag5',--Pansexual + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogpridef"] = { "creatures@pug@move", "nill", "Pride F - Transexual (small dog)", AnimationOptions = { + Prop = 'lilprideflag6',--Transexual + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogpridef"] = { "creatures@pug@move", "nill", "Pride F - Transexual (small dog)", AnimationOptions = { + Prop = 'lilprideflag6',--Transexual + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogprideg"] = { "creatures@pug@move", "nill", "Pride G - Non Binary (small dog)", AnimationOptions = { + Prop = 'lilprideflag6',--Non Binary + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogprideh"] = { "creatures@pug@move", "nill", "Pride H - Non Binary (small dog)", AnimationOptions = { + Prop = 'lilprideflag7',--Non Binary + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogpridei"] = { "creatures@pug@move", "nill", "Pride I - Asexual (small dog)", AnimationOptions = { + Prop = 'lilprideflag8',--Asexual + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogpridesita"] = { "creatures@pug@amb@world_dog_sitting@idle_a", "idle_b", "Pride A Sit (small dog)", AnimationOptions = { + Prop = 'lilprideflag1', + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogpridesitb"] = { "creatures@pug@amb@world_dog_sitting@idle_a", "idle_b", "Pride B Sit LGBTQIA (small dog)", AnimationOptions = { + Prop = 'lilprideflag2', --LGBTQIA + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogpridesitc"] = { "creatures@pug@amb@world_dog_sitting@idle_a", "idle_b", "Pride C Sit Bisexual (small dog)", AnimationOptions = { + Prop = 'lilprideflag3', --Bisexual + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogpridesitd"] = { "creatures@pug@amb@world_dog_sitting@idle_a", "idle_b", "Pride D Sit Lesbian (small dog)", AnimationOptions = { + Prop = 'lilprideflag4', --Lesbian + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogpridesite"] = { "creatures@pug@amb@world_dog_sitting@idle_a", "idle_b", "Pride E Sit Pansexual (small dog)", AnimationOptions = { + Prop = 'lilprideflag5', --Pansexual + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogpridesitf"] = { "creatures@pug@amb@world_dog_sitting@idle_a", "idle_b", "Pride F Sit Transexual (small dog)", AnimationOptions = { + Prop = 'lilprideflag6', --Transexual + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogpridesitg"] = { "creatures@pug@amb@world_dog_sitting@idle_a", "idle_b", "Pride G Sit Non Binary (small dog)", AnimationOptions = { + Prop = 'lilprideflag7', --Non Binary + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogpridesith"] = { "creatures@pug@amb@world_dog_sitting@idle_a", "idle_b", "Pride H Sit Asexual (small dog)", AnimationOptions = { + Prop = 'lilprideflag8', --Asexual + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["sdogpridesiti"] = { "creatures@pug@amb@world_dog_sitting@idle_a", "idle_b", "Pride I Sit Straight Ally (small dog)", AnimationOptions = { + Prop = 'lilprideflag9', --Straight Ally + PropBone = 31086, + PropPlacement = { 0.1240, -0.0080, 0.000, 0.0, 0.0, -74.6999 }, + EmoteLoop = true, + EmoteMoving = false, + }}, +} + + + +--- EMOTES NO PROPS --- + +DP.Emotes = { + + ["beast"] = { "anim@mp_fm_event@intro", "beast_transform", "Beast", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 5000, + }}, + ["chill"] = { "switch@trevor@scares_tramp", "trev_scares_tramp_idle_tramp", "Chill", AnimationOptions = { + EmoteLoop = true, + }}, + ["cloudgaze"] = { "switch@trevor@annoys_sunbathers", "trev_annoys_sunbathers_loop_girl", "Cloudgaze", AnimationOptions = { + EmoteLoop = true, + }}, + ["cloudgaze2"] = { "switch@trevor@annoys_sunbathers", "trev_annoys_sunbathers_loop_guy", "Cloudgaze 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["prone"] = { "missfbi3_sniping", "prone_dave", "Prone", AnimationOptions = { + EmoteLoop = true, + }}, + ["pullover"] = { "misscarsteal3pullover", "pull_over_right", "Pullover", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 1300, + }}, + ["idle"] = { "anim@heists@heist_corona@team_idles@male_a", "idle", "Idle", AnimationOptions = { + EmoteLoop = true, + }}, + ["idle8"] = { "amb@world_human_hang_out_street@male_b@idle_a", "idle_b", "Idle 8" }, + ["idle9"] = { "friends@fra@ig_1", "base_idle", "Idle 9", AnimationOptions = { + EmoteLoop = true, + }}, + ["idle10"] = { "mp_move@prostitute@m@french", "idle", "Idle 10", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["idle11"] = { "random@countrysiderobbery", "idle_a", "Idle 11", AnimationOptions = { + EmoteLoop = true, + }}, + ["idle2"] = { "anim@heists@heist_corona@team_idles@female_a", "idle", "Idle 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["idle3"] = { "anim@heists@humane_labs@finale@strip_club", "ped_b_celebrate_loop", "Idle 3", AnimationOptions = { + EmoteLoop = true, + }}, + ["idle4"] = { "anim@mp_celebration@idles@female", "celebration_idle_f_a", "Idle 4", AnimationOptions = { + EmoteLoop = true, + }}, + ["idle5"] = { "anim@mp_corona_idles@female_b@idle_a", "idle_a", "Idle 5", AnimationOptions = { + EmoteLoop = true, + }}, + ["idle6"] = { "anim@mp_corona_idles@male_c@idle_a", "idle_a", "Idle 6", AnimationOptions = { + EmoteLoop = true, + }}, + ["idle7"] = { "anim@mp_corona_idles@male_d@idle_a", "idle_a", "Idle 7", AnimationOptions = { + EmoteLoop = true, + }}, + ["idledrunk"] = { "random@drunk_driver_1", "drunk_driver_stand_loop_dd1", "Idle Drunk", AnimationOptions = { + EmoteLoop = true, + }}, + ["idledrunk2"] = { "random@drunk_driver_1", "drunk_driver_stand_loop_dd2", "Idle Drunk 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["idledrunk3"] = { "missarmenian2", "standing_idle_loop_drunk", "Idle Drunk 3", AnimationOptions = { + EmoteLoop = true, + }}, + ["airguitar"] = { "anim@mp_player_intcelebrationfemale@air_guitar", "air_guitar", "Air Guitar" }, + ["airsynth"] = { "anim@mp_player_intcelebrationfemale@air_synth", "air_synth", "Air Synth" }, + ["argue"] = { "misscarsteal4@actor", "actor_berating_loop", "Argue", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["argue2"] = { "oddjobs@assassinate@vice@hooker", "argue_a", "Argue 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["bartender"] = { "anim@amb@clubhouse@bar@drink@idle_a", "idle_a_bartender", "Bartender", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["blowkiss"] = { "anim@mp_player_intcelebrationfemale@blow_kiss", "blow_kiss", "Blow Kiss" }, + ["blowkiss2"] = { "anim@mp_player_intselfieblow_kiss", "exit", "Blow Kiss 2", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 2000 + + }}, + ["curtsy"] = { "anim@mp_player_intcelebrationpaired@f_f_sarcastic", "sarcastic_left", "Curtsy" }, + ["bringiton"] = { "misscommon@response", "bring_it_on", "Bring It On", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 3000 + }}, + ["comeatmebro"] = { "mini@triathlon", "want_some_of_this", "Come at me bro", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 2000 + }}, + ["cop2"] = { "anim@amb@nightclub@peds@", "rcmme_amanda1_stand_loop_cop", "Cop 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["cop3"] = { "amb@code_human_police_investigate@idle_a", "idle_b", "Cop 3", AnimationOptions = { + EmoteLoop = true, + }}, + ["crossarms"] = { "amb@world_human_hang_out_street@female_arms_crossed@idle_a", "idle_a", "Crossarms", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["crossarms2"] = { "amb@world_human_hang_out_street@male_c@idle_a", "idle_b", "Crossarms 2", AnimationOptions = { + EmoteMoving = true, + }}, + ["crossarms3"] = { "anim@heists@heist_corona@single_team", "single_team_loop_boss", "Crossarms 3", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["crossarms4"] = { "random@street_race", "_car_b_lookout", "Crossarms 4", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["crossarms5"] = { "anim@amb@nightclub@peds@", "rcmme_amanda1_stand_loop_cop", "Crossarms 5", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["foldarms2"] = { "anim@amb@nightclub@peds@", "rcmme_amanda1_stand_loop_cop", "Fold Arms 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["crossarms6"] = { "random@shop_gunstore", "_idle", "Crossarms 6", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["foldarms"] = { "anim@amb@business@bgen@bgen_no_work@", "stand_phone_phoneputdown_idle_nowork", "Fold Arms", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["crossarmsside"] = { "rcmnigel1a_band_groupies", "base_m2", "Crossarms Side", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["damn"] = { "gestures@m@standing@casual", "gesture_damn", "Damn", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 1000 + }}, + ["damn2"] = { "anim@am_hold_up@male", "shoplift_mid", "Damn 2", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 1000 + }}, + ["pointdown"] = { "gestures@f@standing@casual", "gesture_hand_down", "Point Down", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 1000 + }}, + ["surrender"] = { "random@arrests@busted", "idle_a", "Surrender", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + }}, + ["surrender2"] = { "mp_bank_heist_1", "f_cower_02", "Surrender 2", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + }}, + ["surrender3"] = { "mp_bank_heist_1", "m_cower_01", "Surrender 3", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + }}, + ["surrender4"] = { "mp_bank_heist_1", "m_cower_02", "Surrender 4", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + }}, + ["surrender5"] = { "random@arrests", "kneeling_arrest_idle", "Surrender 5", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + }}, + ["surrender6"] = { "rcmbarry", "m_cower_01", "Surrender 6", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + }}, + ["facepalm2"] = { "anim@mp_player_intcelebrationfemale@face_palm", "face_palm", "Facepalm 2", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 8000 + }}, + ["facepalm"] = { "random@car_thief@agitated@idle_a", "agitated_idle_a", "Facepalm", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 8000 + }}, + ["facepalm3"] = { "missminuteman_1ig_2", "tasered_2", "Facepalm 3", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 8000 + }}, + ["facepalm4"] = { "anim@mp_player_intupperface_palm", "idle_a", "Facepalm 4", AnimationOptions = { + EmoteMoving = true, + EmoteLoop = true, + }}, + ["fallover"] = { "random@drunk_driver_1", "drunk_fall_over", "Fall Over" }, + ["fallover2"] = { "mp_suicide", "pistol", "Fall Over 2" }, + ["fallover3"] = { "mp_suicide", "pill", "Fall Over 3" }, + ["fallover4"] = { "friends@frf@ig_2", "knockout_plyr", "Fall Over 4" }, + ["fallover5"] = { "anim@gangops@hostage@", "victim_fail", "Fall Over 5" }, + ["fallasleep"] = { "mp_sleep", "sleep_loop", "Fall Asleep", AnimationOptions = { + EmoteMoving = true, + EmoteLoop = true, + }}, + ["fightme"] = { "anim@deathmatch_intros@unarmed", "intro_male_unarmed_c", "Fight Me" }, + ["fightme2"] = { "anim@deathmatch_intros@unarmed", "intro_male_unarmed_e", "Fight Me 2" }, + ["finger"] = { "anim@mp_player_intselfiethe_bird", "idle_a", "Finger", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["finger2"] = { "anim@mp_player_intupperfinger", "idle_a_fp", "Finger 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["handshake"] = { "mp_ped_interaction", "handshake_guy_a", "Handshake", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 3000 + }}, + ["handshake2"] = { "mp_ped_interaction", "handshake_guy_b", "Handshake 2", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 3000 + }}, + ["wait"] = { "random@shop_tattoo", "_idle_a", "Wait", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["waitb"] = { "missbigscore2aig_3", "wait_for_van_c", "Wait B", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["waitc"] = { "amb@world_human_hang_out_street@female_hold_arm@idle_a", "idle_a", "Wait C", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["waitd"] = { "amb@world_human_hang_out_street@Female_arm_side@idle_a", "idle_a", "Wait D", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["waite"] = { "missclothing", "idle_storeclerk", "Wait E", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["waitf"] = { "timetable@amanda@ig_2", "ig_2_base_amanda", "Wait F", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["waitg"] = { "rcmnigel1cnmt_1c", "base", "Wait G", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["waith"] = { "rcmjosh1", "idle", "Wait H", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["waiti"] = { "rcmjosh2", "josh_2_intp1_base", "Wait I", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["waitj"] = { "timetable@amanda@ig_3", "ig_3_base_tracy", "Wait J", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["waitk"] = { "misshair_shop@hair_dressers", "keeper_base", "Wait K", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["waitl"] = { "rcmjosh1", "keeper_base", "Wait L", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["waitm"] = { "rcmnigel1a", "base", "Wait M", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["hiking"] = { "move_m@hiking", "idle", "Hiking", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["hug"] = { "mp_ped_interaction", "kisses_guy_a", "Hug" }, + ["hug2"] = { "mp_ped_interaction", "kisses_guy_b", "Hug 2" }, + ["hug3"] = { "mp_ped_interaction", "hugs_guy_a", "Hug 3" }, + ["inspect"] = { "random@train_tracks", "idle_e", "Inspect" }, + ["jazzhands"] = { "anim@mp_player_intcelebrationfemale@jazz_hands", "jazz_hands", "Jazzhands", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 6000, + }}, + ["jog2"] = { "amb@world_human_jog_standing@male@idle_a", "idle_a", "Jog 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["jog3"] = { "amb@world_human_jog_standing@female@idle_a", "idle_a", "Jog 3", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["jog4"] = { "amb@world_human_power_walker@female@idle_a", "idle_a", "Jog 4", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["jog5"] = { "move_m@joy@a", "walk", "Jog 5", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["jumpingjacks"] = { "timetable@reunited@ig_2", "jimmy_getknocked", "Jumping Jacks", AnimationOptions = { + EmoteLoop = true, + }}, + ["kneel2"] = { "rcmextreme3", "idle", "Kneel 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["kneel3"] = { "amb@world_human_bum_wash@male@low@idle_a", "idle_a", "Kneel 3", AnimationOptions = { + EmoteLoop = true, + }}, + ["knock"] = { "timetable@jimmy@doorknock@", "knockdoor_idle", "Knock", AnimationOptions = { + EmoteMoving = true, + EmoteLoop = true, + }}, + ["knock2"] = { "missheistfbi3b_ig7", "lift_fibagent_loop", "Knock 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["knucklecrunch"] = { "anim@mp_player_intcelebrationfemale@knuckle_crunch", "knuckle_crunch", "Knuckle Crunch", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["lean2"] = { "amb@world_human_leaning@female@wall@back@hand_up@idle_a", "idle_a", "Lean 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["lean3"] = { "amb@world_human_leaning@female@wall@back@holding_elbow@idle_a", "idle_a", "Lean 3", AnimationOptions = { + EmoteLoop = true, + }}, + ["lean4"] = { "amb@world_human_leaning@male@wall@back@foot_up@idle_a", "idle_a", "Lean 4", AnimationOptions = { + EmoteLoop = true, + }}, + ["lean5"] = { "amb@world_human_leaning@male@wall@back@hands_together@idle_b", "idle_b", "Lean 5", AnimationOptions = { + EmoteLoop = true, + }}, + ["leanflirt"] = { "random@street_race", "_car_a_flirt_girl", "Lean Flirt", AnimationOptions = { + EmoteLoop = true, + }}, + ["leanbar2"] = { "amb@prop_human_bum_shopping_cart@male@idle_a", "idle_c", "Lean Bar 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["leanbar3"] = { "anim@amb@nightclub@lazlow@ig1_vip@", "clubvip_base_laz", "Lean Bar 3", AnimationOptions = { + EmoteLoop = true, + }}, + ["leanbar4"] = { "anim@heists@prison_heist", "ped_b_loop_a", "Lean Bar 4", AnimationOptions = { + EmoteLoop = true, + }}, + ["leanhigh"] = { "anim@mp_ferris_wheel", "idle_a_player_one", "Lean High", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["leanhigh2"] = { "anim@mp_ferris_wheel", "idle_a_player_two", "Lean High 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["leanside"] = { "timetable@mime@01_gc", "idle_a", "Leanside", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["leanside2"] = { "misscarstealfinale", "packer_idle_1_trevor", "Leanside 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["leanside3"] = { "misscarstealfinalecar_5_ig_1", "waitloop_lamar", "Leanside 3", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["leanside4"] = { "misscarstealfinalecar_5_ig_1", "waitloop_lamar", "Leanside 4", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = false, + }}, + ["leanside5"] = { "rcmjosh2", "josh_2_intp1_base", "Leanside 5", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = false, + }}, + ["me"] = { "gestures@f@standing@casual", "gesture_me_hard", "Me", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 1000 + }}, + ["mechanic"] = { "mini@repair", "fixing_a_ped", "Mechanic", AnimationOptions = { + EmoteLoop = true, + }}, + ["mechanic2"] = { "mini@repair", "fixing_a_player", "Mechanic 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["mechanic3"] = { "amb@world_human_vehicle_mechanic@male@base", "base", "Mechanic 3", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = false, + }}, + ["mechanic4"] = { "anim@amb@clubhouse@tutorial@bkr_tut_ig3@", "machinic_loop_mechandplayer", "Mechanic 4", AnimationOptions = { + EmoteLoop = true, + }}, + ["mechanic5"] = { "amb@prop_human_movie_bulb@idle_a", "idle_b", "Mechanic 5", AnimationOptions = { + EmoteLoop = true, + }}, + ["medic2"] = { "amb@medic@standing@tendtodead@base", "base", "Medic 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["meditate"] = { "rcmcollect_paperleadinout@", "meditiate_idle", "Meditiate", AnimationOptions = { -- CHANGE ME + EmoteLoop = true, + }}, + ["meditate2"] = { "rcmepsilonism3", "ep_3_rcm_marnie_meditating", "Meditiate 2", AnimationOptions = { -- CHANGE ME + EmoteLoop = true, + }}, + ["meditate3"] = { "rcmepsilonism3", "base_loop", "Meditiate 3", AnimationOptions = { -- CHANGE ME + EmoteLoop = true, + }}, + ["metal"] = { "anim@mp_player_intincarrockstd@ps@", "idle_a", "Metal", AnimationOptions = { -- CHANGE ME + EmoteLoop = true, + EmoteMoving = true, + }}, + ["no"] = { "anim@heists@ornate_bank@chat_manager", "fail", "No", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["no2"] = { "mp_player_int_upper_nod", "mp_player_int_nod_no", "No 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["nosepick"] = { "anim@mp_player_intcelebrationfemale@nose_pick", "nose_pick", "Nose Pick", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["noway"] = { "gestures@m@standing@casual", "gesture_no_way", "No Way", AnimationOptions = { + EmoteDuration = 1500, + EmoteMoving = true, + }}, + ["ok"] = { "anim@mp_player_intselfiedock", "idle_a", "OK", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["dock"] = { "anim@mp_player_intincardockstd@rds@", "idle_a", "Dock", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["outofbreath"] = { "re@construction", "out_of_breath", "Out of Breath", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["pickup"] = { "random@domestic", "pickup_low", "Pickup" }, + ["push"] = { "missfinale_c2ig_11", "pushcar_offcliff_f", "Push", AnimationOptions = { + EmoteLoop = true, + }}, + ["push2"] = { "missfinale_c2ig_11", "pushcar_offcliff_m", "Push 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["point"] = { "gestures@f@standing@casual", "gesture_point", "Point", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["pushup"] = { "amb@world_human_push_ups@male@idle_a", "idle_d", "Pushup", AnimationOptions = { + EmoteLoop = true, + }}, + ["countdown"] = { "random@street_race", "grid_girl_race_start", "Countdown", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["pointright"] = { "mp_gun_shop_tut", "indicate_right", "Point Right", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["salute"] = { "anim@mp_player_intincarsalutestd@ds@", "idle_a", "Salute", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["salute2"] = { "anim@mp_player_intincarsalutestd@ps@", "idle_a", "Salute 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["salute3"] = { "anim@mp_player_intuppersalute", "idle_a", "Salute 3", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["scared"] = { "random@domestic", "f_distressed_loop", "Scared", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["scared2"] = { "random@homelandsecurity", "knees_loop_girl", "Scared 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["screwyou"] = { "misscommon@response", "screw_you", "Screw You", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["shakeoff"] = { "move_m@_idles@shake_off", "shakeoff_1", "Shake Off", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 3500, + }}, + ["shot"] = { "random@dealgonewrong", "idle_a", "Shot", AnimationOptions = { + EmoteLoop = true, + }}, + ["sleep"] = { "timetable@tracy@sleep@", "idle_c", "Sleep", AnimationOptions = { + EmoteLoop = true, + }}, + ["shrug"] = { "gestures@f@standing@casual", "gesture_shrug_hard", "Shrug", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 1000, + }}, + ["shrug2"] = { "gestures@m@standing@casual", "gesture_shrug_hard", "Shrug 2", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 1000, + }}, + ["sit"] = { "anim@amb@business@bgen@bgen_no_work@", "sit_phone_phoneputdown_idle_nowork", "Sit", AnimationOptions = { + EmoteLoop = true, + }}, + ["sit2"] = { "rcm_barry3", "barry_3_sit_loop", "Sit 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["sit3"] = { "amb@world_human_picnic@male@idle_a", "idle_a", "Sit 3", AnimationOptions = { + EmoteLoop = true, + }}, + ["sit4"] = { "amb@world_human_picnic@female@idle_a", "idle_a", "Sit 4", AnimationOptions = { + EmoteLoop = true, + }}, + ["sit5"] = { "anim@heists@fleeca_bank@ig_7_jetski_owner", "owner_idle", "Sit 5", AnimationOptions = { + EmoteLoop = true, + }}, + ["sit6"] = { "timetable@jimmy@mics3_ig_15@", "idle_a_jimmy", "Sit 6", AnimationOptions = { + EmoteLoop = true, + }}, + ["sit7"] = { "anim@amb@nightclub@lazlow@lo_alone@", "lowalone_base_laz", "Sit 7", AnimationOptions = { + EmoteLoop = true, + }}, + ["sit8"] = { "timetable@jimmy@mics3_ig_15@", "mics3_15_base_jimmy", "Sit 8", AnimationOptions = { + EmoteLoop = true, + }}, + ["sit9"] = { "amb@world_human_stupor@male@idle_a", "idle_a", "Sit 9", AnimationOptions = { + EmoteLoop = true, + }}, + ["sitlow"] = { "anim@veh@lowrider@std@ds@arm@base", "sit_low_lowdoor", "Sit Lowrider", AnimationOptions = { + EmoteLoop = true, + }}, + ["sitlean"] = { "timetable@tracy@ig_14@", "ig_14_base_tracy", "Sit Lean", AnimationOptions = { + EmoteLoop = true, + }}, + ["sitsad"] = { "anim@amb@business@bgen@bgen_no_work@", "sit_phone_phoneputdown_sleeping-noworkfemale", "Sit Sad", AnimationOptions = { + EmoteLoop = true, + }}, + ["sitscared"] = { "anim@heists@ornate_bank@hostages@hit", "hit_loop_ped_b", "Sit Scared", AnimationOptions = { + EmoteLoop = true, + }}, + ["sitscared2"] = { "anim@heists@ornate_bank@hostages@ped_c@", "flinch_loop", "Sit Scared 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["sitscared3"] = { "anim@heists@ornate_bank@hostages@ped_e@", "flinch_loop", "Sit Scared 3", AnimationOptions = { + EmoteLoop = true, + }}, + ["sitdrunk"] = { "timetable@amanda@drunk@base", "base", "Sit Drunk", AnimationOptions = { + EmoteLoop = true, + }}, + ["sitchair2"] = { "timetable@ron@ig_5_p3", "ig_5_p3_base", "Sit Chair 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["sitchair3"] = { "timetable@reunited@ig_10", "base_amanda", "Sit Chair 3 (Female)", AnimationOptions = { + EmoteLoop = true, + }}, + ["sitchair4"] = { "timetable@ron@ig_3_couch", "base", "Sit Chair 4", AnimationOptions = { + EmoteLoop = true, + }}, + ["sitchair5"] = { "timetable@jimmy@mics3_ig_15@", "mics3_15_base_tracy", "Sit Chair Legs Crossed", AnimationOptions = { + EmoteLoop = true, + }}, + ["sitchair6"] = { "timetable@maid@couch@", "base", "Sit Chair Lean Back", AnimationOptions = { + EmoteLoop = true, + }}, + ["sitchairside"] = { "timetable@ron@ron_ig_2_alt1", "ig_2_alt1_base", "Sit Chair Side", AnimationOptions = { + EmoteLoop = true, + }}, + ["situp"] = { "amb@world_human_sit_ups@male@idle_a", "idle_a", "Sit Up", AnimationOptions = { + EmoteLoop = true, + }}, + ["clapangry"] = { "anim@arena@celeb@flat@solo@no_props@", "angry_clap_a_player_a", "Clap Angry", AnimationOptions = { + EmoteLoop = true, + }}, + ["slowclap3"] = { "anim@mp_player_intupperslow_clap", "idle_a", "Slow Clap 3", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["clap"] = { "amb@world_human_cheering@male_a", "base", "Clap", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["slowclap"] = { "anim@mp_player_intcelebrationfemale@slow_clap", "slow_clap", "Slow Clap", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["slowclap2"] = { "anim@mp_player_intcelebrationmale@slow_clap", "slow_clap", "Slow Clap 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["smell"] = { "move_p_m_two_idles@generic", "fidget_sniff_fingers", "Smell", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["stickup"] = { "random@countryside_gang_fight", "biker_02_stickup_loop", "Stick Up", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["stumble"] = { "misscarsteal4@actor", "stumble", "Stumble", AnimationOptions = { + EmoteLoop = true, + }}, + ["stunned"] = { "stungun@standing", "damage", "Stunned", AnimationOptions = { + EmoteLoop = true, + }}, + ["sunbathe"] = { "amb@world_human_sunbathe@male@back@base", "base", "Sunbathe", AnimationOptions = { + EmoteLoop = true, + }}, + ["sunbathe2"] = { "amb@world_human_sunbathe@female@back@base", "base", "Sunbathe 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["t"] = { "missfam5_yoga", "a2_pose", "T", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["t2"] = { "mp_sleep", "bind_pose_180", "T 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["think5"] = { "mp_cp_welcome_tutthink", "b_think", "Think 5", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 2000, + }}, + ["think"] = { "misscarsteal4@aliens", "rehearsal_base_idle_director", "Think", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["think3"] = { "timetable@tracy@ig_8@base", "base", "Think 3", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + + ["think2"] = { "missheist_jewelleadinout", "jh_int_outro_loop_a", "Think 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["thumbsup3"] = { "anim@mp_player_intincarthumbs_uplow@ds@", "enter", "Thumbs Up 3", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 3000, + }}, + ["thumbsup2"] = { "anim@mp_player_intselfiethumbs_up", "idle_a", "Thumbs Up 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["thumbsup"] = { "anim@mp_player_intupperthumbs_up", "idle_a", "Thumbs Up", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["type"] = { "anim@heists@prison_heiststation@cop_reactions", "cop_b_idle", "Type", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["type2"] = { "anim@heists@prison_heistig1_p1_guard_checks_bus", "loop", "Type 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["type3"] = { "mp_prison_break", "hack_loop", "Type 3", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["type4"] = { "mp_fbi_heist", "loop", "Type 4", AnimationOptions = { + EmoteLoop = true, + }}, + ["warmth"] = { "amb@world_human_stand_fire@male@idle_a", "idle_a", "Warmth", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["wave4"] = { "random@mugging5", "001445_01_gangintimidation_1_female_idle_b", "Wave 4", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 3000, + }}, + ["wave2"] = { "anim@mp_player_intcelebrationfemale@wave", "wave", "Wave 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["wave3"] = { "friends@fra@ig_1", "over_here_idle_a", "Wave 3", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["wave"] = { "friends@frj@ig_1", "wave_a", "Wave", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["wave5"] = { "friends@frj@ig_1", "wave_b", "Wave 5", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["wave6"] = { "friends@frj@ig_1", "wave_c", "Wave 6", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["wave7"] = { "friends@frj@ig_1", "wave_d", "Wave 7", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["wave8"] = { "friends@frj@ig_1", "wave_e", "Wave 8", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["wave9"] = { "gestures@m@standing@casual", "gesture_hello", "Wave 9", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["whistle"] = { "taxi_hail", "hail_taxi", "Whistle", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 1300, + }}, + ["whistle2"] = { "rcmnigel1c", "hailing_whistle_waive_a", "Whistle 2", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 2000, + }}, + ["yeah"] = { "anim@mp_player_intupperair_shagging", "idle_a", "Yeah", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["lift"] = { "random@hitch_lift", "idle_f", "Lift", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["lol"] = { "anim@arena@celeb@flat@paired@no_props@", "laugh_a_player_b", "LOL", AnimationOptions = { + EmoteLoop = true, + }}, + ["lol2"] = { "anim@arena@celeb@flat@solo@no_props@", "giggle_a_player_b", "LOL 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["statue2"] = { "fra_0_int-1", "cs_lamardavis_dual-1", "Statue 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["statue3"] = { "club_intro2-0", "csb_englishdave_dual-0", "Statue 3", AnimationOptions = { + EmoteLoop = true, + }}, + ["gangsign"] = { "mp_player_int_uppergang_sign_a", "mp_player_int_gang_sign_a", "Gang Sign", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["gangsign2"] = { "mp_player_int_uppergang_sign_b", "mp_player_int_gang_sign_b", "Gang Sign 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["passout"] = { "missarmenian2", "drunk_loop", "Passout", AnimationOptions = { + EmoteLoop = true, + }}, + ["passout2"] = { "missarmenian2", "corpse_search_exit_ped", "Passout 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["passout3"] = { "anim@gangops@morgue@table@", "body_search", "Passout 3", AnimationOptions = { + EmoteLoop = true, + }}, + ["passout4"] = { "mini@cpr@char_b@cpr_def", "cpr_pumpchest_idle", "Passout 4", AnimationOptions = { + EmoteLoop = true, + }}, + ["passout5"] = { "random@mugging4", "flee_backward_loop_shopkeeper", "Passout 5", AnimationOptions = { + EmoteLoop = true, + }}, + ["petting"] = { "creatures@rottweiler@tricks@", "petting_franklin", "Petting", AnimationOptions = { + EmoteLoop = true, + }}, + ["crawl"] = { "move_injured_ground", "front_loop", "Crawl", AnimationOptions = { + EmoteLoop = true, + }}, + ["flip2"] = { "anim@arena@celeb@flat@solo@no_props@", "cap_a_player_a", "Flip 2" }, + ["flip"] = { "anim@arena@celeb@flat@solo@no_props@", "flip_a_player_a", "Flip" }, + ["slide"] = { "anim@arena@celeb@flat@solo@no_props@", "slide_a_player_a", "Slide" }, + ["slide2"] = { "anim@arena@celeb@flat@solo@no_props@", "slide_b_player_a", "Slide 2" }, + ["slide3"] = { "anim@arena@celeb@flat@solo@no_props@", "slide_c_player_a", "Slide 3" }, + ["slugger"] = { "anim@arena@celeb@flat@solo@no_props@", "slugger_a_player_a", "Slugger" }, + ["flipoff"] = { "anim@arena@celeb@podium@no_prop@", "flip_off_a_1st", "Flip Off", AnimationOptions = { + EmoteMoving = true, + }}, + ["flipoff2"] = { "anim@arena@celeb@podium@no_prop@", "flip_off_c_1st", "Flip Off 2", AnimationOptions = { + EmoteMoving = true, + }}, + ["bow"] = { "anim@arena@celeb@podium@no_prop@", "regal_c_1st", "Bow", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["bow2"] = { "anim@arena@celeb@podium@no_prop@", "regal_a_1st", "Bow 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["keyfob"] = { "anim@mp_player_intmenu@key_fob@", "fob_click", "Key Fob", AnimationOptions = { + EmoteLoop = false, + EmoteMoving = true, + EmoteDuration = 1000, + }}, + ["reaching"] = { "move_m@intimidation@cop@unarmed", "idle", "Reaching", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["slap"] = { "melee@unarmed@streamed_variations", "plyr_takedown_front_slap", "Slap", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + EmoteDuration = 2000, + }}, + ["headbutt"] = { "melee@unarmed@streamed_variations", "plyr_takedown_front_headbutt", "Headbutt" }, + ["fishdance"] = { "anim@mp_player_intupperfind_the_fish", "idle_a", "Fish Dance", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["peace"] = { "mp_player_int_upperpeace_sign", "mp_player_int_peace_sign", "Peace", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["peace2"] = { "anim@mp_player_intupperpeace", "idle_a", "Peace 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["peace3"] = { "anim@mp_player_intupperpeace", "idle_a_fp", "Peace 3", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["peace4"] = { "anim@mp_player_intincarpeacestd@ds@", "idle_a", "Peace 4", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["peace5"] = { "anim@mp_player_intincarpeacestd@ds@", "idle_a_fp", "Peace 5", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["peace6"] = { "anim@mp_player_intincarpeacebodhi@ds@", "idle_a", "Peace 6", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["peace7"] = { "anim@mp_player_intincarpeacebodhi@ds@", "idle_a_fp", "Peace 7", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["peacef"] = { "anim@mp_player_intcelebrationfemale@peace", "peace", "Peace Female", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["cpr"] = { "mini@cpr@char_a@cpr_str", "cpr_pumpchest", "CPR", AnimationOptions = { + EmoteLoop = true, + }}, + ["cpr2"] = { "mini@cpr@char_a@cpr_str", "cpr_pumpchest", "CPR 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["ledge"] = { "missfbi1", "ledge_loop", "Ledge", AnimationOptions = { + EmoteLoop = true, + }}, + ["airplane"] = { "missfbi1", "ledge_loop", "Air Plane", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["peek"] = { "random@paparazzi@peek", "left_peek_a", "Peek", AnimationOptions = { + EmoteLoop = true, + }}, + ["cough"] = { "timetable@gardener@smoking_joint", "idle_cough", "Cough", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["stretch"] = { "mini@triathlon", "idle_e", "Stretch", AnimationOptions = { + EmoteLoop = true, + }}, + ["stretch2"] = { "mini@triathlon", "idle_f", "Stretch 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["stretch3"] = { "mini@triathlon", "idle_d", "Stretch 3", AnimationOptions = { + EmoteLoop = true, + }}, + ["stretch4"] = { "rcmfanatic1maryann_stretchidle_b", "idle_e", "Stretch 4", AnimationOptions = { + EmoteLoop = true, + }}, + ["celebrate"] = { "rcmfanatic1celebrate", "celebrate", "Celebrate", AnimationOptions = { + EmoteLoop = true, + }}, + ["punching"] = { "rcmextreme2", "loop_punching", "Punching", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["superhero"] = { "rcmbarry", "base", "Superhero", AnimationOptions = { + EmoteLoop = true, + }}, + ["superhero2"] = { "rcmbarry", "base", "Superhero 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["mindcontrol"] = { "rcmbarry", "mind_control_b_loop", "Mind Control", AnimationOptions = { + EmoteLoop = true, + }}, + ["mindcontrol2"] = { "rcmbarry", "bar_1_attack_idle_aln", "Mind Control 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["clown"] = { "rcm_barry2", "clown_idle_0", "Clown", AnimationOptions = { + EmoteLoop = true, + }}, + ["clown2"] = { "rcm_barry2", "clown_idle_1", "Clown 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["clown3"] = { "rcm_barry2", "clown_idle_2", "Clown 3", AnimationOptions = { + EmoteLoop = true, + }}, + ["clown4"] = { "rcm_barry2", "clown_idle_3", "Clown 4", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["clown5"] = { "rcm_barry2", "clown_idle_6", "Clown 5", AnimationOptions = { + EmoteLoop = true, + }}, + ["tryclothes"] = { "mp_clothing@female@trousers", "try_trousers_neutral_a", "Try Clothes", AnimationOptions = { + EmoteLoop = true, + }}, + ["tryclothes2"] = { "mp_clothing@female@shirt", "try_shirt_positive_a", "Try Clothes 2", AnimationOptions = { + EmoteLoop = true, + }}, + ["tryclothes3"] = { "mp_clothing@female@shoes", "try_shoes_positive_a", "Try Clothes 3", AnimationOptions = { + EmoteLoop = true, + }}, + ["nervous2"] = { "mp_missheist_countrybank@nervous", "nervous_idle", "Nervous 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["nervous"] = { "amb@world_human_bum_standing@twitchy@idle_a", "idle_c", "Nervous", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["nervous3"] = { "rcmme_tracey1", "nervous_loop", "Nervous 3", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["uncuff"] = { "mp_arresting", "a_uncuff", "Uncuff", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["namaste"] = { "timetable@amanda@ig_4", "ig_4_base", "Namaste", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["threaten"] = { "random@atmrobberygen", "b_atm_mugging", "Threaten", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["radio"] = { "random@arrests", "generic_radio_chatter", "Radio", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["pull"] = { "random@mugging4", "struggle_loop_b_thief", "Pull", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["bird"] = { "random@peyote@bird", "wakeup", "Bird" }, + ["chicken"] = { "random@peyote@chicken", "wakeup", "Chicken", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["bark"] = { "random@peyote@dog", "wakeup", "Bark" }, + ["rabbit"] = { "random@peyote@rabbit", "wakeup", "Rabbit" }, + ["spiderman"] = { "missexile3", "ex03_train_roof_idle", "Spider-Man", AnimationOptions = { + EmoteLoop = true, + }}, + ["boi"] = { "special_ped@jane@monologue_5@monologue_5c", "brotheradrianhasshown_2", "BOI", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 3000, + }}, + ["adjust"] = { "missmic4", "michael_tux_fidget", "Adjust", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 4000, + }}, + ["handsup"] = { "missminuteman_1ig_2", "handsup_base", "Hands Up", AnimationOptions = { + EmoteMoving = true, + EmoteLoop = true, + }}, + ["handsup2"] = { "anim@mp_player_intuppersurrender", "idle_a_fp", "Hands Up 2", AnimationOptions = { + EmoteMoving = true, + EmoteLoop = true, + }}, + ["valet"] = { "anim@amb@casino@valet_scenario@pose_a@", "base_a_m_y_vinewood_01", "Valet", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = false, + }}, + ["valet2"] = { "anim@amb@casino@valet_scenario@pose_b@", "base_a_m_y_vinewood_01", "Valet 2", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = false, + }}, + ["valet3"] = { "anim@amb@casino@valet_scenario@pose_d@", "base_a_m_y_vinewood_01", "Valet 3", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["tighten"] = { "timetable@denice@ig_1", "idle_b", "Tigten (Yoga)", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + }}, + ["fspose"] = { "missfam5_yoga", "c2_pose", "F Sex Pose", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + }}, + ["fspose2"] = { "missfam5_yoga", "c6_pose", "F Sex Pose 2", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + }}, + ["fspose4"] = { "anim@amb@carmeet@checkout_car@", "female_c_idle_d", "F Sex Pose 4", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + }}, + ["showerf"] = { "mp_safehouseshower@female@", "shower_enter_into_idle", "Shower Enter Female", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + }}, + ["showerf2"] = { "mp_safehouseshower@female@", "shower_idle_a", "Shower Female", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + }}, + ["showerf3"] = { "mp_safehouseshower@female@", "shower_idle_b", "Shower Female 2", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + }}, + ["showerm"] = { "mp_safehouseshower@male@", "male_shower_idle_a", "Shower Enter Male", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + }}, + ["showerm2"] = { "mp_safehouseshower@male@", "male_shower_idle_b", "Shower Male 2", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + }}, + ["showerm3"] = { "mp_safehouseshower@male@", "male_shower_idle_c", "Shower Male 3", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + }}, + ["showerm4"] = { "mp_safehouseshower@male@", "male_shower_idle_d", "Shower Male 4", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + }}, + ["picklock"] = { "missheistfbisetup1", "hassle_intro_loop_f", "Picklock", AnimationOptions = { + EmoteMoving = true, + EmoteLoop = true, + }}, + ["cleanhands"] = { "missheist_agency3aig_23", "urinal_sink_loop", "Clean Them Filthy Hands", AnimationOptions = { + EmoteMoving = true, + EmoteLoop = true, + }}, + ["cleanface"] = { "switch@michael@wash_face", "loop_michael", "Clean Your Face", AnimationOptions = { + EmoteMoving = true, + EmoteLoop = true, + }}, + ["buzz"] = { "anim@apt_trans@buzzer", "buzz_reg", "Buzz Door", AnimationOptions = { + EmoteLoop = false, + EmoteMoving = false, + }}, + ["piss"] = { "missbigscore1switch_trevor_piss", "piss_loop", "Piss (Male)", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + }}, + ["grieve"] = { "anim@miss@low@fin@vagos@", "idle_ped05", "Grieve The Dead", AnimationOptions = { + EmoteMoving = true, + EmoteLoop = true, + }}, + ["respect"] = { "anim@mp_player_intcelebrationmale@respect", "respect", "Respect Male", AnimationOptions = { + EmoteMoving = true, + EmoteLoop = false, + }}, + ["respectf"] = { "anim@mp_player_intcelebrationfemale@respect", "respect", "Respect Female", AnimationOptions = { + EmoteMoving = true, + EmoteLoop = false, + }}, + ["bang"] = { "anim@mp_player_intcelebrationfemale@bang_bang", "bang_bang", "Bang Bang ", AnimationOptions = { + EmoteMoving = false, + EmoteDuration = 2500, + }}, + ["checkcar"] = { "anim@amb@carmeet@checkout_car@male_a@idles", "idle_b", "Check Out · Female ", AnimationOptions = { + EmoteLoop = true, + }}, + ["checkcar2"] = { "anim@amb@carmeet@checkout_car@male_c@idles", "idle_a", "Check Out 2 · Male ", AnimationOptions = { + EmoteLoop = true, + }}, + ["showboobs"] = { "mini@strip_club@backroom@", "stripper_b_backroom_idle_b", "Show Boobs ", AnimationOptions = { + EmoteMoving = false, + EmoteDuration = 6000, + }}, + ["showboobs2"] = { "mini@strip_club@idles@stripper", "stripper_idle_05", "Show Boobs 2", AnimationOptions = { + EmoteMoving = false, + EmoteDuration = 6000, + }}, + ["watchstripper"] = { "amb@world_human_strip_watch_stand@male_c@idle_a", "idle_b", "Watch Stripper ", AnimationOptions = { + EmoteMoving = false, + EmoteDuration = 6000, + }}, + ["hhands"] = { "misssnowie@hearthands", "base", "Heart Hands", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + + + + ----------------------------------------------------------------------------------------------------------- + ------ The male and female 'interaction menu' emotes from GTA Online can be found under the following animation directories: + ------ + ------ Male: anim@mp_player_intcelebrationmale + ------ + ------ Female: anim@mp_player_intcelebrationfemale + + ----------------------------------------------------------------------------------------------------------- + + + + + ----------------------------------------------------------------------------------------------------------- + ------ These are Scenarios, some of these dont work on women and some other issues, but still good to have. + ----------------------------------------------------------------------------------------------------------- + + + ["atm"] = { "Scenario", "PROP_HUMAN_ATM", "ATM" }, + ["bbq"] = { "MaleScenario", "PROP_HUMAN_BBQ", "BBQ" }, + ["bumbin"] = { "Scenario", "PROP_HUMAN_BUM_BIN", "Bum Bin" }, + ["bumsleep"] = { "Scenario", "WORLD_HUMAN_BUM_SLUMPED", "Bum Sleep" }, + ["cheer"] = { "Scenario", "WORLD_HUMAN_CHEERING", "Cheer" }, + ["chinup"] = { "Scenario", "PROP_HUMAN_MUSCLE_CHIN_UPS", "Chinup" }, + ["cop"] = { "Scenario", "WORLD_HUMAN_COP_IDLES", "Cop" }, + ["drill"] = { "Scenario", "WORLD_HUMAN_CONST_DRILL", "Construction Drilling" }, + ["filmshocking"] = { "Scenario", "WORLD_HUMAN_MOBILE_FILM_SHOCKING", "Film Shocking" }, + ["flex"] = { "Scenario", "WORLD_HUMAN_MUSCLE_FLEX", "Flex" }, + ["guard"] = { "Scenario", "WORLD_HUMAN_GUARD_STAND", "Guard" }, + ["garden"] = { "Scenario", "WORLD_HUMAN_GARDENER_PLANT", "Gardening" }, + ["hammer"] = { "Scenario", "WORLD_HUMAN_HAMMERING", "Hammer" }, + ["hangout"] = { "Scenario", "WORLD_HUMAN_HANG_OUT_STREET", "Hangout" }, + ["impatient"] = { "Scenario", "WORLD_HUMAN_STAND_IMPATIENT", "Impatient" }, + ["janitor"] = { "Scenario", "WORLD_HUMAN_JANITOR", "Janitor" }, + ["jog"] = { "Scenario", "WORLD_HUMAN_JOG_STANDING", "Jog" }, + ["kneel"] = { "Scenario", "CODE_HUMAN_MEDIC_KNEEL", "Kneel" }, + ["lean"] = { "Scenario", "WORLD_HUMAN_LEANING", "Lean" }, + ["leanbar"] = { "Scenario", "PROP_HUMAN_BUM_SHOPPING_CART", "Lean Bar" }, + ["lookout"] = { "Scenario", "CODE_HUMAN_CROSS_ROAD_WAIT", "Lookout" }, + ["maid"] = { "Scenario", "WORLD_HUMAN_MAID_CLEAN", "Maid" }, + ["medic"] = { "Scenario", "CODE_HUMAN_MEDIC_TEND_TO_DEAD", "Medic" }, + ["musician"] = { "MaleScenario", "WORLD_HUMAN_MUSICIAN", "Musician" }, -- Ambient Music Doesn't Seem To Work For Female, Hence It's Male Only + ["notepad2"] = { "Scenario", "CODE_HUMAN_MEDIC_TIME_OF_DEATH", "Notepad 2" }, + ["parkingmeter"] = { "Scenario", "PROP_HUMAN_PARKING_METER", "Parking Meter" }, + ["party"] = { "Scenario", "WORLD_HUMAN_PARTYING", "Party" }, + ["texting"] = { "Scenario", "WORLD_HUMAN_STAND_MOBILE", "Texting" }, + ["prosthigh"] = { "Scenario", "WORLD_HUMAN_PROSTITUTE_HIGH_CLASS", "Prostitue High" }, + ["prostlow"] = { "Scenario", "WORLD_HUMAN_PROSTITUTE_LOW_CLASS", "Prostitue Low" }, + ["puddle"] = { "Scenario", "WORLD_HUMAN_BUM_WASH", "Puddle" }, + ["record"] = { "Scenario", "WORLD_HUMAN_MOBILE_FILM_SHOCKING", "Record" }, + + + -- Sitchair is a litte special, since you want the player to be seated correctly. + -- So we set it as "ScenarioObject" and do TaskStartScenarioAtPosition() instead of "AtPlace" + + ["sitchair"] = { "ScenarioObject", "PROP_HUMAN_SEAT_CHAIR_MP_PLAYER", "Sit Chair" }, + ["smoke"] = { "Scenario", "WORLD_HUMAN_SMOKING", "Smoke" }, + ["smokeweed"] = { "MaleScenario", "WORLD_HUMAN_DRUG_DEALER", "Smoke Weed (Male)" }, -- Male + ["smokepot"] = { "Scenario", "WORLD_HUMAN_SMOKING_POT", "Smoke Weed (Female)" }, -- Female + ["statue"] = { "Scenario", "WORLD_HUMAN_HUMAN_STATUE", "Statue" }, + ["sunbathe3"] = { "Scenario", "WORLD_HUMAN_SUNBATHE", "Sunbathe 3" }, + ["sunbatheback"] = { "Scenario", "WORLD_HUMAN_SUNBATHE_BACK", "Sunbathe Back" }, + ["weld"] = { "Scenario", "WORLD_HUMAN_WELDING", "Weld" }, + ["windowshop"] = { "Scenario", "WORLD_HUMAN_WINDOW_SHOP_BROWSE", "Window Shop" }, + ["yoga"] = { "Scenario", "WORLD_HUMAN_YOGA", "Yoga" }, + + + -- CASINO DLC EMOTES (Requires gamebuild 2060 or higher) + + + ["karate"] = { "anim@mp_player_intcelebrationfemale@karate_chops", "karate_chops", "Karate" }, + ["karate2"] = { "anim@mp_player_intcelebrationmale@karate_chops", "karate_chops", "Karate 2" }, + ["cutthroat"] = { "anim@mp_player_intcelebrationmale@cut_throat", "cut_throat", "Cut Throat" }, + ["cutthroat2"] = { "anim@mp_player_intcelebrationfemale@cut_throat", "cut_throat", "Cut Throat 2" }, + ["mindblown"] = { "anim@mp_player_intcelebrationmale@mind_blown", "mind_blown", "Mind Blown", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 4000 + }}, + ["mindblown2"] = { "anim@mp_player_intcelebrationfemale@mind_blown", "mind_blown", "Mind Blown 2", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 4000 + }}, + ["boxing"] = { "anim@mp_player_intcelebrationmale@shadow_boxing", "shadow_boxing", "Boxing", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 4000 + }}, + ["boxing2"] = { "anim@mp_player_intcelebrationfemale@shadow_boxing", "shadow_boxing", "Boxing 2", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 4000 + }}, + ["stink"] = { "anim@mp_player_intcelebrationfemale@stinker", "stinker", "Stink", AnimationOptions = { + EmoteMoving = true, + EmoteLoop = true + }}, + ["think4"] = { "anim@amb@casino@hangout@ped_male@stand@02b@idles", "idle_a", "Think 4", AnimationOptions = { + EmoteLoop = true, + EmoteMoving = true, + }}, + ["adjusttie"] = { "clothingtie", "try_tie_positive_a", "Adjust Tie", AnimationOptions = { + EmoteMoving = true, + EmoteDuration = 5000 + }}, +} + + +--- EMOTES WITH 1 OR 2 PROPS --- + +DP.PropEmotes = { + ["umbrella"] = { "amb@world_human_drinking@coffee@male@base", "base", "Umbrella", AnimationOptions = { + Prop = "p_amb_brolly_01", + PropBone = 57005, + PropPlacement = { 0.15, 0.005, 0.0, 87.0, -20.0, 180.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ['umbrella2'] = { 'rcmnigel1d', 'base_club_shoulder', 'Umbrella 2', AnimationOptions = { + Prop = 'p_amb_brolly_01', + PropBone = 28422, + PropPlacement = { 0.0700, 0.0100, 0.1100, 2.3402393, -150.9605721, 57.3374916 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + + ----------------------------------------------------------------------------------------------------- + ------ This is an example of an emote with 2 props, pretty simple! ---------------------------------- + ----------------------------------------------------------------------------------------------------- + + ["notepad"] = { "missheistdockssetup1clipboard@base", "base", "Notepad", AnimationOptions = { + Prop = 'prop_notepad_01', + PropBone = 18905, + PropPlacement = { 0.1, 0.02, 0.05, 10.0, 0.0, 0.0 }, + SecondProp = 'prop_pencil_01', + SecondPropBone = 58866, + SecondPropPlacement = { 0.11, -0.02, 0.001, -120.0, 0.0, 0.0 }, + -- EmoteLoop is used for emotes that should loop, its as simple as that. + -- Then EmoteMoving is used for emotes that should only play on the upperbody. + -- The code then checks both values and sets the MovementType to the correct one + EmoteLoop = true, + EmoteMoving = true, + }}, + ["box"] = { "anim@heists@box_carry@", "idle", "Box", AnimationOptions = { + Prop = "hei_prop_heist_box", + PropBone = 60309, + PropPlacement = { 0.025, 0.08, 0.255, -145.0, 290.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["rose"] = { "anim@heists@humane_labs@finale@keycards", "ped_a_enter_loop", "Rose", AnimationOptions = { + Prop = "prop_single_rose", + PropBone = 18905, + PropPlacement = { 0.13, 0.15, 0.0, -100.0, 0.0, -20.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["smoke2"] = { "amb@world_human_aa_smoke@male@idle_a", "idle_c", "Smoke 2", AnimationOptions = { + Prop = 'prop_cs_ciggy_01', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["smoke3"] = { "amb@world_human_aa_smoke@male@idle_a", "idle_b", "Smoke 3", AnimationOptions = { + Prop = 'prop_cs_ciggy_01', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["smoke4"] = { "amb@world_human_smoking@female@idle_a", "idle_b", "Smoke 4", AnimationOptions = { + Prop = 'prop_cs_ciggy_01', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["bong"] = { "anim@safehouse@bong", "bong_stage3", "Bong", AnimationOptions = { + Prop = 'hei_heist_sh_bong_01', + PropBone = 18905, + PropPlacement = { 0.10, -0.25, 0.0, 95.0, 190.0, 180.0 }, + }}, + ["fishing1"] = { "amb@world_human_stand_fishing@idle_a", "idle_a", "Fishing 1", AnimationOptions = { + Prop = 'prop_fishing_rod_01', + PropBone = 60309, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["fishing2"] = { "amb@world_human_stand_fishing@idle_a", "idle_b", "Fishing 2", AnimationOptions = { + Prop = 'prop_fishing_rod_01', + PropBone = 60309, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["fishing3"] = { "amb@world_human_stand_fishing@idle_a", "idle_c", "Fishing 3", AnimationOptions = { + Prop = 'prop_fishing_rod_01', + PropBone = 60309, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["suitcase"] = { "move_weapon@jerrycan@generic", "idle", "Suitcase", AnimationOptions = { + Prop = "prop_ld_suitcase_01", + PropBone = 57005, + PropPlacement = { 0.35, 0.0, 0.0, 0.0, 266.0, 90.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["suitcase2"] = { "move_weapon@jerrycan@generic", "idle", "Suitcase 2", AnimationOptions = { + Prop = "prop_security_case_01", + PropBone = 57005, + PropPlacement = { 0.13, 0.0, -0.01, 0.0, 280.0, 90.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["boombox"] = { "move_weapon@jerrycan@generic", "idle", "Boombox", AnimationOptions = { + Prop = "prop_boombox_01", + PropBone = 57005, + PropPlacement = { 0.27, 0.0, 0.0, 0.0, 263.0, 58.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["toolbox"] = { "move_weapon@jerrycan@generic", "idle", "Toolbox", AnimationOptions = { + Prop = "prop_tool_box_04", + PropBone = 28422, + PropPlacement = { 0.3960, 0.0410, -0.0030, -90.00, 0.0, 90.00 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["toolbox2"] = { "move_weapon@jerrycan@generic", "idle", "Toolbox 2", AnimationOptions = { + Prop = "imp_prop_tool_box_01a", + PropBone = 28422, + PropPlacement = { 0.3700, 0.0200, 0.0, 90.00, 0.0, -90.00 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["gbag"] = { "missfbi4prepp1", "_idle_garbage_man", "Garbage Bag", AnimationOptions = { + Prop = "prop_cs_street_binbag_01", + PropBone = 28422, + PropPlacement = { 0.0, 0.0400, -0.0200, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["beerbox"] = { "move_weapon@jerrycan@generic", "idle", "Beer Box 1", AnimationOptions = { + Prop = "v_ret_ml_beerdus", + PropBone = 57005, + PropPlacement = { 0.22, 0.0, 0.0, 0.0, 266.0, 48.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["beerbox2"] = { "move_weapon@jerrycan@generic", "idle", "Beer Box 2", AnimationOptions = { + Prop = "v_ret_ml_beeram", + PropBone = 57005, + PropPlacement = { 0.22, 0.0, 0.0, 0.0, 266.0, 48.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["beerbox3"] = { "move_weapon@jerrycan@generic", "idle", "Beer Box 3", AnimationOptions = { + Prop = "v_ret_ml_beerpride", + PropBone = 57005, + PropPlacement = { 0.22, 0.0, 0.0, 0.0, 266.0, 48.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["beerbox4"] = { "move_weapon@jerrycan@generic", "idle", "Beer Box 4", AnimationOptions = { + Prop = "v_ret_ml_beerbar", + PropBone = 57005, + PropPlacement = { 0.22, 0.0, 0.0, 0.0, 266.0, 60.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["mugshot"] = { "mp_character_creation@customise@male_a", "loop", "Mugshot", AnimationOptions = { + Prop = 'prop_police_id_board', + PropBone = 58868, + PropPlacement = { 0.12, 0.24, 0.0, 5.0, 0.0, 70.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["coffee"] = { "amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Coffee", AnimationOptions = { + Prop = 'p_amb_coffeecup_01', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["whiskey"] = { "amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Whiskey", AnimationOptions = { + Prop = 'prop_drink_whisky', + PropBone = 28422, + PropPlacement = { 0.01, -0.01, -0.06, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["whiskeyb"] = { "amb@world_human_drinking@beer@male@idle_a", "idle_a", "Whiskey Bottle", AnimationOptions = { + Prop = 'ba_prop_battle_whiskey_bottle_2_s', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.05, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["beer"] = { "amb@world_human_drinking@beer@male@idle_a", "idle_c", "Beer", AnimationOptions = { + Prop = 'prop_amb_beer_bottle', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.06, 0.0, 15.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["whiskeyb2"] = { "amb@world_human_drinking@beer@male@idle_a", "idle_a", "Whiskey Bottle 2", AnimationOptions = { + Prop = 'ba_prop_battle_whiskey_bottle_2_s', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.05, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["beer2"] = { "amb@world_human_drinking@beer@male@idle_a", "idle_c", "Beer 2", AnimationOptions = { + Prop = 'prop_amb_beer_bottle', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.06, 0.0, 15.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["whiskeyb3"] = { "amb@world_human_drinking@beer@male@idle_a", "idle_a", "Whiskey Bottle 3", AnimationOptions = { + Prop = 'ba_prop_battle_whiskey_bottle_2_s', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.05, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["beerf"] = { "amb@world_human_drinking@beer@female@idle_a", "idle_a", "Beer Female", AnimationOptions = { + Prop = 'prop_amb_beer_bottle', + PropBone = 28422, + PropPlacement = { 0.0, -0.0, 0.05, 15.0, 15.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["wine2"] = { "amb@world_human_drinking@beer@female@idle_a", "idle_e", "Wine 2 - Bottle", AnimationOptions = { + Prop = 'prop_wine_rose', + PropBone = 28422, + PropPlacement = { -0.0, 0.04, -0.19, 10.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + --- PropPlacement = {-0.0, 0.03, -0.20, 5.0, 0.0, 0.0}, + --- F&B L&R U&D R.F&B + }}, + ["beerf3"] = { "amb@world_human_drinking@beer@female@idle_a", "idle_a", "Beer Female 3", AnimationOptions = { + Prop = 'prop_amb_beer_bottle', + PropBone = 28422, + PropPlacement = { 0.0, -0.0, 0.05, 15.0, 15.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["wine3"] = { "amb@world_human_drinking@beer@female@idle_a", "idle_e", "Wine 3 - Bottle", AnimationOptions = { + Prop = 'prop_wine_rose', + PropBone = 28422, + PropPlacement = { -0.0, 0.04, -0.19, 10.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = false, + --- PropPlacement = {-0.0, 0.03, -0.20, 5.0, 0.0, 0.0}, + --- F&B L&R U&D R.F&B + }}, + ["cup"] = { "amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Cup", AnimationOptions = { + Prop = 'prop_plastic_cup_02', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["donut"] = { "mp_player_inteat@burger", "mp_player_int_eat_burger", "Donut", AnimationOptions = { + Prop = 'prop_amb_donut', + PropBone = 18905, + PropPlacement = { 0.13, 0.05, 0.02, -50.0, 16.0, 60.0 }, + EmoteMoving = true, + }}, + ["burger"] = { "mp_player_inteat@burger", "mp_player_int_eat_burger", "Burger", AnimationOptions = { + Prop = 'prop_cs_burger_01', + PropBone = 18905, + PropPlacement = { 0.13, 0.05, 0.02, -50.0, 16.0, 60.0 }, + EmoteMoving = true, + }}, + ["sandwich"] = { "mp_player_inteat@burger", "mp_player_int_eat_burger", "Sandwich", AnimationOptions = { + Prop = 'prop_sandwich_01', + PropBone = 18905, + PropPlacement = { 0.13, 0.05, 0.02, -50.0, 16.0, 60.0 }, + EmoteMoving = true, + }}, + ["soda"] = { "amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Soda", AnimationOptions = { + Prop = 'prop_ecola_can', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 130.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["water"] = { "amb@world_human_drinking@coffee@male@idle_a", "idle_c", "Water", AnimationOptions = { + Prop = 'ba_prop_club_water_bottle', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, -0.090, 0.0, 0.0, 130.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["egobar"] = { "mp_player_inteat@burger", "mp_player_int_eat_burger", "Ego Bar", AnimationOptions = { + Prop = 'prop_choc_ego', + PropBone = 60309, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteMoving = true, + }}, + ["candy"] = { "mp_player_inteat@pnq", "loop", "Candy", AnimationOptions = { + Prop = 'prop_candy_pqs', + PropBone = 60309, + PropPlacement = { -0.0300, 0.0180, 0.0, 180.0, 180.0, -88.099 }, + EmoteMoving = true, + }}, + ["wine"] = { "anim@heists@humane_labs@finale@keycards", "ped_a_enter_loop", "Wine", AnimationOptions = { + Prop = 'prop_drink_redwine', + PropBone = 18905, + PropPlacement = { 0.10, -0.03, 0.03, -100.0, 0.0, -10.0 }, + EmoteMoving = true, + EmoteLoop = true + }}, + ["flute"] = { "anim@heists@humane_labs@finale@keycards", "ped_a_enter_loop", "Flute", AnimationOptions = { + Prop = 'prop_champ_flute', + PropBone = 18905, + PropPlacement = { 0.10, -0.03, 0.03, -100.0, 0.0, -10.0 }, + EmoteMoving = true, + EmoteLoop = true + }}, + ["champagne"] = { "anim@heists@humane_labs@finale@keycards", "ped_a_enter_loop", "Champagne", AnimationOptions = { + Prop = 'prop_drink_champ', + PropBone = 18905, + PropPlacement = { 0.10, -0.03, 0.03, -100.0, 0.0, -10.0 }, + EmoteMoving = true, + EmoteLoop = true + }}, + ["cigar"] = { "amb@world_human_smoking@male@male_a@enter", "enter", "Cigar", AnimationOptions = { + Prop = 'prop_cigar_02', + PropBone = 47419, + PropPlacement = { 0.010, 0.0, 0.0, 50.0, 0.0, -80.0 }, + EmoteMoving = true, + EmoteDuration = 2600 + }}, + ["cigar2"] = { "amb@world_human_smoking@male@male_a@enter", "enter", "Cigar 2", AnimationOptions = { + Prop = 'prop_cigar_01', + PropBone = 47419, + PropPlacement = { 0.010, 0.0, 0.0, 50.0, 0.0, -80.0 }, + EmoteMoving = true, + EmoteDuration = 2600 + }}, + ["guitar"] = { "amb@world_human_musician@guitar@male@idle_a", "idle_b", "Guitar", AnimationOptions = { + Prop = 'prop_acc_guitar_01', + PropBone = 24818, + PropPlacement = { -0.1, 0.31, 0.1, 0.0, 20.0, 150.0 }, + EmoteMoving = true, + EmoteLoop = true + }}, + ["guitar2"] = { "switch@trevor@guitar_beatdown", "001370_02_trvs_8_guitar_beatdown_idle_busker", "Guitar 2", AnimationOptions = { + Prop = 'prop_acc_guitar_01', + PropBone = 24818, + PropPlacement = { -0.05, 0.31, 0.1, 0.0, 20.0, 150.0 }, + EmoteMoving = true, + EmoteLoop = true + }}, + ["guitarelectric"] = { "amb@world_human_musician@guitar@male@idle_a", "idle_b", "Guitar Electric", AnimationOptions = { + Prop = 'prop_el_guitar_01', + PropBone = 24818, + PropPlacement = { -0.1, 0.31, 0.1, 0.0, 20.0, 150.0 }, + EmoteMoving = true, + EmoteLoop = true + }}, + ["guitarelectric2"] = { "amb@world_human_musician@guitar@male@idle_a", "idle_b", "Guitar Electric 2", AnimationOptions = { + Prop = 'prop_el_guitar_03', + PropBone = 24818, + PropPlacement = { -0.1, 0.31, 0.1, 0.0, 20.0, 150.0 }, + EmoteMoving = true, + EmoteLoop = true + }}, + ["book"] = { "cellphone@", "cellphone_text_read_base", "Book", AnimationOptions = { + Prop = 'prop_novel_01', + PropBone = 6286, + PropPlacement = { 0.15, 0.03, -0.065, 0.0, 180.0, 90.0 }, -- This positioning isnt too great, was to much of a hassle + EmoteMoving = true, + EmoteLoop = true + }}, + ["bouquet"] = { "impexp_int-0", "mp_m_waremech_01_dual-0", "Bouquet", AnimationOptions = { + Prop = 'prop_snow_flower_02', + PropBone = 24817, + PropPlacement = { -0.29, 0.40, -0.02, -90.0, -90.0, 0.0 }, + EmoteMoving = true, + EmoteLoop = true + }}, + ["teddy"] = { "impexp_int-0", "mp_m_waremech_01_dual-0", "Teddy", AnimationOptions = { + Prop = 'v_ilev_mr_rasberryclean', + PropBone = 24817, + PropPlacement = { -0.20, 0.46, -0.016, -180.0, -90.0, 0.0 }, + EmoteMoving = true, + EmoteLoop = true + }}, + ["backpack"] = { "move_p_m_zero_rucksack", "nill", "Backpack", AnimationOptions = { + Prop = 'p_michael_backpack_s', + PropBone = 24818, + PropPlacement = { 0.07, -0.11, -0.05, 0.0, 90.0, 175.0 }, + EmoteMoving = true, + EmoteLoop = true + }}, + ["clipboard"] = { "missfam4", "base", "Clipboard", AnimationOptions = { + Prop = 'p_amb_clipboard_01', + PropBone = 36029, + PropPlacement = { 0.16, 0.08, 0.1, -130.0, -50.0, 0.0 }, + EmoteMoving = true, + EmoteLoop = true + }}, + ["map"] = { "amb@world_human_tourist_map@male@base", "base", "Map", AnimationOptions = { + Prop = 'prop_tourist_map_01', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteMoving = true, + EmoteLoop = true + }}, + ["map2"] = { "amb@code_human_in_bus_passenger_idles@female@tablet@idle_a", "idle_a", "Map 2", AnimationOptions = { + Prop = "prop_tourist_map_01", + PropBone = 28422, + PropPlacement = { -0.05, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["beg"] = { "amb@world_human_bum_freeway@male@base", "base", "Beg", AnimationOptions = { + Prop = 'prop_beggers_sign_03', + PropBone = 58868, + PropPlacement = { 0.19, 0.18, 0.0, 5.0, 0.0, 40.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["makeitrain"] = { "anim@mp_player_intupperraining_cash", "idle_a", "Make It Rain", AnimationOptions = { + Prop = 'prop_anim_cash_pile_01', + PropBone = 60309, + PropPlacement = { 0.0, 0.0, 0.0, 180.0, 0.0, 70.0 }, + EmoteMoving = true, + EmoteLoop = true, + PtfxAsset = "scr_xs_celebration", + PtfxName = "scr_xs_money_rain", + PtfxPlacement = { 0.0, 0.0, -0.09, -80.0, 0.0, 0.0, 1.0 }, + PtfxInfo = Config.Languages[Config.MenuLanguage]['makeitrain'], + PtfxWait = 500, + }}, + ["camera"] = { "amb@world_human_paparazzi@male@base", "base", "Camera", AnimationOptions = { + Prop = 'prop_pap_camera_01', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + PtfxAsset = "scr_bike_business", + PtfxName = "scr_bike_cfid_camera_flash", + PtfxPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 }, + PtfxInfo = Config.Languages[Config.MenuLanguage]['camera'], + PtfxWait = 200, + }}, + ["champagnespray"] = { "anim@mp_player_intupperspray_champagne", "idle_a", "Champagne Spray", AnimationOptions = { + Prop = 'ba_prop_battle_champ_open', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteMoving = true, + EmoteLoop = true, + PtfxAsset = "scr_ba_club", + PtfxName = "scr_ba_club_champagne_spray", + PtfxPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + PtfxInfo = Config.Languages[Config.MenuLanguage]['spraychamp'], + PtfxWait = 500, + }}, + ["joint"] = { "amb@world_human_smoking@male@male_a@enter", "enter", "Joint", AnimationOptions = { + Prop = 'p_cs_joint_02', + PropBone = 47419, + PropPlacement = { 0.015, -0.009, 0.003, 55.0, 0.0, 110.0 }, + EmoteMoving = true, + EmoteDuration = 2600 + }}, + ["cig"] = { "amb@world_human_smoking@male@male_a@enter", "enter", "Cig", AnimationOptions = { + Prop = 'prop_amb_ciggy_01', + PropBone = 47419, + PropPlacement = { 0.015, -0.009, 0.003, 55.0, 0.0, 110.0 }, + EmoteMoving = true, + EmoteDuration = 2600 + }}, + ["brief"] = { "move_weapon@jerrycan@generic", "idle", "Briefcase", AnimationOptions = { + Prop = "prop_ld_case_01", + PropBone = 57005, + PropPlacement = { 0.12, 0.0, 0.0, 0.0, 255.0, 80.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["tablet"] = { "amb@world_human_tourist_map@male@base", "base", "Tablet", AnimationOptions = { + Prop = "prop_cs_tablet", + PropBone = 28422, + PropPlacement = { 0.0, -0.03, 0.0, 20.0, -90.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["tablet2"] = { "amb@code_human_in_bus_passenger_idles@female@tablet@idle_a", "idle_a", "Tablet 2", AnimationOptions = { + Prop = "prop_cs_tablet", + PropBone = 28422, + PropPlacement = { -0.05, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["phonecall"] = { "cellphone@", "cellphone_call_listen_base", "Phone Call", AnimationOptions = { + Prop = "prop_phone_ing", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["phonecall2"] = { "random@kidnap_girl", "ig_1_girl_on_phone_loop", "Phone Call 2", AnimationOptions = { + Prop = "prop_phone_ing", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["wt"] = { "cellphone@", "cellphone_text_read_base", "Walkie Talkie", AnimationOptions = { + Prop = "prop_cs_hand_radio", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["clean"] = { "timetable@floyd@clean_kitchen@base", "base", "Clean", AnimationOptions = { + Prop = "prop_sponge_01", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, -0.01, 90.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["clean2"] = { "amb@world_human_maid_clean@", "base", "Clean 2", AnimationOptions = { + Prop = "prop_sponge_01", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, -0.01, 90.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["protest"] = { "rcmnigel1d", "base_club_shoulder", "Protest", AnimationOptions = { + Prop = "prop_cs_protest_sign_01", + PropBone = 57005, + PropPlacement = { 0.1820, 0.2400, 0.0600, -69.3774235, 5.9142048, -13.9572354 }, + -- + EmoteLoop = true, + EmoteMoving = true, + }}, + ["protest2"] = { "rcmnigel1d", "base_club_shoulder", "Protest 2 - Pride ", AnimationOptions = { + Prop = "pride_sign_01", + PropBone = 57005, + PropPlacement = { 0.1820, 0.2400, 0.0600, -69.3774235, 5.9142048, -13.9572354 }, + -- + EmoteLoop = true, + EmoteMoving = true, + }}, + ["binoculars"] = { "amb@world_human_binoculars@male@idle_b", "idle_f", "Binoculars", AnimationOptions = { + Prop = "prop_binoc_01", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + -- + EmoteLoop = true, + EmoteMoving = true, + }}, + ["binoculars2"] = { "amb@world_human_binoculars@male@idle_a", "idle_c", "Binoculars 2", AnimationOptions = { + Prop = "prop_binoc_01", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["tennisplay"] = { "move_weapon@jerrycan@generic", "idle", "Tennis Play", AnimationOptions = { + Prop = "prop_tennis_bag_01", + PropBone = 57005, + PropPlacement = { 0.27, 0.0, 0.0, 91.0, 0.0, -82.9999951 }, + SecondProp = 'prop_tennis_rack_01', + SecondPropBone = 60309, + SecondPropPlacement = { 0.0800, 0.0300, 0.0, -130.2907295, 3.8782324, 6.588224 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["weights"] = { "amb@world_human_muscle_free_weights@male@barbell@base", "base", "Weights", AnimationOptions = { + Prop = "prop_curl_bar_01", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["weights2"] = { "amb@world_human_muscle_free_weights@male@barbell@idle_a", "idle_d", "Weights 2", AnimationOptions = { + Prop = "prop_curl_bar_01", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["fuel"] = { "weapons@misc@jerrycan@", "fire", "Fuel", AnimationOptions = { + Prop = "w_am_jerrycan", + PropBone = 57005, + PropPlacement = { 0.1800, 0.1300, -0.2400, -165.8693883, -11.2122753, -32.9453021 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["fuel2"] = { "weapons@misc@jerrycan@franklin", "idle", "Fuel 2 (Carry)", AnimationOptions = { + Prop = "w_am_jerrycan", + PropBone = 28422, + PropPlacement = { 0.26, 0.050, 0.0300, 80.00, 180.000, 79.99 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["hitchhike"] = { "random@hitch_lift", "idle_f", "Hitchhike", AnimationOptions = { + Prop = "w_am_jerrycan", + PropBone = 18905, + PropPlacement = { 0.32, -0.0100, 0.0, -162.423, 74.83, 58.79 }, + SecondProp = 'prop_michael_backpack', + SecondPropBone = 40269, + SecondPropPlacement = { -0.07, -0.21, -0.11, -144.93, 117.358, -6.16 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["ssign"] = { "rcmnigel1d", "base_club_shoulder", "Steal Stop Sign ", AnimationOptions = { + Prop = "prop_sign_road_01a", + PropBone = 60309, + PropPlacement = { -0.1390, -0.9870, 0.4300, -67.3315314, 145.0627869, -4.4318885 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["ssign2"] = { "rcmnigel1d", "base_club_shoulder", "Steal Yield Sign ", AnimationOptions = { + Prop = "prop_sign_road_02a", + PropBone = 60309, + PropPlacement = { -0.1390, -0.9870, 0.4300, -67.3315314, 145.0627869, -4.4318885 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["ssign3"] = { "rcmnigel1d", "base_club_shoulder", "Steal Hospital Sign ", AnimationOptions = { + Prop = "prop_sign_road_03d", + PropBone = 60309, + PropPlacement = { -0.1390, -0.9870, 0.4300, -67.3315314, 145.0627869, -4.4318885 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["ssign4"] = { "rcmnigel1d", "base_club_shoulder", "Steal Parking Sign ", AnimationOptions = { + Prop = "prop_sign_road_04a", + PropBone = 60309, + PropPlacement = { -0.1390, -0.9870, 0.4300, -67.3315314, 145.0627869, -4.4318885 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["ssign5"] = { "rcmnigel1d", "base_club_shoulder", "Steal Parking Sign 2 ", AnimationOptions = { + Prop = "prop_sign_road_04w", + PropBone = 60309, + PropPlacement = { -0.1390, -0.9870, 0.4300, -67.3315314, 145.0627869, -4.4318885 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["ssign6"] = { "rcmnigel1d", "base_club_shoulder", "Steal Pedestrian Sign ", AnimationOptions = { + Prop = "prop_sign_road_05a", + PropBone = 60309, + PropPlacement = { -0.1390, -0.9870, 0.4300, -67.3315314, 145.0627869, -4.4318885 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["ssign7"] = { "rcmnigel1d", "base_club_shoulder", "Steal Street Sign ", AnimationOptions = { + Prop = "prop_sign_road_05t", + PropBone = 60309, + PropPlacement = { -0.1390, -0.9870, 0.4300, -67.3315314, 145.0627869, -4.4318885 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["ssign8"] = { "rcmnigel1d", "base_club_shoulder", "Steal Freeway Sign ", AnimationOptions = { + Prop = "prop_sign_freewayentrance", + PropBone = 60309, + PropPlacement = { -0.1390, -0.9870, 0.4300, -67.3315314, 145.0627869, -4.4318885 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["ssign9"] = { "rcmnigel1d", "base_club_shoulder", "Steal Stop Sign Snow ", AnimationOptions = { + Prop = "prop_snow_sign_road_01a", + PropBone = 60309, + PropPlacement = { -0.1390, -0.9870, 0.4300, -67.3315314, 145.0627869, -4.4318885 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["conehead"] = { "move_m@drunk@verydrunk_idles@", "fidget_07", "Cone Head ", AnimationOptions = { + Prop = "prop_roadcone02b", + PropBone = 31086, + PropPlacement = { 0.0500, 0.0200, -0.000, 30.0000004, 90.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["foodtraya"] = { "anim@heists@box_carry@", "idle", "Food Tray", AnimationOptions = { + Prop = "prop_food_bs_tray_03", + PropBone = 28422, + PropPlacement = { 0.0100, -0.0400, -0.1390, 20.0000007, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["foodtrayb"] = { "anim@heists@box_carry@", "idle", "Food Tray B", AnimationOptions = { + Prop = "prop_food_bs_tray_02", + PropBone = 28422, + PropPlacement = { 0.0100, -0.0400, -0.1390, 20.0000007, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["foodtrayc"] = { "anim@heists@box_carry@", "idle", "Food Tray C", AnimationOptions = { + Prop = "prop_food_cb_tray_02", + PropBone = 28422, + PropPlacement = { 0.0100, -0.0400, -0.1390, 20.0000007, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["foodtrayd"] = { "anim@heists@box_carry@", "idle", "Food Tray D", AnimationOptions = { + Prop = "prop_food_tray_02", + PropBone = 28422, + PropPlacement = { 0.0100, -0.0400, -0.1390, 20.0000007, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["foodtraye"] = { "anim@heists@box_carry@", "idle", "Food Tray E", AnimationOptions = { + Prop = "prop_food_tray_03", + PropBone = 28422, + PropPlacement = { 0.0100, -0.0400, -0.1390, 20.0000007, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["foodtrayf"] = { "anim@heists@box_carry@", "idle", "Food Tray F", AnimationOptions = { + Prop = "prop_food_bs_tray_02", + PropBone = 57005, + PropPlacement = { 0.2500, 0.1000, 0.0700, -110.5483936, 73.3529273, -16.338362 }, + SecondProp = 'prop_food_bs_tray_03', + SecondPropBone = 18905, + SecondPropPlacement = { 0.2200, 0.1300, -0.1000, -127.7725487, 110.2074758, -3.5886263 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["foodtrayg"] = { "anim@heists@box_carry@", "idle", "Food Tray G", AnimationOptions = { + Prop = "prop_food_cb_tray_02", + PropBone = 57005, + PropPlacement = { 0.2500, 0.1000, 0.0700, -110.5483936, 73.3529273, -16.338362 }, + SecondProp = 'prop_food_cb_tray_02', + SecondPropBone = 18905, + SecondPropPlacement = { 0.2200, 0.1300, -0.1000, -127.7725487, 110.2074758, -3.5886263 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["foodtrayh"] = { "anim@heists@box_carry@", "idle", "Food Tray H", AnimationOptions = { + Prop = "prop_food_tray_02", + PropBone = 57005, + PropPlacement = { 0.2500, 0.1000, 0.0700, -110.5483936, 73.3529273, -16.338362 }, + SecondProp = 'prop_food_tray_03', + SecondPropBone = 18905, + SecondPropPlacement = { 0.2200, 0.1300, -0.1000, -127.7725487, 110.2074758, -3.5886263 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["foodtrayi"] = { "anim@heists@box_carry@", "idle", "Food Tray I", AnimationOptions = { + Prop = "prop_food_tray_02", + PropBone = 57005, + PropPlacement = { 0.2500, 0.1000, 0.0700, -110.5483936, 73.3529273, -16.338362 }, + SecondProp = 'prop_food_tray_02', + SecondPropBone = 18905, + SecondPropPlacement = { 0.2200, 0.1300, -0.1000, -127.7725487, 110.2074758, -3.5886263 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["foodtrayj"] = { "anim@move_f@waitress", "idle", "Food Tray J", AnimationOptions = { + Prop = "prop_food_bs_tray_02", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0200, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["foodtrayk"] = { "anim@move_f@waitress", "idle", "Food Tray K", AnimationOptions = { + Prop = "prop_food_bs_tray_02", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0200, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["foodtrayl"] = { "anim@move_f@waitress", "idle", "Food Tray L", AnimationOptions = { + Prop = "prop_food_bs_tray_03", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0200, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["foodtraym"] = { "anim@move_f@waitress", "idle", "Food Tray M", AnimationOptions = { + Prop = "prop_food_cb_tray_02", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0200, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["foodtrayn"] = { "anim@move_f@waitress", "idle", "Food Tray N", AnimationOptions = { + Prop = "prop_food_tray_02", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0200, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["foodtrayo"] = { "anim@move_f@waitress", "idle", "Food Tray O", AnimationOptions = { + Prop = "prop_food_tray_02", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0200, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["carrypizza"] = { "anim@heists@box_carry@", "idle", "Carry Pizza Box", AnimationOptions = { + Prop = "prop_pizza_box_02", + PropBone = 28422, + PropPlacement = { 0.0100, -0.1000, -0.1590, 20.0000007, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["carryfoodbag"] = { "move_weapon@jerrycan@generic", "idle", "Carry Food Bag", AnimationOptions = { + Prop = "prop_food_bs_bag_01", + PropBone = 57005, + PropPlacement = { 0.3300, 0.0, -0.0300, 0.0017365, -79.9999997, 110.0651988 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["carryfoodbag2"] = { "move_weapon@jerrycan@generic", "idle", "Carry Food Bag 2", AnimationOptions = { + Prop = "prop_food_cb_bag_01", + PropBone = 57005, + PropPlacement = { 0.3800, 0.0, -0.0300, 0.0017365, -79.9999997, 110.0651988 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["carryfoodbag3"] = { "move_weapon@jerrycan@generic", "idle", "Carry Food Bag 3", AnimationOptions = { + Prop = "prop_food_bag1", + PropBone = 57005, + PropPlacement = { 0.3800, 0.0, -0.0300, 0.0017365, -79.9999997, 110.0651988 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["tag"] = { "anim@scripted@freemode@postertag@graffiti_spray@male@", "shake_can_male", "Tagging Shake Can Male", AnimationOptions = { + Prop = "prop_cs_spray_can", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0700, 0.0017365, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["tag2"] = { "anim@scripted@freemode@postertag@graffiti_spray@heeled@", "shake_can_female", "Tagging Shake Can Female", AnimationOptions = { + Prop = "prop_cs_spray_can", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0700, 0.0017365, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["tag3"] = { "anim@scripted@freemode@postertag@graffiti_spray@male@", "spray_can_var_01_male", "Tagging Male 1", AnimationOptions = { + Prop = "prop_cs_spray_can", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0700, 0.0017365, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["tag4"] = { "anim@scripted@freemode@postertag@graffiti_spray@male@", "spray_can_var_02_male", "Tagging Male 2", AnimationOptions = { + Prop = "prop_cs_spray_can", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0700, 0.0017365, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["tag5"] = { "anim@scripted@freemode@postertag@graffiti_spray@heeled@", "spray_can_var_01_female", "Tagging Female 1", AnimationOptions = { + Prop = "prop_cs_spray_can", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0700, 0.0017365, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["tag6"] = { "anim@scripted@freemode@postertag@graffiti_spray@heeled@", "spray_can_var_02_female", "Tagging Female 2", AnimationOptions = { + Prop = "prop_cs_spray_can", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0700, 0.0017365, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["beans"] = { "anim@scripted@island@special_peds@pavel@hs4_pavel_ig5_caviar_p1", "base_idle", "Beans", AnimationOptions = { + Prop = "h4_prop_h4_caviar_tin_01a", + PropBone = 60309, + PropPlacement = { 0.0, 0.0300, 0.0100, 0.0, 0.0, 0.0 }, + SecondProp = 'h4_prop_h4_caviar_spoon_01a', + SecondPropBone = 28422, + SecondPropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["newscam"] = { "missfinale_c2mcs_1", "fin_c2_mcs_1_camman", "News Camera", AnimationOptions = { + Prop = "prop_v_cam_01", + PropBone = 28422, + PropPlacement = { 0.0, 0.0300, 0.0100, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["newsmic"] = { "anim@heists@humane_labs@finale@keycards", "ped_a_enter_loop", "News Microphone", AnimationOptions = { + Prop = "p_ing_microphonel_01", + PropBone = 4154, + PropPlacement = { -0.00, -0.0200, 0.1100, 0.00, 0.0, 60.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["newsbmic"] = { "missfra1", "mcs2_crew_idle_m_boom", "News Boom Microphone", AnimationOptions = { + Prop = "prop_v_bmike_01", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["leafblower"] = { "amb@world_human_gardener_leaf_blower@base", "base", "Leaf Blower", AnimationOptions = { + Prop = "prop_leaf_blower_01", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["bbqf"] = { "amb@prop_human_bbq@male@idle_a", "idle_b", "BBQ (Female)", AnimationOptions = { + Prop = "prop_fish_slice_01", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["pump"] = { "missfbi4prepp1", "idle", "Pumpkin", AnimationOptions = { + Prop = "prop_veg_crop_03_pump", + PropBone = 28422, + PropPlacement = { 0.0200, 0.0600, -0.1200, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["pump2"] = { "anim@heists@box_carry@", "idle", "Pumpkin 2", AnimationOptions = { + Prop = "prop_veg_crop_03_pump", + PropBone = 28422, + PropPlacement = { 0.0100, -0.16000, -0.2100, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["mop"] = { "missfbi4prepp1", "idle", "Mop", AnimationOptions = { + Prop = "prop_cs_mop_s", + PropBone = 28422, + PropPlacement = { -0.0200, -0.0600, -0.2000, -13.377, 10.3568, 17.9681 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["mop2"] = { "move_mop", "idle_scrub_small_player", "Mop 2", AnimationOptions = { + Prop = "prop_cs_mop_s", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.1200, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["jerkf"] = { "switch@trevor@jerking_off", "trev_jerking_off_loop", "JerkOff! Female", AnimationOptions = { + Prop = 'prop_cs_dildo_01', + PropBone = 28422, + PropPlacement = { 0.09, 0.05, -0.03, 90.0, 80.0, 30.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["rake"] = { "anim@amb@drug_field_workers@rake@male_a@base", "base", "Rake", AnimationOptions = { + Prop = "prop_tool_rake", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, -0.0300, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + }}, + ["rake2"] = { "anim@amb@drug_field_workers@rake@male_a@idles", "idle_b", "Rake 2", AnimationOptions = { + Prop = "prop_tool_rake", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, -0.0300, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + }}, + ["rake3"] = { "anim@amb@drug_field_workers@rake@male_b@base", "base", "Rake 3", AnimationOptions = { + Prop = "prop_tool_rake", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, -0.0300, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + }}, + ["rake4"] = { "anim@amb@drug_field_workers@rake@male_b@idles", "idle_d", "Rake 4", AnimationOptions = { + Prop = "prop_tool_rake", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, -0.0300, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + }}, + ["broom"] = { "anim@amb@drug_field_workers@rake@male_a@base", "base", "Broom", AnimationOptions = { + Prop = "prop_tool_broom", + PropBone = 28422, + PropPlacement = { -0.0100, 0.0400, -0.0300, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + }}, + ["broom2"] = { "anim@amb@drug_field_workers@rake@male_a@idles", "idle_b", "Broom 2", AnimationOptions = { + Prop = "prop_tool_broom", + PropBone = 28422, + PropPlacement = { -0.0100, 0.0400, -0.0300, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + }}, + ["broom3"] = { "anim@amb@drug_field_workers@rake@male_b@base", "base", "Broom 3", AnimationOptions = { + Prop = "prop_tool_broom", + PropBone = 28422, + PropPlacement = { -0.0100, 0.0400, -0.0300, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + }}, + ["broom4"] = { "anim@amb@drug_field_workers@rake@male_b@idles", "idle_d", "Broom 4", AnimationOptions = { + Prop = "prop_tool_broom", + PropBone = 28422, + PropPlacement = { -0.0100, 0.0400, -0.0300, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + }}, + ["champw"] = { "anim@move_f@waitress", "idle", "Champagne Waiter", AnimationOptions = { + Prop = "vw_prop_vw_tray_01a", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0100, 0.0, 0.0, 0.0 }, + SecondProp = 'prop_champ_cool', + SecondPropBone = 28422, + SecondPropPlacement = { 0.0, 0.0, 0.010, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["shit"] = { "missfbi3ig_0", "shit_loop_trev", "Shit", AnimationOptions = { + Prop = "prop_toilet_roll_01", + PropBone = 28422, + PropPlacement = { 0.0700, -0.02000, -0.2100, 0, 0, 0.0, 0.0 }, + SecondProp = 'prop_big_shit_01', + SecondPropBone = 0, + SecondPropPlacement = { -0.0100, 0.0600, -0.1550, 101.3015175, 7.3512213, -29.2665794 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["selfie"] = { "anim@mp_player_intuppertake_selfie", "idle_a", "Selfie", AnimationOptions = { + Prop = "prop_phone_ing", + PropBone = 60309, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["selfie2"] = { "cellphone@self@franklin@", "peace", "Selfie 2", AnimationOptions = { + Prop = "prop_phone_ing", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["selfie3"] = { "cellphone@self@franklin@", "west_coast", "Selfie 3 - West Side", AnimationOptions = { + Prop = "prop_phone_ing", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["selfie4"] = { "cellphone@self@trevor@", "aggressive_finger", "Selfie 4 - Finger", AnimationOptions = { + Prop = "prop_phone_ing", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["selfie5"] = { "cellphone@self@trevor@", "proud_finger", "Selfie 5 - Finger 2", AnimationOptions = { + Prop = "prop_phone_ing", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["selfie6"] = { "cellphone@self@trevor@", "throat_slit", "Selfie 6 - Throat Slit", AnimationOptions = { + Prop = "prop_phone_ing", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["selfie7"] = { "cellphone@self@franklin@", "chest_bump", "Selfie 7 - Chest Bump", AnimationOptions = { + Prop = "prop_phone_ing", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["sittv"] = { "anim@heists@heist_safehouse_intro@variations@male@tv", "tv_part_one_loop", "Sit TV", AnimationOptions = { + Prop = "v_res_tre_remote", + PropBone = 57005, + PropPlacement = { 0.0990, 0.0170, -0.0300, -64.760, -109.544, 18.717 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["dig"] = { "random@burial", "a_burial", "Dig", AnimationOptions = { + Prop = "prop_tool_shovel", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.24, 0, 0, 0.0, 0.0 }, + SecondProp = 'prop_ld_shovel_dirt', + SecondPropBone = 28422, + SecondPropPlacement = { 0.0, 0.0, 0.24, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["bongos"] = { "amb@world_human_musician@bongos@male@base", "base", "Bongo Drums", AnimationOptions = { + Prop = "prop_bongos_01", + PropBone = 60309, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["medbag"] = { "move_weapon@jerrycan@generic", "idle", "Medic Bag", AnimationOptions = { + Prop = "xm_prop_x17_bag_med_01a", + PropBone = 57005, + PropPlacement = { 0.3900, -0.0600, -0.0600, -100.00, -180.00, -78.00 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["dufbag"] = { "move_weapon@jerrycan@generic", "idle", "Duffel Bag", AnimationOptions = { + Prop = "bkr_prop_duffel_bag_01a", + PropBone = 28422, + PropPlacement = { 0.2600, 0.0400, 0.00, 90.00, 0.00, -78.99 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["shopbag"] = { "move_weapon@jerrycan@generic", "idle", "Shopping Bag", AnimationOptions = { + Prop = "vw_prop_casino_shopping_bag_01a", + PropBone = 28422, + PropPlacement = { 0.24, 0.03, -0.04, 0.00, -90.00, 10.00 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["shopbag2"] = { "move_weapon@jerrycan@generic", "idle", "Shopping Bag 2", AnimationOptions = { + Prop = "prop_shopping_bags02", + PropBone = 28422, + PropPlacement = { 0.05, 0.02, 0.00, 178.80, 91.19, 9.97 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["shopbag3"] = { "move_weapon@jerrycan@generic", "idle", "Shopping Bag 3", AnimationOptions = { + Prop = "prop_cs_shopping_bag", + PropBone = 28422, + PropPlacement = { 0.24, 0.03, -0.04, 0.00, -90.00, 10.00 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["idcard"] = { "paper_1_rcm_alt1-8", "player_one_dual-8", "ID Card 1", AnimationOptions = { + Prop = "prop_franklin_dl", + PropBone = 57005, + PropPlacement = { 0.1000, 0.0200, -0.0300, -90.000, 170.000, 78.999 }, + EmoteLoop = false, + EmoteMoving = true, + }}, + ["idcardb"] = { "paper_1_rcm_alt1-8", "player_one_dual-8", "ID Card 2 - FIB", AnimationOptions = { + Prop = "prop_fib_badge", + PropBone = 28422, + PropPlacement = { 0.0600, 0.0210, -0.0400, -90.00, -180.00, 78.999 }, + EmoteLoop = false, + EmoteMoving = true, + }}, + ["idcardc"] = { "paper_1_rcm_alt1-8", "player_one_dual-8", "ID Card 3", AnimationOptions = { + Prop = "prop_michael_sec_id", + PropBone = 28422, + PropPlacement = { 0.1000, 0.0200, -0.0300, -90.00, -180.00, 78.999 }, + EmoteLoop = false, + EmoteMoving = true, + }}, + ["idcardd"] = { "paper_1_rcm_alt1-8", "player_one_dual-8", "ID Card 4", AnimationOptions = { + Prop = "prop_trev_sec_id", + PropBone = 28422, + PropPlacement = { 0.1000, 0.0200, -0.0300, -90.00, -180.00, 78.999 }, + EmoteLoop = false, + EmoteMoving = true, + }}, + ["idcarde"] = { "paper_1_rcm_alt1-8", "player_one_dual-8", "ID Card 5", AnimationOptions = { + Prop = "p_ld_id_card_002", + PropBone = 28422, + PropPlacement = { 0.1000, 0.0200, -0.0300, -90.00, -180.00, 78.999 }, + EmoteLoop = false, + EmoteMoving = true, + }}, + ["idcardf"] = { "paper_1_rcm_alt1-8", "player_one_dual-8", "ID Card 6", AnimationOptions = { + Prop = "prop_cs_r_business_card", + PropBone = 28422, + PropPlacement = { 0.1000, 0.0200, -0.0300, -90.00, -180.00, 78.999 }, + EmoteLoop = false, + EmoteMoving = true, + }}, + ["idcardg"] = { "paper_1_rcm_alt1-8", "player_one_dual-8", "ID Card 7", AnimationOptions = { + Prop = "prop_michael_sec_id", + PropBone = 28422, + PropPlacement = { 0.1000, 0.0200, -0.0300, -90.00, -180.00, 78.999 }, + EmoteLoop = false, + EmoteMoving = true, + }}, + ["idcardh"] = { "paper_1_rcm_alt1-8", "player_one_dual-8", "ID Card 8", AnimationOptions = { + Prop = "prop_cop_badge", + PropBone = 28422, + PropPlacement = { 0.0800, -0.0120, -0.0600, -90.00, 180.00, 69.99 }, + EmoteLoop = false, + EmoteMoving = true, + }}, + ["sms"] = { "cellphone@", "cellphone_text_read_base", "SMS", AnimationOptions = { + Prop = "prop_phone_ing", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["sms2"] = { "cellphone@female", "cellphone_text_read_base", "SMS 2", AnimationOptions = { + Prop = "prop_phone_ing", + PropBone = 28422, + PropPlacement = { 0.00, 0.00, 0.0301, 0.000, 00.00, 00.00 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["sms3"] = { "cellphone@female", "cellphone_email_read_base", "SMS 3", AnimationOptions = { + Prop = "prop_phone_ing", + PropBone = 28422, + PropPlacement = { -0.0190, -0.0240, 0.0300, 18.99, -72.07, 6.39 }, + EmoteLoop = false, + EmoteMoving = true, + }}, + ["sms4"] = { "cellphone@female", "cellphone_text_read_base_cover_low", "SMS 4", AnimationOptions = { + Prop = "prop_phone_ing", + PropBone = 28422, + PropPlacement = { -0.0190, -0.0250, 0.0400, 19.17, -78.50, 14.97 }, + EmoteLoop = false, + EmoteMoving = true, + }}, + ["sms5"] = { "amb@code_human_wander_texting_fat@male@base", "static", "SMS 6", AnimationOptions = { + Prop = "prop_phone_ing", + PropBone = 28422, + PropPlacement = { -0.0200, -0.0100, 0.00, 2.309, 88.845, 29.979 }, + EmoteLoop = false, + EmoteMoving = true, + }}, + ["tire"] = { "anim@heists@box_carry@", "idle", "Tire", AnimationOptions = { + Prop = "prop_wheel_tyre", + PropBone = 60309, + PropPlacement = { -0.05, 0.16, 0.32, -130.0, -55.0, 150.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["register"] = { "anim@heists@box_carry@", "idle", "Register", AnimationOptions = { + Prop = "v_ret_gc_cashreg", + PropBone = 60309, + PropPlacement = { 0.138, 0.2, 0.2, -50.0, 290.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["weedbrick"] = { "impexp_int-0", "mp_m_waremech_01_dual-0", "Weed Brick", AnimationOptions = { + Prop = "prop_weed_block_01", + PropBone = 60309, + PropPlacement = { 0.1, 0.1, 0.05, 0.0, -90.0, 90.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["weedbrick2"] = { "anim@heists@box_carry@", "idle", "Weed Brick BIG", AnimationOptions = { + Prop = "bkr_prop_weed_bigbag_01a", + PropBone = 60309, + PropPlacement = { 0.158, -0.05, 0.23, -50.0, 290.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["potplant"] = { "anim@heists@box_carry@", "idle", "Pot Plant (Small)", AnimationOptions = { + Prop = "bkr_prop_weed_01_small_01c", + PropBone = 60309, + PropPlacement = { 0.138, -0.05, 0.23, -50.0, 290.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["potplant2"] = { "anim@heists@box_carry@", "idle", "Pot Plant (Medium)", AnimationOptions = { + Prop = "bkr_prop_weed_01_small_01b", + PropBone = 60309, + PropPlacement = { 0.138, -0.05, 0.23, -50.0, 290.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["potplant3"] = { "anim@heists@box_carry@", "idle", "Pot Plant (Large)", AnimationOptions = { + Prop = "bkr_prop_weed_lrg_01b", + PropBone = 60309, + PropPlacement = { 0.138, -0.05, 0.23, -50.0, 290.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["lawnchair"] = { "timetable@ron@ig_5_p3", "ig_5_p3_base", "Lawnchair", AnimationOptions = { + Prop = "prop_skid_chair_02", + PropBone = 0, + PropPlacement = { 0.025, -0.2, -0.1, 45.0, -5.0, 180.0 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["lawnchair2"] = { "timetable@reunited@ig_10", "base_amanda", "Lawnchair 2", AnimationOptions = { + Prop = "prop_skid_chair_02", + PropBone = 0, + PropPlacement = { 0.025, -0.15, -0.1, 45.0, 5.0, 180.0 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["lawnchair3"] = { "timetable@ron@ig_3_couch", "base", "Lawnchair 3", AnimationOptions = { + Prop = "prop_skid_chair_02", + PropBone = 0, + PropPlacement = { -0.05, 0.0, -0.2, 5.0, 0.0, 180.0 }, + EmoteLoop = true, + EmoteMoving = false, + }}, + ["rose2"] = { "missheistdocksprep1hold_cellphone", "static", "Rose 2 (Male)", AnimationOptions = { + Prop = "prop_single_rose", + PropBone = 31086, + PropPlacement = { -0.0140, 0.1030, 0.0620, -2.932, 4.564, 39.910 }, + EmoteLoop = false, + EmoteMoving = true, + }}, + ["rose3"] = { "missheistdocksprep1hold_cellphone", "static", "Rose 3 (Female)", AnimationOptions = { + Prop = "prop_single_rose", + PropBone = 31086, + PropPlacement = { -0.0140, 0.1070, 0.0720, 0.00, 0.00, 2.99 }, + EmoteLoop = false, + EmoteMoving = true, + }}, + ["cbbox"] = { "anim@heists@box_carry@", "idle", "Carry Beer Box", AnimationOptions = { + Prop = "v_ret_ml_beerben1", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["cbbox2"] = { "anim@heists@box_carry@", "idle", "Carry Beer Box 2", AnimationOptions = { + Prop = "v_ret_ml_beerbla1", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["cbbox3"] = { "anim@heists@box_carry@", "idle", "Carry Beer Box 3", AnimationOptions = { + Prop = "v_ret_ml_beerjak1", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["cbbox4"] = { "anim@heists@box_carry@", "idle", "Carry Beer Box 4", AnimationOptions = { + Prop = "v_ret_ml_beerlog1", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["cbbox5"] = { "anim@heists@box_carry@", "idle", "Carry Beer Box 5", AnimationOptions = { + Prop = "v_ret_ml_beerpis1", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["cbbox6"] = { "anim@heists@box_carry@", "idle", "Carry Beer Box 6", AnimationOptions = { + Prop = "prop_beer_box_01", + PropBone = 28422, + PropPlacement = { 0.0200, -0.0600, -0.1200, -180.00, -180.00, 1.99 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["gbin"] = { "anim@heists@box_carry@", "idle", "Garbage Bin", AnimationOptions = { + Prop = "prop_bin_08open", + PropBone = 28422, + PropPlacement = { 0.00, -0.420, -1.290, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["gbin2"] = { "anim@heists@box_carry@", "idle", "Garbage Bin 2", AnimationOptions = { + Prop = "prop_cs_bin_01", + PropBone = 28422, + PropPlacement = { 0.00, -0.420, -1.290, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["gbin3"] = { "anim@heists@box_carry@", "idle", "Garbage Bin 3", AnimationOptions = { + Prop = "prop_cs_bin_03", + PropBone = 28422, + PropPlacement = { 0.00, -0.420, -1.290, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["gbin4"] = { "anim@heists@box_carry@", "idle", "Garbage Bin 4", AnimationOptions = { + Prop = "prop_bin_08a", + PropBone = 28422, + PropPlacement = { 0.00, -0.420, -1.290, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["gbin5"] = { "anim@heists@box_carry@", "idle", "Garbage Bin 5", AnimationOptions = { + Prop = "prop_bin_07d", + PropBone = 28422, + PropPlacement = { -0.0100, -0.2200, -0.8600, 0.0, 0.0, 0.0 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ['pflag'] = { 'rcmnigel1d', 'base_club_shoulder', 'Pride Flag - Rainbow', AnimationOptions = { + Prop = 'prideflag1', + PropBone = 18905, + PropPlacement = { 0.0800, -0.2090, 0.0900, -82.6677, -141.2988, 12.3308 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ['pflag2'] = { 'rcmnigel1d', 'base_club_shoulder', 'Pride Flag 2 - LGBTQ', AnimationOptions = { + Prop = 'prideflag2', + PropBone = 18905, + PropPlacement = { 0.0800, -0.2090, 0.0900, -82.6677, -141.2988, 12.3308 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ['pflag3'] = { 'rcmnigel1d', 'base_club_shoulder', 'Pride Flag 3 - Bisexual ', AnimationOptions = { + Prop = 'prideflag3', + PropBone = 18905, + PropPlacement = { 0.0800, -0.2090, 0.0900, -82.6677, -141.2988, 12.3308 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ['pflag4'] = { 'rcmnigel1d', 'base_club_shoulder', 'Pride Flag 4 - Lesbian ', AnimationOptions = { + Prop = 'prideflag4', + PropBone = 18905, + PropPlacement = { 0.0800, -0.2090, 0.0900, -82.6677, -141.2988, 12.3308 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ['pflag5'] = { 'rcmnigel1d', 'base_club_shoulder', 'Pride Flag 5 - Pansexual ', AnimationOptions = { + Prop = 'prideflag5', + PropBone = 18905, + PropPlacement = { 0.0800, -0.2090, 0.0900, -82.6677, -141.2988, 12.3308 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ['pflag6'] = { 'rcmnigel1d', 'base_club_shoulder', 'Pride Flag 6 - Transexual ', AnimationOptions = { + Prop = 'prideflag6', + PropBone = 18905, + PropPlacement = { 0.0800, -0.2090, 0.0900, -82.6677, -141.2988, 12.3308 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ['pflag7'] = { 'rcmnigel1d', 'base_club_shoulder', 'Pride Flag 7 - Non Binary ', AnimationOptions = { + Prop = 'prideflag7', + PropBone = 18905, + PropPlacement = { 0.0800, -0.2090, 0.0900, -82.6677, -141.2988, 12.3308 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ['pflag8'] = { 'rcmnigel1d', 'base_club_shoulder', 'Pride Flag 8 - Asexual ', AnimationOptions = { + Prop = 'prideflag8', + PropBone = 18905, + PropPlacement = { 0.0800, -0.2090, 0.0900, -82.6677, -141.2988, 12.3308 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ['pflag9'] = { 'rcmnigel1d', 'base_club_shoulder', 'Pride Flag 9 - Straight Ally ', AnimationOptions = { + Prop = 'prideflag9', + PropBone = 18905, + PropPlacement = { 0.0800, -0.2090, 0.0900, -82.6677, -141.2988, 12.3308 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ['old'] = { 'missbigscore2aleadinout@bs_2a_2b_int', 'lester_base_idle', 'Old Man Walking Stick', AnimationOptions = { + Prop = 'prop_cs_walking_stick', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + SecondProp = 'prop_phone_ing', + SecondPropBone = 60309, + SecondPropPlacement = { 0.0800, 0.0300, 0.0100, -107.9999, 0.0, -4.6003 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ['digiscan'] = { 'weapons@misc@digi_scanner', 'aim_med_loop', 'Digiscan 1 ', AnimationOptions = { + Prop = 'w_am_digiscanner', + PropBone = 28422, + PropPlacement = { 0.0480, 0.0780, 0.0040, -81.6893, 2.5616, -15.7909 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ['digiscan2'] = { 'weapons@misc@digi_scanner', 'aim_low_loop', 'Digiscan 2 ', AnimationOptions = { + Prop = 'w_am_digiscanner', + PropBone = 28422, + PropPlacement = { 0.0480, 0.0780, 0.0040, -81.6893, 2.5616, -15.7909 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ['digiscan3'] = { 'weapons@misc@digi_scanner', 'aim_high_loop', 'Digiscan 3 ', AnimationOptions = { + Prop = 'w_am_digiscanner', + PropBone = 28422, + PropPlacement = { 0.0480, 0.0780, 0.0040, -81.6893, 2.5616, -15.7909 }, + EmoteLoop = true, + EmoteMoving = true, + }}, + ["cop4"] = { "amb@world_human_car_park_attendant@male@base", "base", "Cop 4", AnimationOptions = { + Prop = "prop_parking_wand_01", + PropBone = 57005, + PropPlacement = { 0.12, 0.05, 0.0, 80.0, -20.0, 180.0 }, + EmoteLoop = true, + EmoteMoving = true, + } }, + ["leanphone"] = { "amb@world_human_leaning@male@wall@back@mobile@base", "base", "Leaning With Phone", AnimationOptions = { + EmoteMoving = false, + EmoteLoop = true, + Prop = "prop_phone_ing", + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + } }, + ["piss"] = { "misscarsteal2peeing", "peeing_loop", "Piss", AnimationOptions = { + EmoteStuck = true, + PtfxAsset = "scr_amb_chop", + PtfxName = "ent_anim_dog_peeing", + PtfxNoProp = true, + PtfxPlacement = { -0.05, 0.3, 0.0, 0.0, 90.0, 90.0, 1.0 }, + PtfxInfo = Config.Languages[Config.MenuLanguage]['pee'], + PtfxWait = 3000, + } }, + ["hump"] = { "timetable@trevor@skull_loving_bear", "skull_loving_bear", "Hump (Bear)", AnimationOptions = { + Prop = 'prop_mr_raspberry_01', + PropBone = 28422, + PropPlacement = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, + EmoteMoving = false, + EmoteLoop = true, + } }, +} diff --git a/resources/dpemotes-master/client/Emote.lua b/resources/dpemotes-master/client/Emote.lua new file mode 100644 index 000000000..cc0164c18 --- /dev/null +++ b/resources/dpemotes-master/client/Emote.lua @@ -0,0 +1,451 @@ +-- You probably shouldnt touch these. +local AnimationDuration = -1 +local ChosenAnimation = "" +local ChosenDict = "" +local IsInAnimation = false +local MostRecentChosenAnimation = "" +local MostRecentChosenDict = "" +local MovementType = 0 +local PlayerGender = "male" +local PlayerHasProp = false +local PlayerProps = {} +local PlayerParticles = {} +local SecondPropEmote = false +local lang = Config.MenuLanguage +local PtfxNotif = false +local PtfxPrompt = false +local PtfxWait = 500 +local PtfxNoProp = false + +Citizen.CreateThread(function() + while true do + if IsPedShooting(PlayerPedId()) and IsInAnimation then + EmoteCancel() + end + + if PtfxPrompt then + if not PtfxNotif then + SimpleNotify(PtfxInfo) + PtfxNotif = true + end + if IsControlPressed(0, 47) then + PtfxStart() + Wait(PtfxWait) + PtfxStop() + end + end + + if Config.EnableXtoCancel then if IsControlPressed(0, 73) then EmoteCancel() end end + Citizen.Wait(1) + end +end) + +if Config.MenuKeybindEnabled then + RegisterKeyMapping("emotemenu", "Open dpemotes menu", "keyboard", Config.MenuKeybind) +end + +----------------------------------------------------------------------------------------------------- +-- Commands / Events -------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------- + +Citizen.CreateThread(function() + TriggerEvent('chat:addSuggestion', '/e', 'Play an emote', { { name = "emotename", help = "dance, camera, sit or any valid emote." } }) + TriggerEvent('chat:addSuggestion', '/emote', 'Play an emote', { { name = "emotename", help = "dance, camera, sit or any valid emote." } }) + if Config.SqlKeybinding then + TriggerEvent('chat:addSuggestion', '/emotebind', 'Bind an emote', { { name = "key", help = "num4, num5, num6, num7. num8, num9. Numpad 4-9!" }, { name = "emotename", help = "dance, camera, sit or any valid emote." } }) + TriggerEvent('chat:addSuggestion', '/emotebinds', 'Check your currently bound emotes.') + end + TriggerEvent('chat:addSuggestion', '/emotemenu', 'Open dpemotes menu (F5) by default.') + TriggerEvent('chat:addSuggestion', '/emotes', 'List available emotes.') + TriggerEvent('chat:addSuggestion', '/walk', 'Set your walkingstyle.', { { name = "style", help = "/walks for a list of valid styles" } }) + TriggerEvent('chat:addSuggestion', '/walks', 'List available walking styles.') +end) + +RegisterCommand('e', function(source, args, raw) EmoteCommandStart(source, args, raw) end) +RegisterCommand('emote', function(source, args, raw) EmoteCommandStart(source, args, raw) end) +if Config.SqlKeybinding then + RegisterCommand('emotebind', function(source, args, raw) EmoteBindStart(source, args, raw) end) + RegisterCommand('emotebinds', function(source, args, raw) EmoteBindsStart(source, args, raw) end) +end +RegisterCommand('emotemenu', function(source, args, raw) OpenEmoteMenu() end) +RegisterCommand('emotes', function(source, args, raw) EmotesOnCommand() end) +RegisterCommand('walk', function(source, args, raw) WalkCommandStart(source, args, raw) end) +RegisterCommand('walks', function(source, args, raw) WalksOnCommand() end) + +AddEventHandler('onResourceStop', function(resource) + if resource == GetCurrentResourceName() then + local ply = PlayerPedId() + DestroyAllProps() + ClearPedTasksImmediately(ply) + DetachEntity(ply, true, false) + ResetPedMovementClipset(ply) + end +end) + +----------------------------------------------------------------------------------------------------- +------ Functions and stuff -------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------- + +function EmoteCancel() + local ply = PlayerPedId() + if ChosenDict == "MaleScenario" and IsInAnimation then + ClearPedTasksImmediately(ply) + IsInAnimation = false + DebugPrint("Forced scenario exit") + elseif ChosenDict == "Scenario" and IsInAnimation then + ClearPedTasksImmediately(ply) + IsInAnimation = false + DebugPrint("Forced scenario exit") + end + + PtfxNotif = false + PtfxPrompt = false + + if IsInAnimation then + PtfxStop() + ClearPedTasks(ply) + DetachEntity(ply, true, false) + CancelSharedEmote(ply) + DestroyAllProps() + IsInAnimation = false + end +end + +function EmoteChatMessage(args) + if args == display then + TriggerEvent("chatMessage", "^5Help^0", { 0, 0, 0 }, string.format("")) + else + TriggerEvent("chatMessage", "^5Help^0", { 0, 0, 0 }, string.format("" .. args .. "")) + end +end + +function DebugPrint(args) + if Config.DebugDisplay then + print(args) + end +end + +function PtfxStart() + if PtfxNoProp then + PtfxAt = PlayerPedId() + else + PtfxAt = prop + end + UseParticleFxAssetNextCall(PtfxAsset) + Ptfx = StartNetworkedParticleFxLoopedOnEntityBone(PtfxName, PtfxAt, Ptfx1, Ptfx2, Ptfx3, Ptfx4, Ptfx5, Ptfx6, GetEntityBoneIndexByName(PtfxName, "VFX"), 1065353216, 0, 0, 0, 1065353216, 1065353216, 1065353216, 0) + SetParticleFxLoopedColour(Ptfx, 1.0, 1.0, 1.0) + table.insert(PlayerParticles, Ptfx) +end + +function PtfxStop() + for a, b in pairs(PlayerParticles) do + DebugPrint("Stopped PTFX: " .. b) + StopParticleFxLooped(b, false) + table.remove(PlayerParticles, a) + end +end + +function EmotesOnCommand(source, args, raw) + local EmotesCommand = "" + for a in pairsByKeys(DP.Emotes) do + EmotesCommand = EmotesCommand .. "" .. a .. ", " + end + EmoteChatMessage(EmotesCommand) + EmoteChatMessage(Config.Languages[lang]['emotemenucmd']) +end + +function pairsByKeys(t, f) + local a = {} + for n in pairs(t) do + table.insert(a, n) + end + table.sort(a, f) + local i = 0 -- iterator variable + local iter = function() -- iterator function + i = i + 1 + if a[i] == nil then + return nil + else + return a[i], t[a[i]] + end + end + return iter +end + +function EmoteMenuStart(args, hard) + local name = args + local etype = hard + + if etype == "dances" then + if DP.Dances[name] ~= nil then + if OnEmotePlay(DP.Dances[name]) then end + end + elseif etype == "animals" then + if DP.AnimalEmotes[name] ~= nil then + if OnEmotePlay(DP.AnimalEmotes[name]) then end + end + elseif etype == "props" then + if DP.PropEmotes[name] ~= nil then + if OnEmotePlay(DP.PropEmotes[name]) then end + end + elseif etype == "emotes" then + if DP.Emotes[name] ~= nil then + if OnEmotePlay(DP.Emotes[name]) then end + else + if name ~= "🕺 Dance Emotes" then end + end + elseif etype == "expression" then + if DP.Expressions[name] ~= nil then + if OnEmotePlay(DP.Expressions[name]) then end + end + end +end + +function EmoteCommandStart(source, args, raw) + if #args > 0 then + local name = string.lower(args[1]) + if name == "c" then + if IsInAnimation then + EmoteCancel() + else + EmoteChatMessage(Config.Languages[lang]['nocancel']) + end + return + elseif name == "help" then + EmotesOnCommand() + return + end + + if DP.Emotes[name] ~= nil then + if OnEmotePlay(DP.Emotes[name]) then end + return + elseif DP.Dances[name] ~= nil then + if OnEmotePlay(DP.Dances[name]) then end + return + elseif DP.AnimalEmotes[name] ~= nil then + if OnEmotePlay(DP.AnimalEmotes[name]) then end + return + elseif DP.PropEmotes[name] ~= nil then + if OnEmotePlay(DP.PropEmotes[name]) then end + return + else + EmoteChatMessage("'" .. name .. "' " .. Config.Languages[lang]['notvalidemote'] .. "") + end + end +end + +function LoadAnim(dict) + if not DoesAnimDictExist(dict) then + return false + end + + while not HasAnimDictLoaded(dict) do + RequestAnimDict(dict) + Wait(10) + end + + return true +end + +function LoadPropDict(model) + while not HasModelLoaded(GetHashKey(model)) do + RequestModel(GetHashKey(model)) + Wait(10) + end +end + +function PtfxThis(asset) + while not HasNamedPtfxAssetLoaded(asset) do + RequestNamedPtfxAsset(asset) + Wait(10) + end + UseParticleFxAssetNextCall(asset) +end + +function DestroyAllProps() + for _, v in pairs(PlayerProps) do + DeleteEntity(v) + end + PlayerHasProp = false + DebugPrint("Destroyed Props") +end + +function AddPropToPlayer(prop1, bone, off1, off2, off3, rot1, rot2, rot3) + local Player = PlayerPedId() + local x, y, z = table.unpack(GetEntityCoords(Player)) + + if not HasModelLoaded(prop1) then + LoadPropDict(prop1) + end + + prop = CreateObject(GetHashKey(prop1), x, y, z + 0.2, true, true, true) + AttachEntityToEntity(prop, Player, GetPedBoneIndex(Player, bone), off1, off2, off3, rot1, rot2, rot3, true, true, false, true, 1, true) + table.insert(PlayerProps, prop) + PlayerHasProp = true + SetModelAsNoLongerNeeded(prop1) +end + +----------------------------------------------------------------------------------------------------- +-- V -- This could be a whole lot better, i tried messing around with "IsPedMale(ped)" +-- V -- But i never really figured it out, if anyone has a better way of gender checking let me know. +-- V -- Since this way doesnt work for ped models. +-- V -- in most cases its better to replace the scenario with an animation bundled with prop instead. +----------------------------------------------------------------------------------------------------- + +function CheckGender() + local hashSkinMale = GetHashKey("mp_m_freemode_01") + local hashSkinFemale = GetHashKey("mp_f_freemode_01") + + if GetEntityModel(PlayerPedId()) == hashSkinMale then + PlayerGender = "male" + elseif GetEntityModel(PlayerPedId()) == hashSkinFemale then + PlayerGender = "female" + end + DebugPrint("Set gender as = (" .. PlayerGender .. ")") +end + +----------------------------------------------------------------------------------------------------- +------ This is the major function for playing emotes! ----------------------------------------------- +----------------------------------------------------------------------------------------------------- + +function OnEmotePlay(EmoteName) + InVehicle = IsPedInAnyVehicle(PlayerPedId(), true) + if not Config.AllowedInCars and InVehicle == 1 then + return + end + + if not DoesEntityExist(PlayerPedId()) then + return false + end + + if Config.DisarmPlayer then + if IsPedArmed(PlayerPedId(), 7) then + SetCurrentPedWeapon(PlayerPedId(), GetHashKey('WEAPON_UNARMED'), true) + end + end + + ChosenDict, ChosenAnimation, ename = table.unpack(EmoteName) + AnimationDuration = -1 + + if PlayerHasProp then + DestroyAllProps() + end + + if ChosenDict == "Expression" then + SetFacialIdleAnimOverride(PlayerPedId(), ChosenAnimation, 0) + return + end + + if ChosenDict == "MaleScenario" or "Scenario" then + CheckGender() + if ChosenDict == "MaleScenario" then if InVehicle then return end + if PlayerGender == "male" then + ClearPedTasks(PlayerPedId()) + TaskStartScenarioInPlace(PlayerPedId(), ChosenAnimation, 0, true) + DebugPrint("Playing scenario = (" .. ChosenAnimation .. ")") + IsInAnimation = true + else + EmoteChatMessage(Config.Languages[lang]['maleonly']) + end + return + elseif ChosenDict == "ScenarioObject" then if InVehicle then return end + BehindPlayer = GetOffsetFromEntityInWorldCoords(PlayerPedId(), 0.0, 0 - 0.5, -0.5); + ClearPedTasks(PlayerPedId()) + TaskStartScenarioAtPosition(PlayerPedId(), ChosenAnimation, BehindPlayer['x'], BehindPlayer['y'], BehindPlayer['z'], GetEntityHeading(PlayerPedId()), 0, 1, false) + DebugPrint("Playing scenario = (" .. ChosenAnimation .. ")") + IsInAnimation = true + return + elseif ChosenDict == "Scenario" then if InVehicle then return end + ClearPedTasks(PlayerPedId()) + TaskStartScenarioInPlace(PlayerPedId(), ChosenAnimation, 0, true) + DebugPrint("Playing scenario = (" .. ChosenAnimation .. ")") + IsInAnimation = true + return + end + end + + if not LoadAnim(ChosenDict) then + EmoteChatMessage("'" .. ename .. "' " .. Config.Languages[lang]['notvalidemote'] .. "") + return + end + + if EmoteName.AnimationOptions then + if EmoteName.AnimationOptions.EmoteLoop then + MovementType = 1 + if EmoteName.AnimationOptions.EmoteMoving then + MovementType = 51 + end + + elseif EmoteName.AnimationOptions.EmoteMoving then + MovementType = 51 + elseif EmoteName.AnimationOptions.EmoteMoving == false then + MovementType = 0 + elseif EmoteName.AnimationOptions.EmoteStuck then + MovementType = 50 + end + + else + MovementType = 0 + end + + if InVehicle == 1 then + MovementType = 51 + end + + if EmoteName.AnimationOptions then + if EmoteName.AnimationOptions.EmoteDuration == nil then + EmoteName.AnimationOptions.EmoteDuration = -1 + AttachWait = 0 + else + AnimationDuration = EmoteName.AnimationOptions.EmoteDuration + AttachWait = EmoteName.AnimationOptions.EmoteDuration + end + + if EmoteName.AnimationOptions.PtfxAsset then + PtfxAsset = EmoteName.AnimationOptions.PtfxAsset + PtfxName = EmoteName.AnimationOptions.PtfxName + if EmoteName.AnimationOptions.PtfxNoProp then + PtfxNoProp = EmoteName.AnimationOptions.PtfxNoProp + else + PtfxNoProp = false + end + Ptfx1, Ptfx2, Ptfx3, Ptfx4, Ptfx5, Ptfx6, PtfxScale = table.unpack(EmoteName.AnimationOptions.PtfxPlacement) + PtfxInfo = EmoteName.AnimationOptions.PtfxInfo + PtfxWait = EmoteName.AnimationOptions.PtfxWait + PtfxNotif = false + PtfxPrompt = true + PtfxThis(PtfxAsset) + else + DebugPrint("Ptfx = none") + PtfxPrompt = false + end + end + + TaskPlayAnim(PlayerPedId(), ChosenDict, ChosenAnimation, 2.0, 2.0, AnimationDuration, MovementType, 0, false, false, false) + RemoveAnimDict(ChosenDict) + IsInAnimation = true + MostRecentDict = ChosenDict + MostRecentAnimation = ChosenAnimation + + if EmoteName.AnimationOptions then + if EmoteName.AnimationOptions.Prop then + PropName = EmoteName.AnimationOptions.Prop + PropBone = EmoteName.AnimationOptions.PropBone + PropPl1, PropPl2, PropPl3, PropPl4, PropPl5, PropPl6 = table.unpack(EmoteName.AnimationOptions.PropPlacement) + if EmoteName.AnimationOptions.SecondProp then + SecondPropName = EmoteName.AnimationOptions.SecondProp + SecondPropBone = EmoteName.AnimationOptions.SecondPropBone + SecondPropPl1, SecondPropPl2, SecondPropPl3, SecondPropPl4, SecondPropPl5, SecondPropPl6 = table.unpack(EmoteName.AnimationOptions.SecondPropPlacement) + SecondPropEmote = true + else + SecondPropEmote = false + end + Wait(AttachWait) + AddPropToPlayer(PropName, PropBone, PropPl1, PropPl2, PropPl3, PropPl4, PropPl5, PropPl6) + if SecondPropEmote then + AddPropToPlayer(SecondPropName, SecondPropBone, SecondPropPl1, SecondPropPl2, SecondPropPl3, SecondPropPl4, SecondPropPl5, SecondPropPl6) + end + end + end + return true +end diff --git a/resources/dpemotes-master/client/EmoteMenu.lua b/resources/dpemotes-master/client/EmoteMenu.lua new file mode 100644 index 000000000..f405f46e4 --- /dev/null +++ b/resources/dpemotes-master/client/EmoteMenu.lua @@ -0,0 +1,327 @@ +TriggerServerEvent("dp:CheckVersion") + +rightPosition = { x = 1450, y = 100 } +leftPosition = { x = 0, y = 100 } +menuPosition = { x = 0, y = 200 } + +if Config.MenuPosition then + if Config.MenuPosition == "left" then + menuPosition = leftPosition + elseif Config.MenuPosition == "right" then + menuPosition = rightPosition + end +end + +if Config.CustomMenuEnabled then + local RuntimeTXD = CreateRuntimeTxd('Custom_Menu_Head') + local Object = CreateDui(Config.MenuImage, 512, 128) + _G.Object = Object + local TextureThing = GetDuiHandle(Object) + local Texture = CreateRuntimeTextureFromDuiHandle(RuntimeTXD, 'Custom_Menu_Head', TextureThing) + Menuthing = "Custom_Menu_Head" +else + Menuthing = "shopui_title_sm_hangar" +end + +_menuPool = NativeUI.CreatePool() +mainMenu = NativeUI.CreateMenu("Tay's Emote Menu", "", menuPosition["x"], menuPosition["y"], Menuthing, Menuthing) +_menuPool:Add(mainMenu) + +function ShowNotification(text) + SetNotificationTextEntry("STRING") + AddTextComponentString(text) + DrawNotification(false, false) +end + +local EmoteTable = {} +local FavEmoteTable = {} +local KeyEmoteTable = {} +local DanceTable = {} +local AnimalTable = {} +local PropETable = {} +local WalkTable = {} +local FaceTable = {} +local ShareTable = {} +local FavoriteEmote = "" + +if Config.FavKeybindEnabled then + Citizen.CreateThread(function() + while true do + if IsControlPressed(0, Config.FavKeybind) then + if not IsPedSittingInAnyVehicle(PlayerPedId()) then + if FavoriteEmote ~= "" then + EmoteCommandStart(nil, { FavoriteEmote, 0 }) + Wait(3000) + end + end + end + Citizen.Wait(1) + end + end) +end + +lang = Config.MenuLanguage + +function AddEmoteMenu(menu) + local submenu = _menuPool:AddSubMenu(menu, Config.Languages[lang]['emotes'], "", "", Menuthing, Menuthing) + local dancemenu = _menuPool:AddSubMenu(submenu, Config.Languages[lang]['danceemotes'], "", "", Menuthing, Menuthing) + local animalmenu = _menuPool:AddSubMenu(submenu, Config.Languages[lang]['animalemotes'], "", "", Menuthing, Menuthing) + local propmenu = _menuPool:AddSubMenu(submenu, Config.Languages[lang]['propemotes'], "", "", Menuthing, Menuthing) + table.insert(EmoteTable, Config.Languages[lang]['danceemotes']) + table.insert(EmoteTable, Config.Languages[lang]['danceemotes']) + table.insert(EmoteTable, Config.Languages[lang]['animalemotes']) + + if Config.SharedEmotesEnabled then + sharemenu = _menuPool:AddSubMenu(submenu, Config.Languages[lang]['shareemotes'], Config.Languages[lang]['shareemotesinfo'], "", Menuthing, Menuthing) + shareddancemenu = _menuPool:AddSubMenu(sharemenu, Config.Languages[lang]['sharedanceemotes'], "", "", Menuthing, Menuthing) + table.insert(ShareTable, 'none') + table.insert(EmoteTable, Config.Languages[lang]['shareemotes']) + end + + if not Config.SqlKeybinding then + unbind2item = NativeUI.CreateItem(Config.Languages[lang]['rfavorite'], Config.Languages[lang]['rfavorite']) + unbinditem = NativeUI.CreateItem(Config.Languages[lang]['prop2info'], "") + favmenu = _menuPool:AddSubMenu(submenu, Config.Languages[lang]['favoriteemotes'], Config.Languages[lang]['favoriteinfo'], "", Menuthing, Menuthing) + favmenu:AddItem(unbinditem) + favmenu:AddItem(unbind2item) + table.insert(FavEmoteTable, Config.Languages[lang]['rfavorite']) + table.insert(FavEmoteTable, Config.Languages[lang]['rfavorite']) + table.insert(EmoteTable, Config.Languages[lang]['favoriteemotes']) + else + table.insert(EmoteTable, "keybinds") + keyinfo = NativeUI.CreateItem(Config.Languages[lang]['keybinds'], Config.Languages[lang]['keybindsinfo'] .. " /emotebind [~y~num4-9~w~] [~g~emotename~w~]") + submenu:AddItem(keyinfo) + end + + for a, b in pairsByKeys(DP.Emotes) do + x, y, z = table.unpack(b) + emoteitem = NativeUI.CreateItem(z, "/e (" .. a .. ")") + submenu:AddItem(emoteitem) + table.insert(EmoteTable, a) + if not Config.SqlKeybinding then + favemoteitem = NativeUI.CreateItem(z, Config.Languages[lang]['set'] .. z .. Config.Languages[lang]['setboundemote']) + favmenu:AddItem(favemoteitem) + table.insert(FavEmoteTable, a) + end + end + + for a, b in pairsByKeys(DP.Dances) do + x, y, z = table.unpack(b) + danceitem = NativeUI.CreateItem(z, "/e (" .. a .. ")") + sharedanceitem = NativeUI.CreateItem(z, "") + dancemenu:AddItem(danceitem) + if Config.SharedEmotesEnabled then + shareddancemenu:AddItem(sharedanceitem) + end + table.insert(DanceTable, a) + end + + for a, b in pairsByKeys(DP.AnimalEmotes) do + x, y, z = table.unpack(b) + animalitem = NativeUI.CreateItem(z, "/e (" .. a .. ")") + animalmenu:AddItem(animalitem) + table.insert(AnimalTable, a) + end + + if Config.SharedEmotesEnabled then + for a, b in pairsByKeys(DP.Shared) do + x, y, z, otheremotename = table.unpack(b) + if otheremotename == nil then + shareitem = NativeUI.CreateItem(z, "/nearby (~g~" .. a .. "~w~)") + else + shareitem = NativeUI.CreateItem(z, "/nearby (~g~" .. a .. "~w~) " .. Config.Languages[lang]['makenearby'] .. " (~y~" .. otheremotename .. "~w~)") + end + sharemenu:AddItem(shareitem) + table.insert(ShareTable, a) + end + end + + for a, b in pairsByKeys(DP.PropEmotes) do + x, y, z = table.unpack(b) + propitem = NativeUI.CreateItem(z, "/e (" .. a .. ")") + propmenu:AddItem(propitem) + table.insert(PropETable, a) + if not Config.SqlKeybinding then + propfavitem = NativeUI.CreateItem(z, Config.Languages[lang]['set'] .. z .. Config.Languages[lang]['setboundemote']) + favmenu:AddItem(propfavitem) + table.insert(FavEmoteTable, a) + end + end + + if not Config.SqlKeybinding then + favmenu.OnItemSelect = function(sender, item, index) + if FavEmoteTable[index] == Config.Languages[lang]['rfavorite'] then + FavoriteEmote = "" + ShowNotification(Config.Languages[lang]['rfavorite'], 2000) + return + end + if Config.FavKeybindEnabled then + FavoriteEmote = FavEmoteTable[index] + ShowNotification("~o~" .. firstToUpper(FavoriteEmote) .. Config.Languages[lang]['newsetemote']) + end + end + end + + dancemenu.OnItemSelect = function(sender, item, index) + EmoteMenuStart(DanceTable[index], "dances") + end + + animalmenu.OnItemSelect = function(sender, item, index) + EmoteMenuStart(AnimalTable[index], "animals") + end + + if Config.SharedEmotesEnabled then + sharemenu.OnItemSelect = function(sender, item, index) + if ShareTable[index] ~= 'none' then + target, distance = GetClosestPlayer() + if (distance ~= -1 and distance < 3) then + _, _, rename = table.unpack(DP.Shared[ShareTable[index]]) + TriggerServerEvent("ServerEmoteRequest", GetPlayerServerId(target), ShareTable[index]) + SimpleNotify(Config.Languages[lang]['sentrequestto'] .. GetPlayerName(target)) + else + SimpleNotify(Config.Languages[lang]['nobodyclose']) + end + end + end + + shareddancemenu.OnItemSelect = function(sender, item, index) + target, distance = GetClosestPlayer() + if (distance ~= -1 and distance < 3) then + _, _, rename = table.unpack(DP.Dances[DanceTable[index]]) + TriggerServerEvent("ServerEmoteRequest", GetPlayerServerId(target), DanceTable[index], 'Dances') + SimpleNotify(Config.Languages[lang]['sentrequestto'] .. GetPlayerName(target)) + else + SimpleNotify(Config.Languages[lang]['nobodyclose']) + end + end + end + + propmenu.OnItemSelect = function(sender, item, index) + EmoteMenuStart(PropETable[index], "props") + end + + submenu.OnItemSelect = function(sender, item, index) + if EmoteTable[index] ~= Config.Languages[lang]['favoriteemotes'] then + EmoteMenuStart(EmoteTable[index], "emotes") + end + end +end + +function AddCancelEmote(menu) + local newitem = NativeUI.CreateItem(Config.Languages[lang]['cancelemote'], Config.Languages[lang]['cancelemoteinfo']) + menu:AddItem(newitem) + menu.OnItemSelect = function(sender, item, checked_) + if item == newitem then + EmoteCancel() + DestroyAllProps() + end + end +end + +function AddWalkMenu(menu) + local submenu = _menuPool:AddSubMenu(menu, Config.Languages[lang]['walkingstyles'], "", "", Menuthing, Menuthing) + + walkreset = NativeUI.CreateItem(Config.Languages[lang]['normalreset'], Config.Languages[lang]['resetdef']) + submenu:AddItem(walkreset) + table.insert(WalkTable, Config.Languages[lang]['resetdef']) + + 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, Config.Languages[lang]['moods'], "", "", Menuthing, Menuthing) + + facereset = NativeUI.CreateItem(Config.Languages[lang]['normalreset'], Config.Languages[lang]['resetdef']) + 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) + if not UpdateAvailable then + infomenu = _menuPool:AddSubMenu(menu, Config.Languages[lang]['infoupdate'], "Huge Thank You ❤️", "", Menuthing, Menuthing) + else + infomenu = _menuPool:AddSubMenu(menu, Config.Languages[lang]['infoupdateav'], Config.Languages[lang]['infoupdateavtext'], "", Menuthing, Menuthing) + end + contact = NativeUI.CreateItem(Config.Languages[lang]['suggestions'], Config.Languages[lang]['suggestionsinfo']) + u170 = NativeUI.CreateItem("Thanks", "DullPear for the original dpemotes ❤️") + u165 = NativeUI.CreateItem("Thanks", "AvaN0x for assisting with the formatting of the code.") + u160 = NativeUI.CreateItem("Thanks", "SMGMissy for the custom pride flags 🏳️‍🌈.") + u151 = NativeUI.CreateItem("Thanks", "Kibook for the addition of Animal Emotes 🐩.") + u150 = NativeUI.CreateItem("Thanks", "To you, the community for helping me keep this menu alive ❤️.") + infomenu:AddItem(contact) + infomenu:AddItem(u170) + infomenu:AddItem(u165) + infomenu:AddItem(u160) + infomenu:AddItem(u151) + infomenu:AddItem(u150) +end + +function OpenEmoteMenu() + mainMenu:Visible(not mainMenu:Visible()) +end + +function firstToUpper(str) + return (str:gsub("^%l", string.upper)) +end + +AddEmoteMenu(mainMenu) +AddCancelEmote(mainMenu) +if Config.WalkingStylesEnabled then + AddWalkMenu(mainMenu) +end +if Config.ExpressionsEnabled then + AddFaceMenu(mainMenu) +end + +_menuPool:RefreshIndex() + +Citizen.CreateThread(function() + while true do + Citizen.Wait(0) + _menuPool:ProcessMenus() + end +end) + +RegisterNetEvent("dp:Update") +AddEventHandler("dp:Update", function(state) + UpdateAvailable = state + AddInfoMenu(mainMenu) + _menuPool:RefreshIndex() +end) + +RegisterNetEvent("dp:RecieveMenu") -- For opening the emote menu from another resource. +AddEventHandler("dp:RecieveMenu", function() + OpenEmoteMenu() +end) diff --git a/resources/dpemotes-master/client/Keybinds.lua b/resources/dpemotes-master/client/Keybinds.lua new file mode 100644 index 000000000..2994d60d5 --- /dev/null +++ b/resources/dpemotes-master/client/Keybinds.lua @@ -0,0 +1,126 @@ +if Config.SqlKeybinding then + local emob1 = "" + local emob2 = "" + local emob3 = "" + local emob4 = "" + local emob5 = "" + local emob6 = "" + local keyb1 = "" + local keyb2 = "" + local keyb3 = "" + local keyb4 = "" + local keyb5 = "" + local keyb6 = "" + local Initialized = false + + ----------------------------------------------------------------------------------------------------- + -- Commands / Events -------------------------------------------------------------------------------- + ----------------------------------------------------------------------------------------------------- + + Citizen.CreateThread(function() + while true do + if NetworkIsPlayerActive(PlayerId()) and not Initialized then + if not Initialized then + TriggerServerEvent("dp:ServerKeybindExist") + Wait(5000) + end + end + + if not IsPedSittingInAnyVehicle(PlayerPedId()) then + for k, v in pairs(Config.KeybindKeys) do + if IsControlJustReleased(0, v) then + if k == keyb1 then if emob1 ~= "" then EmoteCommandStart(nil, { emob1, 0 }) end end + if k == keyb2 then if emob2 ~= "" then EmoteCommandStart(nil, { emob2, 0 }) end end + if k == keyb3 then if emob3 ~= "" then EmoteCommandStart(nil, { emob3, 0 }) end end + if k == keyb4 then if emob4 ~= "" then EmoteCommandStart(nil, { emob4, 0 }) end end + if k == keyb5 then if emob5 ~= "" then EmoteCommandStart(nil, { emob5, 0 }) end end + if k == keyb6 then if emob6 ~= "" then EmoteCommandStart(nil, { emob6, 0 }) end end + Wait(1000) + end + end + end + Citizen.Wait(1) + end + end) + + RegisterNetEvent("dp:ClientKeybindExist") + AddEventHandler("dp:ClientKeybindExist", function(does) + if does then + TriggerServerEvent("dp:ServerKeybindGrab") + else + TriggerServerEvent("dp:ServerKeybindCreate") + end + end) + + RegisterNetEvent("dp:ClientKeybindGet") + AddEventHandler("dp:ClientKeybindGet", function(k1, e1, k2, e2, k3, e3, k4, e4, k5, e5, k6, e6) + keyb1 = k1 + emob1 = e1 + keyb2 = k2 + emob2 = e2 + keyb3 = k3 + emob3 = e3 + keyb4 = k4 + emob4 = e4 + keyb5 = k5 + emob5 = e5 + keyb6 = k6 + emob6 = e6 + Initialized = true + end) + + RegisterNetEvent("dp:ClientKeybindGetOne") + AddEventHandler("dp:ClientKeybindGetOne", function(key, e) + SimpleNotify(Config.Languages[lang]['bound'] .. "~y~" .. e .. "~w~ " .. Config.Languages[lang]['to'] .. " ~g~" .. firstToUpper(key) .. "~w~") + if key == "num4" then emob1 = e + keyb1 = "num4" + elseif key == "num5" then emob2 = e + keyb2 = "num5" + elseif key == "num6" then emob3 = e + keyb3 = "num6" + elseif key == "num7" then emob4 = e + keyb4 = "num7" + elseif key == "num8" then emob5 = e + keyb5 = "num8" + elseif key == "num9" then emob6 = e + keyb6 = "num9" + end + end) + + ----------------------------------------------------------------------------------------------------- + ------ Functions and stuff -------------------------------------------------------------------------- + ----------------------------------------------------------------------------------------------------- + + function EmoteBindsStart() + EmoteChatMessage(Config.Languages[lang]['currentlyboundemotes'] .. "\n" + .. firstToUpper(keyb1) .. " = '^2" .. emob1 .. "^7'\n" + .. firstToUpper(keyb2) .. " = '^2" .. emob2 .. "^7'\n" + .. firstToUpper(keyb3) .. " = '^2" .. emob3 .. "^7'\n" + .. firstToUpper(keyb4) .. " = '^2" .. emob4 .. "^7'\n" + .. firstToUpper(keyb5) .. " = '^2" .. emob5 .. "^7'\n" + .. firstToUpper(keyb6) .. " = '^2" .. emob6 .. "^7'\n") + end + + function EmoteBindStart(source, args, raw) + if #args > 0 then + local key = string.lower(args[1]) + local emote = string.lower(args[2]) + if (Config.KeybindKeys[key]) ~= nil then + if DP.Emotes[emote] ~= nil then + TriggerServerEvent("dp:ServerKeybindUpdate", key, emote) + elseif DP.Dances[emote] ~= nil then + TriggerServerEvent("dp:ServerKeybindUpdate", key, emote) + elseif DP.PropEmotes[emote] ~= nil then + TriggerServerEvent("dp:ServerKeybindUpdate", key, emote) + else + EmoteChatMessage("'" .. emote .. "' " .. Config.Languages[lang]['notvalidemote'] .. "") + end + else + EmoteChatMessage("'" .. key .. "' " .. Config.Languages[lang]['notvalidkey']) + end + else + print("invalid") + end + end + +end diff --git a/resources/dpemotes-master/client/Ragdoll.lua b/resources/dpemotes-master/client/Ragdoll.lua new file mode 100644 index 000000000..8352435f2 --- /dev/null +++ b/resources/dpemotes-master/client/Ragdoll.lua @@ -0,0 +1,24 @@ +local isInRagdoll = false + +Citizen.CreateThread(function() + while true do + Citizen.Wait(10) + if isInRagdoll then + SetPedToRagdoll(PlayerPedId(), 1000, 1000, 0, 0, 0, 0) + end + end +end) + +Citizen.CreateThread(function() + while true do + Citizen.Wait(0) + if IsControlJustPressed(2, Config.RagdollKeybind) and Config.RagdollEnabled and IsPedOnFoot(PlayerPedId()) then + if isInRagdoll then + isInRagdoll = false + else + isInRagdoll = true + Wait(500) + end + end + end +end) diff --git a/resources/dpemotes-master/client/Syncing.lua b/resources/dpemotes-master/client/Syncing.lua new file mode 100644 index 000000000..f925acd96 --- /dev/null +++ b/resources/dpemotes-master/client/Syncing.lua @@ -0,0 +1,236 @@ +local isRequestAnim = false +local requestedemote = '' +local targetPlayerId = '' + +-- Some of the work here was done by Super.Cool.Ninja / rubbertoe98 +-- https://forum.fivem.net/t/release-nanimstarget/876709 + +----------------------------------------------------------------------------------------------------- +-- Commands / Events -------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------- +if Config.SharedEmotesEnabled then + RegisterCommand('nearby', function(source, args, raw) + if #args > 0 then + local emotename = string.lower(args[1]) + target, distance = GetClosestPlayer() + if (distance ~= -1 and distance < 3) then + if DP.Shared[emotename] ~= nil then + dict, anim, ename = table.unpack(DP.Shared[emotename]) + TriggerServerEvent("ServerEmoteRequest", GetPlayerServerId(target), emotename) + SimpleNotify(Config.Languages[lang]['sentrequestto'] .. + GetPlayerName(target) .. " ~w~(~g~" .. ename .. "~w~)") + else + EmoteChatMessage("'" .. emotename .. "' " .. Config.Languages[lang]['notvalidsharedemote'] .. "") + end + else + SimpleNotify(Config.Languages[lang]['nobodyclose']) + end + else + MearbysOnCommand() + end + end, false) +end + +RegisterNetEvent("SyncPlayEmote") +AddEventHandler("SyncPlayEmote", function(emote, player) + EmoteCancel() + Wait(300) + targetPlayerId = player + -- wait a little to make sure animation shows up right on both clients after canceling any previous emote + if DP.Shared[emote] ~= nil then + if DP.Shared[emote].AnimationOptions and DP.Shared[emote].AnimationOptions.Attachto then + -- We do not want to attach the player if the target emote already is attached to player + -- this would cause issue where both player would be attached to each other and fall under the map + local targetEmote = DP.Shared[emote][4] + if not targetEmote or not DP.Shared[targetEmote] or not DP.Shared[targetEmote].AnimationOptions or + not DP.Shared[targetEmote].AnimationOptions.Attachto then + local plyServerId = GetPlayerFromServerId(player) + local pedInFront = GetPlayerPed(plyServerId ~= 0 and plyServerId or GetClosestPlayer()) + local bone = DP.Shared[emote].AnimationOptions.bone or 11816 -- SKEL_Pelvis + local xPos = DP.Shared[emote].AnimationOptions.xPos or 0.0 + local yPos = DP.Shared[emote].AnimationOptions.yPos or 0.0 + local zPos = DP.Shared[emote].AnimationOptions.zPos or 0.0 + local xRot = DP.Shared[emote].AnimationOptions.xRot or 0.0 + local yRot = DP.Shared[emote].AnimationOptions.yRot or 0.0 + local zRot = DP.Shared[emote].AnimationOptions.zRot or 0.0 + AttachEntityToEntity(PlayerPedId(), pedInFront, bone, xPos, yPos, zPos, xRot, yRot, zRot, false, false, + false, false, 2, false) + end + end + + if OnEmotePlay(DP.Shared[emote]) then end + return + elseif DP.Dances[emote] ~= nil then + if OnEmotePlay(DP.Dances[emote]) then end + return + end +end) + +RegisterNetEvent("SyncPlayEmoteSource") +AddEventHandler("SyncPlayEmoteSource", function(emote, player) + -- Thx to Poggu for this part! + local ply = PlayerPedId() + local plyServerId = GetPlayerFromServerId(player) + local pedInFront = GetPlayerPed(plyServerId ~= 0 and plyServerId or GetClosestPlayer()) + + local heading = GetEntityHeading(pedInFront) + local coords = GetOffsetFromEntityInWorldCoords(pedInFront, 0.0, 1.0, 0.0) + if (DP.Shared[emote] and DP.Shared[emote].AnimationOptions) then + local SyncOffsetFront = DP.Shared[emote].AnimationOptions.SyncOffsetFront + if SyncOffsetFront then + coords = GetOffsetFromEntityInWorldCoords(pedInFront, 0.0, SyncOffsetFront, 0.0) + end + + -- There is a priority to the source attached, if it is not set, it will use the target + if (DP.Shared[emote].AnimationOptions.Attachto) then + local bone = DP.Shared[emote].AnimationOptions.bone or 11816 -- SKEL_Pelvis + local xPos = DP.Shared[emote].AnimationOptions.xPos or 0.0 + local yPos = DP.Shared[emote].AnimationOptions.yPos or 0.0 + local zPos = DP.Shared[emote].AnimationOptions.zPos or 0.0 + local xRot = DP.Shared[emote].AnimationOptions.xRot or 0.0 + local yRot = DP.Shared[emote].AnimationOptions.yRot or 0.0 + local zRot = DP.Shared[emote].AnimationOptions.zRot or 0.0 + AttachEntityToEntity(ply, pedInFront, bone, xPos, yPos, zPos, xRot, yRot, zRot, false, false, false, false, + 2, false) + end + end + SetEntityHeading(ply, heading - 180.1) + SetEntityCoordsNoOffset(ply, coords.x, coords.y, coords.z, 0) + EmoteCancel() + Wait(300) + targetPlayerId = player + if DP.Shared[emote] ~= nil then + if OnEmotePlay(DP.Shared[emote]) then end + return + elseif DP.Dances[emote] ~= nil then + if OnEmotePlay(DP.Dances[emote]) then end + return + end +end) + +RegisterNetEvent("SyncCancelEmote") +AddEventHandler("SyncCancelEmote", function(player) + if targetPlayerId and targetPlayerId == player then + targetPlayerId = nil + EmoteCancel() + end +end) + +function CancelSharedEmote(ply) + if targetPlayerId then + TriggerServerEvent("ServerEmoteCancel", targetPlayerId) + targetPlayerId = nil + end +end + +RegisterNetEvent("ClientEmoteRequestReceive") +AddEventHandler("ClientEmoteRequestReceive", function(emotename, etype) + isRequestAnim = true + requestedemote = emotename + + if etype == 'Dances' then + _, _, remote = table.unpack(DP.Dances[requestedemote]) + else + _, _, remote = table.unpack(DP.Shared[requestedemote]) + end + + PlaySound(-1, "NAV", "HUD_AMMO_SHOP_SOUNDSET", 0, 0, 1) + SimpleNotify(Config.Languages[lang]['doyouwanna'] .. remote .. "~w~)") +end) + +Citizen.CreateThread(function() + while true do + Citizen.Wait(5) + if IsControlJustPressed(1, 246) and isRequestAnim then + target, distance = GetClosestPlayer() + if (distance ~= -1 and distance < 3) then + if DP.Shared[requestedemote] ~= nil then + _, _, _, otheremote = table.unpack(DP.Shared[requestedemote]) + elseif DP.Dances[requestedemote] ~= nil then + _, _, _, otheremote = table.unpack(DP.Dances[requestedemote]) + end + if otheremote == nil then otheremote = requestedemote end + TriggerServerEvent("ServerValidEmote", GetPlayerServerId(target), requestedemote, otheremote) + isRequestAnim = false + else + SimpleNotify(Config.Languages[lang]['nobodyclose']) + end + elseif IsControlJustPressed(1, 182) and isRequestAnim then + SimpleNotify(Config.Languages[lang]['refuseemote']) + isRequestAnim = false + end + end +end) + +----------------------------------------------------------------------------------------------------- +------ Functions and stuff -------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------- + +function GetPlayerFromPed(ped) + for _, player in ipairs(GetActivePlayers()) do + if GetPlayerPed(player) == ped then + return player + end + end + return -1 +end + +function GetPedInFront() + local player = PlayerId() + local plyPed = GetPlayerPed(player) + local plyPos = GetEntityCoords(plyPed, false) + local plyOffset = GetOffsetFromEntityInWorldCoords(plyPed, 0.0, 1.3, 0.0) + local rayHandle = StartShapeTestCapsule(plyPos.x, plyPos.y, plyPos.z, plyOffset.x, plyOffset.y, plyOffset.z, 10.0, 12 + , plyPed, 7) + local _, _, _, _, ped2 = GetShapeTestResult(rayHandle) + return ped2 +end + +function MearbysOnCommand(source, args, raw) + local NearbysCommand = "" + for a in pairsByKeys(DP.Shared) do + NearbysCommand = NearbysCommand .. "" .. a .. ", " + end + EmoteChatMessage(NearbysCommand) + EmoteChatMessage(Config.Languages[lang]['emotemenucmd']) +end + +function SimpleNotify(message) + SetNotificationTextEntry("STRING") + AddTextComponentString(message) + DrawNotification(0, 1) +end + +function GetClosestPlayer() + local players = GetPlayers() + local closestDistance = -1 + local closestPlayer = -1 + local ply = PlayerPedId() + local plyCoords = GetEntityCoords(ply, 0) + + for index, value in ipairs(players) do + local target = GetPlayerPed(value) + if (target ~= ply) then + local targetCoords = GetEntityCoords(GetPlayerPed(value), 0) + local distance = GetDistanceBetweenCoords(targetCoords["x"], targetCoords["y"], targetCoords["z"], + plyCoords["x"], plyCoords["y"], plyCoords["z"], true) + if (closestDistance == -1 or closestDistance > distance) then + closestPlayer = value + closestDistance = distance + end + end + end + return closestPlayer, closestDistance +end + +function GetPlayers() + local players = {} + + for i = 0, 255 do + if NetworkIsPlayerActive(i) then + table.insert(players, i) + end + end + + return players +end diff --git a/resources/dpemotes-master/client/Walk.lua b/resources/dpemotes-master/client/Walk.lua new file mode 100644 index 000000000..e5f1e6750 --- /dev/null +++ b/resources/dpemotes-master/client/Walk.lua @@ -0,0 +1,41 @@ +function WalkMenuStart(name) + RequestWalking(name) + SetPedMovementClipset(PlayerPedId(), name, 0.2) + RemoveAnimSet(name) +end + +function RequestWalking(set) + RequestAnimSet(set) + while not HasAnimSetLoaded(set) do + Citizen.Wait(1) + end +end + +function WalksOnCommand(source, args, raw) + local WalksCommand = "" + for a in pairsByKeys(DP.Walks) do + WalksCommand = WalksCommand .. "" .. string.lower(a) .. ", " + end + EmoteChatMessage(WalksCommand) + EmoteChatMessage("To reset do /walk reset") +end + +function WalkCommandStart(source, args, raw) + local name = firstToUpper(args[1]) + + if name == "Reset" then + ResetPedMovementClipset(PlayerPedId()) + return + end + + if tableHasKey(DP.Walks, name) then + local name2 = table.unpack(DP.Walks[name]) + WalkMenuStart(name2) + else + EmoteChatMessage("'" .. name .. "' is not a valid walk") + end +end + +function tableHasKey(table, key) + return table[key] ~= nil +end diff --git a/resources/dpemotes-master/config.lua b/resources/dpemotes-master/config.lua new file mode 100644 index 000000000..7cb88fd94 --- /dev/null +++ b/resources/dpemotes-master/config.lua @@ -0,0 +1,589 @@ +Config = { + -- Change the language of the menu here!. + -- Note fr and de are google translated, if you would like to help out with translations, feel free to send me an 'issue' on Github. + -- Thank you to those who provided translations. + -- + + MenuLanguage = 'en', + -- Set this to true to enable some extra prints + DebugDisplay = false, + -- Set this to false if you have something else on X, and then just use /e c to cancel emotes. + EnableXtoCancel = true, + -- Set this to true if you want to disarm the player when they play an emote. + DisarmPlayer = false, + -- Set this if you really wanna disable emotes in cars, as of 1.7.2 they only play the upper body part if in vehicle + AllowedInCars = true, + -- You can disable the menu here / change the keybind. It is currently set to F3 + MenuKeybindEnabled = true, + MenuKeybind = 'DELETE', -- Get the button string here https://docs.fivem.net/docs/game-references/input-mapper-parameter-ids/keyboard/ + -- You can disable the Favorite emote keybinding here. + FavKeybindEnabled = true, + FavKeybind = 256, -- Get the button number here https://docs.fivem.net/game-references/controls/ + -- You can change the header image for the menu here + -- Use a 512 x 128 image! + -- Note this might cause an issue of the image getting stuck on peoples screens + CustomMenuEnabled = true, + MenuImage = "https://i.imgur.com/IRzHWb3.png", ----[Custom banner imgur URLs go here ]--- + -- You can change the menu image by pasting a link above. It must be the same width and length + -- + -- You can change the menu position here + MenuPosition = "right", -- (left, right) + -- You can enable or disable the Ragdoll keybinding here. + RagdollEnabled = false, + RagdollKeybind = 303, -- Get the button number here https://docs.fivem.net/game-references/controls/ + -- You can disable the Facial Expressions menu here. + ExpressionsEnabled = true, + -- You can disable the Walking Styles menu here. + WalkingStylesEnabled = true, + -- You can disable the Shared Emotes here. + SharedEmotesEnabled = true, + CheckForUpdates = true, + -- If you have the SQL imported enable this to turn on keybinding. + SqlKeybinding = false, +} + +Config.KeybindKeys = { + ['num4'] = 108, + ['num5'] = 110, + ['num6'] = 109, + ['num7'] = 117, + ['num8'] = 111, + ['num9'] = 118 +} + +Config.Languages = { + ['en'] = { -- English 🇬🇧 + ['emotes'] = 'Emotes 🎬', + ['danceemotes'] = "🕺 Dance Emotes", + ['animalemotes'] = "🐩 Animal Emotes", + ['propemotes'] = "📦 Prop Emotes", + ['favoriteemotes'] = "🌟 Favorite", + ['favoriteinfo'] = "Select an emote here to set it as your favorite.", + ['rfavorite'] = "Reset favorite", + ['prop2info'] = "❓ Prop Emotes can be located at the end", + ['set'] = "Set (", + ['setboundemote'] = ") to be your bound emote?", + ['newsetemote'] = "~w~ is now your bound emote, press ~g~CapsLock~w~ to use it.", + ['cancelemote'] = "Cancel Emote 🚷", + ['cancelemoteinfo'] = "~r~X~w~ Cancels the currently playing emote", + ['walkingstyles'] = "Walking Styles 🚶🏻‍♂️", + ['resetdef'] = "Reset to default", + ['normalreset'] = "Normal (Reset)", + ['moods'] = "Moods 😒", + ['infoupdate'] = "Credits & Suggestions 🙏🏻", + ['infoupdateav'] = "Information (Update available)", + ['infoupdateavtext'] = "An update is available, get the latest version from ~y~https://github.com/TayMcKenzieNZ/dpemotes~w~", + ['suggestions'] = "Suggestions?", + ['suggestionsinfo'] = "'TayMcKenzieNZ' on FiveM forums for any feature/emote suggestions! ✉️", + ['notvaliddance'] = "is not a valid dance.", + ['notvalidemote'] = "is not a valid emote.", + ['nocancel'] = "No emote to cancel.", + ['maleonly'] = "This emote is male only, sorry!", + ['emotemenucmd'] = "Do /emotemenu for a menu.", + ['shareemotes'] = "👫 Shared Emotes", + ['shareemotesinfo'] = "Invite a nearby person to emote", + ['sharedanceemotes'] = "🕺 Shared Dances", + ['notvalidsharedemote'] = "is not a valid shared emote.", + ['sentrequestto'] = "Sent request to ~y~", + ['nobodyclose'] = "Nobody ~r~close~w~ enough.", + ['doyouwanna'] = "~y~Y~w~ to accept, ~r~L~w~ to refuse (~g~", + ['refuseemote'] = "Emote refused.", + ['makenearby'] = "makes the nearby player play", + ['camera'] = "Press ~y~G~w~ to use camera flash.", + ['makeitrain'] = "Press ~y~G~w~ to make it rain.", + ['pee'] = "Hold ~y~G~w~ to pee.", + ['spraychamp'] = "Hold ~y~G~w~ to spray champagne", + ['stun'] = "Press ~y~G~w~ to 'use' stun gun.", + ['bound'] = "Bound ", + ['to'] = "to", + ['currentlyboundemotes'] = " Currently bound emotes:", + ['notvalidkey'] = "is not a valid key.", + ['keybinds'] = "🔢 Keybinds", + ['keybindsinfo'] = "Use" + }, + ['cs'] = { -- Czech 🇨🇿 + ['emotes'] = 'Animace 🎬', + ['danceemotes'] = "🕺 Taneční Animace", + ['animalemotes'] = "🐩 zvířecí Animace", + ['propemotes'] = "📦 Animace s předměty", + ['favoriteemotes'] = "🌟 Oblíbené", + ['favoriteinfo'] = "Vyberte si animaci a nastavte ji jako svou oblíbenou.", + ['rfavorite'] = "Obnovit oblíbené", + ['prop2info'] = "❓ Pomůcky se mohou nacházet na konci", + ['set'] = "Nastavit", + ['setboundemote'] = "Nastavit jako vaši animaci?", + ['newsetemote'] = "~w~ je nyní vaší novou nastavenou animací. Chcete-li jej použít, stiskněte ~g~CapsLock~w~.", + ['cancelemote'] = "Zrušit animaci 🚷", + ['cancelemoteinfo'] = "~r~X~w~ Zruší aktuálně přehrávanou animaci", + ['walkingstyles'] = "Styly chůze 🚶🏻‍♂️", + ['resetdef'] = "Obnovit do základního nastavení", + ['normalreset'] = "Neutrální výraz", + ['moods'] = "Výrazy 😒", + ['infoupdate'] = "Kredity a nápady 🙏🏻", + ['infoupdateav'] = "Informace (aktualizace dostupná)", + ['infoupdateavtext'] = "Je k dispozici aktualizace, stáhněte si nejnovější verzi z ~y~https://github.com/TayMcKenzieNZ/dpemotes~w~", + ['suggestions'] = "Nápady?", + ['suggestionsinfo'] = "'TayMcKenzieNZ' na FiveM forums je pro jakýkoliv návrh! ✉️", + ['notvaliddance'] = "Není platný tanec.", + ['notvalidemote'] = "Není platná animace.", + ['nocancel'] = "Žádné animace ke zrušení.", + ['maleonly'] = "Tato emoce je pouze pro muže, omlouvám se!", + ['emotemenucmd'] = "Použíj /emotemenu pro otevření menu.", + ['shareemotes'] = "👫 Sdílené animace", + ['shareemotesinfo'] = "Pozvěte osobu v okolí, k tanci", + ['sharedanceemotes'] = "🕺 Sdílený tanece", + ['notvalidsharedemote'] = "Není platný Sdílený tanec.", + ['sentrequestto'] = "Odeslal jsi ~y~ žádost o tanec ", + ['nobodyclose'] = "Nikdo ~r~není~w~ v dostatečné blízkosti.", + ['doyouwanna'] = "~y~Y~w~ pro příjmutí, ~r~L~w~ pro odmitnutí (~g~", + ['refuseemote'] = "Emote odmítnut.", + ['makenearby'] = "nechat hráče poblíž hrát", + ['camera'] = "Stiskni ~y~G~w~ pro použítí blesku u fotoaparátu.", + ['makeitrain'] = "Stiskni ~y~G~w~ pro spuštení deště.", + ['pee'] = "Podrž ~y~G~w~ pro čůraní.", + ['spraychamp'] = "Podrž ~y~G~w~ pro stříkaní šampaňského", + ['stun'] = "Stiskni ~y~G~w~ pro 'použití' paralyzéru.", + ['bound'] = "Bound ", + ['to'] = "na", + ['currentlyboundemotes'] = "Momentálně nastavené animace:", + ['notvalidkey'] = "Není platná klávesa.", + ['keybinds'] = "🔢 Klávesové Zkratky", + ['keybindsinfo'] = "Use" + }, + ['fr'] = { -- French 🇫🇷 + ['emotes'] = 'Emotes 🎬', + ['danceemotes'] = "🕺 Danses", + ['animalemotes'] = "🐩 Emotes d'animaux", + ['propemotes'] = "📦 Emotes objet", + ['favoriteemotes'] = "🌟 Favori", + ['favoriteinfo'] = "Définir une emote comme favori.", + ['rfavorite'] = "Réinitialiser le favori.", + ['prop2info'] = "❓ Les emotes d'objet peuvent être à la fin", + ['set'] = "Mettre (", + ['setboundemote'] = ") en emote favorite?", + ['newsetemote'] = "~w~ est maintenant votre emote favorite, appuyez sur ~g~CapsLock~w~ pour l'utiliser.", + ['cancelemote'] = "Annuler Emote 🚷", + ['cancelemoteinfo'] = "~r~X~w~ Annule l'emote en cours", + ['walkingstyles'] = "Styles de marche 🚶🏻‍♂️", + ['resetdef'] = "Réinitialiser aux valeurs par défaut", + ['normalreset'] = "Normal (réinitialiser)", + ['moods'] = "Humeurs 😒", + ['infoupdate'] = "Crédits et suggestions 🙏🏻", + ['infoupdateav'] = "Information (Mise à jour disponible)", + ['infoupdateavtext'] = "Une mise à jour est disponible ~y~https://github.com/TayMcKenzieNZ/dpemotes~w~", + ['suggestions'] = "Suggestions?", + ['suggestionsinfo'] = "'TayMcKenzieNZ' sur les forums FiveM pour toutes les suggestions! ✉️", + ['notvaliddance'] = "n'est pas une danse valide", + ['notvalidemote'] = "n'est pas une emote valide", + ['nocancel'] = "Pas d'emote à annuler", + ['maleonly'] = "Cet emote est réservé aux hommes, désolé!", + ['emotemenucmd'] = "Fait /emotemenu pour ouvrir le menu", + ['shareemotes'] = "👫 Emotes partagées", + ['shareemotesinfo'] = "Invite une personne proche à faire une emote avec toi", + ['sharedanceemotes'] = "🕺 Dances partagées", + ['notvalidsharedemote'] = "n'est pas un emote partagée valide.", + ['sentrequestto'] = "Demande envoyée à ~g~", + ['nobodyclose'] = "Personne n'esst assez proche.", + ['doyouwanna'] = "~y~Y~w~ accepter, ~r~L~w~ refuser (~g~", + ['refuseemote'] = "Emote refusée.", + ['makenearby'] = "fait jouer le joueur à proximité", + ['camera'] = "Presse ~y~G~w~ pour utiliser le flash de l'appareil.", + ['makeitrain'] = "Presse ~y~G~w~ pour jeter de l'argent.", + ['pee'] = "Tenir ~y~G~w~ pour faire pipi.", + ['spraychamp'] = "Tenir ~y~G~w~ pour vaporiser du champagne.", + ['bound'] = "Liée ", + ['to'] = "à", + ['currentlyboundemotes'] = " Emotes actuellement liées:", + ['notvalidkey'] = "n'est pas une clé valide.", + ['keybinds'] = "🔢 Raccourcis clavier", + ['keybindsinfo'] = "Utilise" + }, + ['de'] = { -- German 🇩🇪 + ['emotes'] = 'Emotes 🎬', + ['danceemotes'] = "🕺 Tanz-Emotes", + ['animalemotes'] = "🐩 Animal Emotes", + ['propemotes'] = "📦 Prop-Emotes", + ['favoriteemotes'] = "🌟 Favorit", + ['favoriteinfo'] = "Wählen Sie hier ein Emote aus, um es als gebundenes Emote festzulegen.", + ['rfavorite'] = "Keybind zurücksetzen", + ['prop2info'] = "❓ Prop-Emotes können am Ende platziert werden", + ['set'] = "Set (", + ['setboundemote'] = ") soll dein gebundenes Emote sein?", + ['newsetemote'] = "~w~ ist jetzt dein gebundenes Emote, drücke ~g~CapsLock~w~, um es zu verwenden.", + ['cancelemote'] = "Emote abbrechen 🚷", + ['cancelemoteinfo'] = "~r~ X ~w~ Bricht das aktuell wiedergegebene Emote ab", + ['walkingstyles'] = "Gehstile 🚶🏻‍♂️", + ['resetdef'] = "Auf Standard zurücksetzen", + ['normalreset'] = "Normal (Zurücksetzen)", + ['moods'] = "Stimmungen 😒", + ['infoupdate'] = "Credits und Dank 🙏🏻", + ['infoupdateav'] = "Information (Update verfügbar)", + ['infoupdateavtext'] = "Eine Aktualisierung ist verfügbar ~y~https://github.com/TayMcKenzieNZ/dpemotes~w~", + ['suggestions'] = "Vorschläge?", + ['suggestionsinfo'] = "'TayMcKenzieNZ' in FiveM-Foren für alle Feature- / Emote-Vorschläge! ✉️", + ['notvaliddance'] = "ist kein gültiger Tanz", + ['notvalidemote'] = "ist kein gültiges Emote", + ['nocancel'] = "Kein Emote zum Abbrechen", + ['maleonly'] = "Dieses Emote ist nur männlich, sorry!", + ['emotemenucmd'] = "Do /emotemenu für ein Menü", + ['shareemotes'] = "👫 Geteilte Emotes", + ['shareemotesinfo'] = "Laden Sie eine Person in Ihrer Nähe zum Emoten ein", + ['sharedanceemotes'] = "🕺 Geteilte Tänze", + ['notvalidsharedemote'] = "ist kein gültiges geteiltes Emote.", + ['sentrequestto'] = "Gesendete Anfrage an ~g~", + ['nobodyclose'] = "Niemand ist nah genug dran.", + ['doyouwanna'] = "~y~Z~w~ zu akzeptieren, ~r~L~w~ zu verweigern (~g~", + ['refuseemote'] = "Emote abgelehnt.", + ['makenearby'] = "Lässt den Spieler in der Nähe spielen", + ['camera'] = "Drücken ~y~G~w~ Kamerablitz verwenden.", + ['makeitrain'] = "Drücken ~y~G~w~ Geld werfen.", + ['pee'] = "Halt ~y~G~w~ urinieren.", + ['spraychamp'] = "Halt ~y~G~w~ champagner sprühen", + ['bound'] = "Gebunden ", + ['to'] = "zu", + ['currentlyboundemotes'] = " Derzeit gebundene Emotes:", + ['notvalidkey'] = "ist kein gültiger schlüssel.", + ['keybinds'] = "🔢 Tastenkombinationen", + ['keybindsinfo'] = "verwenden" + }, + ['sv'] = { -- Swedish 🇸🇪 + ['emotes'] = 'Emotes 🎬', + ['danceemotes'] = "🕺 Dans Emotes", + ['animalemotes'] = "🐩 Animal Emotes", + ['propemotes'] = "📦 Objekt Emotes", + ['favoriteemotes'] = "🌟 Favorit", + ['favoriteinfo'] = "Välj en emote här för att ställa in den som din favorit emote.", + ['rfavorite'] = "Återställ favorit.", + ['prop2info'] = "❓ Objekt Emotes finns längst ner i listan.", + ['set'] = "Sätt (", + ['setboundemote'] = ") till din favorit emote?", + ['newsetemote'] = "~w~ är nu din favorit emote, tryck ~g~CapsLock~w~ för att använda den.", + ['cancelemote'] = "Avbryt Emote 🚷", + ['cancelemoteinfo'] = "~r~X~w~ Avbryter det emote som för närvarande används.", + ['walkingstyles'] = "Walking Stil 🚶🏻‍♂️", + ['resetdef'] = "Återställ till standard", + ['normalreset'] = "Normal (Återställ)", + ['moods'] = "Humör 😒", + ['infoupdate'] = "Krediter Och Förslag 🙏🏻", + ['infoupdateav'] = "Information (Uppdatering tillgänglig)", + ['infoupdateavtext'] = "En uppdatering är tillgänglig ~y~https://github.com/TayMcKenzieNZ/dpemotes~w~", + ['suggestions'] = "Förslag?", + ['suggestionsinfo'] = "'TayMcKenzieNZ' på FiveM-forum för alla funktioner/emote-förslag! ✉️", + ['notvaliddance'] = "är inte en giltig dans", + ['notvalidemote'] = "är inte en giltig emote", + ['nocancel'] = "Ingen emote att avbryta", + ['maleonly'] = "Den här emoten är endast för män, ledsen!", + ['emotemenucmd'] = "Gör /emotemenu för en meny", + ['shareemotes'] = "👫 Delade Emotes", + ['shareemotesinfo'] = "Bjud in en någon nära för en emote", + ['sharedanceemotes'] = "🕺 Delade Danser", + ['notvalidsharedemote'] = "är inte en giltig delad emote.", + ['sentrequestto'] = "Skickad förfrågan till ~g~", + ['nobodyclose'] = "Ingen ~r~nära~w~ tillräckligt.", + ['doyouwanna'] = "~y~Y~w~ för att acceptera, ~r~L~w~ för att vägra (~g~", + ['refuseemote'] = "Emote vägrades.", + ['makenearby'] = "andra personen spelar", + ['camera'] = "Tryck ~y~G~w~ för att använda blixt.", + ['makeitrain'] = "Tryck ~y~G~w~ för att kasta pengar.", + ['pee'] = "Håll ~y~G~w~ att kissa.", + ['spraychamp'] = "Håll ~y~G~w~ för att spraya champagne.", + ['bound'] = "Bunde ", + ['to'] = "till", + ['currentlyboundemotes'] = " För närvarande bundna emotes:", + ['notvalidkey'] = "är inte en giltig tangent.", + ['keybinds'] = "🔢 Keybinds", + ['keybindsinfo'] = "Använd" + }, + ['es'] = { -- Spanish 🇪🇸 + ['emotes'] = "Animaciones 🎬", + ['danceemotes'] = "🕺 Bailes", + ['animalemotes'] = "🐩 Emotes de animales", + ['propemotes'] = "📦 Objetos", + ['favoriteemotes'] = "🌟 Favoritos", + ['favoriteinfo'] = "Seleccione un emoticón aquí para configurarlo como su favorito.", + ['rfavorite'] = "Restablecer favorito", + ['prop2info'] = "❓ Prop Emotes se pueden ubicar al final", + ['set'] = "Elegir (", + ['setboundemote'] = ") como tu animacion favorita?", + ['newsetemote'] = "~w~ es ahora tu animacion favorita, presiona ~g~[CapsLock]~w~ para usarla.", + ['cancelemote'] = "Cancelar animacion 🚷", + ['cancelemoteinfo'] = "~r~X~w~ Cancela la animacion actual.", + ['walkingstyles'] = "Formas de caminar 🚶🏻‍♂️", + ['resetdef'] = "Reiniciar a por defecto", + ['normalreset'] = "Normal (Reiniciar)", + ['moods'] = "Estados de animo 😒", + ['infoupdate'] = "Créditos Y Sugerencias 🙏🏻", + ['infoupdateav'] = "Informacion (Actualizacion disponible)", + ['infoupdateavtext'] = "Una actualizacion esta disponible, para conseguir la ultima version ingresa a ~y~https://github.com/TayMcKenzieNZ/dpemotes~w~", + ['suggestions'] = "Sugerencias?", + ['suggestionsinfo'] = "TayMcKenzieNZ' en el foro de FiveM para cualquier sugerencia! ✉️", + ['notvaliddance'] = "no es un baile valido.", + ['notvalidemote'] = "no es una animacion valida.", + ['nocancel'] = "No hay animacion para cancelar.", + ['maleonly'] = "Esta animacion es solo de hombre!", + ['emotemenucmd'] = "Escribe /emotemenu para abrir el menu.", + ['shareemotes'] = "👫 Animaciones compartidas", + ['shareemotesinfo'] = "Invita a una persona cercana para la animacion.", + ['sharedanceemotes'] = "🕺 Bailes compartidos", + ['notvalidsharedemote'] = "no es una animacion compartida valida.", + ['sentrequestto'] = "Solicitud enviada ~y~", + ['nobodyclose'] = "Nadie ~r~cerca~w~.", + ['doyouwanna'] = "~y~Y~w~ para aceptar, ~r~L~w~ para rechazar (~g~", + ['refuseemote'] = "Animacion rechazada.", + ['makenearby'] = "hacer que el jugador cercano juegue", + ['camera'] = "Presione ~y~G~w~ para usar el flash de la camara.", + ['makeitrain'] = "Presiona ~y~G~w~ para hacer llover.", + ['pee'] = "Mantiene ~y~G~w~ para mear.", + ['spraychamp'] = "Mantiene ~y~G~w~ rociar champán.", + ['bound'] = "Unida ", + ['to'] = "a", + ['currentlyboundemotes'] = " Emotes vinculados actualmente:", + ['notvalidkey'] = "no es una clave válida.", + ['keybinds'] = "🔢 Keybinds", + ['keybindsinfo'] = "Utilizar" + }, + ['nl'] = { -- Dutch 🇳🇱 + ['emotes'] = 'Animaties 🎬', + ['danceemotes'] = "🕺 Dans Animaties", + ['animalemotes'] = "🐩 Dier Animaties", + ['propemotes'] = "📦 Prop Animaties", + ['favoriteemotes'] = "🌟 Favorieten", + ['favoriteinfo'] = "Selecteer hier een animatie om deze als favoriete in te stellen.", + ['rfavorite'] = "Reset Favorieten", + ['prop2info'] = "❓ Prop animaties staan aan het einde.", + ['set'] = "Maak (", + ['setboundemote'] = ") je toegewezen animatie?", + ['newsetemote'] = "~w~ is nu je toegewezen animatie, druk op ~g~CapsLock~w~ om hem te gebruiken.", + ['cancelemote'] = "Stop Animatie 🚷", + ['cancelemoteinfo'] = "~r~X~w~ Stopt je huidige animatie", + ['walkingstyles'] = "Loopjes 🚶🏻‍♂️", + ['resetdef'] = "Reset naar standaard", + ['normalreset'] = "Normaal (Reset)", + ['moods'] = "Stemmingen 😒", + ['infoupdate'] = "Credits en bedankt 🙏🏻", + ['infoupdateav'] = "Informatie (Update beschikbaar)", + ['infoupdateavtext'] = "Een update is beschikbaar, download de laatste versie via ~y~https://github.com/TayMcKenzieNZ/dpemotes~w~", + ['suggestions'] = "Suggesties?", + ['suggestionsinfo'] = "'TayMcKenzieNZ' op de FiveM forums om suggesties in te dienen! ✉️", + ['notvaliddance'] = "Is geen geldige dans.", + ['notvalidemote'] = "Is geen geldige animatie.", + ['nocancel'] = "Er is geen animatie om te annuleren.", + ['maleonly'] = "Deze animatie is alleen voor mannen, sorry!", + ['emotemenucmd'] = "Doe /emotemenu voor het animatiemenu.", + ['shareemotes'] = "👫 Gedeelde Animaties", + ['shareemotesinfo'] = "Nodig een persoon in de buurt uit om een animatie te doen.", + ['sharedanceemotes'] = "🕺 Gedeelde Dansjes", + ['notvalidsharedemote'] = "Is geen geldige gedeelde animatie.", + ['sentrequestto'] = "Verzoek gestuurd naar ~y~", + ['nobodyclose'] = "Er is niemand ~r~dichtbij~w~ genoeg.", + ['doyouwanna'] = "~y~Y~w~ om te accepteren, ~r~L~w~ om te weigeren (~g~", + ['refuseemote'] = "Animatie geweigerd.", + ['makenearby'] = "laat de dichtstbijzijnde persoon de animatie doen", + ['camera'] = "Druk op ~y~G~w~ om de flitser te gebruiken..", + ['makeitrain'] = "Druk op ~y~G~w~ om geld te gooien.", + ['pee'] = "Druk op ~y~G~w~ om te plassen.", + ['spraychamp'] = "Druk op ~y~G~w~ om batra's te spuiten.", + ['stun'] = "Druk op ~y~G~w~ om de taser te 'gebruiken'.", + ['bound'] = "Gebonden ", + ['to'] = "aan", + ['currentlyboundemotes'] = " Huidig gebonden animaties:", + ['notvalidkey'] = "Is geen geldige knop.", + ['keybinds'] = "🔢 Keybinds", + ['keybindsinfo'] = "Gebruik" + }, + ['pt'] = { -- Brazilian Portuguese 🇧🇷 + ['emotes'] = 'Emotes 🎬', + ['danceemotes'] = "🕺 Emotes de Danças", + ['animalemotes'] = "🐩 Emotes de Animais", + ['propemotes'] = "📦 Emotes com Props", + ['favoriteemotes'] = "🌟 Favoritos", + ['favoriteinfo'] = "Selecione um emote para colocá-lo nos seus favoritos", + ['rfavorite'] = "Limpar favoritos", + ['prop2info'] = "❓ Emotes de props podem ser localizados no fim", + ['set'] = "Set (", + ['setboundemote'] = ") para ser seu emote vinculado?", + ['newsetemote'] = "~w~ é o seu emote vinculado, pressione ~g~CapsLock~w~ para usá-lo", + ['cancelemote'] = "Cancelar emote 🚷", + ['cancelemoteinfo'] = "~r~X~w~ Cancela os emotes rodando atualmente", + ['walkingstyles'] = "Estilos de Caminhada 🚶🏻‍♂️", + ['resetdef'] = "Resetar para o padrão", + ['normalreset'] = "Normal (Resetar)", + ['moods'] = "Humores 😒", + ['infoupdate'] = "Crédito e agradecimento 🙏🏻", + ['infoupdateav'] = "Informação (Atualização disponível)", + ['infoupdateavtext'] = "Uma atualização disponível, veja ~y~https://github.com/TayMcKenzieNZ/dpemotes~w~ para pegar", + ['suggestions'] = "Sugestões?", + ['suggestionsinfo'] = "'TayMcKenzieNZ' no fórum do FiveM para qualquer sugestão de recurso/emotes! ✉️", + ['notvaliddance'] = "não é uma dança válida.", + ['notvalidemote'] = "não é um emote válido.", + ['nocancel'] = "Nenhum emote para cancelar", + ['maleonly'] = "Este emote é para homens, desculpe!", + ['emotemenucmd'] = "Faça /emotemenu para abrir o menu.", + ['shareemotes'] = "👫 Emotes compartilhados", + ['shareemotesinfo'] = "Convide uma pessoa próxima para para realizar a animação", + ['sharedanceemotes'] = "🕺 Danças compartilhadas", + ['notvalidsharedemote'] = "não é um emote compartilhado válido.", + ['sentrequestto'] = "Enviar solicitação para ~y~", + ['nobodyclose'] = "Ninguém próximo o ~r~rsuficiente~w~.", + ['doyouwanna'] = "~y~Y~w~ para aceitar, ~r~L~w~ para recursar (~g~", + ['refuseemote'] = "Emote recursado", + ['makenearby'] = "Faz o jogador próximo participar", + ['camera'] = "Pressione ~y~G~w~ para usar o flash da câmera", + ['makeitrain'] = "Pressione ~y~G~w~ para fazer chover.", + ['pee'] = "Mantenha pressionado ~y~G~w~ para fazer xixi.", + ['spraychamp'] = "Mantenha pressionado ~y~G~w~ jogar champagne", + ['stun'] = "Press ~y~G~w~ to 'use' stun gun.", + ['bound'] = "Vinculado ", + ['to'] = "para", + ['currentlyboundemotes'] = "Emotes atualmente vinculados: ", + ['notvalidkey'] = "isto não é uma chave válida", + ['keybinds'] = "🔢 Keybinds", + ['keybindsinfo'] = "Usar" + }, + ['it'] = { -- Italian 🇮🇹 + ['emotes'] = 'Animazioni 🎬', + ['danceemotes'] = "🕺 Animazioni Di Danza", + ['animalemotes'] = "🐩 Animazioni Di Animali", + ['propemotes'] = "📦 Animazioni Prop", + ['favoriteemotes'] = "🌟 Emote preferite", + ['favoriteinfo'] = "Seleziona un'animazione per metterla nei preferiti.", + ['rfavorite'] = "Rimuovi preferito", + ['prop2info'] = "❓ Le animazioni Prop possono essere trovate in fondo.", + ['set'] = "Imposta (", + ['setboundemote'] = ") come tua animazione corrente?", + ['newsetemote'] = "~w~ è ora la tua animazione corrente, premi ~g~CapsLock~w~ per usarla.", + ['cancelemote'] = "Annulla animazione 🚷", + ['cancelemoteinfo'] = "~r~X~w~ Cancella l'animazione in corso.", + ['walkingstyles'] = "Stili di camminata 🚶🏻‍♂️", + ['resetdef'] = "Ripristina predefiniti", + ['normalreset'] = "Normale (Reset)", + ['moods'] = "Umori 😒", + ['infoupdate'] = "Crediti e grazie 🙏🏻", + ['infoupdateav'] = "Informazioni (Aggiornamento disponibile)", + ['infoupdateavtext'] = "Un aggiornamento è disponibile, ottieni l'ulima versione qui ~y~https://github.com/TayMcKenzieNZ/dpemotes~w~", + ['suggestions'] = "Suggerimenti?", + ['suggestionsinfo'] = "'TayMcKenzieNZ' nei forum di FiveM per suggerimenti su funzionalitá/animazioni! ✉️", + ['notvaliddance'] = "non è un ballo valido.", + ['notvalidemote'] = "non è un'animazione valida.", + ['nocancel'] = "Nessun'animazione da cancellare.", + ['maleonly'] = "Quest'animazione è solo maschile!", + ['emotemenucmd'] = "Esegui /emotemenu per aprire il menù.", + ['shareemotes'] = "👫 Animazioni di coppia", + ['shareemotesinfo'] = "Invita un giocatore vicino ad un'animazione", + ['sharedanceemotes'] = "🕺 Balli di coppia", + ['notvalidsharedemote'] = "non è un'animazione di coppia valida.", + ['sentrequestto'] = "Richiesta mandata a ~y~", + ['nobodyclose'] = "Nessun giocatore abbastanza ~r~vicino~w~.", + ['doyouwanna'] = "~y~Y~w~ per accettare, ~r~L~w~ per rifiutare (~g~", + ['refuseemote'] = "Animazione rifiutata.", + ['makenearby'] = "fa eseguire l'animazione al giocatore vicino", + ['camera'] = "Premi ~y~G~w~ per usare il flash della fotocamera.", + ['makeitrain'] = "Premi ~y~G~w~ per far piovere.", + ['pee'] = "Tieni premuto ~y~G~w~ per urinare.", + ['spraychamp'] = "Tieni premuto ~y~G~w~ per spruzzare champagne", + ['stun'] = "Premi ~y~G~w~ per 'usare' la pistola stordente.", + ['bound'] = "É stato impostato ", + ['to'] = "per", + ['currentlyboundemotes'] = " Animazioni correnti:", + ['notvalidkey'] = "non è una chiave valida.", + ['keybinds'] = "🔢 Tasti", + ['keybindsinfo'] = "Utilizza" + }, + ['da'] = { -- Danish 🇩🇰 + ['emotes'] = 'Animationer', + ['danceemotes'] = "🕺 Danse Animationer", + ['animalemotes'] = "🐩 Dyr Animationer", + ['propemotes'] = "📦 Rekvisit Animationer", + ['favoriteemotes'] = "🌟 Favorit", + ['favoriteinfo'] = "Vælge en animationer her for at sætte den som din favorit.", + ['rfavorite'] = "Nulstil Favorit", + ['prop2info'] = "❓ Rekvisit emotes findes i slutningen", + ['set'] = "Sæt (", + ['setboundemote'] = ") til din favorit animationer?", + ['newsetemote'] = "~w~ Er nu din favorit animationer, tryk ~g~CapsLock~w~ for at anvende den.", + ['cancelemote'] = "Afbryd animationer", + ['cancelemoteinfo'] = "~r~X~w~ Anullere din igangværende animationer.", + ['walkingstyles'] = "Gågange", + ['resetdef'] = "Nulstil til standard", + ['normalreset'] = "Normal (Nulstil)", + ['moods'] = "Humør 😒", + ['infoupdate'] = "Info / opdateringer", + ['infoupdateav'] = "Information (Opdatering available)", + ['infoupdateavtext'] = "En opdatering er tilgænglig, hent den nyeste version fra ~y~https://github.com/TayMcKenzieNZ/dpemotes~w~", + ['suggestions'] = "Forslag?", + ['suggestionsinfo'] = "'TayMcKenzieNZ' på FiveM-forum for alle funktioner/emote-forslag! ✉️", + ['notvaliddance'] = "er ikke en gyldig dans", + ['notvalidemote'] = "er ikke en gyldig emote", + ['nocancel'] = "Ingen animationer afspilles lige nu", + ['maleonly'] = "Denne animationer virker desværre kun til mænd!", + ['emotemenucmd'] = "Skriv /emotemenu for animationer menuen", + ['shareemotes'] = "👫 Delte animationer", + ['shareemotesinfo'] = "Invitere en spillere i nærheden for afspille animationer", + ['sharedanceemotes'] = "🕺 Delete Danse", + ['notvalidsharedemote'] = "er ikke en gyldig delt animationer.", + ['sentrequestto'] = "Anmodning sendt til ~y~", + ['nobodyclose'] = "Ingen ~r~tæt~w~ nok.", + ['doyouwanna'] = "~y~Y~w~ for at acceptere, ~r~L~w~ for at nægte (~g~", + ['refuseemote'] = "Animationer nægtede.", + ['makenearby'] = "får den nærliggende spiller til at spille", + ['camera'] = "Tryk ~y~G~w~ for at bruge kamera kameraets blitz.", + ['makeitrain'] = "Tryk ~y~G~w~ for at regne med penge.", + ['pee'] = "Hold ~y~G~w~ for at tisse.", + ['spraychamp'] = "Hold ~y~G~w~ for at sprøjte med champagnen", + ['stun'] = "tryk på ~y~G~w~ for at bruge elektrisk pistol.", + ['bound'] = "Bundet ", + ['to'] = "til", + ['currentlyboundemotes'] = " Keybind animationer:", + ['notvalidkey'] = "er ikke en gyldigt nøgle.", + ['keybinds'] = "🔢 Keybinds", + ['keybindsinfo'] = "Brug" + }, + ['fi'] = { -- Finnish 🇫🇮 + ['emotes'] = 'Emotet 🎬', + ['danceemotes'] = "🕺 Tanssi Emotet", + ['animalemotes'] = "🐩 Eläin Emotet", + ['propemotes'] = "📦 Esine Emotet", + ['favoriteemotes'] = "🌟 Suosikit", + ['favoriteinfo'] = " Valitse emote täältä laittaaksesi sen suosikiksi.", + ['rfavorite'] = "Resettaa Suosikin.", + ['prop2info'] = "❓ Esine Emotet voivat sijaita lopussa", + ['set'] = "Aseta (", + ['setboundemote'] = ") on sinun bindattu emote ?", + ['newsetemote'] = "w on nyt bindattuna emotesi, paina gCapsLockw käyttääksesi", + ['cancelemote'] = "Peru emote 🚷", + ['cancelemoteinfo'] = "rXw Peruu meneillään olevan emoten ", + ['walkingstyles'] = "Kävelytyylit🚶🏻‍♂️", + ['resetdef'] = "Resettaa oletuksen", + ['normalreset'] = "Normaali (Reseettaa)", + ['moods'] = "Mielitilat😒", + ['infoupdate'] = "Krediitit & Ehdotukset 🙏🏻", + ['infoupdateav'] = "Informaatio (Päivitys Saatavilla)", + ['infoupdateavtext'] = " Uusin versio saatavilla täältä yhttps://github.com/TayMcKenzieNZ/dpemotes~w~", + ['suggestions'] = "Ehdotukset?", + ['suggestionsinfo'] = "'TayMcKenzieNZ' Fivem foormueilta mitä vain fiituria/emote ehdotusta! ✉️", + ['notvaliddance'] = "Ei ole tanssi.", + ['notvalidemote'] = "Ei ole emote.", + ['nocancel'] = "Ei ole emotea peruutettavaksi.", + ['maleonly'] = "Tämä emote on miehille ainostaan, anteeksi!", + ['emotemenucmd'] = "Tee /emotemenu avataksesi emote menun", + ['shareemotes'] = "👫 Yhteiset Emotet", + ['shareemotesinfo'] = "Kutsu lähin hahmo emoteen ", + ['sharedanceemotes'] = "🕺 Yhteiset Tanssit", + ['notvalidsharedemote'] = "Ei ole yhteinen tanssi emote.", + ['sentrequestto'] = "Lähetä kutsu y", + ['nobodyclose'] = "Ei ketään rlähelläw sinua.", + ['doyouwanna'] = "yYw hyväksyyksesi, rLw kieltäytyäksesi (g", + ['refuseemote'] = "Emote peruutettu.", + ['makenearby'] = "tekee lähimmän pelaaja osallistumaan ", + ['camera'] = "Paina yGw käyttääksesi kameran salamaa.", + ['makeitrain'] = "Paina yGw heittääksesi rahaa.", + ['pee'] = "Pidä yGw pissaksesi.", + ['spraychamp'] = "Pidä yGw suihkutaaksesi shamppaniaa", + ['stun'] = "Paina yGw to 'käytä' etälamautinta.", + ['bound'] = "Bindata", + ['to'] = 'lle', + ['currentlyboundemotes'] = " On jo bindattuna emotehin :", + ['notvalidkey'] = "Ei ole käytettävä näppäin.", + ['keybinds'] = "🔢 Pikanäppäimet", + ['keybindsinfo'] = "Käytä", +}} diff --git a/resources/dpemotes-master/fxmanifest.lua b/resources/dpemotes-master/fxmanifest.lua new file mode 100644 index 000000000..91c859b5e --- /dev/null +++ b/resources/dpemotes-master/fxmanifest.lua @@ -0,0 +1,36 @@ +--- DPEmotes by andristum --- +--- Forked by TayMcKenzieNZ --- +--- Check for updates at https://github.com/TayMcKenzieNZ/dpemotes --- + +fx_version 'adamant' + +game 'gta5' + +-- Comment the following linnes if you don't want to use the SQL keybinds +--#region oxmysql +-- dependency 'oxmysql' +-- server_script "@oxmysql/lib/MySQL.lua" +--#endregion oxmysql + +shared_scripts { + 'config.lua', +} + +server_scripts { + 'printer.lua', + 'server/*.lua' +} + +client_scripts { + 'NativeUI.lua', + 'client/*.lua' +} + + +data_file "DLC_ITYP_REQUEST" "badge1.ytyp" + +data_file "DLC_ITYP_REQUEST" "copbadge.ytyp" + +data_file "DLC_ITYP_REQUEST" "prideprops_ytyp" + +data_file "DLC_ITYP_REQUEST" "lilflags_ytyp" diff --git a/resources/dpemotes-master/printer.lua b/resources/dpemotes-master/printer.lua new file mode 100644 index 000000000..0584813a6 --- /dev/null +++ b/resources/dpemotes-master/printer.lua @@ -0,0 +1 @@ +print("DpEmotes forked by TayMcKenzieNZ loaded sucessfully.") diff --git a/resources/dpemotes-master/screenshots/boop.jpg b/resources/dpemotes-master/screenshots/boop.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c10ae15c3b5056f8a9a1d4c9afcd17fb704d61be GIT binary patch literal 400834 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

?eB`@iHm{Ij#IW%XES;#5n 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

9ox$Yd*r^giob*9u_ug!<^gCM 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

B7^57n=SPSCz(fyHqUG`&` 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

-Ri0I4XDAmGcFsn;1Us!&ApvuY*w1Xz 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

-G77_vWicl1fy%%R+AFp*0x z(SO_?J@JYwI?dKCMgTGc@XNlnE2Xfg8h7NMoQM|!HK=@XYL7$*$Y=bnHYmDc)G@MTKq zd@dLK3_4#!twrm7E8wc3T41-D&d|r%3ewA!-Q<;Be#GzbwoZTUBER<$R^Qm4{bC>bgri@fAN^ts48q#WnU!7CAPm`7897Vgc<^Q8 zQC2zdL~$#Fs=wcHfhisY@HmQWjlq-T;t(wiqaiR0j48;=S*aP9?Otlr_H?<4j)Y;7 zrwIQ53k`PCWhR(b=0~A}6|R>B5WP#L0#@qVih%nCkt{}4?JGe(PHF8k2*N)M&BQtc z!EdOeY9SZ9&x5qIr!E3HmUO6f30o15bVl|n(f0C8YWbuUKlVH^N#Q&LEDpv`hFQgy@*&37j)AVNbM&17$CEQ(k`Vz zj1v9+F}xp)Z4Z4)G^^;J`1$_;#V7v&9Ewmq!=?0M4S#E|bNxmgsBvS*cg(il3Y4#c z26I=!X_mu&{{Yq5hN%{@Cun~a89k9WhBkYEaT~uO^I49CN?;w&?aX7mzei*vkMKnr zf>BvvYT2BtE}~d>{qjU>#M!zJBFyAvd~RDYFQ@ea`whaUVV;lw031y%aV!S3dX?3M zRI(27*18>7H7-?>u__Xly)o4Iy=&!Nd5h3x#?LbefzoqVh+~v1gI(p&Gj+tRCFZvR zRKb7J5~l9Qa5v(r|p+z!%TNWR((S5>aaMZ|dTVe=Gd5QpHS2C@LxPmrBtc|#% zxoQok6N^{eUuPT}_Y$eic`Cb22if@vim;6~&0rGy44{CbxQ&9XrwSt#p2T^Cj3o10f+S=S=mQ|Js1zUZt+?#Vm}oAoWRP8qoeTV6NvOo5QRA| wB^(tG*+yIhbO$PWEltN{=i#{gJM{1Iu9q%4hexMB5;5t-XFncD&VC>N+4rdZIsgCw literal 0 HcmV?d00001 diff --git a/resources/dpemotes-master/screenshots/cb_before.jpg b/resources/dpemotes-master/screenshots/cb_before.jpg new file mode 100644 index 0000000000000000000000000000000000000000..742c67038cafba4b803a0fea10b9bd3e950858bc GIT binary patch literal 88118 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πH)>1uD>(Mhy?liuNvGclNY< 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