96 lines
2.3 KiB
Lua
96 lines
2.3 KiB
Lua
local function startAttitude(lib, anim)
|
|
ESX.Streaming.RequestAnimSet(lib, function()
|
|
SetPedMovementClipset(ESX.PlayerData.ped, anim, 1)
|
|
end)
|
|
end
|
|
|
|
local function startAnim(lib, anim)
|
|
ESX.Streaming.RequestAnimDict(lib, function()
|
|
TaskPlayAnim(ESX.PlayerData.ped, lib, anim, 8.0, -8.0, -1, 0, 0.0, false, false, false)
|
|
RemoveAnimDict(lib)
|
|
end)
|
|
end
|
|
|
|
local function startScenario(anim)
|
|
TaskStartScenarioInPlace(ESX.PlayerData.ped, anim, 0, false)
|
|
end
|
|
|
|
local function openAnimationsSubMenu(menu)
|
|
local elements = {}
|
|
|
|
for i = 1, #Config.Animations, 1 do
|
|
elements = {
|
|
{ unselectable = true, icon = "fas fa-smile", title = Config.Animations[i].label }
|
|
}
|
|
|
|
if Config.Animations[i].name == menu then
|
|
for j = 1, #Config.Animations[i].items, 1 do
|
|
elements[#elements + 1] = {
|
|
icon = "fas fa-smile",
|
|
title = Config.Animations[i].items[j].label,
|
|
type = Config.Animations[i].items[j].type,
|
|
value = Config.Animations[i].items[j].data
|
|
}
|
|
end
|
|
break
|
|
end
|
|
end
|
|
|
|
ESX.OpenContext("right", elements, function(_, element)
|
|
local type = element.type
|
|
local lib = element.value.lib
|
|
local anim = element.value.anim
|
|
|
|
if type == 'scenario' then
|
|
startScenario(anim)
|
|
elseif type == 'attitude' then
|
|
startAttitude(lib, anim)
|
|
elseif type == 'anim' then
|
|
startAnim(lib, anim)
|
|
end
|
|
end)
|
|
end
|
|
|
|
local function openAnimationsMenu()
|
|
local elements = {
|
|
{ unselectable = true, icon = "fas fa-smile", title = "Animations" }
|
|
}
|
|
|
|
for i = 1, #Config.Animations, 1 do
|
|
elements[#elements + 1] = {
|
|
icon = "fas fa-smile",
|
|
title = Config.Animations[i].label,
|
|
value = Config.Animations[i].name
|
|
}
|
|
end
|
|
|
|
ESX.OpenContext("right", elements, function(_, element)
|
|
openAnimationsSubMenu(element.value)
|
|
end)
|
|
end
|
|
|
|
-- Key Controls
|
|
RegisterCommand('animmenu', function()
|
|
if not ESX.PlayerData.dead then
|
|
openAnimationsMenu()
|
|
end
|
|
end, false)
|
|
|
|
RegisterCommand('cleartasks', function()
|
|
if not ESX.PlayerData.dead then
|
|
ClearPedTasks(ESX.PlayerData.ped)
|
|
end
|
|
end, false)
|
|
|
|
RegisterKeyMapping('animmenu', 'Open Animations Menu', 'keyboard', 'f3')
|
|
RegisterKeyMapping('cleartasks', 'Stop Animation', 'keyboard', 'z')
|
|
|
|
-- Expose animations to other resources
|
|
exports('GetConfig', function()
|
|
return Config
|
|
end)
|
|
|
|
exports('SetConfig', function(newConfig)
|
|
Config = newConfig
|
|
end)
|