fixes etc
This commit is contained in:
		
							parent
							
								
									4a0c8c6204
								
							
						
					
					
						commit
						453b281a4b
					
				
					 644 changed files with 1907 additions and 2456 deletions
				
			
		
							
								
								
									
										124
									
								
								resources/[standalone]/rpemotes-reborn/client/Pointing.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										124
									
								
								resources/[standalone]/rpemotes-reborn/client/Pointing.lua
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,124 @@ | |||
| Pointing = false | ||||
|  | ||||
| local function IsPlayerAiming(player) | ||||
|     return IsPlayerFreeAiming(player) or IsAimCamActive() or IsAimCamThirdPersonActive() | ||||
| end | ||||
|  | ||||
| local function CanPlayerPoint() | ||||
|     local playerPed = PlayerPedId() | ||||
|     local playerId = PlayerId() | ||||
|     if not DoesEntityExist(playerPed) or IsPedOnAnyBike(playerPed) or IsPlayerAiming(playerId) or IsPedFalling(playerPed) or IsPedInjured(playerPed) or IsPedInMeleeCombat(playerPed) or IsPedRagdoll(playerPed) or not IsPedHuman(playerPed) then | ||||
|         return false | ||||
|     end | ||||
|  | ||||
|     return true | ||||
| end | ||||
|  | ||||
| local function PointingStopped() | ||||
|     local playerPed = PlayerPedId() | ||||
|  | ||||
|     RequestTaskMoveNetworkStateTransition(playerPed, 'Stop') | ||||
|     SetPedConfigFlag(playerPed, 36, false) | ||||
|     if not IsPedInjured(playerPed) then | ||||
|         ClearPedSecondaryTask(playerPed) | ||||
|     end | ||||
|     RemoveAnimDict("anim@mp_point") | ||||
|     if Config.ReplayEmoteAfterPointing and IsInAnimation then | ||||
|         local emote = RP[CurrentAnimationName] | ||||
|         if not emote then | ||||
|             return | ||||
|         end | ||||
|  | ||||
|         Wait(400) | ||||
|         DestroyAllProps() | ||||
|         OnEmotePlay(CurrentAnimationName, CurrentTextureVariation) | ||||
|     end | ||||
| end | ||||
|  | ||||
| local function PointingThread() | ||||
|     CreateThread(function() | ||||
|         local playerPed = PlayerPedId() | ||||
|  | ||||
|         while Pointing do | ||||
|             Wait(0) | ||||
|  | ||||
|             if not CanPlayerPoint() then | ||||
|                 Pointing = false | ||||
|                 break | ||||
|             end | ||||
|  | ||||
|             local camPitch = GetGameplayCamRelativePitch() | ||||
|             if camPitch < -70.0 then | ||||
|                 camPitch = -70.0 | ||||
|             elseif camPitch > 42.0 then | ||||
|                 camPitch = 42.0 | ||||
|             end | ||||
|  | ||||
|             camPitch = (camPitch + 70.0) / 112.0 | ||||
|  | ||||
|             local camHeading = GetGameplayCamRelativeHeading() | ||||
|             local cosCamHeading = math.cos(camHeading) | ||||
|             local sinCamHeading = math.sin(camHeading) | ||||
|  | ||||
|             if camHeading < -180.0 then | ||||
|                 camHeading = -180.0 | ||||
|             elseif camHeading > 180.0 then | ||||
|                 camHeading = 180.0 | ||||
|             end | ||||
|  | ||||
|             camHeading = (camHeading + 180.0) / 360.0 | ||||
|             local coords = GetOffsetFromEntityInWorldCoords(playerPed, (cosCamHeading * -0.2) - (sinCamHeading * (0.4 * camHeading + 0.3)), (sinCamHeading * -0.2) + (cosCamHeading * (0.4 * camHeading + 0.3)), 0.6) | ||||
|             local _, blocked = GetShapeTestResult(StartShapeTestCapsule(coords.x, coords.y, coords.z - 0.2, coords.x, coords.y, coords.z + 0.2, 0.4, 95, playerPed, 7)) | ||||
|  | ||||
|             SetTaskMoveNetworkSignalFloat(playerPed, 'Pitch', camPitch) | ||||
|             SetTaskMoveNetworkSignalFloat(playerPed, 'Heading', (camHeading * -1.0) + 1.0) | ||||
|             SetTaskMoveNetworkSignalBool(playerPed, 'isBlocked', blocked) | ||||
|             SetTaskMoveNetworkSignalBool(playerPed, 'isFirstPerson', GetCamViewModeForContext(GetCamActiveViewModeContext()) == 4) | ||||
|         end | ||||
|  | ||||
|         PointingStopped() | ||||
|     end) | ||||
| end | ||||
|  | ||||
| local function StartPointing() | ||||
|     if IsInActionWithErrorMessage() then | ||||
|         return | ||||
|     end | ||||
|  | ||||
|     if not CanPlayerPoint() then | ||||
|         return | ||||
|     end | ||||
|  | ||||
|     Pointing = not Pointing | ||||
|  | ||||
|     if Pointing and LoadAnim("anim@mp_point") then | ||||
|         SetPedConfigFlag(PlayerPedId(), 36, true) | ||||
|         TaskMoveNetworkByName(PlayerPedId(), 'task_mp_pointing', 0.5, false, 'anim@mp_point', 24) | ||||
|         DestroyAllProps() | ||||
|         PointingThread() | ||||
|     end | ||||
| end | ||||
|  | ||||
|  | ||||
| -- Commands & KeyMapping -- | ||||
| if Config.PointingEnabled then | ||||
|     RegisterCommand('pointing', function() | ||||
|         if IsPedInAnyVehicle(PlayerPedId(), false) and not Config.PointingInCar then | ||||
|             return | ||||
|         end | ||||
|         StartPointing() | ||||
|     end, false) | ||||
|  | ||||
|     if Config.PointingKeybindEnabled then | ||||
|         RegisterKeyMapping("pointing", Translate('register_pointing'), "keyboard", Config.PointingKeybind) | ||||
|     end | ||||
|  | ||||
|     TriggerEvent('chat:addSuggestion', '/pointing', Translate('pointing')) | ||||
| end | ||||
|  | ||||
|  | ||||
| ---@return boolean | ||||
| local function IsPlayerPointing() | ||||
|     return Pointing | ||||
| end | ||||
| CreateExport('IsPlayerPointing', IsPlayerPointing) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Nordi98
						Nordi98