96 lines
		
	
	
	
		
			4.2 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
	
		
			4.2 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
CreateThread(function()
 | 
						|
    TriggerEvent('chat:addSuggestion', '/e', Translate('play_emote'),
 | 
						|
        { { name = "emotename",      help = Translate('help_command') },
 | 
						|
            { name = "texturevariation", help = Translate('help_variation') } })
 | 
						|
    TriggerEvent('chat:addSuggestion', '/emote', Translate('play_emote'),
 | 
						|
        { { name = "emotename",      help = Translate('help_command') },
 | 
						|
            { name = "texturevariation", help = Translate('help_variation') } })
 | 
						|
    if Config.Keybinding then
 | 
						|
        TriggerEvent('chat:addSuggestion', '/emotebind', Translate('link_emote_keybind'),
 | 
						|
            { { name = "key",     help = "num4, num5, num6, num7. num8, num9. Numpad 4-9!" },
 | 
						|
                { name = "emotename", help = Translate('help_command') } })
 | 
						|
        TriggerEvent('chat:addSuggestion', '/emotebinds', Translate('show_emote_keybind'))
 | 
						|
        TriggerEvent('chat:addSuggestion', '/emotedelete', Translate('remove_emote_keybind'),
 | 
						|
            { { name = "key", help = "num4, num5, num6, num7. num8, num9. Numpad 4-9!" } })
 | 
						|
    end
 | 
						|
    TriggerEvent('chat:addSuggestion', '/emotemenu', Translate('open_menu_emote'))
 | 
						|
    TriggerEvent('chat:addSuggestion', '/emotes', Translate('show_list_emote'))
 | 
						|
    TriggerEvent('chat:addSuggestion', '/emotecancel', Translate('cancel_emote'))
 | 
						|
end)
 | 
						|
 | 
						|
RegisterCommand('e', function(source, args, raw) EmoteCommandStart(args) end, false)
 | 
						|
RegisterCommand('emote', function(source, args, raw) EmoteCommandStart(args) end, false)
 | 
						|
RegisterCommand('emotecancel', function() EmoteCancel() end, false)
 | 
						|
 | 
						|
if Config.MenuKeybindEnabled then
 | 
						|
    RegisterCommand('emoteui', function() OpenEmoteMenu() end, false)
 | 
						|
    RegisterKeyMapping("emoteui", Translate('register_open_menu'), "keyboard", Config.MenuKeybind)
 | 
						|
else
 | 
						|
    RegisterCommand('emotemenu', function() OpenEmoteMenu() end, false)
 | 
						|
end
 | 
						|
 | 
						|
if Config.EnableCancelKeybind then
 | 
						|
    RegisterKeyMapping("emotecancel", Translate('register_cancel_emote'), "keyboard", Config.CancelEmoteKey)
 | 
						|
end
 | 
						|
 | 
						|
-- BINDING EMOTES TO KEYS
 | 
						|
if Config.Keybinding then
 | 
						|
    RegisterCommand('emotebind', function(source, args, raw) EmoteBindStart(source, args, raw) end, false)
 | 
						|
    RegisterCommand('emotebinds', function(source, args, raw) ListKeybinds() end, false)
 | 
						|
    RegisterCommand('emotedelete', function(source, args) DeleteEmote(args) end, false)
 | 
						|
 | 
						|
    for i = 1, #Config.KeybindKeys do
 | 
						|
    local cmd = string.format('emoteSelect%s', i)
 | 
						|
    RegisterCommand(cmd, function()
 | 
						|
        local emote = GetResourceKvpString(string.format('%s_emob%s', Config.keybindKVP, i))
 | 
						|
        if emote and emote ~= "" then
 | 
						|
            EmoteCommandStart({ emote, 0 })
 | 
						|
        end
 | 
						|
    end, false)
 | 
						|
    RegisterKeyMapping(cmd, string.format('Emote bind %s', i), 'keyboard', Config.KeybindKeys[i])
 | 
						|
    end
 | 
						|
 | 
						|
    function EmoteBindStart(source, args, raw)
 | 
						|
        if #args > 0 then
 | 
						|
            local numkey = tonumber(args[1])
 | 
						|
            local emote = string.lower(args[2])
 | 
						|
            if not (numkey and emote) then
 | 
						|
                DebugPrint('Invalid arguments to EmoteBindStart')
 | 
						|
                return
 | 
						|
            end
 | 
						|
            if type(numkey) == "number" then
 | 
						|
                if RP[emote] then
 | 
						|
                    SetResourceKvp(string.format('%s_emob%s', Config.keybindKVP, numkey), emote)
 | 
						|
                else
 | 
						|
                    EmoteChatMessage("'" .. emote .. "' " .. Translate('notvalidemote') .. "")
 | 
						|
                end
 | 
						|
            else
 | 
						|
                EmoteChatMessage("'" .. numkey .. "' " .. Translate('notvalidkey'))
 | 
						|
            end
 | 
						|
        else
 | 
						|
            DebugPrint('Invalid number of arguments to EmoteBindStart')
 | 
						|
        end
 | 
						|
    end
 | 
						|
 | 
						|
    function ListKeybinds()
 | 
						|
        for i = 1, #Config.KeybindKeys do
 | 
						|
            local emote = GetResourceKvpString(string.format('%s_emob%s', Config.keybindKVP, i))
 | 
						|
            if emote then
 | 
						|
                EmoteChatMessage(string.format('Emote %s : %s',i, emote))
 | 
						|
            end
 | 
						|
        end
 | 
						|
    end
 | 
						|
 | 
						|
    function DeleteEmote(args)
 | 
						|
        if #args > 0 then
 | 
						|
            local numkey = tonumber(args[1])
 | 
						|
            if type(numkey) == "number"  then
 | 
						|
                DeleteResourceKvp(string.format('%s_emob%s', Config.keybindKVP, numkey))
 | 
						|
            else
 | 
						|
                EmoteChatMessage("'" .. numkey .. "' " .. Translate('notvalidkey'))
 | 
						|
            end
 | 
						|
        else
 | 
						|
            DebugPrint("invalid")
 | 
						|
        end
 | 
						|
    end
 | 
						|
end
 |