Advertisement
wackeyhd5cool

Untitled

May 25th, 2020
1,592
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.24 KB | None | 0 0
  1. local UserInputService = game:GetService("UserInputService")
  2. local Inst_player = game.Players.LocalPlayer
  3. local AnimationManager = require(script.AnimationManager)
  4.  
  5. local ControlManager = {}
  6.  
  7. ControlManager.SpeedMultiplier = 16
  8. ControlManager.IsRunning = false
  9. ControlManager.MovementKeysDown = {}
  10. ControlManager.IsJumping = false
  11. ControlManager.State = "Idle"
  12. ControlManager.Camera = nil
  13.  
  14. local controls = require(game:GetService("Players").LocalPlayer.PlayerScripts.PlayerModule):GetControls()
  15. controls:Disable()
  16.  
  17. local i = Vector3.new()
  18. local n = 0;
  19. game:GetService("RunService"):BindToRenderStep("Movement",Enum.RenderPriority.Camera.Value - 1,function(Num_dt)
  20.    
  21.  
  22.  
  23.     local V3_add = Vector3.new()
  24.    
  25.     for i,v in pairs(ControlManager.MovementKeysDown) do
  26.         if i == Enum.KeyCode.W then
  27.             V3_add = V3_add+Vector3.new(0,0,-1)
  28.         elseif i == Enum.KeyCode.S then
  29.             V3_add = V3_add+Vector3.new(0,0,1)
  30.         elseif i == Enum.KeyCode.D then
  31.             V3_add = V3_add+Vector3.new(1,0,0)
  32.         elseif i == Enum.KeyCode.A then
  33.             V3_add = V3_add+Vector3.new(-1,0,0)
  34.         end
  35.     end
  36.    
  37.     if V3_add.Magnitude > 0 then
  38.         ControlManager.IsRunning = true
  39.         local V3_dir = V3_add/(V3_add.Magnitude)   
  40.         if ControlManager.Camera then
  41.             print("Begin: "..tostring(n).." - "..tostring(tick()))
  42. --[[                       
  43. --          local CF_hrp = Inst_player.Character.HumanoidRootPart.CFrame
  44. --          local V3_lv = ControlManager.Camera.Camera.CFrame.lookVector
  45. --         
  46. --         
  47. --         
  48. --         
  49. --          local CF_pos =
  50. --                      CFrame.new(
  51. --                          CF_hrp.p,
  52. --                          (CFrame.new(CF_hrp.p)*CFrame.new(V3_lv.X,0,V3_lv.Z)).p
  53. --                      )
  54. --                      *CFrame.new(V3_normal*ControlManager.SpeedMultiplier*(Num_dt)) 
  55. --                         
  56. --          local V3_cPos = Vector3.new(V3_lv.X * V3_normal.X,0,V3_lv.Z * V3_normal.Z)
  57. --         
  58. --          print((CF_pos.p - i).magnitude,V3_normal)
  59. --          i = CF_pos.p
  60. --                         
  61. --         
  62. --          local CF_rot = CF_hrp - CF_hrp.p
  63. --         
  64. --          Inst_player.Character:SetPrimaryPartCFrame(CFrame.new(CF_pos.p)*CF_rot)
  65. ]]
  66.                        
  67.             local CF_curHrp = Inst_player.Character.HumanoidRootPart.CFrame
  68.             local V3_camLv = ControlManager.Camera.Camera.CFrame.lookVector
  69.            
  70.            
  71.             local CF_rot = CFrame.new(Vector3.new(),Vector3.new(V3_camLv.X,0,V3_camLv.Z))
  72.             local CF_hrpPos = CFrame.new(CF_curHrp.p)
  73.             local CF_deltaCF = CFrame.new(V3_dir*ControlManager.SpeedMultiplier*Num_dt)
  74.            
  75.             local CF_new = CF_hrpPos*CF_rot*CF_deltaCF
  76.             print((CF_new.p - i).magnitude,"\t \t \t",CF_rot.p.magnitude,"\t \t \t",CF_deltaCF.p.magnitude,"\t \t \t",V3_dir)
  77.             i = CF_new.p           
  78.  
  79.             Inst_player.Character:SetPrimaryPartCFrame(CF_new)
  80.             --Inst_player:Move(V3_dir,true)
  81.            
  82.             print("End: "..tostring(n).." - "..tostring(tick()))
  83.            
  84.             n = n + 1
  85.  
  86.         end
  87.        
  88.        
  89.  
  90.     else
  91.         ControlManager.IsRunning = false
  92.     end
  93.    
  94.    
  95.  
  96. end)
  97.  
  98. game:GetService("RunService").RenderStepped:Connect(function()
  99.     if ControlManager.IsRunning == false and ControlManager.IsJumping == false and ControlManager.State ~= "Idle" then
  100.         ControlManager.State = "Idle"
  101.         AnimationManager:playAnimation("IdleAnim")
  102.     elseif ControlManager.IsRunning and ControlManager.IsJumping == false and ControlManager.State ~= "Running" then
  103.         ControlManager.State = "Running"
  104.         AnimationManager:playAnimation("RunAnim")
  105.     elseif ControlManager.IsJumping and ControlManager.State ~= "Jumping" then
  106.         ControlManager.State = "Jumping"
  107.         AnimationManager:playAnimation("JumpAnim")
  108.     end
  109.     game.ReplicatedStorage.HumanoidPropertyChanged:FireServer("State",ControlManager.State)
  110. end)
  111.  
  112.  
  113.  
  114.  
  115. UserInputService.InputBegan:Connect(function(Inst_input,Bool_gp)
  116.     if Bool_gp == false then
  117.         if Inst_input.UserInputType == Enum.UserInputType.Keyboard then
  118.             if Inst_input.KeyCode == Enum.KeyCode.W or Inst_input.KeyCode == Enum.KeyCode.S or Inst_input.KeyCode == Enum.KeyCode.D or Inst_input.KeyCode == Enum.KeyCode.A then
  119.                 ControlManager.MovementKeysDown[Inst_input.KeyCode] = true
  120.             elseif Inst_input.KeyCode == Enum.KeyCode.Space and ControlManager.IsJumping == false then
  121.                 game.Players.LocalPlayer.Character.Humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
  122.                 ControlManager.IsJumping = true
  123.                 repeat wait() print(game.Players.LocalPlayer.Character.Humanoid:GetState()) until game.Players.LocalPlayer.Character.Humanoid:GetState() == Enum.HumanoidStateType.Landed
  124.                 ControlManager.IsJumping = false
  125.             end
  126.         end
  127.     end
  128. end)
  129.  
  130. UserInputService.InputEnded:Connect(function(Inst_input,Bool_gp)
  131.     if Bool_gp == false then
  132.         if Inst_input.UserInputType == Enum.UserInputType.Keyboard then
  133.             if Inst_input.KeyCode == Enum.KeyCode.W or Inst_input.KeyCode == Enum.KeyCode.S or Inst_input.KeyCode == Enum.KeyCode.D or Inst_input.KeyCode == Enum.KeyCode.A then
  134.                 ControlManager.MovementKeysDown[Inst_input.KeyCode] = nil
  135.             end
  136.         end
  137.     end
  138. end)
  139.  
  140. function ControlManager:createCamera()
  141.     ControlManager.Camera = require(script.Class_Camera).new()
  142.     ControlManager.Camera:turnOn() 
  143.    
  144. --  local Inst_p = Instance.new("Part")
  145. --  Inst_p.Name = "hi"
  146. --  Inst_p.Size = Vector3.new(.1,.1,300)
  147. --  Inst_p.CanCollide = false
  148. --  local Inst_w = Instance.new("Weld")
  149. --  Inst_w.Part0 = ControlManager.Camera.CameraCenter
  150. --  Inst_w.Part1 = Inst_p
  151. -- 
  152. --  Inst_w.C0 = CFrame.new(0,0,-15)
  153. -- 
  154. --  Inst_p.Parent = workspace
  155. --  Inst_w.Parent = Inst_w.Part0   
  156. --  return Inst_p
  157. end
  158.  
  159.  
  160. return ControlManager
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement