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 |