86 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
		
		
			
		
	
	
			86 lines
		
	
	
	
		
			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 |