50 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
function SetPlayerPedExpression(expression, saveToKvp)
 | 
						|
    local emote = RP[expression]
 | 
						|
    if emote and emote.category == "Expressions" then
 | 
						|
        SetFacialIdleAnimOverride(PlayerPedId(), emote[1], 0)
 | 
						|
        if Config.PersistentExpression and saveToKvp then SetResourceKvp("expression", emote[1]) end
 | 
						|
    else
 | 
						|
        ClearFacialIdleAnimOverride(PlayerPedId())
 | 
						|
        DeleteResourceKvp("expression")
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
if Config.ExpressionsEnabled then
 | 
						|
    RegisterCommand('mood', function(_source, args, _raw)
 | 
						|
        local expression = FirstToUpper(string.lower(args[1]))
 | 
						|
        local emote = RP[expression]
 | 
						|
        if emote and emote.category == "Expressions" then
 | 
						|
            SetPlayerPedExpression(RP[expression][1], true)
 | 
						|
        elseif expression == "Reset" then
 | 
						|
            ClearFacialIdleAnimOverride(PlayerPedId())
 | 
						|
            DeleteResourceKvp("expression")
 | 
						|
        else
 | 
						|
            EmoteChatMessage("'" .. expression .. "' is not a valid mood")
 | 
						|
        end
 | 
						|
    end, false)
 | 
						|
 | 
						|
    TriggerEvent('chat:addSuggestion', '/mood', 'Set your current mood/expression.',
 | 
						|
        { { name = "expression", help = "/moods for a list of valid moods" } })
 | 
						|
    TriggerEvent('chat:addSuggestion', '/moods', 'List available walking moods/expressions.')
 | 
						|
 | 
						|
 | 
						|
    local function LoadPersistentExpression()
 | 
						|
        local expression = GetResourceKvpString("expression")
 | 
						|
        if expression then
 | 
						|
            Wait(2500)
 | 
						|
            SetPlayerPedExpression(expression, false)
 | 
						|
        end
 | 
						|
    end
 | 
						|
 | 
						|
    if Config.PersistentExpression then
 | 
						|
        AddEventHandler('playerSpawned', LoadPersistentExpression)
 | 
						|
        RegisterNetEvent('QBCore:Client:OnPlayerLoaded', LoadPersistentExpression)
 | 
						|
        RegisterNetEvent('esx:playerLoaded', LoadPersistentExpression)
 | 
						|
    end
 | 
						|
 | 
						|
    AddEventHandler('onResourceStart', function(resource)
 | 
						|
        if resource == GetCurrentResourceName() then
 | 
						|
            LoadPersistentExpression()
 | 
						|
        end
 | 
						|
    end)
 | 
						|
end
 |