forked from Simnation/Main
86 lines
No EOL
2.6 KiB
Lua
86 lines
No EOL
2.6 KiB
Lua
local function HandsUpLoop()
|
|
CreateThread(function()
|
|
while InHandsup do
|
|
if Config.DisabledHandsupControls then
|
|
for control, state in pairs(Config.DisabledHandsupControls) do
|
|
DisableControlAction(0, control, state)
|
|
end
|
|
end
|
|
|
|
if IsPlayerAiming(PlayerId()) then
|
|
ClearPedSecondaryTask(PlayerPedId())
|
|
CreateThread(function()
|
|
Wait(350)
|
|
InHandsup = false
|
|
end)
|
|
end
|
|
|
|
Wait(0)
|
|
end
|
|
end)
|
|
end
|
|
|
|
if Config.HandsupEnabled then
|
|
local function ToggleHandsUp(commandType)
|
|
RegisterCommand(commandType, function()
|
|
if IsPedInAnyVehicle(PlayerPedId(), false) and not Config.HandsupInCar and not InHandsup then
|
|
return
|
|
end
|
|
Handsup()
|
|
end, false)
|
|
end
|
|
|
|
if Config.HoldToHandsUp then
|
|
ToggleHandsUp('+handsup')
|
|
ToggleHandsUp('-handsup')
|
|
else
|
|
ToggleHandsUp('handsup')
|
|
end
|
|
|
|
function Handsup()
|
|
local playerPed = PlayerPedId()
|
|
if not IsPedHuman(playerPed) then
|
|
return
|
|
end
|
|
if IsInActionWithErrorMessage() then
|
|
return
|
|
end
|
|
|
|
InHandsup = not InHandsup
|
|
if InHandsup then
|
|
LocalPlayer.state:set('currentEmote', 'handsup', true)
|
|
DestroyAllProps()
|
|
local dict = "random@mugging3"
|
|
RequestAnimDict(dict)
|
|
while not HasAnimDictLoaded(dict) do
|
|
Wait(0)
|
|
end
|
|
TaskPlayAnim(PlayerPedId(), dict, "handsup_standing_base", 3.0, 3.0, -1, 49, 0, false,
|
|
IsThisModelABike(GetEntityModel(GetVehiclePedIsIn(PlayerPedId(), false))) and 4127 or false, false)
|
|
HandsUpLoop()
|
|
else
|
|
LocalPlayer.state:set('currentEmote', nil, true)
|
|
ClearPedSecondaryTask(PlayerPedId())
|
|
if Config.ReplayEmoteAfterHandsup and IsInAnimation then
|
|
local emote = RP[CurrentAnimationName]
|
|
if not emote then
|
|
return
|
|
end
|
|
|
|
Wait(400)
|
|
DestroyAllProps()
|
|
OnEmotePlay(CurrentAnimationName, CurrentTextureVariation)
|
|
end
|
|
end
|
|
end
|
|
|
|
TriggerEvent('chat:addSuggestion', '/handsup', Translate('handsup'))
|
|
|
|
if Config.HandsupKeybindEnabled then
|
|
RegisterKeyMapping("handsup", Translate('register_handsup'), "keyboard", Config.HandsupKeybind)
|
|
end
|
|
|
|
CreateExport('IsPlayerInHandsUp', function()
|
|
return InHandsup
|
|
end)
|
|
end |