local mp_pointing = false startPointing = function() local ped = PlayerPedId() RequestAnimDict("anim@mp_point") while not HasAnimDictLoaded("anim@mp_point") do Wait(0) end SetPedCurrentWeaponVisible(ped, 0, 1, 1, 1) SetPedConfigFlag(ped, 36, 1) TaskMoveNetworkByName(ped, 'task_mp_pointing', 0.5, false, 'anim@mp_point', 24) RemoveAnimDict("anim@mp_point") end stopPointing = function() local ped = PlayerPedId() RequestTaskMoveNetworkStateTransition(ped, 'Stop') if not IsPedInjured(ped) then ClearPedSecondaryTask(ped) end if not IsPedInAnyVehicle(ped, 1) then SetPedCurrentWeaponVisible(ped, 1, 1, 1, 1) end SetPedConfigFlag(ped, 36, 0) ClearPedSecondaryTask(PlayerPedId()) end RegisterCommand('point', function() if not IsPedInAnyVehicle(PlayerPedId(), false) then if mp_pointing then stopPointing() mp_pointing = false else startPointing() mp_pointing = true end while mp_pointing do local ped = PlayerPedId() 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 = Cos(camHeading) local sinCamHeading = 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 blocked = 0 local nn = 0 local coords = GetOffsetFromEntityInWorldCoords(ped, (cosCamHeading * -0.2) - (sinCamHeading * (0.4 * camHeading + 0.3)), (sinCamHeading * -0.2) + (cosCamHeading * (0.4 * camHeading + 0.3)), 0.6) local ray = Cast_3dRayPointToPoint(coords.x, coords.y, coords.z - 0.2, coords.x, coords.y, coords.z + 0.2, 0.4, 95, ped, 7); nn,blocked,coords,coords = GetRaycastResult(ray) SetTaskMoveNetworkSignalFloat(ped, "Pitch", camPitch) SetTaskMoveNetworkSignalFloat(ped, "Heading", camHeading * -1.0 + 1.0) SetTaskMoveNetworkSignalBool(ped, "isBlocked", blocked) SetTaskMoveNetworkSignalBool(ped, "isFirstPerson", GetCamViewModeForContext(GetCamActiveViewModeContext()) == 4) Wait(1) end end end) RegisterKeyMapping('point', 'Toggles Point', 'keyboard', 'b')