Advertisement
TheYoutuber_Pro

rge

Apr 13th, 2022
764
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --By Rufus14
  2. --owner = game:GetService("Players"):GetPlayerFromCharacter(script.Parent)
  3. character = owner.Character
  4. NLS([[
  5. --By Rufus14
  6. owner = game:GetService("Players").LocalPlayer
  7. local ownerhead = owner.Character:WaitForChild("Head")
  8. parkietremote = owner.Character:WaitForChild("parkietremote")
  9. mouse = owner:GetMouse()
  10. local part = Instance.new("Part", owner.Character.Head)
  11. part.Size = Vector3.new(0.1,0.1,0.1)
  12. part.Transparency = 1
  13. part.CanCollide = false
  14. part.Name = "camera"
  15. part:BreakJoints()
  16. local weld = Instance.new("Weld", part)
  17. weld.Part0 = owner.Character.Head
  18. weld.Part1 = part
  19. weld.C0 = CFrame.new(0,0,-1)
  20. cananimate = true
  21. walkpressed = 0
  22. humanoid = owner.Character:findFirstChildOfClass("Humanoid")
  23. rootpart = owner.Character.HumanoidRootPart
  24. runservice = game:GetService("RunService")
  25. --
  26. canmovecamera = true
  27. wrunning = false
  28. wrunningl = false
  29. local Change = 1
  30. owner.Character.ChildAdded:connect(function(whatadded)
  31.     if whatadded.Name == "slide" then
  32.         canmovecamera = false
  33.         for i = 1,60 do
  34.             workspace.CurrentCamera.CFrame = workspace.CurrentCamera.CFrame * CFrame.fromEulerAnglesXYZ(math.rad(math.sin(tick()*45)/(i/6)),0,0)
  35.             runservice.RenderStepped:wait()
  36.         end
  37.     elseif whatadded.Name == "vwallrun" then
  38.         canmovecamera = false
  39.         for i = 1,20 do
  40.             workspace.CurrentCamera.CFrame = workspace.CurrentCamera.CFrame * CFrame.fromEulerAnglesXYZ(math.rad(2),0,0)
  41.             runservice.RenderStepped:wait()
  42.         end
  43.     elseif whatadded.Name == "hwallrunright" then
  44.         wrunning = true
  45.         canmovecamera = false
  46.         coroutine.wrap(function()
  47.             while wrunning and runservice.RenderStepped:wait() do
  48.                 workspace.CurrentCamera.CFrame = workspace.CurrentCamera.CFrame:lerp(workspace.CurrentCamera.CFrame * CFrame.fromEulerAnglesXYZ(0,0,math.rad(30)),0.2)
  49.             end
  50.         end)()
  51.     elseif whatadded.Name == "hwallrunleft" then
  52.         wrunningl = true
  53.         canmovecamera = false
  54.         coroutine.wrap(function()
  55.             while wrunningl and runservice.RenderStepped:wait() do
  56.                 workspace.CurrentCamera.CFrame = workspace.CurrentCamera.CFrame:lerp(workspace.CurrentCamera.CFrame * CFrame.fromEulerAnglesXYZ(0,0,math.rad(-30)),0.2)
  57.             end
  58.         end)()
  59.     elseif whatadded.Name == "FALLING" then
  60.         local screengui = Instance.new("ScreenGui", owner:findFirstChildOfClass("PlayerGui"))
  61.         screengui.ResetOnSpawn = true
  62.         screengui.Name = "ohgodohfuck"
  63.         local vel = Instance.new("BodyVelocity", rootpart)
  64.         vel.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
  65.         vel.Velocity = Vector3.new(0,-135,0)
  66.         local frame = Instance.new("ImageLabel", screengui)
  67.         frame.BackgroundTransparency = 1
  68.         frame.ImageTransparency = 1
  69.         frame.ImageColor3 = Color3.fromRGB(0,0,0)
  70.         frame.Image = "http://www.roblox.com/asset/?id=22606915"
  71.         frame.Size = UDim2.new(1,0,1,0)
  72.         for i = 1,20 do
  73.             frame.ImageTransparency = frame.ImageTransparency - 0.05
  74.             runservice.Stepped:wait()
  75.         end
  76.         coroutine.wrap(function()
  77.             while rootpart.Velocity.y < -10 do runservice.RenderStepped:wait() end
  78.             screengui:destroy()
  79.             vel:destroy()
  80.             owner.Character:BreakJoints()
  81.         end)()
  82.     end
  83. end)
  84. owner.Character.ChildRemoved:connect(function(whatremoved)
  85.     if whatremoved.Name == "slide" then
  86.         canmovecamera = true
  87.     elseif whatremoved.Name == "vwallrun" then
  88.         for i = 1,20 do
  89.             workspace.CurrentCamera.CFrame = workspace.CurrentCamera.CFrame * CFrame.fromEulerAnglesXYZ(math.rad(-2),0,0)
  90.             runservice.RenderStepped:wait()
  91.         end
  92.         canmovecamera = true
  93.     elseif whatremoved.Name == "hwallrunright" then
  94.         canmovecamera = true
  95.         wrunning = false
  96.     elseif whatremoved.Name == "hwallrunleft" then
  97.         canmovecamera = true
  98.         wrunningl = false
  99.     end
  100. end)
  101. --
  102. mouse.KeyDown:connect(function(key)
  103.     key = key:lower()
  104.     if key == "w" or key == "a" or key == "s" or key == "d" then
  105.         walkpressed = walkpressed + 1
  106.     end
  107.     if key == "r" then
  108.         parkietremote:FireServer(rootpart.CFrame, "triggerroll")
  109.     end
  110.     if key == "e" then
  111.         parkietremote:FireServer(rootpart.CFrame, "slide")
  112.     end
  113. end)
  114. mouse.KeyUp:connect(function(key)
  115.     key = key:lower()
  116.     if key == "w" or key == "a" or key == "s" or key == "d" then
  117.         walkpressed = walkpressed - 1
  118.     end
  119.     if key == "r" then
  120.         parkietremote:FireServer(rootpart.CFrame, "triggerroll")
  121.     end
  122. end)
  123. --
  124. humanoid.Died:connect(function()
  125.     local correction =  Instance.new("ColorCorrectionEffect", workspace.CurrentCamera)
  126.     local deathsound = Instance.new("Sound", owner:findFirstChildOfClass("PlayerGui"))
  127.     deathsound.SoundId = "rbxassetid://1038809455"
  128.     deathsound.Volume = 10
  129.     deathsound:Play()
  130.     game.Debris:AddItem(deathsound, deathsound.TimeLength)
  131.     game.Debris:AddItem(correction, game:GetService("Players").RespawnTime)
  132.     for i = 1,5 do
  133.         correction.Brightness = correction.Brightness + 0.2
  134.         runservice.RenderStepped:wait()
  135.     end
  136.     while runservice.RenderStepped:wait() do
  137.         workspace.CurrentCamera.CFrame = CFrame.new(0,9999999,0)
  138.     end
  139. end)
  140. --
  141. while game:GetService("RunService").RenderStepped:wait() do
  142.     ----
  143.     local vwallray = Ray.new(rootpart.CFrame.p, rootpart.CFrame.lookVector * 2)
  144.     local vwallhit, vwallpos, vwallsurface = workspace:FindPartOnRayWithIgnoreList(vwallray, {owner.Character})
  145.     if vwallhit and humanoid.Jump and rootpart.Velocity.y > -30 then
  146.         if not vwallhit.Parent:findFirstChildOfClass("Humanoid") then
  147.             parkietremote:FireServer(rootpart.CFrame, "vwallrun", vwallhit, vwallpos, vwallsurface)
  148.         end
  149.     end
  150.     ---
  151.     local hwallray = Ray.new(rootpart.CFrame.p, (rootpart.CFrame.rightVector * 3.5) + (rootpart.CFrame.lookVector * -0.3))
  152.     local hwallhit, hwallpos, surface = workspace:FindPartOnRayWithIgnoreList(hwallray, {owner.Character})
  153.     if hwallhit and humanoid.Jump and rootpart.Velocity.y > -20 then
  154.         if not hwallhit.Parent:findFirstChildOfClass("Humanoid") then
  155.             parkietremote:FireServer(rootpart.CFrame, "hwallrunright", hwallhit, hwallpos, surface)
  156.         end
  157.     end
  158.     --
  159.     local hwallrayl = Ray.new(rootpart.CFrame.p, rootpart.CFrame.rightVector * -3.5 + (rootpart.CFrame.lookVector * -0.3))
  160.     local hwallhitl, hwallposl, surfacel = workspace:FindPartOnRayWithIgnoreList(hwallrayl, {owner.Character})
  161.     if hwallhitl and humanoid.Jump and rootpart.Velocity.y > -20 then
  162.         if not hwallhitl.Parent:findFirstChildOfClass("Humanoid") then
  163.             parkietremote:FireServer(rootpart.CFrame, "hwallrunleft", hwallhitl, hwallposl, surfacel)
  164.         end
  165.     end
  166.     ---
  167.     local poleray = Ray.new(ownerhead.CFrame.p, ownerhead.CFrame.lookVector * 3.5)
  168.     local polerayhit, poleraypos, poleraysurface = workspace:FindPartOnRayWithIgnoreList(poleray, {owner.Character})
  169.     if polerayhit and rootpart.Velocity.y > -60 then
  170.         if not polerayhit.Parent:findFirstChildOfClass("Humanoid") then
  171.             parkietremote:FireServer(rootpart.CFrame, "polegrab", polerayhit, poleraypos, poleraysurface)
  172.         end
  173.     end
  174.     --
  175.     local poleray = Ray.new(ownerhead.CFrame.p, (ownerhead.CFrame.lookVector * 3.5) + (ownerhead.CFrame.upVector * -0.5))
  176.     local polerayhit, poleraypos, poleraysurface = workspace:FindPartOnRayWithIgnoreList(poleray, {owner.Character})
  177.     if polerayhit and rootpart.Velocity.y > -60 then
  178.         if not polerayhit.Parent:findFirstChildOfClass("Humanoid") then
  179.             parkietremote:FireServer(rootpart.CFrame, "polegrab", polerayhit, poleraypos, poleraysurface)
  180.         end
  181.     end
  182.     --
  183.     local poleray = Ray.new(ownerhead.CFrame.p, (ownerhead.CFrame.lookVector * 3.5) + (ownerhead.CFrame.upVector * 0.5))
  184.     local polerayhit, poleraypos, poleraysurface = workspace:FindPartOnRayWithIgnoreList(poleray, {owner.Character})
  185.     if polerayhit and rootpart.Velocity.y > -60 then
  186.         if not polerayhit.Parent:findFirstChildOfClass("Humanoid") then
  187.             parkietremote:FireServer(rootpart.CFrame, "polegrab", polerayhit, poleraypos, poleraysurface)
  188.         end
  189.     end
  190.     ----
  191.     if walkpressed > 0 and humanoid.WalkSpeed < 23 and not owner.Character:findFirstChild("ouchfell") then
  192.         humanoid.WalkSpeed = humanoid.WalkSpeed + 1.2
  193.     elseif walkpressed == 0 and humanoid.WalkSpeed > 0 and not owner.Character:findFirstChild("ouchfell") then
  194.         humanoid.WalkSpeed = humanoid.WalkSpeed - 1.2
  195.     end
  196.     if (workspace.CurrentCamera.CFrame.p - part.Position).magnitude <= 1.7 then
  197.         if canmovecamera and not owner.Character:findFirstChild("ouchfell") and not owner.Character:findFirstChild("rollin") and not owner.Character:findFirstChild("pole") then
  198.             game:GetService("Players").LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(game:GetService("Players").LocalPlayer.Character.HumanoidRootPart.Position,Vector3.new(mouse.Hit.p.x,game:GetService("Players").LocalPlayer.Character.HumanoidRootPart.Position.y,mouse.Hit.p.z))
  199.         end
  200.         if owner.Character:findFirstChild("ouchfell") then
  201.             workspace.CurrentCamera.CFrame = owner.Character.Head.CFrame * CFrame.new(0,0,-0.4)
  202.         end
  203.         if owner.Character:findFirstChild("rollin") then
  204.             workspace.CurrentCamera.CFrame = owner.Character.Head.CFrame * CFrame.new(0,0,-0.2)
  205.         end
  206.         if owner.Character:findFirstChild("FALLING") then
  207.             canmovecamera = false
  208.             workspace.CurrentCamera.CFrame = owner.Character.Head.CFrame * CFrame.new(0,0,-0.4) * CFrame.fromEulerAnglesXYZ(math.rad(math.sin(tick()*45))*6,0,0)
  209.         end
  210.         workspace.CurrentCamera.FieldOfView = 120
  211.         for i,v in pairs(owner.Character:GetChildren()) do
  212.             if v.ClassName == "Part" or v.ClassName == "MeshPart" and v.Name ~= "Head" then
  213.                 v.LocalTransparencyModifier = 0
  214.             end
  215.             if v.ClassName == "Accessory" then
  216.                 v.Handle.Transparency = 1
  217.             end
  218.         end
  219.         if owner.Character.Head:findFirstChildOfClass("Decal") then
  220.             owner.Character.Head:findFirstChildOfClass("Decal").Transparency = 1
  221.         end
  222.         owner.Character.Head.Transparency = 1
  223.         workspace.CurrentCamera.CameraSubject = part
  224.     else
  225.         for i,v in pairs(owner.Character:GetChildren()) do
  226.             if v.ClassName == "Accessory" then
  227.                 v.Handle.Transparency = 0
  228.             end
  229.         end
  230.         workspace.CurrentCamera.FieldOfView = 70
  231.         owner.Character.Head.Transparency = 0
  232.         if owner.Character.Head:findFirstChildOfClass("Decal") then
  233.             owner.Character.Head:findFirstChildOfClass("Decal").Transparency = 0
  234.         end
  235.         workspace.CurrentCamera.CameraSubject = owner.Character
  236.     end
  237. end
  238. ]], character)
  239. local ownerhead = character:WaitForChild("Head")
  240. mouse = owner:GetMouse()
  241. anim = "idle"
  242. cananimate = true
  243. humanoid = character:findFirstChildOfClass("Humanoid")
  244. rootpart = character.HumanoidRootPart
  245. runservice = game:GetService("RunService")
  246. local rightarm = Instance.new("Weld", owner.Character.Torso)
  247. rightarm.Part0 = owner.Character.Torso
  248. rightarm.Part1 = owner.Character["Right Arm"]
  249. rightarm.C0 = CFrame.new(1.5,0,0)
  250. rightarm.Name = "RightArmWeld"
  251. local rightleg = Instance.new("Weld", owner.Character.Torso)
  252. rightleg.Part0 = owner.Character.Torso
  253. rightleg.Part1 = owner.Character["Right Leg"]
  254. rightleg.C0 = CFrame.new(0.5,-2,0)
  255. rightleg.Name = "RightLegWeld"
  256. local leftarm = Instance.new("Weld", owner.Character.Torso)
  257. leftarm.Part0 = owner.Character.Torso
  258. leftarm.Part1 = owner.Character["Left Arm"]
  259. leftarm.C0 = CFrame.new(-1.5,0,0)
  260. leftarm.Name = "LeftArmWeld"
  261. local leftleg = Instance.new("Weld", owner.Character.Torso)
  262. leftleg.Part0 = owner.Character.Torso
  263. leftleg.Part1 = owner.Character["Left Leg"]
  264. leftleg.C0 = CFrame.new(-0.5,-2,0)
  265. leftleg.Name = "LeftLegWeld"
  266. local head = Instance.new("Weld", owner.Character.Torso)
  267. head.Part0 = owner.Character.Torso
  268. head.Part1 = owner.Character.Head
  269. head.C0 = CFrame.new(0,1.5,0)
  270. head.Name = "HeadWeld"
  271. local humanoidrootpart = Instance.new("Weld", owner.Character.HumanoidRootPart)
  272. humanoidrootpart.Part0 = owner.Character.HumanoidRootPart
  273. humanoidrootpart.Part1 = owner.Character.Torso
  274. humanoidrootpart.Name = "HumanoidRootPartWeld"
  275. local music = Instance.new("Sound", owner.Character.Head)
  276. music.Looped = true
  277. local musicrandom = math.random(1,5)
  278. if musicrandom == 1 then
  279.     music.SoundId = "rbxassetid://4502246491"
  280.     music.Volume = 2
  281. elseif musicrandom == 2 then
  282.     music.SoundId = "rbxassetid://469593664"
  283.     music.Volume = 2
  284. elseif musicrandom == 3 then
  285.     music.SoundId = "rbxassetid://477207390"
  286.     music.Volume = 2
  287. elseif musicrandom == 4 then
  288.     music.SoundId = "rbxassetid://147811295"
  289.     music.Volume = 2
  290. elseif musicrandom == 5 then
  291.     music.SoundId = "rbxassetid://4519453403"
  292.     music.Volume = 1
  293. end
  294. music:Play()
  295. local runsound = Instance.new("Sound", owner.Character.Head)
  296. runsound.SoundId = "rbxassetid://3084278209"
  297. runsound.Looped = true
  298. runsound:Play()
  299. runsound.PlaybackSpeed = 1.4
  300. local bodyhitsound = Instance.new("Sound", owner.Character.Head)
  301. bodyhitsound.SoundId = "rbxassetid://261338552"
  302. bodyhitsound.Volume = 0.5
  303. local fallingsound = Instance.new("Sound", owner.Character.Head)
  304. fallingsound.SoundId = "rbxassetid://866649671"
  305. fallingsound.Volume = 0
  306. fallingsound.Looped = true
  307. fallingsound:Play()
  308. local parkietremote = Instance.new("RemoteEvent", character)
  309. parkietremote.Name = "parkietremote"
  310. cando = true
  311. roll = false
  312. fallingtodeath = false
  313. grabbedpole = false
  314. parkietremote.OnServerEvent:connect(function(plr, rootpos, what, rayehit, rayepos, rayesurface)
  315.     if plr == owner and not fallingtodeath and cando then
  316.         character.HumanoidRootPart.CanCollide = false
  317.         if what == "slide" then
  318.             cananimate = false
  319.             cando = false
  320.             local action = Instance.new("BoolValue", character)
  321.             action.Name = "slide"
  322.             local velo = Instance.new("BodyVelocity", rootpart)
  323.             velo.MaxForce = Vector3.new(math.huge,0,math.huge)
  324.             velo.Velocity = rootpart.CFrame.lookVector*22
  325.             runsound.Volume = 0
  326.             for i = 0,1 , 0.04 do
  327.                 rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.70441437, 0.561628342, 9.53674316e-07, 0.642787516, -0.766044259, 1.49011612e-08, 0.766044319, 0.642787576, 0, 1.17273338e-08, -1.27691155e-08, 0.99999994),i)
  328.                 leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.54449558, -0.470175743, -0.242582321, 0.983905256, -0.168530971, 0.0593911819, 0.178687513, 0.926305115, -0.331706733, 0.000888578361, 0.336980522, 0.941511095),i)
  329.                 leftleg.C0 = leftleg.C0:lerp(CFrame.new(-0.500000954, -1.64282608, -0.0428800583, 0.999999821, -1.0857935e-08, 1.23050938e-08, 0, 0.939692557, 0.342019677, 1.49011612e-08, -0.342019677, 0.939692557),i)
  330.                 rightleg.C0 = rightleg.C0:lerp(CFrame.new(0.5, -2, 0, 0.999999821, 0, 1.49011612e-08, 0, 0.99999994, 0, 1.49011612e-08, 0, 0.99999994),i)
  331.                 humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.new(-0.416755676, -2.3635385, 0, 0.98480767, 0, -0.173648164, -0.173648179, -4.37113883e-08, -0.98480773, -7.59040297e-09, 1, -4.30473115e-08),i)
  332.                 head.C0 = head.C0:lerp(CFrame.new(-9.53674316e-07, 1.15137196, -0.85847187, 0.999999821, -4.60215439e-08, -1.65799918e-07, 1.71363354e-07, 0.173648059, 0.98480767, 2.98023153e-08, -0.984807611, 0.173648059),i)
  333.                 runservice.Stepped:wait()
  334.             end
  335.             local funnysine = 0
  336.             for i = 1,60 do
  337.                 local ray = Ray.new(character.Torso.Position, character.Torso.CFrame.upVector*-5.5)
  338.                 local hit, positionn = workspace:FindPartOnRayWithIgnoreList(ray, {character})
  339.                 if hit then
  340.                     break
  341.                 end
  342.                 velo.Velocity = velo.Velocity/1.01
  343.                 runservice.Stepped:wait()
  344.             end
  345.             velo:destroy()
  346.             action:destroy()
  347.             cananimate = true
  348.             cando = true
  349.         elseif what == "vwallrun" then
  350.             local polereally = false
  351.             if rayehit.Size.y <= 1 then
  352.                 if rayehit.Size.z > rayehit.Size.x and rayehit.Size.x <= 1 then
  353.                     --print("pole z > x BAD")
  354.                     polereally = true
  355.                 elseif rayehit.Size.x > rayehit.Size.z and rayehit.Size.z <= 1 then
  356.                     --print("pole x > z BAD")
  357.                     polereally = true
  358.                 end
  359.             end
  360.             if not polereally then
  361.                 cananimate = false
  362.                 cando = false
  363.                 humanoid.AutoRotate = false
  364.                 local action = Instance.new("BoolValue", character)
  365.                 action.Name = "vwallrun"
  366.                 character.HumanoidRootPart.CFrame = rootpos
  367.                 local goupvel = Instance.new("BodyVelocity", rootpart)
  368.                 goupvel.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
  369.                 goupvel.Velocity = Vector3.new(0,20,0)
  370.                 local gotin = false
  371.                 for i = 1,70 do
  372.                     local headray = Ray.new(rootpart.CFrame.p, rootpart.CFrame.upVector * 3.5)
  373.                     local headrayhit, headraypos = workspace:FindPartOnRayWithIgnoreList(headray, {owner.Character})
  374.                     if headrayhit then
  375.                         gotin = false
  376.                         break
  377.                     end
  378.                     local headraywall = Ray.new(ownerhead.CFrame.p, ownerhead.CFrame.lookVector * 3)
  379.                     local headraywallhit, headraywallpos = workspace:FindPartOnRayWithIgnoreList(headraywall, {owner.Character})
  380.                     if not headraywallhit then
  381.                         gotin = true
  382.                         break
  383.                     end
  384.                     goupvel.Velocity = goupvel.Velocity/1.025
  385.                     humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.new(),0.3)
  386.                     head.C0 = head.C0:lerp(CFrame.new(0,1,0) * CFrame.Angles(math.rad(30),0,0) * CFrame.new(0,0.5,0),0.3)
  387.                     leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.5,0.5,0) * CFrame.Angles(math.pi/2+math.sin(i/5),0,math.cos(i/5)/3) * CFrame.new(0,-0.5,0),0.3)
  388.                     rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.5,0.5,0) * CFrame.Angles(math.pi/2-math.sin(i/5),0,-math.cos(i/5)/3) * CFrame.new(0,-0.5,0),0.3)
  389.                     leftleg.C0 = leftleg.C0:lerp(CFrame.new(-0.5,-1-math.cos(i/5)/2,0) * CFrame.Angles(-math.sin(i/5),0,0) * CFrame.new(0,-1,0),0.3)
  390.                     rightleg.C0 = rightleg.C0:lerp(CFrame.new(0.5,-1+math.cos(i/5)/2,0) * CFrame.Angles(math.sin(i/5),0,0) * CFrame.new(0,-1,0),0.3)
  391.                     runservice.Stepped:wait()
  392.                 end
  393.                 action:destroy()
  394.                 if gotin then
  395.                     rootpart.Anchored = true
  396.                     for i = 1,30 do
  397.                         rootpart.CFrame = rootpart.CFrame * CFrame.new(0,0.15,-math.sin(i/14)/9)
  398.                         humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.fromEulerAnglesXYZ(math.rad(-20),0,0),0.3)
  399.                         head.C0 = head.C0:lerp(CFrame.new(0,1,0) * CFrame.Angles(math.rad(20),0,0) * CFrame.new(0,0.5,0),0.3)
  400.                         leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.5,0.5,0) * CFrame.Angles(math.rad(60)+math.cos(i/7)*1.5,0,0) * CFrame.new(0,-0.5,0),0.3)
  401.                         rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.5,0.5,0) * CFrame.Angles(math.rad(60)+math.cos(i/7)*1.5,0,0) * CFrame.new(0,-0.5,0),0.3)
  402.                         leftleg.C0 = leftleg.C0:lerp(CFrame.new(-0.5,-1,0) * CFrame.Angles(0,0,0) * CFrame.new(0,-1,0),0.3)
  403.                         rightleg.C0 = rightleg.C0:lerp(CFrame.new(0.5,-0.25+math.cos(i/7)/1.2,-0.5) * CFrame.Angles(0,0,0) * CFrame.new(0,-1,0),0.3)
  404.                         runservice.Stepped:wait()
  405.                     end
  406.                 end
  407.                 humanoid.AutoRotate = true
  408.                 rootpart.Anchored = false
  409.                 goupvel:destroy()
  410.                 cananimate = true
  411.                 cando = true
  412.             end
  413.         elseif what == "hwallrunright" and anim == "jumprun" or anim == "fallrun" and rayepos ~= nil then
  414.             cananimate = false
  415.             cando = false
  416.             humanoid.AutoRotate = false
  417.             local action = Instance.new("BoolValue", character)
  418.             action.Name = "hwallrunright"
  419.             rootpart.CFrame = CFrame.new(rayepos, rayepos + rayesurface) * CFrame.fromEulerAnglesXYZ(0,-math.pi/2,0)
  420.             rootpart.CFrame = rootpart.CFrame * CFrame.new(-1.8,0,0)
  421.             if rootpart:findFirstChild("wallrunvel") then
  422.                 rootpart:findFirstChild("wallrunvel"):destroy()
  423.             end
  424.             local goupvel = Instance.new("BodyVelocity", rootpart)
  425.             goupvel.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
  426.             goupvel.Velocity = rootpart.CFrame.lookVector * 20
  427.             goupvel.Name = "wallrunvel"
  428.             runsound.PlaybackSpeed = 1.7
  429.             runsound.Volume = 1.5
  430.             local jumped = false
  431.             local shouldcontinue = true
  432.             local candothat = true
  433.             for i = 1,20 do
  434.                 local rootrightray = Ray.new(rootpart.CFrame.p, rootpart.CFrame.rightVector * 2.5)
  435.                 local wallrighthit, rootrightraypos = workspace:FindPartOnRayWithIgnoreList(rootrightray, {owner.Character})
  436.                 if not wallrighthit then
  437.                     shouldcontinue = false
  438.                     break
  439.                 end
  440.                 local rootfrontray = Ray.new(rootpart.CFrame.p, rootpart.CFrame.lookVector * 4)
  441.                 local rootfrontrayhit, rootfrontraypos = workspace:FindPartOnRayWithIgnoreList(rootfrontray, {owner.Character})
  442.                 if rootfrontrayhit then
  443.                     shouldcontinue = false
  444.                     break
  445.                 end
  446.                 humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.fromEulerAnglesXYZ(0,0,math.rad(30)),0.3)
  447.                 head.C0 = head.C0:lerp(CFrame.new(0,1,0) * CFrame.Angles(0,0,0) * CFrame.new(0,0.5,0),0.3)
  448.                 leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.5,0.5,0) * CFrame.Angles(-math.sin(tick()*14)*1.3,0,math.rad(-15)) * CFrame.new(0,-0.5,0),0.3)
  449.                 rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.5,0.5,0) * CFrame.Angles(0,0,math.pi/1.5) * CFrame.new(0,-0.5,0),0.3)
  450.                 leftleg.C0 = leftleg.C0:lerp(CFrame.new(-0.5,-1+math.cos(tick()*14)/2,-math.cos(tick()*14)/2) * CFrame.fromEulerAnglesXYZ(math.sin(tick()*14),0,0) * CFrame.new(0,-1,0),0.2)
  451.                 rightleg.C0 = rightleg.C0:lerp(CFrame.new(0.5,-1-math.cos(tick()*14)/2,math.cos(tick()*14)/2) * CFrame.fromEulerAnglesXYZ(-math.sin(tick()*14),0,0) * CFrame.new(0,-1,0),0.2)
  452.                 runservice.Stepped:wait()
  453.             end
  454.             for i = 1,60 do
  455.                 if candothat then
  456.                     if not shouldcontinue then
  457.                         break
  458.                     end
  459.                     if humanoid.Jump then
  460.                         jumped = true
  461.                         break
  462.                     end
  463.                     local rootrightray = Ray.new(rootpart.CFrame.p, rootpart.CFrame.rightVector * 2.5)
  464.                     local wallrighthit, rootrightraypos = workspace:FindPartOnRayWithIgnoreList(rootrightray, {owner.Character})
  465.                     if not wallrighthit then
  466.                         break
  467.                     end
  468.                     local rootfrontray = Ray.new(rootpart.CFrame.p, rootpart.CFrame.lookVector * 4)
  469.                     local rootfrontrayhit, rootfrontraypos = workspace:FindPartOnRayWithIgnoreList(rootfrontray, {owner.Character})
  470.                     if rootfrontrayhit then
  471.                         break
  472.                     end
  473.                     humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.fromEulerAnglesXYZ(0,0,math.rad(30)),0.3)
  474.                     head.C0 = head.C0:lerp(CFrame.new(0,1,0) * CFrame.Angles(0,0,0) * CFrame.new(0,0.5,0),0.3)
  475.                     leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.5,0.5,0) * CFrame.Angles(-math.sin(tick()*14)*1.3,0,math.rad(-15)) * CFrame.new(0,-0.5,0),0.3)
  476.                     rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.5,0.5,0) * CFrame.Angles(0,0,math.pi/1.5) * CFrame.new(0,-0.5,0),0.3)
  477.                     leftleg.C0 = leftleg.C0:lerp(CFrame.new(-0.5,-1+math.cos(tick()*14)/2,-math.cos(tick()*14)/2) * CFrame.fromEulerAnglesXYZ(math.sin(tick()*14),0,0) * CFrame.new(0,-1,0),0.2)
  478.                     rightleg.C0 = rightleg.C0:lerp(CFrame.new(0.5,-1-math.cos(tick()*14)/2,math.cos(tick()*14)/2) * CFrame.fromEulerAnglesXYZ(-math.sin(tick()*14),0,0) * CFrame.new(0,-1,0),0.2)
  479.                     runservice.Stepped:wait()
  480.                 end
  481.             end
  482.             action:destroy()
  483.             candothat = false
  484.             if jumped then
  485.                 goupvel.Velocity = goupvel.Velocity + (rootpart.CFrame.rightVector*-20) + Vector3.new(0,5,0)
  486.                 game.Debris:AddItem(goupvel, 0.25)
  487.                 for i = 0,0.6 ,0.03 do
  488.                     if not cananimate then
  489.                         head.C0 = head.C0:lerp(CFrame.new(0,1,0) * CFrame.fromEulerAnglesXYZ(math.rad(10),math.rad(-5),0) * CFrame.new(0,0.5,0),i)
  490.                         leftleg.C0 = leftleg.C0:lerp(CFrame.new(-0.5,-1,0) * CFrame.fromEulerAnglesXYZ(-math.rad(40),0,math.rad(-2)) * CFrame.new(0,-1,0),i)
  491.                         rightleg.C0 = rightleg.C0:lerp(CFrame.new(0.5,-1,0) * CFrame.fromEulerAnglesXYZ(math.rad(40),0,math.rad(2)) * CFrame.new(0,-1,0),i)
  492.                         humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.fromEulerAnglesXYZ(math.rad(-10),0,math.rad(10)),i)
  493.                         leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.5,0.5,-0.5) * CFrame.fromEulerAnglesXYZ(math.pi/2+math.rad(20),0,0) * CFrame.new(0,-0.5,0),i)
  494.                         rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.5,0.5,0) * CFrame.fromEulerAnglesXYZ(-math.pi/3,0,0) * CFrame.new(0,-0.5,0),i)
  495.                         runservice.Stepped:wait()
  496.                     end
  497.                 end
  498.             else
  499.                 goupvel:destroy()
  500.             end
  501.             humanoid.AutoRotate = true
  502.             cananimate = true
  503.             cando = true
  504.         elseif what == "hwallrunleft" and anim == "jumprun" or anim == "fallrun" and rayepos ~= nil then
  505.             cananimate = false
  506.             cando = false
  507.             humanoid.AutoRotate = false
  508.             local action = Instance.new("BoolValue", character)
  509.             action.Name = "hwallrunleft"
  510.             rootpart.CFrame = CFrame.new(rayepos, rayepos + rayesurface) * CFrame.fromEulerAnglesXYZ(0,math.pi/2,0)
  511.             rootpart.CFrame = rootpart.CFrame * CFrame.new(1.8,0,0)
  512.             if rootpart:findFirstChild("wallrunvel") then
  513.                 rootpart:findFirstChild("wallrunvel"):destroy()
  514.             end
  515.             local goupvel = Instance.new("BodyVelocity", rootpart)
  516.             goupvel.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
  517.             goupvel.Velocity = rootpart.CFrame.lookVector * 20
  518.             goupvel.Name = "wallrunvel"
  519.             runsound.PlaybackSpeed = 1.7
  520.             runsound.Volume = 1.5
  521.             local jumped = false
  522.             local shouldcontinue = true
  523.             local candothat = true
  524.             for i = 1,20 do
  525.                 local rootrightray = Ray.new(rootpart.CFrame.p, rootpart.CFrame.rightVector * -2.5)
  526.                 local wallrighthit, rootrightraypos = workspace:FindPartOnRayWithIgnoreList(rootrightray, {owner.Character})
  527.                 if not wallrighthit then
  528.                     shouldcontinue = false
  529.                     break
  530.                 end
  531.                 local rootfrontray = Ray.new(rootpart.CFrame.p, rootpart.CFrame.lookVector * 4)
  532.                 local rootfrontrayhit, rootfrontraypos = workspace:FindPartOnRayWithIgnoreList(rootfrontray, {owner.Character})
  533.                 if rootfrontrayhit then
  534.                     shouldcontinue = false
  535.                     break
  536.                 end
  537.                 humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.fromEulerAnglesXYZ(0,0,math.rad(-30)),0.3)
  538.                 head.C0 = head.C0:lerp(CFrame.new(0,1,0) * CFrame.Angles(0,0,0) * CFrame.new(0,0.5,0),0.3)
  539.                 leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.5,0.5,0) * CFrame.Angles(0,0,-math.pi/1.5) * CFrame.new(0,-0.5,0),0.3)
  540.                 rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.5,0.5,0) * CFrame.Angles(-math.sin(tick()*14)*1.3,0,math.rad(15)) * CFrame.new(0,-0.5,0),0.3)
  541.                 leftleg.C0 = leftleg.C0:lerp(CFrame.new(-0.5,-1+math.cos(tick()*14)/2,-math.cos(tick()*14)/2) * CFrame.fromEulerAnglesXYZ(math.sin(tick()*14),0,0) * CFrame.new(0,-1,0),0.2)
  542.                 rightleg.C0 = rightleg.C0:lerp(CFrame.new(0.5,-1-math.cos(tick()*14)/2,math.cos(tick()*14)/2) * CFrame.fromEulerAnglesXYZ(-math.sin(tick()*14),0,0) * CFrame.new(0,-1,0),0.2)
  543.                 runservice.Stepped:wait()
  544.             end
  545.             for i = 1,60 do
  546.                 if candothat then
  547.                     if not shouldcontinue then
  548.                         break
  549.                     end
  550.                     if humanoid.Jump then
  551.                         jumped = true
  552.                         break
  553.                     end
  554.                     local rootrightray = Ray.new(rootpart.CFrame.p, rootpart.CFrame.rightVector * -2.5)
  555.                     local wallrighthit, rootrightraypos = workspace:FindPartOnRayWithIgnoreList(rootrightray, {owner.Character})
  556.                     if not wallrighthit then
  557.                         break
  558.                     end
  559.                     local rootfrontray = Ray.new(rootpart.CFrame.p, rootpart.CFrame.lookVector * 4)
  560.                     local rootfrontrayhit, rootfrontraypos = workspace:FindPartOnRayWithIgnoreList(rootfrontray, {owner.Character})
  561.                     if rootfrontrayhit then
  562.                         break
  563.                     end
  564.                     humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.fromEulerAnglesXYZ(0,0,math.rad(-30)),0.3)
  565.                     head.C0 = head.C0:lerp(CFrame.new(0,1,0) * CFrame.Angles(0,0,0) * CFrame.new(0,0.5,0),0.3)
  566.                     leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.5,0.5,0) * CFrame.Angles(0,0,-math.pi/1.5) * CFrame.new(0,-0.5,0),0.3)
  567.                     rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.5,0.5,0) * CFrame.Angles(-math.sin(tick()*14)*1.3,0,math.rad(15)) * CFrame.new(0,-0.5,0),0.3)
  568.                     leftleg.C0 = leftleg.C0:lerp(CFrame.new(-0.5,-1+math.cos(tick()*14)/2,-math.cos(tick()*14)/2) * CFrame.fromEulerAnglesXYZ(math.sin(tick()*14),0,0) * CFrame.new(0,-1,0),0.2)
  569.                     rightleg.C0 = rightleg.C0:lerp(CFrame.new(0.5,-1-math.cos(tick()*14)/2,math.cos(tick()*14)/2) * CFrame.fromEulerAnglesXYZ(-math.sin(tick()*14),0,0) * CFrame.new(0,-1,0),0.2)
  570.                     runservice.Stepped:wait()
  571.                 end
  572.             end
  573.             action:destroy()
  574.             candothat = false
  575.             if jumped then
  576.                 goupvel.Velocity = goupvel.Velocity + (rootpart.CFrame.rightVector*20) + Vector3.new(0,5,0)
  577.                 game.Debris:AddItem(goupvel, 0.25)
  578.                 for i = 0,0.6 ,0.03 do
  579.                     if not cananimate then
  580.                         head.C0 = head.C0:lerp(CFrame.new(0,1,0) * CFrame.fromEulerAnglesXYZ(math.rad(10),math.rad(-5),0) * CFrame.new(0,0.5,0),i)
  581.                         leftleg.C0 = leftleg.C0:lerp(CFrame.new(-0.5,-1,0) * CFrame.fromEulerAnglesXYZ(-math.rad(40),0,math.rad(-2)) * CFrame.new(0,-1,0),i)
  582.                         rightleg.C0 = rightleg.C0:lerp(CFrame.new(0.5,-1,0) * CFrame.fromEulerAnglesXYZ(math.rad(40),0,math.rad(2)) * CFrame.new(0,-1,0),i)
  583.                         humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.fromEulerAnglesXYZ(math.rad(-10),0,math.rad(-10)),i)
  584.                         leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.5,0.5,-0.5) * CFrame.fromEulerAnglesXYZ(-math.pi/3,0,0) * CFrame.new(0,-0.5,0),i)
  585.                         rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.5,0.5,0) * CFrame.fromEulerAnglesXYZ(math.pi/2+math.rad(20),0,0) * CFrame.new(0,-0.5,0),i)
  586.                         runservice.Stepped:wait()
  587.                     end
  588.                 end
  589.             else
  590.                 goupvel:destroy()
  591.             end
  592.             humanoid.AutoRotate = true
  593.             cananimate = true
  594.             cando = true
  595.         elseif what == "triggerroll" then
  596.             if roll then
  597.                 roll = false
  598.             elseif not roll then
  599.                 roll = true
  600.             end
  601.         elseif what == "polegrab" then
  602.             local polereally = false
  603.             if rayehit.Size.y <= 1 then
  604.                 if rayehit.Size.z > rayehit.Size.x and rayehit.Size.x <= 1 then
  605.                     --print("pole z > x")
  606.                     polereally = true
  607.                 elseif rayehit.Size.x > rayehit.Size.z and rayehit.Size.z <= 1 then
  608.                     --print("pole x > z")
  609.                     polereally = true
  610.                 end
  611.             end
  612.             if polereally then
  613.                 cando = false
  614.                 cananimate = false
  615.                 humanoid.AutoRotate = false
  616.                 rootpart.Anchored = true
  617.                 grabbedpole = true
  618.                 local action = Instance.new("BoolValue", character)
  619.                 action.Name = "pole"
  620.                 local thesine = 0
  621.                 local speed = 3
  622.                 local sineadd = 0.2
  623.                 local multiply = 1.2
  624.                 coroutine.wrap(function()
  625.                     while grabbedpole and runservice.Stepped:wait() do
  626.                         thesine = thesine + sineadd
  627.                         head.C0 = head.C0:lerp(CFrame.new(0,1,0) * CFrame.Angles(-math.sin(thesine/speed)*(multiply/1.5),0,0) * CFrame.new(0,0.5,0),0.3)
  628.                         leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.5,0.5,0) * CFrame.Angles(math.pi,0,0) * CFrame.new(0,-0.8,0),0.3)
  629.                         rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.5,0.5,0) * CFrame.Angles(math.pi,0,0) * CFrame.new(0,-0.8,0),0.3)
  630.                         leftleg.C0 = leftleg.C0:lerp(CFrame.new(-0.5,-1,0) * CFrame.Angles(math.sin(thesine/speed)*multiply,0,0) * CFrame.new(0,-1,0),0.3)
  631.                         rightleg.C0 = rightleg.C0:lerp(CFrame.new(0.5,-1,0) * CFrame.Angles(math.sin(thesine/speed)*multiply,0,0) * CFrame.new(0,-1,0),0.3)
  632.                         rootpart.CFrame = CFrame.new(rayepos, rayepos + rayesurface) * CFrame.fromEulerAnglesXYZ(-math.sin(thesine/speed)*multiply,math.pi,0) * CFrame.new(0,-2.5,0)
  633.                         if humanoid.Jump and math.sin(thesine/speed) > 0.2 then
  634.                             rootpart.Anchored = false
  635.                             grabbedpole = false
  636.                             action:destroy()
  637.                             local v = Instance.new("BodyVelocity", rootpart)
  638.                             v.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
  639.                             v.Velocity = rootpart.CFrame.lookVector * 20
  640.                             game.Debris:AddItem(v, 0.5)
  641.                             humanoid.AutoRotate = true
  642.                             cananimate = true
  643.                             cando = true
  644.                             break
  645.                         end
  646.                     end
  647.                 end)()
  648.             end
  649.         end
  650.     end
  651. end)
  652. coroutine.wrap(function()
  653.     while runservice.Stepped:wait() do
  654.         if rootpart.Velocity.x >= 2 or rootpart.Velocity.x <= -2 or rootpart.Velocity.z >= 2 or rootpart.Velocity.z <= -2 then
  655.             if humanoid.FloorMaterial == Enum.Material.Air then
  656.                 if rootpart.Velocity.x >= 16 or rootpart.Velocity.x <= -16 or rootpart.Velocity.z >= 16 or rootpart.Velocity.z <= -16 then
  657.                     if rootpart.Velocity.y >= 3 then
  658.                         anim = "jumprun"
  659.                         --print("jumping (running)")
  660.                     elseif rootpart.Velocity.y <= -3 then
  661.                         anim = "fallrun"
  662.                         --("falling (running)")
  663.                     end
  664.  
  665. function clerp(startCF,endCF,alpha)
  666.     return startCF:lerp(endCF, alpha)
  667.                 else
  668.                     if rootpart.Velocity.y >= 3 then
  669.                         anim = "jump"
  670.                         --print("jumping (walking)")
  671.                     elseif rootpart.Velocity.y <= -3 then
  672.                         anim = "fall"
  673.                         --print("falling (walking)")
  674.                     end
  675.                 end
  676.             else
  677.                 if rootpart.Velocity.x >= 16 or rootpart.Velocity.x <= -16 or rootpart.Velocity.z >= 16 or rootpart.Velocity.z <= -16 then
  678.                     anim = "run"
  679.                     --print("running")
  680.                 else
  681.                     anim = "walk"
  682.                     --print("walking")
  683.                 end
  684.             end
  685.         elseif rootpart.Velocity.x <= 2 or rootpart.Velocity.x >= -2 or rootpart.Velocity.z <= 2 or rootpart.Velocity.z >= -2 then
  686.             if humanoid.FloorMaterial == Enum.Material.Air then
  687.                 if rootpart.Velocity.y >= 3 then
  688.                     anim = "jump"
  689.                     --print("jumping (standing)")
  690.                 elseif rootpart.Velocity.y < -3 then
  691.                     anim = "fall"
  692.                     --print("falling (standing)")
  693.                 end
  694.             else
  695.                 anim = "idle"
  696.                 --print("standing")
  697.             end
  698.         end
  699.     end
  700. end)()
  701. coroutine.wrap(function()
  702.     while runservice.Stepped:wait() do
  703.         if rootpart.Velocity.y < -90 then
  704.             while rootpart.Velocity.y < 0 and rootpart.Velocity.y >= -135 and runservice.Stepped:wait() do
  705.                 --print("falling")
  706.             end
  707.             if rootpart.Velocity.y >= -135 then
  708.                 cananimate = false
  709.                 if not roll then
  710.                     print('hit ground')
  711.                     runsound.Volume = 0
  712.                     bodyhitsound.TimePosition = 1
  713.                     bodyhitsound:Play()
  714.                     local action = Instance.new("BoolValue", character)
  715.                     action.Name = "ouchfell"
  716.                     humanoid.WalkSpeed = 0
  717.                     humanoid.JumpPower = 0
  718.                     humanoid.Health = humanoid.Health - math.random(0,0)
  719.                     for i = 0,1 , 0.04 do
  720.                         humanoid.WalkSpeed = 0
  721.                         humanoid.JumpPower = 0
  722.                         rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.03661776, -0.287070274, -0.937994003, 1, 2.13205098e-09, 1.80749957e-08, 2.98023224e-08, 0.642787397, -0.766044438, 4.47034836e-08, 0.766044438, 0.642787457),i)
  723.                         leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.5, 0.00759601593, -0.0868253708, 1.00000012, 4.17280432e-09, 2.23762484e-08, 3.55271368e-15, 0.98480767, -0.173648164, 2.98023224e-08, 0.173648179, 0.98480773),i)
  724.                         leftleg.C0 = leftleg.C0:lerp(CFrame.new(-0.188133717, -0.968682289, -0.200000763, 0.939692676, -0.342020154, 2.98023224e-08, 0.342020094, 0.939692557, -8.8817842e-16, 2.7206255e-08, -7.1326367e-09, 1),i)
  725.                         rightleg.C0 = rightleg.C0:lerp(CFrame.new(0.5, -2, -9.53674316e-07, 1.00000012, 3.55271368e-15, 2.98023224e-08, 3.55271368e-15, 0.99999994, -8.8817842e-16, 2.98023224e-08, -8.8817842e-16, 1),i)
  726.                         humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.new(0.138917923, -1.81215382, -0.199999809, -0.17364794, 0, 0.984807789, -0.984807849, -4.37113883e-08, -0.173647955, 4.3047315e-08, -1, 7.59039409e-09),i)
  727.                         head.C0 = head.C0:lerp(CFrame.new(0, 1.3184042, -0.620952606, 1.00000012, -2.15236486e-08, 7.42341655e-09, 3.55271368e-15, 0.499999791, 0.866025388, 2.98023224e-08, -0.866025388, 0.499999791),i)
  728.                         runservice.Stepped:wait()
  729.                     end
  730.                     wait(0.7)
  731.                     for i = 0,0.35 , 0.005 do
  732.                         humanoid.WalkSpeed = 0
  733.                         humanoid.JumpPower = 0
  734.                         rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.43661785, 0.8717556, -1.1015135, 0.99999994, -1.49011354e-08, 2.58095625e-08, 2.98023171e-08, -0.342020303, -0.939692438, 1.49011914e-08, 0.939692736, -0.342020363),i)
  735.                         leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.5, 0.691013336, -1.08328879, 1, 1.29770106e-14, -3.44476568e-15, -1.36212808e-15, -0.173648149, -0.98480767, 2.84217094e-14, 0.984807968, -0.173648193),i)
  736.                         leftleg.C0 = leftleg.C0:lerp(CFrame.new(-0.5, -0.697739601, -0.911438107, 0.99999994, 6.67691635e-15, 1.17806545e-14, -1.36212851e-15, 0.939692438, -0.342020303, 2.84217094e-14, 0.342020422, 0.939692795),i)
  737.                         rightleg.C0 = rightleg.C0:lerp(CFrame.new(0.500000954, -1.51961517, -1.30000019, 1, 6.15348006e-15, 1.0658141e-14, -1.36212808e-15, 0.866025329, -0.49999997, 2.84217094e-14, 0.500000119, 0.866025627),i)
  738.                         humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.new(0.138917923, -0.812153816, -0.199999809, 1, 0, -1.93715096e-07, 1.93715096e-07, -4.37113883e-08, 1.00000012, -7.10542736e-15, -1, -4.37113883e-08),i)
  739.                         head.C0 = head.C0:lerp(CFrame.new(0, 1.56080723, -0.0747625828, 1, -3.66066168e-15, 2.96555518e-14, -1.36212808e-15, 0.98480767, 0.173648074, 2.84217094e-14, -0.173648104, 0.984807909),i)
  740.                         runservice.Stepped:wait()
  741.                     end
  742.                     humanoid.JumpPower = 50
  743.                     game.Debris:AddItem(action, 0.3)
  744.                     cananimate = true
  745.                 else
  746.                     local action = Instance.new("BoolValue", character)
  747.                     action.Name = "rollin"
  748.                     local rotva = 0
  749.                     coroutine.wrap(function()
  750.                         humanoidrootpart.C0 = CFrame.new(0,-1.5,0)
  751.                         for i = 1,35 do
  752.                             rootpart.CFrame = rootpart.CFrame * CFrame.new(0,0,-0.3)
  753.                             humanoidrootpart.C0 = humanoidrootpart.C0 * CFrame.fromEulerAnglesXYZ(math.rad(-8.5),0,0)
  754.                             runservice.Stepped:wait()
  755.                         end
  756.                         action:destroy()
  757.                         cananimate = true
  758.                     end)()
  759.                     for i = 0,1 , 0.04 do
  760.                         rightarm.C0 = rightarm.C0:lerp(CFrame.new(0.5, 0.41317749, -1.40775204, 1.12057243e-08, 1, 4.07854905e-09, 0.173648134, 2.0707327e-09, -0.984807491, -0.984807551, 1.17437136e-08, -0.173648149),i)
  761.                         leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.5, 0.178607941, -0.38302207, 1, 0, 0, 0, 0.642787397, -0.766044199, 0, 0.766044259, 0.642787457),i)
  762.                         leftleg.C0 = leftleg.C0:lerp(CFrame.new(-0.5, -0.93637085, -0.903905869, 1, 0, 0, 0, 0.642787278, 0.766044319, 0, -0.766044378, 0.642787337),i)
  763.                         rightleg.C0 = rightleg.C0:lerp(CFrame.new(0.5, -1.08567047, -0.913578272, 1, 0, 0, 0, 0.642787516, 0.76604408, 0, -0.76604414, 0.642787576),i)
  764.                         head.C0 = head.C0:lerp(CFrame.new(0, 1.30701828, -0.629077435, 1, 0, 0, 0, 0.438599855, 0.898682296, 0, -0.898682296, 0.438599855),i)
  765.                         runservice.Stepped:wait()
  766.                     end
  767.                 end
  768.             elseif rootpart.Velocity.y < -135 then
  769.                 fallingtodeath = false
  770.                 local action = Instance.new("BoolValue", character)
  771.                 action.Name = "FALLING"
  772.                 local i = 0
  773.                 while runservice.Stepped:wait() do
  774.                     fallingsound.Volume = fallingsound.Volume + 0.06
  775.                     i = i + 1
  776.                     humanoidrootpart.C0 = humanoidrootpart.C0 * CFrame.fromEulerAnglesXYZ(math.rad(1.5),math.rad(0.5),math.rad(1))
  777.                     head.C0 = head.C0:lerp(CFrame.new(0,1,0) * CFrame.Angles(math.rad(-10),0,0) * CFrame.new(0,0.5,0),0.2)
  778.                     leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.5,0.5,0) * CFrame.Angles(math.pi/2+math.sin(i/5)*1.8,0,math.cos(i/5)/1.5) * CFrame.new(0,-0.7,0),0.2)
  779.                     rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.5,0.5,0) * CFrame.Angles(math.pi/2+math.sin(i/4.5)*1.8,0,-math.cos(i/5)/1.5) * CFrame.new(0,-0.7,0),0.2)
  780.                     leftleg.C0 = leftleg.C0:lerp(CFrame.new(-0.5,-1-math.cos(i/5)/2,0) * CFrame.Angles(-math.sin(i/5),0,0) * CFrame.new(0,-1,0),0.2)
  781.                     rightleg.C0 = rightleg.C0:lerp(CFrame.new(0.5,-1+math.cos(i/5)/2,0) * CFrame.Angles(math.sin(i/5),0,0) * CFrame.new(0,-1,0),0.2)
  782.                     --print('death falling')
  783.                 end
  784.             end
  785.         end
  786.     end
  787. end)()
  788. while runservice.Stepped:wait() do
  789.     if cananimate and not fallingtodeath then
  790.         runsound.Volume = 0
  791.         if anim == "idle" then
  792.             local Alpha = .1
  793.             Change = .75
  794.             RJ.C0 = RJ.C0:lerp(RJC0*CF.N(0+.2*M.C(Sine/12),.2*M.C(Sine/6),0)*CF.A(M.R(-5+5*M.C(Sine/12)),0,0),Alpha)
  795.             NK.C0 = NK.C0:lerp(NKC0*CF.A(M.R(-5+5*M.C(Sine/12)),0,0),Alpha)
  796.             LS.C0 = LS.C0:lerp(LSC0*CF.N(.25,0,0)*CF.A(M.R(-45),0,M.R(45+5*M.C(Sine/12))),Alpha)
  797.             RS.C0 = RS.C0:lerp(RSC0*CF.N(-.25,0,0)*CF.A(M.R(-45),0,M.R(-45-5*M.C(Sine/12))),Alpha)
  798.             LH.C0 = LH.C0:lerp(LHC0*CF.N(0-.2*M.C(Sine/12),-.2*M.C(Sine/6),0)*CF.A(M.R(5-5*M.C(Sine/12)),M.R(10),0),Alpha)
  799.             RH.C0 = RH.C0:lerp(RHC0*CF.N(0-.2*M.C(Sine/12),-.2*M.C(Sine/6),0)*CF.A(M.R(5-5*M.C(Sine/12)),M.R(-10),0),Alpha)
  800.         elseif anim == "walk" then
  801.             runsound.Volume = 0.4
  802.             runsound.PlaybackSpeed = 1.1
  803.             head.C0 = head.C0:lerp(CFrame.new(0,1,0) * CFrame.fromEulerAnglesXYZ(0,0,0) * CFrame.new(0,0.5,0),0.2)
  804.             leftleg.C0 = leftleg.C0:lerp(CFrame.new(-0.5,-1+math.cos(tick()*12)/4,-math.cos(tick()*12)/1.5) * CFrame.fromEulerAnglesXYZ(math.sin(tick()*12)*1.5,0,0) * CFrame.new(0,-1,0),0.2)
  805.             rightleg.C0 = rightleg.C0:lerp(CFrame.new(0.5,-1-math.cos(tick()*12)/4,math.cos(tick()*12)/1.5) * CFrame.fromEulerAnglesXYZ(-math.sin(tick()*12)*1.5,0,0) * CFrame.new(0,-1,0),0.2)
  806.             humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.new(0,math.sin(tick()*24)/12,0) * CFrame.fromEulerAnglesXYZ(-math.rad(5),0,0),0.2)
  807.             leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.5,0.3+math.sin(tick()*12)/3,-0.2+math.sin(tick()*12)/2) * CFrame.fromEulerAnglesXYZ(math.rad(40)-math.sin(tick()*12)*2,0,-math.sin(tick()*12)/2.5) * CFrame.new(0,-0.5,0),0.2)
  808.             rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.5,0.3-math.sin(tick()*12)/3,-0.2-math.sin(tick()*12)/2) * CFrame.fromEulerAnglesXYZ(math.rad(40)+math.sin(tick()*12)*2,0,-math.sin(tick()*12)/2.5) * CFrame.new(0,-0.5,0),0.2)
  809.         elseif anim == "run" then
  810.             runsound.Volume = 1
  811.             runsound.PlaybackSpeed = 1.4
  812.             head.C0 = head.C0:lerp(CFrame.new(0,1,0) * CFrame.fromEulerAnglesXYZ(math.rad(10),0,0) * CFrame.new(0,0.5,0),0.2)
  813.             leftleg.C0 = leftleg.C0:lerp(CFrame.new(-0.5,-1+math.cos(tick()*12)/2,-math.cos(tick()*12)/1.5) * CFrame.fromEulerAnglesXYZ(math.sin(tick()*12)*1.4,0,0) * CFrame.new(0,-1,0),0.2)
  814.             rightleg.C0 = rightleg.C0:lerp(CFrame.new(0.5,-1-math.cos(tick()*12)/2,math.cos(tick()*12)/1.5) * CFrame.fromEulerAnglesXYZ(-math.sin(tick()*12)*1.4,0,0) * CFrame.new(0,-1,0),0.2)
  815.             humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.new(0,-0.2+math.sin(tick()*24)/10,0) * CFrame.fromEulerAnglesXYZ(0,math.rad(-rootpart.Orientation.y),0) * CFrame.fromEulerAnglesXYZ(humanoid.MoveDirection.z/5,0,-humanoid.MoveDirection.x/5) * CFrame.fromEulerAnglesXYZ(0,math.rad(rootpart.Orientation.y),0) * CFrame.fromEulerAnglesXYZ(-math.rad(10),0,0),0.2)
  816.             leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.5,0.5,0) * CFrame.fromEulerAnglesXYZ(math.rad(10)-math.sin(tick()*12)*1.9,0,-math.sin(tick()*12)/2.5) * CFrame.new(0,-0.7,0),0.2)
  817.             rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.5,0.5,0) * CFrame.fromEulerAnglesXYZ(math.rad(10)+math.sin(tick()*12)*1.9,0,-math.sin(tick()*12)/2.5) * CFrame.new(0,-0.7,0),0.2)
  818.         elseif anim == "jumprun" or anim == "fallrun" then
  819.             if not roll then
  820.                 head.C0 = head.C0:lerp(CFrame.new(0,1,0) * CFrame.fromEulerAnglesXYZ(math.rad(20),0,0) * CFrame.new(0,0.5,0),0.2)
  821.                 leftleg.C0 = leftleg.C0:lerp(CFrame.new(-0.5,-1-math.cos(tick())/15,0) * CFrame.fromEulerAnglesXYZ(math.sin(tick()*2),0,math.rad(-2)) * CFrame.new(0,-1,0),0.2)
  822.                 rightleg.C0 = rightleg.C0:lerp(CFrame.new(0.5,-1-math.cos(tick())/15,0) * CFrame.fromEulerAnglesXYZ(-math.sin(tick()*2),0,math.rad(2)) * CFrame.new(0,-1,0),0.2)
  823.                 humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.new(0,math.cos(tick())/15,0) * CFrame.fromEulerAnglesXYZ(math.rad(-20),0,0),0.2)
  824.                 leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.5,0.5,0) * CFrame.fromEulerAnglesXYZ(-math.pi/3+math.sin(tick()*2)/5,0,math.cos(tick()*2)/5) * CFrame.new(0,-0.5,0),0.2)
  825.                 rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.5,0.5,0) * CFrame.fromEulerAnglesXYZ(math.pi/2+math.rad(20)+math.sin(tick()*2)/5,0,-math.cos(tick()*2)/5) * CFrame.new(0,-0.5,0),0.2)
  826.             else
  827.                 head.C0 = head.C0:lerp(CFrame.new(0, 1.38302183, -0.321395874, 1, 0, 0, 0, 0.766044259, 0.642787695, 0, -0.642787695, 0.766044259),0.2)
  828.                 leftleg.C0 = leftleg.C0:lerp(CFrame.new(-0.5, -2.00000048, 3.81469727e-06, 1, 0, 0, 0, 0.99999994, 0, 0, 1.49011612e-08, 1),0.2)
  829.                 rightleg.C0 = rightleg.C0:lerp(CFrame.new(0.5, -2.00000048, 3.81469727e-06, 1, 0, 0, 0, 0.99999994, 0, 0, 1.49011612e-08, 1),0.2)
  830.                 humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.new(0, 0, 0, 1, 0, 0, 0, 0.984807789, 0.17364797, 0, -0.17364797, 0.984807789),0.2)
  831.                 leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.18301296, -0.0232186317, -0.439029694, 0.866025329, -0.49999997, 0, 0.383022159, 0.663413882, -0.642787457, 0.321393758, 0.556670368, 0.766044438),0.2)
  832.                 rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.18301296, -0.0232186317, -0.439029694, 0.866025388, 0.5, 0, -0.3830221, 0.663413823, -0.642787635, -0.321393877, 0.556670487, 0.766044259),0.2)
  833.             end
  834.         elseif anim == "jump" or anim == "fall" then
  835.             head.C0 = head.C0:lerp(CFrame.new(0,1,0) * CFrame.fromEulerAnglesXYZ(0,0,0) * CFrame.new(0,0.5,0),0.2)
  836.             leftleg.C0 = leftleg.C0:lerp(CFrame.new(-0.5,0,-0.5) * CFrame.fromEulerAnglesXYZ(0,0,math.rad(-2)) * CFrame.new(0,-1,0),0.2)
  837.             rightleg.C0 = rightleg.C0:lerp(CFrame.new(0.5,-1,0) * CFrame.fromEulerAnglesXYZ(0,0,math.rad(2)) * CFrame.new(0,-1,0),0.2)
  838.             humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.new(0,math.cos(tick())/15,0) * CFrame.fromEulerAnglesXYZ(0,0,0),0.2)
  839.             leftarm.C0 = leftarm.C0:lerp(CFrame.new(-1.5,0.5,0) * CFrame.fromEulerAnglesXYZ(math.pi-math.rad(30),0,0) * CFrame.new(0,-0.5,0),0.2)
  840.             rightarm.C0 = rightarm.C0:lerp(CFrame.new(1.5,0.5,0) * CFrame.fromEulerAnglesXYZ(math.pi-math.rad(30),0,0) * CFrame.new(0,-0.5,0),0.2)
  841.         end
  842.     end
  843. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement