Advertisement
GalaxyDelta

Untitled

Jul 19th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- This script has been converted to FE by iPxter
  2.  
  3.  
  4. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  5. local Player,Mouse,mouse,UserInputService,ContextActionService = owner
  6. do
  7. print("FE Compatibility code by Mokiros | Translated to FE by iPxter")
  8. script.Parent = Player.Character
  9.  
  10. --RemoteEvent for communicating
  11. local Event = Instance.new("RemoteEvent")
  12. Event.Name = "UserInput_Event"
  13.  
  14. --Fake event to make stuff like Mouse.KeyDown work
  15. local function fakeEvent()
  16. local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
  17. t.connect = t.Connect
  18. return t
  19. end
  20.  
  21. --Creating fake input objects with fake variables
  22. local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
  23. local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  24. local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  25. CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  26. end}
  27. --Merged 2 functions into one by checking amount of arguments
  28. CAS.UnbindAction = CAS.BindAction
  29.  
  30. --This function will trigger the events that have been :Connect()'ed
  31. local function te(self,ev,...)
  32. local t = m[ev]
  33. if t and t._fakeEvent and t.Function then
  34. t.Function(...)
  35. end
  36. end
  37. m.TrigEvent = te
  38. UIS.TrigEvent = te
  39.  
  40. Event.OnServerEvent:Connect(function(plr,io)
  41. if plr~=Player then return end
  42. if io.isMouse then
  43. m.Target = io.Target
  44. m.Hit = io.Hit
  45. else
  46. local b = io.UserInputState == Enum.UserInputState.Begin
  47. if io.UserInputType == Enum.UserInputType.MouseButton1 then
  48. return m:TrigEvent(b and "Button1Down" or "Button1Up")
  49. end
  50. for _,t in pairs(CAS.Actions) do
  51. for _,k in pairs(t.Keys) do
  52. if k==io.KeyCode then
  53. t.Function(t.Name,io.UserInputState,io)
  54. end
  55. end
  56. end
  57. m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  58. UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
  59. end
  60. end)
  61. Event.Parent = NLS([==[
  62. local Player = game:GetService("Players").LocalPlayer
  63. local Event = script:WaitForChild("UserInput_Event")
  64.  
  65. local UIS = game:GetService("UserInputService")
  66. local input = function(io,a)
  67. if a then return end
  68. --Since InputObject is a client-side instance, we create and pass table instead
  69. Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
  70. end
  71. UIS.InputBegan:Connect(input)
  72. UIS.InputEnded:Connect(input)
  73.  
  74. local Mouse = Player:GetMouse()
  75. local h,t
  76. --Give the server mouse data 30 times every second, but only if the values changed
  77. --If player is not moving their mouse, client won't fire events
  78. while wait(1/30) do
  79. if h~=Mouse.Hit or t~=Mouse.Target then
  80. h,t=Mouse.Hit,Mouse.Target
  81. Event:FireServer({isMouse=true,Target=t,Hit=h})
  82. end
  83. end]==],Player.Character)
  84. Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
  85. end
  86.  
  87. local player = game:service("Players").GalaxyDelta232
  88. local cam = workspace.CurrentCamera
  89. local char = player.Character
  90. local Torsoz = char:findFirstChild("Torso")
  91. local RA = char:findFirstChild("Right Arm")
  92. local LA = char:findFirstChild("Left Arm")
  93. local RL = char:findFirstChild("Right Leg")
  94. local LL = char:findFirstChild("Left Leg")
  95. local H = char:findFirstChild("Head")
  96. local Hu = char:findFirstChild("Humanoid")
  97. local RS = Torsoz:findFirstChild("Right Shoulder")
  98. local LS = Torsoz:findFirstChild("Left Shoulder")
  99. local RH = Torsoz:findFirstChild("Right Hip")
  100. local LH = Torsoz:findFirstChild("Left Hip")
  101. local N = Torsoz:findFirstChild("Neck")
  102. local NV = Vector3.new(0,0,0)
  103. local FOV = 70
  104. local Shift, Space, Sitting = false,false,false
  105. local GravPoint = 0
  106. local Diving = false
  107. local DivingCooldown = 0
  108. local DivingDir = NV
  109. local DivingCF = CFrame.new(0,0,0)
  110. local DivingBG, DivingBV
  111. local HWallRunning = false
  112. local HWRGravDrop = false
  113. local HWRLastPart
  114. local HWRCooldown = 0
  115. local HWRDir
  116. local VWallRunning = false
  117. local VWRLastPart
  118. local VWRCooldown = 0
  119. local VWRLeft,VWRRight = false,false
  120. local Sliding = false
  121. local SlideCooldown = 0
  122. local Standing = true
  123. local Action = "Standing"
  124. local animplus = true
  125. local animspeed = 0
  126. local animangle = 0.01
  127. local Joint1, Joint2, Joint3, Joint4, Joint5
  128.  
  129. for i, v in pairs(char:children()) do
  130. if (v.className == "LocalScript" and v.Name == "ParkourSkrip") or v.className == "NumberValue" or v.className == "BoolValue" or v.className == "Model" or v.Name == "Animate" then
  131. v:remove()
  132. end
  133. end
  134.  
  135. local loadids = {112474909, 112474911, 112474909}
  136.  
  137. local stamina = 10000
  138. local maxstamina = 10000
  139. local defsprint = 28
  140. local sprint = defsprint
  141.  
  142. local pause = Instance.new("BoolValue", char)
  143. pause.Name = "Pause"
  144. pause.Value = false
  145. local flow = Instance.new("NumberValue", char)
  146. flow.Name = "Flow"
  147. flow.Value = 0
  148. local flowcooldown = 0
  149.  
  150. local m = Instance.new("Model", char)
  151. m.Name = "FlowChainPartz"
  152.  
  153. local P = Instance.new("Part")
  154. P.Name = "TrailPart"
  155. P.formFactor = "Custom"
  156. P.Size = Vector3.new(0.2,0.2,0.2)
  157. P.Locked = true
  158. P.Anchored = true
  159. P.CanCollide = false
  160. P.TopSurface = 0
  161. P.BottomSurface = 0
  162.  
  163. script.Name = "ParkourSkrip"
  164.  
  165. local hue = 0
  166.  
  167. function HSV(H,S,V)
  168. H = H % 360
  169. local C = V * S
  170. local H2 = H/60
  171. local X = C * (1 - math.abs((H2 %2) -1))
  172. local color = Color3.new(0,0,0)
  173. if H2 <= 0 then
  174. color = Color3.new(C,0,0)
  175. elseif 0 <= H2 and H2 <= 1 then
  176. color = Color3.new(C,X,0)
  177. elseif 1 <= H2 and H2 <= 2 then
  178. color = Color3.new(X,C,0)
  179. elseif 2 <= H2 and H2 <= 3 then
  180. color = Color3.new(0,C,X)
  181. elseif 3 <= H2 and H2 <= 4 then
  182. color = Color3.new(0,X,C)
  183. elseif 4 <= H2 and H2 <= 5 then
  184. color = Color3.new(X,0,C)
  185. elseif 5 <= H2 and H2 <= 6 then
  186. color = Color3.new(C,0,X)
  187. end
  188. local m = V - C
  189. return Color3.new(color.r + m, color.g + m, color.b + m)
  190. end
  191.  
  192. function GetWeld(weld)
  193. if weld:findFirstChild("XAngle") == nil then
  194. local a = Instance.new("NumberValue", weld)
  195. a.Name = "XAngle"
  196. end
  197. if weld:findFirstChild("YAngle") == nil then
  198. local a = Instance.new("NumberValue", weld)
  199. a.Name = "YAngle"
  200. end
  201. if weld:findFirstChild("ZAngle") == nil then
  202. local a = Instance.new("NumberValue", weld)
  203. a.Name = "ZAngle"
  204. end
  205. return weld.C0.p, Vector3.new(weld.XAngle.Value, weld.YAngle.Value, weld.ZAngle.Value)
  206. end
  207.  
  208. function SetWeld(weld, i, loops, origpos,origangle, nextpos,nextangle)
  209. if weld:findFirstChild("XAngle") == nil then
  210. local a = Instance.new("NumberValue", weld)
  211. a.Name = "XAngle"
  212. end
  213. if weld:findFirstChild("YAngle") == nil then
  214. local a = Instance.new("NumberValue", weld)
  215. a.Name = "YAngle"
  216. end
  217. if weld:findFirstChild("ZAngle") == nil then
  218. local a = Instance.new("NumberValue", weld)
  219. a.Name = "ZAngle"
  220. end
  221.  
  222. local tox,toy,toz = 0,0,0
  223. if origangle.x > nextangle.x then
  224. tox = -math.abs(origangle.x - nextangle.x) /loops*i
  225. else
  226. tox = math.abs(origangle.x - nextangle.x) /loops*i
  227. end
  228. if origangle.y > nextangle.y then
  229. toy = -math.abs(origangle.y - nextangle.y) /loops*i
  230. else
  231. toy = math.abs(origangle.y - nextangle.y) /loops*i
  232. end
  233. if origangle.z > nextangle.z then
  234. toz = -math.abs(origangle.z - nextangle.z) /loops*i
  235. else
  236. toz = math.abs(origangle.z - nextangle.z) /loops*i
  237. end
  238.  
  239. local tox2,toy2,toz2 = 0,0,0
  240. if origpos.x > nextpos.x then
  241. tox2 = -math.abs(origpos.x - nextpos.x) /loops*i
  242. else
  243. tox2 = math.abs(origpos.x - nextpos.x) /loops*i
  244. end
  245. if origpos.y > nextpos.y then
  246. toy2 = -math.abs(origpos.y - nextpos.y) /loops*i
  247. else
  248. toy2 = math.abs(origpos.y - nextpos.y) /loops*i
  249. end
  250. if origpos.z > nextpos.z then
  251. toz2 = -math.abs(origpos.z - nextpos.z) /loops*i
  252. else
  253. toz2 = math.abs(origpos.z - nextpos.z) /loops*i
  254. end
  255.  
  256. weld.XAngle.Value = origangle.x + tox
  257. weld.YAngle.Value = origangle.y + toy
  258. weld.ZAngle.Value = origangle.z + toz
  259. weld.C0 = CFrame.new(origpos.x + tox2,origpos.y + toy2,origpos.z + toz2) * CFrame.Angles(origangle.x + tox,origangle.y + toy,origangle.z + toz)
  260. end
  261.  
  262. function LoadTextures()
  263. local pls = game:service("ContentProvider")
  264. for i, v in pairs(loadids) do
  265. pls:Preload("http://www.roblox.com/asset/?id="..v)
  266. wait(0.04)
  267. end
  268. end
  269. LoadTextures()
  270.  
  271. function CreateGui()
  272. for i, v in pairs(player.PlayerGui:children()) do
  273. if v.className == "ScreenGui" and v.Name == "staminaGui" then
  274. v:remove()
  275. end
  276. end
  277. local g = Instance.new("ScreenGui", player.PlayerGui)
  278. g.Name = "staminaGui"
  279.  
  280. local c = Instance.new("Frame", g)
  281. c.Visible = false
  282. c.Size = UDim2.new(0,86,0,320)
  283. c.BackgroundTransparency = 1
  284. c.Position = UDim2.new(1,-96,0.5,-160)
  285. c.Name = "Container"
  286.  
  287. local t = Instance.new("TextLabel", c)
  288. t.Size = UDim2.new(0,0,-0.1,0)
  289. t.Position = UDim2.new(0.3,0,0.5,0)
  290. t.TextXAlignment = "Right"
  291. t.Font = "ArialBold"
  292. t.TextTransparency = 0.1
  293. t.TextColor3 = Color3.new(0,0.6,0.8)
  294. t.TextStrokeColor3 = Color3.new(0,0.2,0.8)
  295. t.TextStrokeTransparency = 0.3
  296. t.FontSize = 6
  297. t.BackgroundTransparency = 1
  298. local t2 = t:Clone()
  299. t2.Parent = c
  300. t2.Size = UDim2.new(0,0,0.1,0)
  301. local l = t:Clone()
  302. l.Parent = c
  303. l.Size = UDim2.new(0,0,0,0)
  304. l.Text = "-----"
  305.  
  306. local f1 = Instance.new("Frame", c)
  307. f1.Name = "Backing"
  308. f1.ClipsDescendants = true
  309. f1.Size = UDim2.new(1,0,0,0)
  310. f1.BackgroundColor3 = Color3.new(0.8,0,0)
  311. f1.BackgroundTransparency = 1
  312. local f1img = Instance.new("ImageLabel", f1)
  313. f1img.BackgroundTransparency = 1
  314. f1img.Image = "http://www.roblox.com/asset/?id=112474909"
  315. f1img.Size = UDim2.new(1,0,0,c.Size.Y.Offset)
  316.  
  317. local f2 = Instance.new("Frame", c)
  318. f2.Name = "Overlay"
  319. f2.ClipsDescendants = true
  320. f2.Size = UDim2.new(1,0,1,0)
  321. f2.BackgroundColor3 = Color3.new(0,0,0.8)
  322. f2.BackgroundTransparency = 1
  323. local f2img = Instance.new("ImageLabel", f2)
  324. f2img.BackgroundTransparency = 1
  325. f2img.Image = "http://www.roblox.com/asset/?id=112474911"
  326. f2img.Size = UDim2.new(1,0,0,c.Size.Y.Offset)
  327.  
  328. function Calculate()
  329. local ysize = c.Size.Y.Offset
  330. local per = (stamina/maxstamina) * c.Size.Y.Offset
  331. local rem = (-(stamina/maxstamina-1)) * c.Size.Y.Offset
  332. f1.Size = UDim2.new(1,0,0,rem)
  333. f2.Size = UDim2.new(1,0,0,per)
  334. f2.Position = UDim2.new(0,0,0,rem)
  335. f2img.Position = UDim2.new(0,0,0,-rem)
  336. t.Text = math.floor(stamina)
  337. t2.Text = maxstamina
  338. end
  339. Calculate()
  340.  
  341. wait(0.01)
  342. c.Visible = true
  343. end
  344. CreateGui()
  345.  
  346. player.CharacterAdded:connect(function()
  347. char = player.Character
  348. Torsoz = char:findFirstChild("Torso")
  349. RA = char:findFirstChild("Right Arm")
  350. LA = char:findFirstChild("Left Arm")
  351. RL = char:findFirstChild("Right Leg")
  352. LL = char:findFirstChild("Left Leg")
  353. H = char:findFirstChild("Head")
  354. Hu = char:findFirstChild("Humanoid")
  355. RS = Torsoz:findFirstChild("Right Shoulder")
  356. LS = Torsoz:findFirstChild("Left Shoulder")
  357. RH = Torsoz:findFirstChild("Right Hip")
  358. LH = Torsoz:findFirstChild("Left Hip")
  359. N = Torsoz:findFirstChild("Neck")
  360. stamina = maxstamina
  361. CreateGui()
  362. end)
  363.  
  364. function RAY(pos, dir, startpos, endpos, distleft, collidedlist)
  365. collidedlist = collidedlist or {char}
  366. startpos = startpos or pos
  367. distleft = distleft or dir.unit * dir.magnitude
  368. endpos = endpos or pos + distleft
  369. local ray = Ray.new(pos, distleft)
  370. local hitz,enz = workspace:FindPartOnRayWithIgnoreList(ray, collidedlist)
  371. --[[
  372. local p = P:Clone()
  373. p.Parent = char
  374. p.Size = Vector3.new(0.4,0.4,0.4)
  375. p.BrickColor = BrickColor.new("Lime green")
  376. p.CanCollide = false
  377. p.CFrame = CFrame.new(enz)
  378. p.Transparency = 0.3
  379. ]]
  380. if hitz ~= nil then
  381. if hitz.CanCollide == false then
  382. table.insert(collidedlist, hitz)
  383. local newpos = enz
  384. local newdistleft = distleft - (dir.unit * (pos - newpos).magnitude)
  385. if newdistleft ~= NV then
  386. return RAY(newpos-(dir*0.01), dir, startpos, endpos, newdistleft+(dir*0.01), collidedlist)
  387. end
  388. end
  389. end
  390.  
  391. return hitz, enz, ray
  392. end
  393.  
  394. function Sit()
  395. Standing = false
  396. local hitz,enz = RAY(Torsoz.Position, Vector3.new(0,-4.1,0))
  397. local tordir = Vector3.new(Torsoz.CFrame.lookVector.x,0,Torsoz.CFrame.lookVector.z)
  398. if (hitz ~= nil and hitz.CanCollide == true) then
  399. local cf = CFrame.new(enz+Vector3.new(0,1.28,0), enz+Vector3.new(0,1.28,0)+tordir) * CFrame.Angles(math.pi/6,0,0)
  400. local hitz2,enz2 = RAY(enz+Vector3.new(0,2.25,0), tordir*-2.2)
  401. Hu.PlatformStand = true
  402. Torsoz.CFrame = cf
  403. local bp = Instance.new("BodyPosition", Torsoz)
  404. bp.Name = "StaminaBodyObject"
  405. bp.maxForce = Vector3.new(1/0,1/0,1/0)
  406. bp.D = 100
  407. bp.position = cf.p
  408. local bg = Instance.new("BodyGyro", Torsoz)
  409. bg.Name = "StaminaBodyObject"
  410. bg.maxTorque = Vector3.new(1/0,1/0,1/0)
  411. bg.cframe = cf
  412. bg.D = 100
  413. SetWeld(Joint1,1,1, NV,NV, Vector3.new(0.34,-1,0.2), Vector3.new((math.pi/2)-(math.pi/6),0,math.pi/8))
  414. SetWeld(Joint2,1,1, NV,NV, Vector3.new(-0.34,-1,0.2), Vector3.new((math.pi/2)-(math.pi/6),0,-math.pi/8))
  415.  
  416. if hitz2 ~= nil and hitz2.CanCollide == true then
  417. Joint3.C0 = CFrame.new(0.9,0.4,-0.45) * CFrame.Angles(0,math.pi/2.13,0) * CFrame.Angles(math.pi/2.3,0,0)
  418. Joint4.C0 = CFrame.new(-0.9,0.4,-0.4) * CFrame.Angles(0,-math.pi/2.05,0) * CFrame.Angles(math.pi/2.3,0,0)
  419. Joint5.C0 = CFrame.new(0,1,0) * CFrame.Angles(-math.pi/8.8,0,0)
  420. else
  421. SetWeld(Joint3,1,1, NV,NV, Vector3.new(1.4,0.4,0.1), Vector3.new(-(math.pi/6)-(math.pi/10),0,math.pi/9))
  422. SetWeld(Joint4,1,1, NV,NV, Vector3.new(-1.4,0.4,0.1), Vector3.new(-(math.pi/6)-(math.pi/10),0,-math.pi/9))
  423. SetWeld(Joint5,1,1, NV,NV, Vector3.new(0,1,0), Vector3.new(-math.pi/12,0,0))
  424. end
  425.  
  426. Sitting = true
  427. Action = "Sitting"
  428. end
  429. end
  430.  
  431.  
  432. function Stand()
  433. Hu.PlatformStand = false
  434. if Sitting == true then
  435. local tordir = Torsoz.Position + (Torsoz.CFrame.lookVector*10000)
  436. local cf = CFrame.new(Torsoz.Position + Vector3.new(0,1.8,0), Vector3.new(tordir.x,Torsoz.Position.y,tordir.z))
  437. Torsoz.CFrame = cf
  438. end
  439. for i, v in pairs(Torsoz:children()) do
  440. if v.Name == "StaminaBodyObject" then
  441. v:remove()
  442. end
  443. end
  444. RH.Part0 = nil
  445. LH.Part0 = nil
  446. RS.Part0 = nil
  447. LS.Part0 = nil
  448. Joint1.Part0 = Torsoz
  449. Joint1.Part1 = RL
  450. Joint1.C0 = CFrame.new(0.5,-1,0)
  451. Joint1.C1 = CFrame.new(0,1,0)
  452. Joint2.Part0 = Torsoz
  453. Joint2.Part1 = LL
  454. Joint2.C0 = CFrame.new(-0.5,-1,0)
  455. Joint2.C1 = CFrame.new(0,1,0)
  456. Joint3.Part0 = Torsoz
  457. Joint3.Part1 = RA
  458. Joint3.C0 = CFrame.new(1.5,0.5,0)
  459. Joint3.C1 = CFrame.new(0,0.5,0)
  460. Joint4.Part0 = Torsoz
  461. Joint4.Part1 = LA
  462. Joint4.C0 = CFrame.new(-1.5,0.5,0)
  463. Joint4.C1 = CFrame.new(0,0.5,0)
  464. Joint5.Part0 = Torsoz
  465. Joint5.Part1 = H
  466. Joint5.C0 = CFrame.new(0,1,0)
  467. Joint5.C1 = CFrame.new(0,-0.5,0)
  468. Sitting = false
  469. Diving = false
  470. Standing = true
  471. Action = "Standing"
  472. end
  473.  
  474. --------------------------------------- Dive ----------------------------------
  475.  
  476. function Dive()
  477. stamina = stamina - 10
  478. flow.Value = flow.Value + 10
  479. if flow.Value > 100 then
  480. flow.Value = 100
  481. end
  482. Standing = false
  483. local dir = Vector3.new(Torsoz.CFrame.lookVector.x,0,Torsoz.CFrame.lookVector.z)
  484. GravPoint = 18
  485. DivingDir = dir
  486. local cf = CFrame.new(Torsoz.Position, dir+Vector3.new(0,Torsoz.Position.y,0))
  487. DivingCF = cf
  488. DivingDir = dir
  489. Hu.PlatformStand = true
  490. local bv = Instance.new("BodyVelocity", Torsoz)
  491. bv.Name = "StaminaBodyObject"
  492. bv.maxForce = Vector3.new(1/0,1/0,1/0)
  493. bv.velocity = Vector3.new(DivingDir.x*24,GravPoint,DivingDir.z*24)
  494. DivingBV = bv
  495. local bg = Instance.new("BodyGyro", Torsoz)
  496. bg.Name = "StaminaBodyObject"
  497. bg.maxTorque = Vector3.new(1/0,1/0,1/0)
  498. bg.cframe = CFrame.new(Torsoz.Position, Torsoz.Position+bv.velocity) * CFrame.Angles(-math.pi/2,0,0)
  499. bg.D = 100
  500. DivingBG = bg
  501.  
  502. local joint = Joint3
  503. joint.C1 = CFrame.new(0,0.5,0)
  504. local joint2 = Joint4
  505. joint2.C1 = CFrame.new(0,0.5,0)
  506. local joint3 = Joint1
  507. joint3.C1 = CFrame.new(0,1,0)
  508. local joint4 = Joint2
  509. joint4.C1 = CFrame.new(0,1,0)
  510.  
  511. local joint5 = Joint5
  512.  
  513. Diving = true
  514. Action = "Diving"
  515.  
  516. for i = 1, 8 do
  517. SetWeld(joint,i,8, Vector3.new(1.5,0.5,0), NV, Vector3.new(1.45,0.5,0.1), Vector3.new(-0.2,-math.pi/9,math.pi/13))
  518. SetWeld(joint2,i,8, Vector3.new(-1.5,0.5,0), NV, Vector3.new(-1.45,0.5,0.1), Vector3.new(-0.2,math.pi/9,-math.pi/13))
  519. SetWeld(joint3,i,8, Vector3.new(0.5,-1,0), NV, Vector3.new(0.5,-1,0.03), Vector3.new(-0.2,-math.pi/10,math.pi/14))
  520. SetWeld(joint4,i,8, Vector3.new(-0.5,-1,0), NV, Vector3.new(-0.5,-1,0.03), Vector3.new(-0.2,math.pi/10,-math.pi/14))
  521. SetWeld(joint5,i,8, Vector3.new(0,1,0), NV, Vector3.new(0,1,0), Vector3.new(0.45,0,0))
  522. wait(0.025)
  523. end
  524.  
  525. local counter = 0
  526. while Diving == true do
  527. counter = counter + 1
  528. bg.Parent = Torsoz
  529. local hitz, enz = RAY(Torsoz.Position, bv.velocity.unit*4.6)
  530. if hitz ~= nil and hitz.CanCollide == true then
  531. local hitz2, enz2 = RAY(Torsoz.Position, Vector3.new(0,-4,0))
  532. if hitz2 ~= nil then
  533. Diving = "Rolling"
  534. Action = "DiveRolling"
  535. else
  536. Torsoz.CFrame = Torsoz.CFrame * CFrame.new(0,-0.3,0)
  537. Torsoz.Velocity = NV
  538. flow.Value = 0
  539. break
  540. end
  541. end
  542. if counter > 190 then
  543. break
  544. end
  545. wait(0.02)
  546. end
  547.  
  548. bv.velocity = (dir*20) + Vector3.new(0,-0.5,0)
  549.  
  550. local bgcf = bg.cframe
  551. local haslanded = false
  552. local count = 0
  553.  
  554. while haslanded == false do
  555. bg.cframe = bgcf * CFrame.Angles(-0.3*count,0,0)
  556. local hitz, enz = RAY(Torsoz.Position, ((Torsoz.CFrame*CFrame.new(0,-1,0)).p - Torsoz.CFrame.p).unit*1.6)
  557. if hitz ~= nil and hitz.CanCollide == true then
  558. haslanded = true
  559. end
  560. local hitz2, enz2 = RAY(Torsoz.Position, Vector3.new(0,-3.8,0))
  561. if hitz2 == nil then
  562. Torsoz.Velocity = NV
  563. break
  564. elseif haslanded == true then
  565. local bp = Instance.new("BodyPosition", Torsoz)
  566. bp.Name = "StaminaJumpFix"
  567. bp.maxForce = Vector3.new(0,1/0,0)
  568. bp.P = 7000
  569. bp.position = enz2 + Vector3.new(0,2.8,0)
  570. game:service("Debris"):AddItem(bp, 0.3)
  571. else
  572. bv.velocity = (dir*20) + Vector3.new(0,-(Torsoz.Position - enz2).magnitude*3,0)
  573.  
  574. end
  575. count = count + 1
  576. if count <= 6 then
  577. local i = count
  578. local j1,j1a = GetWeld(joint)
  579. local j2,j2a = GetWeld(joint2)
  580. local j3,j3a = GetWeld(joint3)
  581. local j4,j4a = GetWeld(joint4)
  582. local j5,j5a = GetWeld(joint5)
  583. SetWeld(joint,i,6, j1,j1a, Vector3.new(1.35,0.5,-0.2), Vector3.new(math.pi/2.6,0,-math.pi/5.8))
  584. SetWeld(joint2,i,6, j2,j2a, Vector3.new(-1.35,0.5,-0.2), Vector3.new(math.pi/2.6,0,math.pi/5.8))
  585. SetWeld(joint3,i,6, j3,j3a, Vector3.new(0.51,0.4,-0.6), Vector3.new(-0.1,0,0.05))
  586. SetWeld(joint4,i,6, j4,j4a, Vector3.new(-0.51,0.4,-0.6), Vector3.new(-0.1,0,-0.05))
  587. SetWeld(joint5,i,6, j5,j5a, Vector3.new(0,1,0), Vector3.new(-0.4,0,0))
  588. elseif count >= 50 then
  589. break
  590. end
  591. wait(0.02)
  592. end
  593.  
  594. Torsoz.Velocity = NV
  595.  
  596. Stand()
  597. DivingCooldown = 9
  598. end
  599.  
  600. function FindSurface(part, position)
  601. local obj = part.CFrame:pointToObjectSpace(position)
  602. local siz = part.Size/2
  603. for i,v in pairs(Enum.NormalId:GetEnumItems()) do
  604. local vec = Vector3.FromNormalId(v)
  605. local wvec = part.CFrame:vectorToWorldSpace(vec)
  606. local vz = (obj)/(siz*vec)
  607. if (math.abs(vz.X-1) < 0.01 or math.abs(vz.Y-1) < 0.01 or math.abs(vz.Z-1) < 0.01) then
  608. return wvec,vec
  609. end
  610. end
  611. if part.className == "WedgePart" then
  612. return part.CFrame:vectorToWorldSpace(Vector3.new(0,0.707,-0.707)), Vector3.new(0,0.707,-0.707)
  613. end
  614. end
  615.  
  616. function HWallRun(part, pos, side)
  617. if (part.className == "Part" and part.Shape == Enum.PartType.Block) or part.className ~= "Part" then
  618. flow.Value = flow.Value + 9
  619. Standing = false
  620. HWallRunning = true
  621. Action = "HWallRunning"
  622. GravPoint = 10
  623. HWRLastPart = part
  624. local dir, dirc = FindSurface(part, pos)
  625. towall = -dir
  626. dir = (CFrame.new(NV, dir) * CFrame.Angles(0,side,0)).lookVector
  627.  
  628. local bv = Instance.new("BodyVelocity", Torsoz)
  629. bv.Name = "StaminaBodyObject"
  630. bv.maxForce = Vector3.new(1/0,1/0,1/0)
  631. bv.P = 9000
  632. bv.velocity = (dir*(sprint-0.5)) + Vector3.new(0,GravPoint,0)
  633. local bg = Instance.new("BodyGyro", Torsoz)
  634. bg.Name = "StaminaBodyObject"
  635. bg.maxTorque = Vector3.new(1/0,1/0,1/0)
  636. bg.cframe = CFrame.new(Torsoz.Position+(towall*-2), Torsoz.Position) * CFrame.Angles(0,-side,-side/4.2)
  637. bg.D = 100
  638.  
  639. local sid = Instance.new("Snap")
  640.  
  641. local joint1 = Joint3
  642. if side == -math.pi/2 then
  643. SetWeld(joint1,1,1, NV,NV, Vector3.new(1.5,0.5,0), Vector3.new(math.pi/1.3,0.1,math.pi/2.5))
  644. else
  645. sid = joint1
  646. SetWeld(joint1,1,1, NV,NV, Vector3.new(1.4,0.6,0), Vector3.new(-math.pi/12,0,math.pi/7))
  647. end
  648. local j1c0 = joint1.C0
  649.  
  650. local joint2 = Joint4
  651. if side == math.pi/2 then
  652. SetWeld(joint2,1,1, NV,NV, Vector3.new(-1.5,0.5,0), Vector3.new(math.pi/1.3,-0.1,-math.pi/2.5))
  653. else
  654. sid = joint2
  655. SetWeld(joint2,1,1, NV,NV, Vector3.new(-1.4,0.6,0), Vector3.new(-math.pi/12,0,-math.pi/7))
  656. end
  657. local j2c0 = joint2.C0
  658.  
  659. local joint3 = Joint1
  660. joint3.C1 = CFrame.new(0,1,0)
  661. if side == -math.pi/2 then
  662. SetWeld(joint3,1,1, NV,NV, Vector3.new(0.5,-0.38,-0.3), Vector3.new(0,math.pi/2,0.14))
  663. else
  664. SetWeld(joint3,1,1, NV,NV, Vector3.new(0.5,-0.8,-0.2), Vector3.new(0,math.pi/2,0.2))
  665. end
  666.  
  667. local joint4 = Joint2
  668. joint4.C1 = CFrame.new(0,1,0)
  669. if side == -math.pi/2 then
  670. SetWeld(joint4,1,1, NV,NV, Vector3.new(-0.5,-0.8,-0.2), Vector3.new(0,0,0.2))
  671. else
  672. SetWeld(joint4,1,1, NV,NV, Vector3.new(-0.5,-0.38,-0.3), Vector3.new(0,0,0.14))
  673. end
  674.  
  675. local joint5 = Joint5
  676. SetWeld(joint5,1,1,NV,NV,Vector3.new(0,0.9,0),Vector3.new(0,0,side/7))
  677.  
  678. Torsoz.CFrame = CFrame.new(pos+(towall*-2), pos) * CFrame.Angles(0,-side,-side/2.2)
  679. bg.cframe = CFrame.new(pos+(towall*-2), pos) * CFrame.Angles(0,-side,-side/2.2)
  680.  
  681. local aniangle = 0
  682. local aniplus = true
  683. local aniangle2 = 0
  684. local aniplus2 = true
  685.  
  686. local prevpart = part
  687. HWRLastPart = part
  688. while HWallRunning == true do
  689.  
  690. if aniangle > math.pi then
  691. aniplus = false
  692. elseif aniangle < -math.pi then
  693. aniplus = true
  694. end
  695. if aniplus == true then
  696. aniangle = aniangle + 0.95
  697. elseif aniplus == false then
  698. aniangle = aniangle - 0.95
  699. end
  700.  
  701. if aniangle2 > math.pi then
  702. aniplus2 = false
  703. elseif aniangle2 < -math.pi then
  704. aniplus2 = true
  705. end
  706. if aniplus2 == true then
  707. aniangle2 = aniangle2 + 0.23
  708. elseif aniplus2 == false then
  709. aniangle2 = aniangle2 - 0.23
  710. end
  711.  
  712. Hu.PlatformStand = true
  713. local hitz, enz = RAY(Torsoz.Position, Vector3.new(0,-3,0))
  714. local hitz2, enz2 = RAY(Torsoz.Position, towall*3.4)
  715.  
  716. --- if player ends wall run on ground
  717. if hitz ~= nil and hitz.CanCollide == true then
  718. bg.cframe = CFrame.new(enz2+(towall*-2), enz2) * CFrame.Angles(0,-side,0)
  719. local offset = (bg.cframe.p.y+enz2.y) - bg.cframe.p.y
  720. Torsoz.CFrame = CFrame.new(Vector3.new(bg.cframe.p.x,offset,bg.cframe.p.z), enz2) * CFrame.Angles(0,-side,0)
  721. Torsoz.Velocity = NV
  722. break
  723. end
  724.  
  725. ---- if new wall found --------
  726. if hitz2 ~= nil and hitz2.CanCollide == true then
  727. if hitz2 ~= prevpart then
  728. local direct = CFrame.new(Torsoz.Position, Torsoz.Position+dir) * CFrame.Angles(0,side,0)
  729. local hitz3, enz3 = RAY(Torsoz.Position, (direct * CFrame.Angles(0,-side/2.3,0)).lookVector*4)
  730. if hitz3 ~= nil then
  731. Torsoz.CFrame = CFrame.new(enz2+(towall*-2), enz2) * CFrame.Angles(0,-side*1.1,-side/2.2)
  732. bg.cframe = CFrame.new(enz2+(towall*-2), enz2) * CFrame.Angles(0,-side*1.1,-side/2.2)
  733. dir, dirc = FindSurface(hitz2, enz2)
  734. towall = -dir
  735. dir = (CFrame.new(NV, dir) * CFrame.Angles(0,side,0)).lookVector
  736. prevpart = hitz2
  737. HWRLastPart = hitz2
  738. else
  739. ---- if player fails to find new wall to run on
  740. Torsoz.CFrame = CFrame.new(Torsoz.Position, Torsoz.Position+dir)
  741. bg.cframe = CFrame.new(Torsoz.Position, Torsoz.Position+dir)
  742. Torsoz.Velocity = NV
  743. HWRCooldown = 5
  744. break
  745. end
  746. end
  747. --- continue to wall run
  748. Torsoz.CFrame = CFrame.new(enz2+(towall*-2), enz2) * CFrame.Angles(0,-side,-side/2.2)
  749. bg.cframe = CFrame.new(enz2+(towall*-2), enz2) * CFrame.Angles(0,-side,-side/2.2)
  750. else
  751. ---- if player ends wall run at end of wall
  752. Torsoz.CFrame = CFrame.new(Torsoz.Position, Torsoz.Position+dir)
  753. bg.cframe = CFrame.new(Torsoz.Position, Torsoz.Position+dir)
  754. Torsoz.Velocity = NV
  755. HWRCooldown = 5
  756. break
  757. end
  758.  
  759. local hitz3, enz3 = RAY(Torsoz.Position, Torsoz.CFrame.lookVector*2)
  760. if hitz3 ~= nil and hitz3.CanCollide == true then
  761. Torsoz.CFrame = CFrame.new(Torsoz.Position, Torsoz.Position+dir)
  762. bg.cframe = CFrame.new(Torsoz.Position, Torsoz.Position+dir)
  763. Torsoz.Velocity = NV
  764. HWRCooldown = 5
  765. break
  766. end
  767.  
  768. bv.Parent = Torsoz
  769. bv.velocity = (dir*(sprint-0.5)) + Vector3.new(0,GravPoint,0)
  770. bg.cframe = bg.cframe * CFrame.Angles(aniangle/80,aniangle/80,0)
  771. Torsoz.CFrame = Torsoz.CFrame * CFrame.Angles(aniangle/80,aniangle/80,0)
  772. local j3,j3a = GetWeld(joint3)
  773. local j4,j4a = GetWeld(joint4)
  774. SetWeld(joint3,1,1, j3,j3a, j3,Vector3.new(-0.2+(aniangle/4),0,0))
  775. SetWeld(joint4,1,1, j4,j4a, j4,Vector3.new(-0.2+(-aniangle/4),0,0))
  776. if side == math.pi/2 then
  777. local j1,j1a = GetWeld(joint1)
  778. SetWeld(joint1,1,1, j1,j1a, j1, Vector3.new(0,0,0.8+(aniangle2/14)))
  779. else
  780. local j2,j2a = GetWeld(joint2)
  781. SetWeld(joint2,1,1, j2,j2a, j2, Vector3.new(0,0,-0.8-(aniangle2/14)))
  782. end
  783.  
  784. wait(0.025)
  785. if GravPoint < -100 then
  786. bg.cframe = CFrame.new(enz2+(towall*-2), enz2) * CFrame.Angles(0,-side,0)
  787. local offset = math.abs((bg.cframe.p.y+enz2.y) - bg.cframe.p.y)
  788. Torsoz.CFrame = CFrame.new(Vector3.new(bg.cframe.p.x,offset,bg.cframe.p.z), enz2) * CFrame.Angles(0,-side,0)
  789. break
  790. end
  791.  
  792. end
  793.  
  794. if HWallRunning == "Jumping" then
  795. HWRCooldown = 6
  796. joint1.C1 = CFrame.new(0,0.5,0)
  797.  
  798. joint2.C1 = CFrame.new(0,0.5,0)
  799. if side == -math.pi/2 then
  800. joint2.C0 = CFrame.new(-1.35,0.5,0) * CFrame.Angles(0,side/2.4,-math.pi/3)
  801. else
  802. joint2.C0 = CFrame.new(-1.35,0.5,0) * CFrame.Angles(0,side/2.4,-math.pi/4)
  803. end
  804.  
  805. joint3.C1 = CFrame.new(0,1,0)
  806. if side == -math.pi/2 then
  807. joint3.C0 = CFrame.new(0.5,-0.8,0) * CFrame.Angles(0,math.pi+(side/2.4),-math.pi/4)
  808. else
  809. joint3.C0 = CFrame.new(0.5,-0.8,0) * CFrame.Angles(0,(side/2.4),math.pi/4)
  810. end
  811. joint4.MaxVelocity = 10
  812. joint4.DesiredAngle = 0
  813. joint4.C1 = CFrame.new(0,1,0)
  814. if side == -math.pi/2 then
  815. joint4.C0 = CFrame.new(-0.5,-0.8,0) * CFrame.Angles(0,math.pi+(side/2.4),math.pi/4)
  816. else
  817. joint4.C0 = CFrame.new(-0.5,-0.8,0) * CFrame.Angles(0,(side/2.4),-math.pi/4)
  818. end
  819.  
  820. local joint5 = Joint5
  821. joint5.C1 = CFrame.new(0,-0.5,0) * CFrame.Angles(0,side/2.4,0)
  822. joint5.C0 = CFrame.new(0,1,0)
  823.  
  824. local j1,j1a = GetWeld(joint1)
  825. local j2,j2a = GetWeld(joint2)
  826. local j3,j3a = GetWeld(joint3)
  827. local j4,j4a = GetWeld(joint4)
  828. local j5,j5a = GetWeld(joint5)
  829.  
  830. GravPoint = 26
  831. local collidecount = 0
  832. local bgangle = side/2
  833. local count = 1
  834. local dir2 = (CFrame.new(NV, dir) * CFrame.Angles(0,-side/2.4,0)).lookVector
  835. HWRDir = dir2
  836. bv.velocity = (dir2*(sprint+5)) + Vector3.new(0,GravPoint,0)
  837. while HWallRunning == "Jumping" do
  838. local hitz, enz = RAY(Torsoz.Position, Vector3.new(0,-4,0))
  839. local hitz2, enz2 = RAY(Torsoz.Position, dir2*1.4)
  840. if hitz ~= nil and hitz.CanCollide == true then
  841. local offset = math.abs(enz.y - Torsoz.CFrame.p.y)
  842. Torsoz.CFrame = CFrame.new(enz+Vector3.new(0,2.9,0), enz+Vector3.new(0,2.9,0)+dir2)
  843. Torsoz.Velocity = NV
  844. break
  845. end
  846.  
  847. if hitz2 ~= nil and hitz2.CanCollide == true then
  848. collidecount = collidecount + 1
  849. if collidecount == 4 then
  850. Torsoz.CFrame = CFrame.new(Torsoz.Position, Torsoz.Position+dir2) * CFrame.new(0,0,0.4)
  851. Torsoz.Velocity = Vector3.new(0,Torsoz.Velocity.y,0)
  852. HWRCooldown = 5
  853. VWRCooldown = 5
  854. wait(0.02)
  855. break
  856. end
  857. end
  858.  
  859. if side/2 > 0 then
  860. if bgangle > 0.2 then
  861. bgangle = bgangle - 0.055
  862. end
  863. else
  864. if bgangle < -0.2 then
  865. bgangle = bgangle + 0.055
  866. end
  867. end
  868.  
  869. if count <= 5 then
  870. if side == -math.pi/2 then
  871. SetWeld(joint1,count,5, j1,j1a, Vector3.new(1.35,0.5,0), Vector3.new(0,side/2.4,math.pi/4))
  872. SetWeld(joint2,count,5, j2,j2a, Vector3.new(-1.35,0.5,0), Vector3.new(0,side/2.4,-math.pi/3))
  873. SetWeld(joint3,count,5, j3,j3a, Vector3.new(0.5,-0.8,0), Vector3.new(0,-side/1.7,0))
  874. joint3.C0 = joint3.C0 * CFrame.Angles((-math.pi/4)/5*count,0,0)
  875. SetWeld(joint4,count,5, j4,j4a, Vector3.new(-0.5,-0.8,0), Vector3.new(0,-side/1.7,0))
  876. joint4.C0 = joint4.C0 * CFrame.Angles((math.pi/4)/5*count,0,0)
  877. else
  878. SetWeld(joint1,count,5, j1,j1a, Vector3.new(1.35,0.5,0), Vector3.new(0,side/2.4,math.pi/3))
  879. SetWeld(joint2,count,5, j2,j2a, Vector3.new(-1.35,0.5,0), Vector3.new(0,side/2.4,-math.pi/4))
  880. SetWeld(joint3,count,5, j3,j3a, Vector3.new(0.5,-0.8,0), Vector3.new(0,-side/1.7,0))
  881. joint3.C0 = joint3.C0 * CFrame.Angles((math.pi/4)/5*count,0,0)
  882. SetWeld(joint4,count,5, j4,j4a, Vector3.new(-0.5,-0.8,0), Vector3.new(0,-side/1.7,0))
  883. joint4.C0 = joint4.C0 * CFrame.Angles((-math.pi/4)/5*count,0,0)
  884. end
  885.  
  886. count = count + 1
  887. end
  888.  
  889. bg.Parent = Torsoz
  890. bg.cframe = CFrame.new(NV, dir) * CFrame.Angles(0,side/15,-bgangle)
  891. bv.velocity = (dir2*(sprint+5)) + Vector3.new(0,GravPoint,0)
  892. if collidecount ~= 0 then
  893. bv.velocity = Vector3.new(0,bv.velocity.y,0)
  894. end
  895. if GravPoint < -120 then
  896. break
  897. end
  898. wait(0.025)
  899. end
  900. end
  901.  
  902. Hu.PlatformStand = false
  903. bv:remove()
  904.  
  905. HWRGravDrop = false
  906. Stand()
  907. HWallRunning = false
  908. end
  909. end
  910.  
  911. function VWR(part, pos)
  912. if (part.className == "Part" and part.Shape == Enum.PartType.Block) or part.className ~= "Part" then
  913. print("VWR Activated")
  914. flow.Value = flow.Value + 9
  915. Standing = false
  916. VWallRunning = true
  917. Action = "VWallRunning"
  918. GravPoint = 0
  919. local percent = 1
  920. VWRLastPart = part
  921. local dir, dirc = FindSurface(part, pos)
  922. towall = -dir
  923. dir = (CFrame.new(NV, -dir) * CFrame.Angles(math.pi/2,0,0)).lookVector
  924. --[[
  925. local p = P:Clone()
  926. p.Parent = char
  927. p.Size = Vector3.new(2,2,2)
  928. p.BrickColor = BrickColor.new("Lime green")
  929. p.CanCollide = false
  930. p.CFrame = part.CFrame * CFrame.new(dirc*5)
  931. p.Transparency = 0.3
  932. ]]
  933. local bv = Instance.new("BodyVelocity", Torsoz)
  934. bv.Name = "StaminaBodyObject"
  935. bv.maxForce = Vector3.new(1/0,1/0,1/0)
  936. bv.P = 9000
  937. bv.velocity = (dir*(sprint-1))*percent
  938.  
  939. local bg = Instance.new("BodyGyro", Torsoz)
  940. bg.Name = "StaminaBodyObject"
  941. bg.maxTorque = Vector3.new(1/0,1/0,1/0)
  942. bg.D = 100
  943. local posi = pos + (-towall*1.8)
  944. bg.cframe = CFrame.new(posi, posi+towall) * CFrame.Angles((math.pi/5),0,0)
  945. Torsoz.CFrame = CFrame.new(posi, posi+towall) * CFrame.Angles((math.pi/5),0,0)
  946.  
  947. local joint1 = Joint3
  948. SetWeld(joint1,1,1, NV,NV, Vector3.new(1.4,0.45,-0.1), Vector3.new(-math.pi/3.2,0,math.pi/8))
  949.  
  950. local joint2 = Joint4
  951. SetWeld(joint2,1,1, NV,NV, Vector3.new(-1.4,0.45,-0.1), Vector3.new(-math.pi/3.2,0,-math.pi/8))
  952.  
  953. local joint3 = Joint1
  954. SetWeld(joint3,1,1, NV,NV, Vector3.new(0.48,-0.6,-0.1), Vector3.new(0,math.pi/2,0))
  955. joint3.C1 = CFrame.new(0,0.7,0.2) * CFrame.Angles(0,math.pi/2,0)
  956.  
  957. local joint4 = Joint2
  958. SetWeld(joint4,1,1, NV,NV, Vector3.new(-0.48,-0.6,-0.1), Vector3.new(0,math.pi/2,0))
  959. joint4.C1 = CFrame.new(0,0.7,0.2) * CFrame.Angles(0,math.pi/2,0)
  960.  
  961. local joint5 = Joint5
  962. SetWeld(joint5,1,1, NV,NV, Vector3.new(0,1,0), Vector3.new(math.pi/20,0,0))
  963.  
  964. local aniangle = 0
  965. local aniplus = true
  966.  
  967. while VWallRunning == true do
  968. local hitz, enz = RAY(Torsoz.Position, towall*2.1)
  969. local hitz2, enz2 = RAY(Torsoz.Position, (CFrame.new(NV,towall)*CFrame.Angles(math.pi/2,0,0)).lookVector*2.4)
  970.  
  971. if aniangle > math.pi then
  972. aniplus = false
  973. elseif aniangle < -math.pi then
  974. aniplus = true
  975. end
  976. if aniplus == true then
  977. aniangle = aniangle + (1.3*(percent+0.2))
  978. elseif aniplus == false then
  979. aniangle = aniangle - (1.3*(percent+0.2))
  980. end
  981.  
  982. bv.velocity = (dir*(sprint-1))*percent
  983. if VWRLeft == true then
  984. bv.velocity = bv.velocity + ((CFrame.new(NV, towall) * CFrame.Angles(0,math.pi/2,0)).lookVector * (11*percent+5))
  985. end
  986. if VWRRight == true then
  987. bv.velocity = bv.velocity - ((CFrame.new(NV, towall) * CFrame.Angles(0,math.pi/2,0)).lookVector * (11*percent+5))
  988. end
  989.  
  990. bg.cframe = CFrame.new(posi, posi+towall) * CFrame.Angles((math.pi/5),0,0) * CFrame.Angles(0,aniangle/60,0)
  991.  
  992. SetWeld(joint1,1,1, NV,NV, Vector3.new(1.4,0.45,-0.1), Vector3.new(-math.pi/3.2,aniangle/52,(math.pi/8)+(aniangle/30)))
  993. SetWeld(joint2,1,1, NV,NV, Vector3.new(-1.4,0.45,-0.1), Vector3.new(-math.pi/3.2,aniangle/52,(-math.pi/8)+(-aniangle/30)))
  994. SetWeld(joint3,1,1, NV,NV, Vector3.new(0.51,-0.75,-(aniangle/30)), Vector3.new(0,math.pi/2,(aniangle/8)-0.3))
  995. SetWeld(joint4,1,1, NV,NV, Vector3.new(-0.51,-0.75,(aniangle/30)), Vector3.new(0,math.pi/2,(-aniangle/8)-0.3))
  996.  
  997. if hitz == nil then
  998. local lv = Torsoz.Position + (Torsoz.CFrame.lookVector*100)
  999. Torsoz.CFrame = CFrame.new(Torsoz.Position, Vector3.new(lv.x,Torsoz.Position.y,lv.z))
  1000. break
  1001. end
  1002.  
  1003. if hitz2 ~= nil then
  1004. percent = 0
  1005. VWallRunning = "Falling"
  1006. Action = "VWRFalling"
  1007. GravPoint = -7
  1008. break
  1009. end
  1010.  
  1011. wait(0.02)
  1012. percent = percent - 0.028
  1013. if percent <= 0.15 then
  1014. VWallRunning = "Falling"
  1015. Action = "VWRFalling"
  1016. end
  1017. end
  1018.  
  1019. -------------------------- Falling from VWR ------------------------------
  1020. if VWallRunning == "Falling" then
  1021. GravPoint = GravPoint - 1
  1022. local dirpos = (-towall *5) + Vector3.new(0,GravPoint,0)
  1023. bv.velocity = CFrame.new(NV, dirpos).lookVector * dirpos.magnitude
  1024.  
  1025. local j1,j1a = GetWeld(joint1)
  1026. local j2,j2a = GetWeld(joint2)
  1027. local j3,j3a = GetWeld(joint3)
  1028. local j4,j4a = GetWeld(joint4)
  1029. local j5,j5a = GetWeld(joint5)
  1030.  
  1031. local counter = 0
  1032. while VWallRunning == "Falling" do
  1033. counter = counter + 1
  1034. local hitz, enz = RAY(H.Position, Vector3.new(0,-2.4,0))
  1035.  
  1036. dirpos = (-towall *5) + Vector3.new(0,GravPoint,0)
  1037. bv.velocity = CFrame.new(NV, dirpos).lookVector * dirpos.magnitude
  1038. if VWRLeft == true then
  1039. bv.velocity = bv.velocity + ((CFrame.new(NV, towall) * CFrame.Angles(0,math.pi/2,0)).lookVector * 9)
  1040. end
  1041. if VWRRight == true then
  1042. bv.velocity = bv.velocity - ((CFrame.new(NV, towall) * CFrame.Angles(0,math.pi/2,0)).lookVector * 9)
  1043. end
  1044. bg.cframe = CFrame.new(NV, (-towall*30) + Vector3.new(0,GravPoint,0)) * CFrame.Angles(-math.pi/2.55,math.pi,0)
  1045.  
  1046. if counter <= 35 then
  1047. SetWeld(joint1,counter,35, j1,j1a, Vector3.new(1.4,0.45,-0.1), Vector3.new(math.pi/9,0,math.pi/9))
  1048. SetWeld(joint2,counter,35, j2,j2a, Vector3.new(-1.4,0.45,-0.1), Vector3.new(math.pi/9,0,-math.pi/9))
  1049. SetWeld(joint3,counter,35, j3,j3a, Vector3.new(0.5,-0.75,0), Vector3.new(0,math.pi/2,math.pi/9))
  1050. joint3.C1 = CFrame.new(0,0.7 + (0.3/35*counter),0.2 - (0.2/35*counter)) * CFrame.Angles(0,math.pi/2,0)
  1051. SetWeld(joint4,counter,35, j4,j4a, Vector3.new(-0.5,-0.75,0), Vector3.new(0,math.pi/2,math.pi/9))
  1052. joint4.C1 = CFrame.new(0,0.7 + (0.3/35*counter),0.2 - (0.2/35*counter)) * CFrame.Angles(0,math.pi/2,0)
  1053. SetWeld(joint5,counter,35, j5,j5a, Vector3.new(0,1,0), Vector3.new(-math.pi/6,0,0))
  1054. end
  1055.  
  1056. if hitz ~= nil then
  1057. bv:remove()
  1058. Torsoz.CFrame = CFrame.new(enz+Vector3.new(0,2,0), (enz+Vector3.new(0,2,0)) + ((-towall*25) + Vector3.new(0,GravPoint,0))) * CFrame.Angles(-math.pi/2.55,math.pi,0)
  1059. Torsoz.Velocity = NV
  1060. Torsoz.RotVelocity = NV
  1061. local bp = Instance.new("BodyPosition", Torsoz)
  1062. bp.maxForce = Vector3.new(1/0,1/0,1/0)
  1063. bp.position = Torsoz.CFrame.p
  1064. game:service("Debris"):AddItem(bp, 0.16)
  1065. flow.Value = 0
  1066. break
  1067. end
  1068.  
  1069. if GravPoint > - 180 then
  1070. GravPoint = GravPoint - 1.9
  1071. end
  1072. if counter > 200 then
  1073. break
  1074. end
  1075. wait(0.02)
  1076. end
  1077.  
  1078. local bp = Instance.new("BodyPosition")
  1079.  
  1080. local counter2 = counter
  1081. local bgangleplus = 0
  1082.  
  1083. local j1,j1a = GetWeld(joint1)
  1084. local j2,j2a = GetWeld(joint2)
  1085. local j3,j3a = GetWeld(joint3)
  1086. local j4,j4a = GetWeld(joint4)
  1087. local j5,j5a = GetWeld(joint5)
  1088.  
  1089. local landingpos
  1090.  
  1091. while VWallRunning == "BackflipFromFall" do
  1092. counter2 = counter2 + 1
  1093. local hitz, enz = RAY(H.Position+Vector3.new(0,2,0), Vector3.new(0,-4.4,0))
  1094.  
  1095. if counter2 - counter < 13 then
  1096. bgangleplus = bgangleplus - ((math.pi*1.1)/13)
  1097. end
  1098. if counter2 - counter <= 13 then
  1099. SetWeld(joint1,counter2-counter,13, j1,j1a, Vector3.new(1.4,0.5,0.1), Vector3.new(math.pi/2,0.1,math.pi/2))
  1100. SetWeld(joint2,counter2-counter,13, j2,j2a, Vector3.new(-1.4,0.5,0.1), Vector3.new(math.pi/2,-0.1,-math.pi/2))
  1101. SetWeld(joint3,counter2-counter,13, j3,j3a, Vector3.new(0.52,-0.3,-0.65), Vector3.new(0,math.pi/2,0))
  1102. SetWeld(joint4,counter2-counter,13, j4,j4a, Vector3.new(-0.51,-0.9,-0.05), Vector3.new(0,math.pi/2,0))
  1103. SetWeld(joint5,counter2-counter,13, j5,j5a, Vector3.new(0,0.9,0), Vector3.new(-math.pi/7,0,0))
  1104. end
  1105.  
  1106. dirpos = (-towall *5) + Vector3.new(0,GravPoint,0)
  1107. --bv.velocity = Vector3.new(0,-2,0)
  1108. bv.velocity = CFrame.new(NV, dirpos).lookVector * dirpos.magnitude
  1109. if VWRLeft == true then
  1110. bv.velocity = bv.velocity + ((CFrame.new(NV, towall) * CFrame.Angles(0,math.pi/2,0)).lookVector * 9)
  1111. end
  1112. if VWRRight == true then
  1113. bv.velocity = bv.velocity - ((CFrame.new(NV, towall) * CFrame.Angles(0,math.pi/2,0)).lookVector * 9)
  1114. end
  1115. bg.cframe = CFrame.new(NV, (-towall*30) + Vector3.new(0,GravPoint,0)) * CFrame.Angles((-math.pi/2.4) + bgangleplus,math.pi,0)
  1116.  
  1117. if hitz ~= nil then
  1118. bv:remove()
  1119. landingpos = enz - (towall*1.3)
  1120. if counter2 - counter > 8 then
  1121. bp = Instance.new("BodyPosition", Torsoz)
  1122. bp.maxForce = Vector3.new(1/0,1/0,1/0)
  1123. bp.position = enz+Vector3.new(0,2.4,0) + (-towall*1)
  1124. VWallRunning = "LandingFall"
  1125. else
  1126. Torsoz.CFrame = bg.cframe + (enz+Vector3.new(0,2.3,0))
  1127. Torsoz.Velocity = NV
  1128. Torsoz.RotVelocity = NV
  1129. local bp = Instance.new("BodyPosition", Torsoz)
  1130. bp.maxForce = Vector3.new(1/0,1/0,1/0)
  1131. bp.position = Torsoz.CFrame.p
  1132. game:service("Debris"):AddItem(bp, 0.14)
  1133. flow.Value = 0
  1134. end
  1135. break
  1136. end
  1137.  
  1138. if GravPoint > - 180 then
  1139. GravPoint = GravPoint - 1.9
  1140. end
  1141. if counter2 > 200 then
  1142. break
  1143. end
  1144. wait(0.02)
  1145. end
  1146.  
  1147. if VWallRunning == "LandingFall" then
  1148. print("Landing")
  1149.  
  1150. joint3.C1 = CFrame.new(0,1,0) * CFrame.Angles(0,math.pi/2,0)
  1151. joint4.C1 = CFrame.new(0,1,0) * CFrame.Angles(0,math.pi/2,0)
  1152. local j1,j1a = GetWeld(joint1)
  1153. local j2,j2a = GetWeld(joint2)
  1154. local j3,j3a = GetWeld(joint3)
  1155. local j4,j4a = GetWeld(joint4)
  1156. local j5,j5a = GetWeld(joint5)
  1157.  
  1158. local a
  1159. local mesh
  1160. if GravPoint < -70 then
  1161. a = P:Clone()
  1162. a.Parent = Torsoz
  1163. a.Name = "AirLandingEffect"
  1164. a.BrickColor = BrickColor.new("Medium stone grey")
  1165. a.Transparency = 0.3
  1166. a.CFrame = CFrame.new(landingpos+Vector3.new(0,0.4,0))
  1167. mesh = Instance.new("SpecialMesh", a)
  1168. mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
  1169. mesh.Scale = Vector3.new(0,0,0)
  1170. end
  1171.  
  1172. local bgcf = CFrame.new(NV, Vector3.new(towall.x,0,towall.z))
  1173. bg.cframe = bgcf * CFrame.Angles(-math.pi/7,0,0)
  1174. local bgval = math.pi/7/2
  1175.  
  1176. for i = 1, 6 do
  1177. Hu.PlatformStand = true
  1178. SetWeld(joint1,i,6, j1,j1a, Vector3.new(1.2,0.5,0.2), Vector3.new(math.pi/2,0.5,math.pi/1.2))
  1179. SetWeld(joint2,i,6, j2,j2a, Vector3.new(-1.2,0.5,0.2), Vector3.new(math.pi/2,-0.5,-math.pi/1.2))
  1180. SetWeld(joint3,i,6, j3,j3a, Vector3.new(0.51,-0.3,-0.8), Vector3.new(0,math.pi/2,-math.pi/7))
  1181. SetWeld(joint4,i,6, j4,j4a, Vector3.new(-0.51,-0.8,-0.7), Vector3.new(0,math.pi/2,-math.pi/3))
  1182. SetWeld(joint5,i,6, j5,j5a, Vector3.new(0,0.85,0), Vector3.new(-math.pi/8,0,0))
  1183. bp.position = bp.position + Vector3.new(0,-0.07,0)
  1184. bg.cframe = bgcf * CFrame.Angles((-bgval*2) + (bgval/6*i),0,0)
  1185. Torsoz.CFrame = bg.cframe + bp.position
  1186. if a ~= nil then
  1187. mesh.Scale = mesh.Scale + Vector3.new(1.3,0.35,1.3)
  1188. a.Transparency = 0.3 + (0.7/6*i)
  1189. end
  1190. wait(0.02)
  1191. end
  1192. if a ~= nil then
  1193. a:remove()
  1194. end
  1195. local j1,j1a = GetWeld(joint1)
  1196. local j2,j2a = GetWeld(joint2)
  1197. local j3,j3a = GetWeld(joint3)
  1198. local j4,j4a = GetWeld(joint4)
  1199. local j5,j5a = GetWeld(joint5)
  1200. for i = 1, 6 do
  1201. Hu.PlatformStand = true
  1202. SetWeld(joint1,i,6, j1,j1a, Vector3.new(1.5,0.5,0), Vector3.new(0,0,0))
  1203. SetWeld(joint2,i,6, j2,j2a, Vector3.new(-1.5,0.5,0), Vector3.new(0,0,0))
  1204. SetWeld(joint3,i,6, j3,j3a, Vector3.new(0.5,-1,0), Vector3.new(0,math.pi/2,0))
  1205. SetWeld(joint4,i,6, j4,j4a, Vector3.new(-0.5,-1,0), Vector3.new(0,math.pi/2,0))
  1206. SetWeld(joint5,i,6, j5,j5a, Vector3.new(0,1,0), Vector3.new(0,0,0))
  1207. bp.position = bp.position + Vector3.new(0,0.1,0)
  1208. bg.cframe = bgcf * CFrame.Angles(-bgval + (bgval/6*i),0,0)
  1209. Torsoz.CFrame = bg.cframe + bp.position
  1210. wait(0.02)
  1211. end
  1212.  
  1213. bp:remove()
  1214. end
  1215.  
  1216. end
  1217.  
  1218. bv:remove()
  1219. bg:remove()
  1220. VWallRunning = false
  1221. Stand()
  1222. end
  1223. end
  1224.  
  1225. function Slide(pos)
  1226. flow.Value = flow.Value + 6
  1227. Action = "Sliding"
  1228. Sliding = true
  1229. GravPoint = Torsoz.Velocity.y
  1230. local spd = Vector3.new(Torsoz.Velocity.x,0,Torsoz.Velocity.z).magnitude + 10
  1231. local dir = Vector3.new(Torsoz.Velocity.x,0,Torsoz.Velocity.z).unit
  1232.  
  1233. local bv = Instance.new("BodyVelocity", Torsoz)
  1234. bv.maxForce = Vector3.new(1/0,1/0,1/0)
  1235. bv.velocity = dir*spd
  1236. local bg = Instance.new("BodyGyro", Torsoz)
  1237. bg.maxTorque = Vector3.new(1/0,1/0,1/0)
  1238. bg.cframe = CFrame.new(NV, dir) * CFrame.Angles(math.pi/2.2,0.24,0)
  1239.  
  1240. local joint1 = Joint1
  1241. local joint2 = Joint2
  1242. local joint3 = Joint3
  1243. local joint4 = Joint4
  1244. local joint5 = Joint5
  1245. local j1,j1a = GetWeld(joint1)
  1246. local j2,j2a = GetWeld(joint2)
  1247.  
  1248. SetWeld(joint1,1,1, NV,NV, Vector3.new(j1.x,j1.y,j1.z), Vector3.new(j1a.x,math.pi/2,j1a.z))
  1249. joint1.C1 = CFrame.new(0,1,0) * CFrame.Angles(0,math.pi/2,0)
  1250. SetWeld(joint2,1,1, NV,NV, Vector3.new(j2.x,j2.y,j2.z), Vector3.new(j2a.x,math.pi/2,j2a.z))
  1251. joint2.C1 = CFrame.new(0,1,0) * CFrame.Angles(0,math.pi/2,0)
  1252.  
  1253. local j1,j1a = GetWeld(joint1)
  1254. local j2,j2a = GetWeld(joint2)
  1255. local j3,j3a = GetWeld(joint3)
  1256. local j4,j4a = GetWeld(joint4)
  1257. local j5,j5a = GetWeld(joint5)
  1258.  
  1259. local count = 0
  1260. local lastpos
  1261.  
  1262. while Sliding == true do
  1263. count = count + 1
  1264. Hu.PlatformStand = true
  1265. local hitz1, enz1 = RAY(Torsoz.Position+Vector3.new(0,0.03,0), dir *2.5)
  1266. local hitz2, enz2 = RAY(Torsoz.Position-Vector3.new(0,0.2,0), dir *2.5)
  1267. local ghitz, genz = RAY(Torsoz.Position, Vector3.new(0,-2.6,0))
  1268. bv.velocity = dir*spd + Vector3.new(0,GravPoint,0)
  1269.  
  1270. if count <= 5 then
  1271. SetWeld(joint1,count,5, j1,j1a, Vector3.new(0.5,-0.8,-0.15), Vector3.new(0,(math.pi/2)+0.1,-0.4))
  1272. SetWeld(joint2,count,5, j2,j2a, Vector3.new(-0.5,-1,0), Vector3.new(0,(math.pi/2)-0.4,0))
  1273. SetWeld(joint3,count,5, j3,j3a, Vector3.new(1.5,0.5,0), Vector3.new(-0.7,-0.24,math.pi/5))
  1274. SetWeld(joint4,count,5, j4,j4a, Vector3.new(-1.5,0.5,0), Vector3.new(-0.1,0,-math.pi/1.5))
  1275. SetWeld(joint5,count,5, j5,j5a, Vector3.new(0,1,0), Vector3.new(-0.5,-0.2,0))
  1276. end
  1277.  
  1278. if (hitz1 ~= nil and hitz1.CanCollide == true) or (hitz2 ~= nil and hitz2.CanCollide == true) then
  1279. bv:remove()
  1280. bg:remove()
  1281. Sliding = "HitObject"
  1282. end
  1283. if ghitz ~= nil then
  1284. GravPoint = 0
  1285. Torsoz.CFrame = CFrame.new(genz, genz+dir) * CFrame.Angles(math.pi/2.2,0.24,0) + Vector3.new(0,0.7,0)
  1286. spd = spd - 0.95
  1287. else
  1288. if GravPoint > -180 then
  1289. GravPoint = GravPoint - 5.6
  1290. end
  1291. spd = spd - 0.36
  1292. end
  1293. if spd < 7 then
  1294. Sliding = false
  1295. end
  1296. wait(0.02)
  1297. end
  1298.  
  1299. if Sliding == false then
  1300. local j1,j1a = GetWeld(joint1)
  1301. local j2,j2a = GetWeld(joint2)
  1302. local j3,j3a = GetWeld(joint3)
  1303. local j4,j4a = GetWeld(joint4)
  1304. local j5,j5a = GetWeld(joint5)
  1305. for i = 1, 4 do
  1306. SetWeld(joint1,i,4, j1,j1a, Vector3.new(0.5,-1,0), Vector3.new(0,math.pi/2,0))
  1307. SetWeld(joint2,i,4, j2,j2a, Vector3.new(-0.5,-1,0), Vector3.new(0,math.pi/2,0))
  1308. SetWeld(joint3,i,4, j3,j3a, Vector3.new(1.5,0.5,0), NV)
  1309. SetWeld(joint4,i,4, j4,j4a, Vector3.new(-1.5,0.5,0), NV)
  1310. SetWeld(joint5,i,4, j5,j5a, Vector3.new(0,1,0), NV)
  1311. local hitz, enz = RAY(Torsoz.Position, Vector3.new(0,-2.6,0))
  1312. bg.cframe = CFrame.new(NV, dir) * CFrame.Angles((math.pi/2.2) - ((math.pi/2.2)/4*i),0.24 - (0.24/4*i),0)
  1313. bv.velocity = dir*spd + Vector3.new(0,GravPoint,0)
  1314.  
  1315. if hitz ~= nil then
  1316. GravPoint = 0
  1317. Torsoz.CFrame = CFrame.new(enz, enz+dir) * CFrame.Angles((math.pi/2.2) - ((math.pi/2.2)/4*i),0.24 - (0.24/4*i),0) + Vector3.new(0,0.7+(1.8/4*i),0)
  1318. spd = spd - 0.95
  1319. else
  1320. if GravPoint > -180 then
  1321. GravPoint = GravPoint - 5.6
  1322. end
  1323. spd = spd - 0.36
  1324. end
  1325. wait(0.02)
  1326. end
  1327. local hitz, enz = RAY(Torsoz.Position, Vector3.new(0,-2.6,0))
  1328. Torsoz.CFrame = CFrame.new(enz, enz+dir) + Vector3.new(0,3,0)
  1329. end
  1330. bv:remove()
  1331. bg:remove()
  1332. SlideCooldown = 10
  1333. Stand()
  1334. end
  1335.  
  1336. function KD(key)
  1337. if pause.Value == false then
  1338. if key == string.char(32) then
  1339. Space = true
  1340.  
  1341. local ghitz, genz = RAY(Torsoz.Position, Vector3.new(0,-3.7,0))
  1342. local hitz, enz = RAY(Torsoz.Position+Vector3.new(0,1.1,0), Torsoz.CFrame.lookVector*2.3)
  1343. local righthitz, rightenz
  1344. local lefthitz, leftenz
  1345.  
  1346. if HWallRunning == false then
  1347. righthitz, rightenz = RAY(Torsoz.Position, ((Torsoz.CFrame * CFrame.new(1.5,0,-0.2)).p - Torsoz.CFrame.p).unit*3.9)
  1348. lefthitz, leftenz = RAY(Torsoz.Position, ((Torsoz.CFrame * CFrame.new(-1.5,0,-0.2)).p - Torsoz.CFrame.p).unit*3.9)
  1349.  
  1350. elseif HWallRunning == "Jumping" then
  1351. righthitz, rightenz = RAY(Torsoz.Position, ((CFrame.new(Torsoz.Position, Torsoz.Position + HWRDir) * CFrame.new(1.5,0,-0.2)).p - Torsoz.Position).unit*3.9)
  1352. lefthitz, leftenz = RAY(Torsoz.Position, ((CFrame.new(Torsoz.Position, Torsoz.Position + HWRDir) * CFrame.new(-1.5,0,-0.2)).p - Torsoz.Position).unit*3.9)
  1353.  
  1354. end
  1355.  
  1356. if Action == "Standing" and Shift == true and (hitz == nil or hitz.CanCollide == false) and (righthitz == nil or righthitz.CanCollide == false) and (lefthitz == nil or lefthitz.CanCollide == false) and (ghitz == nil or ghitz.CanCollide == false) and (Torsoz.Velocity.y > 6 and Torsoz.Velocity.y < 50) and DivingCooldown <= 0 then
  1357. if stamina >= 10 then
  1358. --if Vector3.new(Torsoz.Velocity.x,0,Torsoz.Velocity.z).magnitude > 12 then
  1359. Dive()
  1360. --end
  1361. end
  1362. end
  1363.  
  1364. if hitz == nil and VWallRunning == "Falling" then
  1365. VWallRunning = "BackflipFromFall"
  1366. end
  1367.  
  1368. if Shift == true and Torsoz.Velocity.y > -50 and Diving == false and DivingCooldown <= 0 then
  1369. local hitz2, enz2 = RAY(Torsoz.Position, Vector3.new(0,-3.5,0))
  1370.  
  1371. if hitz ~= nil then
  1372. if Action == "Standing" and VWRCooldown == 0 then
  1373. if hitz2 == nil or hitz2.CanCollide == false then
  1374. VWR(hitz, enz)
  1375. end
  1376. end
  1377. end
  1378.  
  1379. if (HWallRunning == false or (HWallRunning == "Jumping" and (HWRLastPart ~= righthitz or HWRLastPart ~= lefthitz))) and HWRCooldown == 0 and VWallRunning == false then
  1380.  
  1381. if (hitz == nil or HWallRunning == "Jumping") and ((righthitz ~= nil and righthitz.Parent:findFirstChild("Humanoid") == nil and righthitz.Parent.className ~= "Hat") or (lefthitz ~= nil and lefthitz.Parent:findFirstChild("Humanoid") == nil and lefthitz.Parent.className ~= "Hat")) then
  1382. if hitz2 == nil or hitz2.CanCollide == false then
  1383. local right = (rightenz - Torsoz.Position).magnitude
  1384. local left = (leftenz - Torsoz.Position).magnitude
  1385. if right < left then
  1386. if HWallRunning == "Jumping" and HWRLastPart ~= righthitz then
  1387. HWallRunning = false
  1388. while Standing == false do
  1389. wait(0.01)
  1390. end
  1391. print("2nd Right Activated!")
  1392. HWallRun(righthitz, rightenz, -math.pi/2)
  1393. else
  1394. if hitz == nil then
  1395. print("Right Activated")
  1396. HWallRun(righthitz, rightenz, -math.pi/2)
  1397. end
  1398. end
  1399. elseif left < right then
  1400. if HWallRunning == "Jumping" and HWRLastPart ~= lefthitz then
  1401. HWallRunning = false
  1402. while Standing == false do
  1403. wait(0.01)
  1404. end
  1405. print("2nd Left Activated!")
  1406. HWallRun(lefthitz, leftenz, math.pi/2)
  1407. else
  1408. if hitz == nil then
  1409. print("Left Activated")
  1410. HWallRun(lefthitz, leftenz, math.pi/2)
  1411. end
  1412. end
  1413. end
  1414. end
  1415. end
  1416. end
  1417.  
  1418. end
  1419.  
  1420. if HWallRunning == true then
  1421. HWallRunning = "Jumping"
  1422. Action = "HWRJumping"
  1423. end
  1424.  
  1425. elseif key == string.char(48) then
  1426. Shift = true
  1427. elseif key == string.char(50) then
  1428. if Action == "Standing" then
  1429. Sit()
  1430. elseif HWallRunning == true then
  1431. HWRGravDrop = true
  1432. end
  1433. elseif key == string.char(52) then
  1434. if Shift == true and Action == "Standing" and SlideCooldown == 0 and Vector3.new(Torsoz.Velocity.x,0,Torsoz.Velocity.z).magnitude > 15 and Torsoz.Velocity.y > -40 then
  1435. print("Sliding")
  1436. Slide()
  1437. end
  1438. elseif key == "a" then
  1439. VWRLeft = true
  1440. elseif key == "d" then
  1441. VWRRight = true
  1442. end
  1443. end
  1444. end
  1445.  
  1446. function KU(key)
  1447. if key == string.char(32) then
  1448. Space = false
  1449. elseif key == string.char(48) then
  1450. Shift = false
  1451. elseif key == string.char(50) then
  1452. if Action == "Sitting" then
  1453. Stand()
  1454. end
  1455. elseif key == string.char(52) then
  1456. Sliding = false
  1457. elseif key == "a" then
  1458. VWRLeft = false
  1459. elseif key == "d" then
  1460. VWRRight = false
  1461. end
  1462. end
  1463.  
  1464. mouse.KeyDown:connect(function(key) KD(key) end)
  1465. mouse.KeyUp:connect(function(key) KU(key) end)
  1466.  
  1467. Joint1 = Instance.new("Snap", Torsoz)
  1468. GetWeld(Joint1)
  1469. Joint2 = Instance.new("Snap", Torsoz)
  1470. GetWeld(Joint2)
  1471. Joint3 = Instance.new("Snap", Torsoz)
  1472. GetWeld(Joint3)
  1473. Joint4 = Instance.new("Snap", Torsoz)
  1474. GetWeld(Joint4)
  1475. Joint5 = Instance.new("Snap", Torsoz)
  1476. GetWeld(Joint5)
  1477. Stand()
  1478.  
  1479. local animatebg = Instance.new("BodyGyro")
  1480. animatebg.D = 100
  1481. local GravAction = "Idle"
  1482. local PrevGravAction = GravAction
  1483.  
  1484. local prevrapos = (RA.CFrame * CFrame.new(0,-1,0)).p
  1485. local prevlapos = (LA.CFrame * CFrame.new(0,-1,0)).p
  1486. local hue = 0
  1487. local recyclecount = 0
  1488. local tickoffset = tick()
  1489. local fadetab = {}
  1490. local fadetab2 = {}
  1491. local animatebgcount = 0
  1492.  
  1493. for i = 1, 13 do
  1494. local p = P:Clone()
  1495. p.Name = "Part"..i
  1496. local mesh = Instance.new("SpecialMesh", p)
  1497. mesh.MeshId = "http://www.roblox.com/Asset/?id=9856898"
  1498. mesh.TextureId = "http://www.roblox.com/Asset/?id=48358980"
  1499. table.insert(fadetab, {p, mesh})
  1500. end
  1501. for i = 1, 13 do
  1502. local p = P:Clone()
  1503. p.Name = "Part"..i
  1504. local mesh = Instance.new("SpecialMesh", p)
  1505. mesh.MeshId = "http://www.roblox.com/Asset/?id=9856898"
  1506. mesh.TextureId = "http://www.roblox.com/Asset/?id=48358980"
  1507. table.insert(fadetab2, {p, mesh})
  1508. end
  1509.  
  1510. game:service("RunService").Stepped:connect(function()
  1511. GravAction = "Idle"
  1512. hue = hue + 3
  1513. hue = hue % 360
  1514.  
  1515. ------------- anim angle changing --------
  1516. if animangle > math.pi then
  1517. animplus = false
  1518. elseif animangle < -math.pi then
  1519. animplus = true
  1520. end
  1521. if animplus == true then
  1522. animangle = animangle + animspeed
  1523. elseif animplus == false then
  1524. animangle = animangle - animspeed
  1525. end
  1526.  
  1527. local hitz, enz = RAY(Torsoz.Position, Vector3.new(0,-3.9,0))
  1528. if Shift == true then
  1529. Hu.WalkSpeed = sprint
  1530. else
  1531. Hu.WalkSpeed = 16
  1532. end
  1533. if (FOV >= 70 and FOV < 74) and Vector3.new(Torsoz.Velocity.x,0,Torsoz.Velocity.z).magnitude > 25 then
  1534. FOV = FOV + 1
  1535. elseif (FOV <= 74 and FOV > 70) and Vector3.new(Torsoz.Velocity.x,0,Torsoz.Velocity.z).magnitude < 20 then
  1536. FOV = FOV - 1
  1537. end
  1538. if pause.Value == true then
  1539. Hu.WalkSpeed = 0
  1540. end
  1541. if Sitting == true then
  1542. local hitz2, enz2 = RAY(Torsoz.Position, Vector3.new(0,-2.2,0))
  1543. Hu.PlatformStand = true
  1544. if hitz2 == nil then
  1545. Stand()
  1546. end
  1547. end
  1548. if Diving == true then
  1549. Hu.PlatformStand = true
  1550. DivingBV.velocity = Vector3.new(DivingDir.x*(sprint+2),GravPoint,DivingDir.z*(sprint+2))
  1551. DivingBG.cframe = CFrame.new(Torsoz.Position, Torsoz.Position+DivingBV.velocity) * CFrame.Angles(-math.pi/2,0,0)
  1552.  
  1553. if GravPoint > -180 then
  1554. GravPoint = GravPoint - 2
  1555. end
  1556. end
  1557. if DivingCooldown > 0 then
  1558. DivingCooldown = DivingCooldown - 1
  1559. end
  1560. if HWallRunning == true then
  1561. if HWRGravDrop == false then
  1562. GravPoint = GravPoint - 0.4
  1563. else
  1564. GravPoint = GravPoint - 2
  1565. end
  1566. elseif HWallRunning == "Jumping" then
  1567. GravPoint = GravPoint - 1.7
  1568. end
  1569. ----------------------------- stamina ----------------------------------------
  1570. if Vector3.new(Torsoz.Velocity.x, 0, Torsoz.Velocity.z).magnitude > 18 and Action == "Standing" and Shift == true then
  1571. if stamina > 0 then
  1572. stamina = stamina - 0.5
  1573. if stamina < 0 then
  1574. Shift = false
  1575. stamina = 0
  1576. end
  1577. else
  1578. Shift = false
  1579. stamina = 0
  1580. end
  1581. if Action == "Standing" then
  1582. animspeed = 0.85
  1583. SetWeld(Joint1,1,1, NV,NV, Vector3.new(0.5,-1,0), Vector3.new(-animangle/4.85,0,0))
  1584. SetWeld(Joint2,1,1, NV,NV, Vector3.new(-0.5,-1,0), Vector3.new(animangle/4.85,0,0))
  1585. SetWeld(Joint3,1,1, NV,NV, Vector3.new(1.5,0.5,0), Vector3.new(animangle/3.5,0,0))
  1586. SetWeld(Joint4,1,1, NV,NV, Vector3.new(-1.5,0.5,0), Vector3.new(-animangle/3.5,0,0))
  1587. end
  1588. elseif Vector3.new(Torsoz.Velocity.x, 0, Torsoz.Velocity.z).magnitude > 12 and Action ~= "Sliding" then
  1589. if stamina < maxstamina then
  1590. stamina = stamina + 0.5
  1591. if stamina > maxstamina then
  1592. stamina = maxstamina
  1593. end
  1594. else
  1595. stamina = maxstamina
  1596. end
  1597. if Action == "Standing" then
  1598. animspeed = 0.65
  1599. SetWeld(Joint1,1,1, NV,NV, Vector3.new(0.5,-1,0), Vector3.new(-animangle/7,0,0))
  1600. SetWeld(Joint2,1,1, NV,NV, Vector3.new(-0.5,-1,0), Vector3.new(animangle/7,0,0))
  1601. SetWeld(Joint3,1,1, NV,NV, Vector3.new(1.5,0.5,0), Vector3.new(animangle/5,0,0))
  1602. SetWeld(Joint4,1,1, NV,NV, Vector3.new(-1.5,0.5,0), Vector3.new(-animangle/5,0,0))
  1603. end
  1604. elseif Vector3.new(Torsoz.Velocity.x, 0, Torsoz.Velocity.z).magnitude < 2 then
  1605. animspeed = 0.1
  1606. if Action == "Standing" then
  1607. SetWeld(Joint1,1,1, NV,NV, Vector3.new(0.5,-1,0), Vector3.new(-animangle/38,0,0))
  1608. SetWeld(Joint2,1,1, NV,NV, Vector3.new(-0.5,-1,0), Vector3.new(animangle/38,0,0))
  1609. SetWeld(Joint3,1,1, NV,NV, Vector3.new(1.5,0.5,0), Vector3.new(animangle/30,0,0))
  1610. SetWeld(Joint4,1,1, NV,NV, Vector3.new(-1.5,0.5,0), Vector3.new(-animangle/30,0,0))
  1611. end
  1612. if stamina < maxstamina then
  1613. if Sitting == false then
  1614. stamina = stamina + 0.65
  1615. else
  1616. stamina = stamina + 1.02
  1617. end
  1618. if stamina > maxstamina then
  1619. stamina = maxstamina
  1620. end
  1621. else
  1622. stamina = maxstamina
  1623. end
  1624. end
  1625.  
  1626. if hitz == nil then
  1627. if Torsoz.Velocity.y > 1 or (Torsoz.Velocity.y < -1 and Torsoz.Velocity.y > -90) then
  1628. if Action == "Standing" then
  1629. GravAction = "Rising"
  1630. animspeed = 0.1
  1631. SetWeld(Joint1,1,1, NV,NV, Vector3.new(0.5,-1,0), Vector3.new(-animangle/38,0,0))
  1632. SetWeld(Joint2,1,1, NV,NV, Vector3.new(-0.5,-1,0), Vector3.new(animangle/38,0,0))
  1633. SetWeld(Joint3,1,1, NV,NV, Vector3.new(1.5,0.5,0), Vector3.new((math.pi-0.2)+(animangle/30),0,0))
  1634. SetWeld(Joint4,1,1, NV,NV, Vector3.new(-1.5,0.5,0), Vector3.new((math.pi-0.2)+(-animangle/30),0,0))
  1635. if animatebg.Parent ~= nil then
  1636. animatebg.Parent = Torsoz
  1637. animatebg.maxTorque = Vector3.new(1/0,10000,1/0)
  1638. local lokvec = Torsoz.CFrame.lookVector*100
  1639. animatebg.cframe = CFrame.new(NV, Vector3.new(lokvec.x,0,lokvec.z))
  1640. animatebg.Parent = nil
  1641. end
  1642. end
  1643. end
  1644. end
  1645.  
  1646. if hitz == nil then
  1647. local hitz2, enz2 = RAY(Torsoz.Position, Vector3.new(0,-6,0))
  1648. if hitz2 == nil then
  1649. if Torsoz.Velocity.y < -90 then
  1650. if Action == "Standing" then
  1651. GravAction = "Falling"
  1652. animspeed = 1.1
  1653. animatebg.Parent = Torsoz
  1654. animatebg.maxTorque = Vector3.new(1/0,10000,1/0)
  1655. local lokvec = Torsoz.CFrame.lookVector*100
  1656. animatebg.cframe = CFrame.new(NV, Vector3.new(lokvec.x,0,lokvec.z)) * CFrame.Angles(-math.pi/11,animangle/70,0)
  1657. SetWeld(Joint1,1,1, NV,NV, Vector3.new(0.45,-0.8,0), Vector3.new((animangle/27)-0.3,0,0.18))
  1658. SetWeld(Joint2,1,1, NV,NV, Vector3.new(-0.45,-0.8,0), Vector3.new((-animangle/27)-0.3,0,-0.18))
  1659. SetWeld(Joint3,1,1, NV,NV, Vector3.new(1.4,0.5,0), Vector3.new((math.pi+0.2)+(animangle/26),0,0.18))
  1660. SetWeld(Joint4,1,1, NV,NV, Vector3.new(-1.4,0.5,0), Vector3.new((math.pi+0.2)+(-animangle/26),0,-0.18))
  1661. end
  1662. end
  1663. elseif hitz2.CanCollide == true then
  1664. if animatebg.Parent ~= nil then
  1665. animatebg.Parent = Torsoz
  1666. animatebg.maxTorque = Vector3.new(1/0,10000,1/0)
  1667. local lokvec = Torsoz.CFrame.lookVector*100
  1668. animatebg.cframe = CFrame.new(NV, Vector3.new(lokvec.x,0,lokvec.z))
  1669. animatebg.Parent = nil
  1670. end
  1671. end
  1672. end
  1673.  
  1674. if GravAction == "Idle" and animatebg.Parent ~= nil then
  1675. animatebg.Parent = nil
  1676. end
  1677.  
  1678. if math.abs(tickoffset - tick()) > 0.05 then
  1679. tickoffset = tick()
  1680. local flowcolor = HSV(hue, 0.7,1)
  1681. recyclecount = (recyclecount % #fadetab) + 1
  1682. if flow.Value > 25 then
  1683. local lapos = (LA.CFrame * CFrame.new(0,-1,0)).p
  1684. local rapos = (RA.CFrame * CFrame.new(0,-1,0)).p
  1685. local p = fadetab[recyclecount]
  1686. p[1].Parent = m
  1687. p[1].CFrame = CFrame.new((lapos+prevlapos)/2, lapos)
  1688. p[2].Scale = Vector3.new(0.5,0.5,(lapos-prevlapos).magnitude*2)
  1689. p[2].VertexColor = Vector3.new(flowcolor.r,flowcolor.g,flowcolor.b)
  1690. p[1].Transparency = math.abs((flow.Value/120) - 0.8)
  1691. p[1].Transparency = p[1].Transparency + (1/#fadetab)
  1692. local p = fadetab2[recyclecount]
  1693. p[1].Parent = m
  1694. p[1].CFrame = CFrame.new((rapos+prevrapos)/2, rapos)
  1695. p[2].Scale = Vector3.new(0.5,0.5,(rapos-prevrapos).magnitude*2)
  1696. p[2].VertexColor = Vector3.new(flowcolor.r,flowcolor.g,flowcolor.b)
  1697. p[1].Transparency = math.abs((flow.Value/120) - 0.8)
  1698. p[1].Transparency = p[1].Transparency + (1/#fadetab)
  1699. end
  1700.  
  1701. for i, v in pairs(fadetab) do
  1702. if v[1].Transparency < 0.9 then
  1703. v[1].Transparency = v[1].Transparency + (1/#fadetab)
  1704. fadetab2[i][1].Transparency = fadetab2[i][1].Transparency + (1/#fadetab)
  1705. elseif v[1].Transparency ~= 1 then
  1706. v[1].Transparency = 1
  1707. v[1].Position = Vector3.new(50000,0,0)
  1708. fadetab2[i][1].Transparency = 1
  1709. fadetab2[i][1].Position = Vector3.new(50000,0,0)
  1710. end
  1711. end
  1712.  
  1713. prevrapos = (RA.CFrame * CFrame.new(0,-1,0)).p
  1714. prevlapos = (LA.CFrame * CFrame.new(0,-1,0)).p
  1715. end
  1716.  
  1717. if flow.Value > 140 then
  1718. if char.Parent ~= nil then
  1719. char:remove()
  1720. end
  1721. end
  1722.  
  1723. if flowcooldown > 0 then
  1724. flowcooldown = flowcooldown - 1
  1725. end
  1726. if HWRCooldown > 0 then
  1727. HWRCooldown = HWRCooldown - 1
  1728. end
  1729. if VWRCooldown > 0 then
  1730. if hitz ~= nil and VWRCooldown > 0 then
  1731. VWRCooldown = VWRCooldown - 1
  1732. end
  1733. end
  1734. if SlideCooldown > 0 then
  1735. SlideCooldown = SlideCooldown - 1
  1736. end
  1737.  
  1738. if Action == "HWallRunning" or Action == "VWallRunning" then
  1739. flow.Value = flow.Value + 0.24
  1740. if flow.Value > 100 then
  1741. flow.Value = 100
  1742. end
  1743. flowcooldown = 40
  1744. elseif Action == "Diving" then
  1745. flowcooldown = 30
  1746. elseif Action == "Sliding" then
  1747. flowcooldown = 15
  1748. elseif Action == "Standing" or Action == "Sitting" then
  1749. if flow.Value > 0 and flowcooldown <= 0 then
  1750. flow.Value = flow.Value - 0.37
  1751. if flow.Value < 0 then
  1752. flow.Value = 0
  1753. end
  1754. end
  1755. end
  1756.  
  1757. cam.FieldOfView = FOV
  1758. prevanimbgcount = animatebgcount
  1759. sprint = defsprint + ((flow.Value/100)*2.4)
  1760. PrevGravAction = GravAction
  1761. Calculate()
  1762. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement