forked from Simnation/Main
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
|