Advertisement
Guest User

Untitled

a guest
Jul 19th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.12 KB | None | 0 0
  1. local UserInputService              = game:GetService("UserInputService")
  2. local Players                       = game:GetService("Players")
  3. local ReplicatedStorage             = game:GetService("ReplicatedStorage")
  4.  
  5. local R                             = require(ReplicatedStorage:WaitForChild("Resources"))
  6.  
  7. local Lerps                         = R:LoadLibrary("Lerps")
  8.  
  9. local Player                        = Players.LocalPlayer
  10. local Camera                        = workspace.CurrentCamera
  11.  
  12. local Mouse                         = Player:GetMouse()
  13.  
  14. local OTSSettings                   = {
  15.     maxScrollOut        = 25;
  16.     minScrollOut        = 5;
  17.     defaultScrollIn     = 5;
  18. }
  19.  
  20. local OTSStatus                    = {
  21.     scroll              = (OTSSettings.defaultScrollIn -  OTSSettings.minScrollOut) / (OTSSettings.maxScrollOut -  OTSSettings.minScrollOut);
  22.     pitch               = 0;
  23. }
  24.  
  25. local CharacterStatus, CharacterFunctions
  26.  
  27. function GetMousePosition()
  28.     return Vector2.new(Mouse.x, Mouse.y)
  29. end
  30.  
  31. UserInputService.InputChanged:Connect(function(inputObject)
  32.     if inputObject.UserInputType == Enum.UserInputType.MouseWheel then
  33.         OTSStatus.scroll = math.clamp(OTSStatus.scroll + (inputObject.Position.Z / 20), 0, 1)
  34.     end
  35. end)
  36.  
  37. UserInputService.MouseIconEnabled       = false
  38.  
  39. return function(_CharacterStatus, _CharacterFunctions)
  40.     CharacterStatus, CharacterFunctions = _CharacterStatus, _CharacterFunctions
  41.  
  42.     Camera.CameraType = Enum.CameraType.Scriptable
  43.  
  44.     repeat wait() until CharacterStatus.Character
  45.     local character = CharacterStatus.Character
  46.  
  47.     local lastMousePosition = nil
  48.  
  49.     local testPart = Instance.new("Part", workspace)
  50.     testPart.CFrame = character.Head.CFrame * CFrame.new(2, 2, 5)
  51.     testPart.Anchored = true
  52.     testPart.Color = Color3.new(1, 0, 0)
  53.  
  54.     local testDirectionPart = Instance.new("Part", workspace)
  55.     testDirectionPart.CFrame = testPart.CFrame * CFrame.new(2, 2, 5)
  56.     testDirectionPart.Anchored = true
  57.     testDirectionPart.Color = Color3.new(0, 1, 0)
  58.    
  59.     character.Humanoid.AutoRotate = false
  60.  
  61.     CharacterFunctions.RenderstepFunctions["OTS"] = function()
  62.         local curMousePosition = GetMousePosition()
  63.         if not lastMousePosition then
  64.             lastMousePosition = curMousePosition
  65.             return
  66.         end
  67.  
  68.         local mouseDelta = lastMousePosition - curMousePosition
  69.        
  70.         testPart.CFrame = testPart.CFrame * CFrame.Angles(0, mouseDelta.x / 100, 0)
  71.         testDirectionPart.CFrame = CFrame.new(testPart.CFrame.p) * CFrame.new(2, 2, 5)-- * CFrame.fromOrientation(testPart.Rotation.x, testPart.Rotation.y, testPart.Rotation.z)
  72.        
  73.         OTSStatus.pitch = math.clamp(OTSStatus.pitch + mouseDelta.y / 100, -0.5, 0.2)
  74.  
  75.         character.HumanoidRootPart.CFrame = character.HumanoidRootPart.CFrame * CFrame.Angles(0, mouseDelta.x / 100, 0)
  76.         Camera.CFrame = character.HumanoidRootPart.CFrame * CFrame.new(2, 5, Lerps.number(OTSSettings.minScrollOut, OTSSettings.maxScrollOut, OTSStatus.scroll)) * CFrame.Angles(OTSStatus.pitch, 0, 0)
  77.  
  78.         lastMousePosition = curMousePosition
  79.     end
  80. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement