Files
2026-07-07 21:08:52 +02:00

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)