Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Variables and callouts by RiotDestrudo, Original Script by Emetimex.
- WallRunPower = -12 -- Default -12, shows how much wall-run momentum you have.
- MaxRunSpeed = 24 -- Default 36, Peak Run speed.
- StunVelocity = -90 -- Default -90, the lesser the number the higher the stun tolerance, set to -999 for no fallstun.
- LedgeJumpPower = 45 -- Default 30, indicates your jump power after grabbing on a ledge
- LedgePushOff = -1 -- Default -30, (lesser = more powerful) the power of jumping away from the ledge your looking at x axis.
- VaultTolerance = 0 -- Default 2, Studs y that trigger when a vault will happen.
- VaultRange = 2 -- Default 2, Distance your vault can reach.
- --Emetimex
- plr = game.Players.LocalPlayer
- local colormansup = 255
- local sliding = false
- if plr:WaitForChild("PlayerScripts"):FindFirstChild("Player Stuff") then
- plr:WaitForChild("PlayerScripts"):FindFirstChild("Player Stuff"):Destroy()
- end
- local camerakill = false
- mobile = false
- local downeddel= false
- local walkingmode = false
- char = plr.Character
- if char:FindFirstChild("ClientInputHandler") then
- char:FindFirstChild("ClientInputHandler"):Destroy()
- end
- if plr:FindFirstChild("Status") then
- plr:FindFirstChild("Status"):Destroy()
- end
- if game.Workspace:FindFirstChild("Remote") then
- if game.Workspace:FindFirstChild("Remote"):FindFirstChild("TeamEvent") then
- Workspace.Remote.TeamEvent:FireServer("Medium stone grey")
- end
- end
- local downed = false
- local combatmusic = Instance.new("Sound",char)
- combatmusic.Volume = 0
- combatmusic.PlaybackSpeed = 1
- combatmusic.Looped = true
- local ambience = Instance.new("Sound",char)
- ambience.Volume = 0.5
- ambience.PlaybackSpeed = 1
- ambience.Looped = true
- local winder = Instance.new("Sound",char)
- winder.SoundId = "rbxassetid://337604103"
- winder.Volume = 0
- winder.PlaybackSpeed = 1
- winder.Looped = true
- winder:Play()
- local windercloth = Instance.new("Sound",char)
- windercloth.SoundId = "rbxassetid://195879271"
- windercloth.Volume = 0
- windercloth.PlaybackSpeed = 1
- windercloth.Looped = true
- windercloth:Play()
- local explorationmusic = Instance.new("Sound",char)
- explorationmusic.Volume = 0
- explorationmusic.PlaybackSpeed = 1
- explorationmusic.Looped = true
- local rannum = math.random(1,11)
- if rannum == 1 then
- combatmusic.SoundId = "rbxassetid://4842424057"
- explorationmusic.SoundId = "rbxassetid://6092889291"
- ambience.SoundId = "rbxassetid://4842514147"
- ambience:Play()
- explorationmusic:Play()
- combatmusic:Play()
- end
- if rannum == 2 then
- combatmusic.SoundId = "rbxassetid://5167357719"
- explorationmusic.SoundId = "rbxassetid://5136807172"
- ambience.SoundId = "rbxassetid://5136807172"
- ambience:Play()
- explorationmusic:Play()
- combatmusic:Play()
- end
- if rannum == 3 then
- combatmusic.SoundId = "rbxassetid://5355007603"
- explorationmusic.SoundId = "rbxassetid://5192956194"
- ambience.SoundId = "rbxassetid://5192956194"
- ambience:Play()
- explorationmusic:Play()
- combatmusic:Play()
- end
- if rannum == 4 then
- combatmusic.SoundId = "rbxassetid://1591306349"
- explorationmusic.SoundId = "rbxassetid://5246801658"
- ambience.SoundId = "rbxassetid://5167384455"
- ambience:Play()
- explorationmusic:Play()
- combatmusic:Play()
- end
- if rannum == 5 then
- combatmusic.SoundId = "rbxassetid://5356631522"
- explorationmusic.SoundId = "rbxassetid://4502246491"
- ambience.SoundId = "rbxassetid://4502246491"
- ambience:Play()
- explorationmusic:Play()
- combatmusic:Play()
- end
- if rannum == 6 then
- combatmusic.SoundId = "rbxassetid://5183689299"
- explorationmusic.SoundId = "rbxassetid://538850338"
- ambience.SoundId = "rbxassetid://538850338"
- ambience:Play()
- explorationmusic:Play()
- combatmusic:Play()
- end
- if rannum == 7 then
- combatmusic.SoundId = "rbxassetid://5258344366"
- explorationmusic.SoundId = "rbxassetid://5079119831"
- ambience.SoundId = "rbxassetid://5079119831"
- ambience:Play()
- explorationmusic:Play()
- combatmusic:Play()
- end
- if rannum == 8 then
- combatmusic.SoundId = "rbxassetid://5995057631"
- explorationmusic.SoundId = "rbxassetid://477207390"
- ambience.SoundId = "rbxassetid://477207390"
- ambience:Play()
- explorationmusic:Play()
- combatmusic:Play()
- end
- if rannum == 9 then
- combatmusic.SoundId = "rbxassetid://4841933336"
- explorationmusic.SoundId = "rbxassetid://5114418235"
- ambience.SoundId = "rbxassetid://5114418235"
- ambience:Play()
- explorationmusic:Play()
- combatmusic:Play()
- end
- if rannum == 10 then
- combatmusic.SoundId = "rbxassetid://5132571388"
- explorationmusic.SoundId = "rbxassetid://5995060646"
- ambience.SoundId = "rbxassetid://5995060646"
- ambience:Play()
- explorationmusic:Play()
- combatmusic:Play()
- end
- if rannum == 11 then
- combatmusic.SoundId = "rbxassetid://5433879104"
- explorationmusic.SoundId = "rbxassetid://4692224051"
- ambience.SoundId = "rbxassetid://4692224051"
- ambience:Play()
- explorationmusic:Play()
- combatmusic:Play()
- end
- local tricksinarow = 0
- local tricktime = 0
- local timestanding = 0
- local combattime = 0
- root = char:WaitForChild("HumanoidRootPart")
- local slidingsound = Instance.new("Sound",root)
- slidingsound.SoundId = "rbxassetid://4086205029"
- slidingsound.PlaybackSpeed = 1.25
- slidingsound.Looped = true
- slidingsound.Volume = 0.75
- local wallrunningsound = Instance.new("Sound",root)
- wallrunningsound.SoundId = "rbxassetid://401049343"
- wallrunningsound.PlaybackSpeed = 1
- wallrunningsound.Looped = true
- wallrunningsound.Volume = 0.75
- function randomclothrollsound(truth)
- coroutine.resume(coroutine.create(function()
- if truth ~= nil then
- local s = Instance.new("Sound",root)
- s.Volume = 0.8 +math.random(1,6)*0.05
- s.PlaybackSpeed = 0.8 +math.random(1,6)*0.05
- local rannum = math.random(1,5)
- if rannum == 1 then
- s.SoundId = "rbxassetid://4086203738"
- elseif rannum == 2 then
- s.SoundId = "rbxassetid://4086203442"
- elseif rannum == 3 then
- s.SoundId = "rbxassetid://4086203142"
- elseif rannum == 4 then
- s.SoundId = "rbxassetid://4086203973"
- else
- s.SoundId = "rbxassetid://4307029050"
- end
- s:Play()
- game:GetService("Debris"):AddItem(s,4)
- else
- local s = Instance.new("Sound",root)
- s.Volume = 0.25 +math.random(1,6)*0.05
- s.PlaybackSpeed = 0.8 +math.random(1,6)*0.05
- local rannum = math.random(1,7)
- if rannum == 1 then
- s.SoundId = "rbxassetid://3929467229"
- elseif rannum == 2 then
- s.SoundId = "rbxassetid://3929467449"
- elseif rannum == 3 then
- s.SoundId = "rbxassetid://3929467655"
- elseif rannum == 4 then
- s.SoundId = "rbxassetid://3929467888"
- elseif rannum == 5 then
- s.SoundId = "rbxassetid://4458760046"
- elseif rannum == 6 then
- s.SoundId = "rbxassetid://4458760518"
- else
- s.SoundId = "rbxassetid://4458759938"
- end
- s:Play()
- game:GetService("Debris"):AddItem(s,4)
- end
- end))
- end
- local rollingsound = Instance.new("Sound",root)
- rollingsound.SoundId = "rbxassetid://2985734522"
- rollingsound.PlaybackSpeed = 1
- rollingsound.Volume = 0.75
- local bodymovesound = Instance.new("Sound",root)
- bodymovesound.SoundId = "rbxassetid://152206206"
- bodymovesound.PlaybackSpeed = 0.945
- bodymovesound.Volume = 2.35
- local downedsound = Instance.new("Sound",root)
- downedsound.SoundId = "rbxassetid://178088040"
- downedsound.PlaybackSpeed = 1
- downedsound.Volume = 3
- local jumplandsoundthingy = Instance.new("Sound",root)
- jumplandsoundthingy.SoundId = "rbxassetid://6079431954"
- jumplandsoundthingy.PlaybackSpeed = 0.785
- jumplandsoundthingy.Volume = 2
- hum = char:WaitForChild("Humanoid")
- hum.JumpPower = 50
- local colorparkourkill = Instance.new("ColorCorrectionEffect",game.Lighting)
- --colorparkourkill.Saturation = 0
- --colorparkourkill.TintColor = Color3.new(1,1,1)
- if game.Lighting:FindFirstChild("COLORPARKOURKILL") then
- game.Lighting:FindFirstChild("COLORPARKOURKILL"):Destroy()
- end
- torso = char:WaitForChild("Torso")
- local gyro = Instance.new("BodyGyro",torso)
- gyro.D = 200
- gyro.P = 1800
- local cameratilterman = 0
- local springjumpdel =false
- local gobackroll = false
- local befpower = gyro.P
- gyro.P = befpower
- gyro.MaxTorque = Vector3.new(0,0,0)
- local runvel = Instance.new("BodyVelocity",root)
- runvel.MaxForce = Vector3.new(0,0,0)
- runvel.P = 9999999999999999999999
- hum.WalkSpeed =20
- local flowmax = MaxRunSpeed
- local flowmin = 16
- local dodgedel = false
- local crouchspeed = 8
- local flow = flowmin
- for i,v in pairs(workspace:GetDescendants()) do
- if v.ClassName == "Part" or v.ClassName == "UnionOperation" or v.ClassName == "MeshPart" then
- if v.ClassName == "UnionOperation" then
- v.CollisionFidelity = Enum.CollisionFidelity.PreciseConvexDecomposition
- end
- if v.Transparency == 1 then
- v.CanCollide = false
- end
- end
- end
- floorpositiony = 0
- local UIS = game:GetService("UserInputService")
- local GuiService = game:GetService("GuiService")
- if UIS.TouchEnabled and not UIS.KeyboardEnabled and not UIS.MouseEnabled
- and not UIS.GamepadEnabled and not GuiService:IsTenFootInterface() then
- mobile = true
- jb = plr.PlayerGui:WaitForChild("TouchGui"):WaitForChild("TouchControlFrame"):WaitForChild("JumpButton")
- jb.MouseButton1Down:Connect(function()
- wallrunabletrue()
- wallruncheck()
- end)
- end
- local leftwallrunanim = Instance.new("Animation",char)
- leftwallrunanim.AnimationId = "rbxassetid://180426354"
- local leftwallrunanimplay = hum:LoadAnimation(leftwallrunanim)
- local downedanim1 = Instance.new("Animation",char)
- downedanim1.AnimationId = "rbxassetid://282574440"
- local downedanim1play = hum:LoadAnimation(downedanim1)
- local rightwallrunanim = Instance.new("Animation",char)
- rightwallrunanim.AnimationId = "rbxassetid://180426354"
- local rightwallrunanimplay = hum:LoadAnimation(rightwallrunanim)
- local verticalwallrunanim = Instance.new("Animation",char)
- verticalwallrunanim.AnimationId = "rbxassetid://180426354"
- local verticalwallrunanimplay = hum:LoadAnimation(verticalwallrunanim)
- local roll = Instance.new("Animation",char)
- roll.AnimationId = "rbxassetid://180612465"
- local rollplay = hum:LoadAnimation(roll)
- local crouching = Instance.new("Animation",char)
- crouching.AnimationId = "rbxassetid://287325678"
- local crouchingplay = hum:LoadAnimation(crouching)
- local springjump = Instance.new("Animation",char)
- springjump.AnimationId = "rbxassetid://287325678"
- local springjumpplay = hum:LoadAnimation(springjump)
- local dodging = Instance.new("Animation",char)
- dodging.AnimationId = "rbxassetid://287325678"
- local dodgingplay = hum:LoadAnimation(dodging)
- local slidinganim = Instance.new("Animation",char)
- slidinganim.AnimationId = "rbxassetid://132546884"
- local slidingplay = hum:LoadAnimation(slidinganim)
- local rollering = false
- hum.Died:Connect(function()
- if game.Workspace:FindFirstChild("Remote") then
- if game.Workspace:FindFirstChild("Remote"):FindFirstChild("TeamEvent") then
- Workspace.Remote.TeamEvent:FireServer("Bright orange")
- end
- end
- camerakill = true
- --colorparkourkill:Destroy()
- for i = 20,1,-1 do
- wait()
- combatmusic.PlaybackSpeed = combatmusic.PlaybackSpeed-0.05
- ambience.PlaybackSpeed = ambience.PlaybackSpeed-0.05
- explorationmusic.PlaybackSpeed = explorationmusic.PlaybackSpeed-0.05
- end
- end)
- local tappeda = false
- local tappeds = false
- local tappedd = false
- local tappedw = false
- UIS.InputEnded:Connect(function(input,gamestuff)
- if input.KeyCode == Enum.KeyCode.S then
- if gamestuff then return end
- gobackroll = false
- end
- end)
- UIS.InputBegan:Connect(function(input,gamestuff)
- if input.KeyCode == Enum.KeyCode.N then
- if gamestuff then return end
- if walkingmode == false then
- walkingmode = true
- else
- walkingmode = false
- end
- end
- if input.KeyCode == Enum.KeyCode.M then
- if gamestuff then return end
- if ambience.PlaybackSpeed ~= 0 then
- ambience.PlaybackSpeed = 0
- combatmusic.PlaybackSpeed = 0
- explorationmusic.PlaybackSpeed = 0
- else
- ambience.PlaybackSpeed = 1
- combatmusic.PlaybackSpeed = 1
- explorationmusic.PlaybackSpeed = 1
- end
- end
- if input.KeyCode == Enum.KeyCode.S then
- if gamestuff then return end
- gobackroll = true
- end
- if downed == true then return end
- if sliding == true then return end
- if input.KeyCode == Enum.KeyCode.A then
- if hitfloor == false then return end
- if gamestuff then return end
- if tappeda == false then
- tappeda = true
- wait(0.25)
- tappeda = false
- else
- if dodgedel == false then
- dodgedel = true
- dodgingplay:Play()
- randomclothrollsound()
- local bv = Instance.new("BodyVelocity",char:WaitForChild("Head"))
- bv.Velocity = root.CFrame.RightVector*-flow*2+Vector3.new(0,flow/2,0)
- bv.MaxForce = Vector3.new(99999,99999,99999)
- bv.P = 99999999999999
- wait(0.1)
- bv:Destroy()
- wait(0.2)
- dodgingplay:Stop()
- dodgedel = false
- end
- end
- end
- if input.KeyCode == Enum.KeyCode.S then
- if hitfloor == false then return end
- if gamestuff then return end
- if tappeds == false then
- tappeds = true
- wait(0.25)
- tappeds = false
- else
- if dodgedel == false then
- dodgedel = true
- dodgingplay:Play()
- randomclothrollsound()
- local bv = Instance.new("BodyVelocity",char:WaitForChild("Head"))
- bv.Velocity = root.CFrame.LookVector*-flow*2+Vector3.new(0,flow/2,0)
- bv.MaxForce = Vector3.new(99999,99999,99999)
- bv.P = 99999999999999
- wait(0.1)
- bv:Destroy()
- wait(0.2)
- dodgingplay:Stop()
- dodgedel = false
- end
- end
- end
- if input.KeyCode == Enum.KeyCode.D then
- if hitfloor == false then return end
- if gamestuff then return end
- if tappedd == false then
- tappedd = true
- wait(0.25)
- tappedd = false
- else
- if dodgedel == false then
- dodgedel = true
- dodgingplay:Play()
- randomclothrollsound()
- local bv = Instance.new("BodyVelocity",char:WaitForChild("Head"))
- bv.Velocity = root.CFrame.RightVector*flow*2+Vector3.new(0,flow/2,0)
- bv.MaxForce = Vector3.new(99999,99999,99999)
- bv.P = 99999999999999
- wait(0.1)
- bv:Destroy()
- wait(0.2)
- dodgingplay:Stop()
- dodgedel = false
- end
- end
- end
- if input.KeyCode == Enum.KeyCode.W then
- if gamestuff then return end
- if hitfloor == false then return end
- if tappedw == false then
- tappedw = true
- wait(0.25)
- tappedw = false
- else
- if dodgedel == false then
- dodgedel = true
- dodgingplay:Play()
- randomclothrollsound()
- local bv = Instance.new("BodyVelocity",char:WaitForChild("Head"))
- bv.Velocity = root.CFrame.LookVector*flow*2+Vector3.new(0,flow/2,0)
- bv.MaxForce = Vector3.new(99999,99999,99999)
- bv.P = 99999999999999
- wait(0.1)
- bv:Destroy()
- wait(0.2)
- dodgingplay:Stop()
- dodgedel = false
- end
- end
- end
- end)
- hum:SetStateEnabled(Enum.HumanoidStateType.FallingDown, false)
- hum:SetStateEnabled(Enum.HumanoidStateType.Ragdoll, false)
- --rollplay:AdjustSpeed(0)
- --rollplay.TimePosition = 1
- local player = game.Players.LocalPlayer
- local character = player.Character
- local hum = character:FindFirstChild("Humanoid")
- if not character or not character.Parent then
- character = player.CharacterAdded:wait()
- if camerakill == true then return end
- end
- local torso = character:WaitForChild("Torso")
- local rightShoulder = torso:WaitForChild("Right Shoulder")
- local leftShoulder = torso:WaitForChild("Left Shoulder")
- local camera = game.Workspace.CurrentCamera
- updateSpeed = 0.5/2
- local plr = game.Players.LocalPlayer
- local char = plr.Character
- local ignorelist = {plr.Character}
- for i,v in pairs(workspace:GetDescendants()) do
- if v.ClassName == "Part" or v.ClassName == "MeshPart" or v.ClassName == "UnionOperation" then
- if v.CanCollide == false or v.Transparency == 1 then
- ignorelist[#ignorelist+1] = v
- end
- end
- end
- leftarm = char:WaitForChild("Left Arm")
- rightarm = char:WaitForChild("Right Arm")
- leftleg = char:WaitForChild("Left Leg")
- if char:FindFirstChild("Head"):FindFirstChild("BillboardGui") then
- char:FindFirstChild("Head"):FindFirstChild("BillboardGui"):Destroy()
- end
- local flowermax = flowmax-flowmin
- local killermancamfov = 0
- rightleg = char:WaitForChild("Right Leg")
- local hum = char:WaitForChild("Humanoid")
- local rootpart,head = char:WaitForChild("HumanoidRootPart"),char:WaitForChild("Head")
- game:GetService("RunService"):BindToRenderStep("CameraOffset",Enum.RenderPriority.Character.Value+1,function()
- local offsetman = 1.5
- if sliding == true then
- offsetman = 0
- end
- if hum.Health == 0 then script:Destroy() end
- local distance = (character.Head.Position - camera.CoordinateFrame.p).magnitude
- if distance <= 1 then
- rightShoulder.C0 = rightShoulder.C0:lerp((camera.CoordinateFrame * CFrame.new(1, -1, 0)):toObjectSpace(torso.CFrame):inverse() * CFrame.Angles(0, math.pi/2, 0), updateSpeed)
- leftShoulder.C0 = leftShoulder.C0:lerp((camera.CoordinateFrame * CFrame.new(-1, -1, 0)):toObjectSpace(torso.CFrame):inverse() * CFrame.Angles(0, -math.pi/2, 0), updateSpeed)
- else
- rightShoulder.C0 = rightShoulder.C0:lerp(CFrame.new(1, 0.5, 0) * CFrame.Angles(0, math.pi/2, 0),updateSpeed)
- leftShoulder.C0 = leftShoulder.C0:lerp(CFrame.new(-1, 0.5, 0) * CFrame.Angles(0, -math.pi/2, 0),updateSpeed)
- end
- hum.CameraOffset = (rootpart.CFrame+Vector3.new(0,offsetman,0)):pointToObjectSpace(head.CFrame.p)
- rightarm.LocalTransparencyModifier = rightarm.Transparency+0.5
- leftarm.LocalTransparencyModifier = leftarm.Transparency+0.5
- leftleg.LocalTransparencyModifier = leftleg.Transparency+0.5
- rightleg.LocalTransparencyModifier = rightleg.Transparency+0.5
- if camerakill == false then
- game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.All, true)
- --killermancamfov = 20*(flow/flowermax)
- --colorparkourkill.TintColor = Color3.new(1,colormansup/255,colormansup/255)
- colormansup = colormansup+5
- if colormansup> 255 then
- colormansup = 255
- end
- --cam.FieldOfView = 50+killermancamfov
- cam.CFrame = cam.CFrame*CFrame.Angles(0,0,math.rad(cameratilterman))
- end
- end)
- local befh = hum.Health
- local function round(number, decimalPlaces)
- number = math.round(number * 10^decimalPlaces) * 10^-decimalPlaces
- end
- local humdowner = false
- function downer()
- flow = flow-flowmax/10
- downedanim1play:Play()
- colormansup = colormansup-60
- downedsound:play()
- randomclothrollsound(true)
- randomclothrollsound(true)
- randomclothrollsound()
- randomclothrollsound()
- randomclothrollsound()
- downed = true
- hum.JumpPower =0
- downeddel = true
- coroutine.resume(coroutine.create(function()
- local tiltnumb = 0
- local rannum = math.random(1,4)
- if rannum == 1 then
- tiltnumb = 80
- elseif rannum == 2 then
- tiltnumb = 50
- elseif rannum == 3 then
- tiltnumb = -80
- else
- tiltnumb = -50
- end
- local cameratilterman2 =tiltnumb*0.2
- local cameratiltermax = cameratilterman2
- local sinnerman = 1
- local sinnerman2 = 0
- for i = 20,1,-1 do
- game:GetService("RunService").RenderStepped:Wait()
- if camerakill == true then return end
- sinnerman = sinnerman-0.05
- sinnerman2 = math.sin(sinnerman*1.25)
- print(sinnerman .. " I AM SIN")
- cameratilterman2 = cameratiltermax*sinnerman2
- cam.CFrame = cam.CFrame*CFrame.Angles(0,0,math.rad(cameratilterman2))
- end
- wait(1)
- downeddel = false
- end))
- end
- hum.HealthChanged:Connect(function()
- --colorparkourkill.Saturation = -1+hum.Health/hum.MaxHealth
- if hum.Health/hum.MaxHealth < 0.25 then
- if humdowner == false then
- humdowner = true
- downer()
- end
- end
- if hum.Health < befh then
- combattime = 18
- local damagetiltmax = befh - hum.Health
- round(damagetiltmax,1)
- colormansup = colormansup-damagetiltmax*4.25
- local cameratilterman2 = math.random(damagetiltmax*-20,damagetiltmax*20)
- cameratilterman2 = cameratilterman2 *0.05
- local cameratilterman3 = math.random(damagetiltmax*-20,damagetiltmax*20)
- cameratilterman3 = cameratilterman3 *0.0008675
- local cameratiltermax = cameratilterman2
- local cameratiltermax2 = cameratilterman3
- local sinnerman = 1
- local sinnerman2 = 0
- for i = 10,1,-1 do
- game:GetService("RunService").RenderStepped:Wait()
- sinnerman = sinnerman-0.1
- sinnerman2 = math.sin(sinnerman*1.25)
- print(sinnerman .. " I AM SIN")
- cameratilterman2 = cameratiltermax*sinnerman2
- cameratilterman3 = cameratiltermax2*sinnerman2
- cam.CFrame = cam.CFrame*CFrame.Angles(math.rad(cameratilterman3),0,math.rad(cameratilterman2))
- end
- end
- befh = hum.Health
- end)
- function tilterepic(maxnumbman,slideringman)
- coroutine.resume(coroutine.create(function()
- if maxnumbman ~= 0 then
- local sinnerman = 0
- local slidingtruth = false
- if slideringman ~= nil then
- if slideringman == true then
- slidingtruth = true
- end
- end
- for i = 20,1,-1 do
- if slidingtruth == false then
- if wallrunning == false then return end
- end
- if slidingtruth == true then
- if sliding == false then return end
- end
- game:GetService("RunService").RenderStepped:Wait()
- if camerakill == true then return end
- sinnerman = sinnerman+0.05
- sinnerman = math.sin(sinnerman*1.25)
- print(sinnerman .. " I AM SIN2")
- cameratilterman = maxnumbman*sinnerman
- end
- else
- print("I AM ZERO BOYO")
- local cameratiltermax = cameratilterman
- local sinnerman = 1
- local sinnerman2 = 0
- for i = 10,1,-1 do
- game:GetService("RunService").RenderStepped:Wait()
- if camerakill == true then return end
- sinnerman = sinnerman-0.1
- sinnerman2 = math.sin(sinnerman*1.25)
- print(sinnerman .. " I AM SIN")
- cameratilterman = cameratiltermax*sinnerman2
- end
- wait()
- cameratilterman = 0
- end
- end))
- end
- local rolldel =false
- function roll()
- if sliding == true then return end
- if hitfloor == false then return end
- if wallrunning == true then return end
- if rolldel == true then return end
- rolldel = true
- randomclothrollsound(true)
- rollingsound.TimePosition = 0.3
- rollingsound:Play()
- root.Velocity = Vector3.new(0,0,0)
- local x, y, z = root.CFrame:ToEulerAnglesYXZ()
- rollering = true
- tricksinarow = tricksinarow+1
- local rollmancf = CFrame.new(Vector3.new(root.Position.X,floorpositiony+1.5,root.Position.Z))*CFrame.Angles(0, y, 0)
- root.CFrame = rollmancf
- wait()
- root.Velocity = Vector3.new(0,0,0)
- flow = flow+(flowmax-flowmin)/8
- runvel.Velocity = (root.CFrame.LookVector*hum.WalkSpeed)
- local bp = Instance.new("BodyPosition",torso)
- bp.Position = Vector3.new(0,floorpositiony,0)
- bp.MaxForce = Vector3.new(0,999999999,0)
- bp.P = 25000
- hum.PlatformStand = true
- runvel.MaxForce = Vector3.new(99999,99999,99999)
- gyro.CFrame = rollmancf
- gyro.P = 99999
- gyro.MaxTorque = Vector3.new(99999,99999,99999)
- rollplay:Play()
- local lookcfog = cam.CFrame
- local angle = 0
- rollplay:AdjustSpeed(0)
- rollplay.TimePosition = 1
- local rotatenumb = -18
- if gobackroll == true then
- rotatenumb = 18
- end
- for i = 20,1,-1 do
- rs.Heartbeat:Wait()
- if camerakill == true then return end
- runvel.MaxForce = Vector3.new(99999,99999,99999)
- runvel.Velocity = rollmancf.LookVector*-rotatenumb*3
- gyro.CFrame = gyro.CFrame*CFrame.Angles(math.rad(rotatenumb),0,0)
- root.CFrame = gyro.CFrame
- end
- runvel.MaxForce = Vector3.new(0,0,0)
- rollplay:Stop()
- hum.PlatformStand = false
- rollering = false
- bp:Destroy()
- gyro.P = befpower
- runvel.MaxForce = Vector3.new(0,0,0)
- gyro.MaxTorque = Vector3.new(0,0,0)
- root.Velocity = Vector3.new(0,0,0)
- root.Velocity = Vector3.new(0,0,0)
- rolldel = false
- if rotatenumb == 18 then
- cam.CFrame = lookcfog
- end
- wait()
- end
- local cdown = false
- UIS.InputBegan:Connect(function(input,g)
- if input.KeyCode == Enum.KeyCode.C then
- if g then return end
- cdown = true
- end
- if input.KeyCode == Enum.KeyCode.P then
- if g then return end
- hum:TakeDamage(1)
- end
- end)
- UIS.InputEnded:Connect(function(input,g)
- if input.KeyCode == Enum.KeyCode.C then
- if g then return end
- cdown = false
- end
- end)
- wallrunable = false
- wallrunning = false
- hitfloor = false
- leftwallrunning = false
- rightwallrunning = false
- onfloor = false
- frontwallrunning = false
- fronthit = false
- rs = game:GetService("RunService")
- cam = workspace.CurrentCamera
- UIS.InputBegan:Connect(function(input,gamestuff)
- if input.KeyCode == Enum.KeyCode.X then
- if camerakill == true then return end
- if gamestuff then return end
- if camerakill == false then
- for i = 5,1,-1 do
- rs.RenderStepped:Wait()
- if camerakill == true then return end
- cam.CFrame = cam.CFrame*CFrame.Angles(0,math.rad(35),0)
- end
- end
- end
- end)
- local rollering = false
- coroutine.resume(coroutine.create(function()
- while true do
- if camerakill == true then return end
- rs.RenderStepped:Wait()
- if combattime > 0.05 then
- if combatmusic.Volume ~= 0.5 then
- combatmusic.Volume = 0.5
- ambience.Volume = 0
- explorationmusic.Volume = 0
- combatmusic:Play()
- end
- combattime = combattime-0.01
- else
- combattime = 0
- if combatmusic.Volume == 0.5 then
- combatmusic.Volume = 0
- ambience.Volume = 0.5
- explorationmusic.Volume = 0
- end
- end
- if rolldel == true or downed == true then
- if camerakill == true then return end
- cam.CFrame = char:WaitForChild("Head").CFrame
- end
- if camerakill == false then
- winder.Volume = root.Velocity.Magnitude*0.015
- if winder.Volume > 5 then
- winder.Volume = 5
- end
- winder.PlaybackSpeed = root.Velocity.Magnitude*0.015
- if winder.PlaybackSpeed > 4 then
- winder.PlaybackSpeed = 4
- end
- windercloth.Volume = root.Velocity.Magnitude*0.015
- if windercloth.Volume > 5 then
- windercloth.Volume = 5
- end
- windercloth.PlaybackSpeed = root.Velocity.Magnitude*0.015
- if windercloth.PlaybackSpeed > 2 then
- windercloth.PlaybackSpeed = 2
- end
- end
- if rolldel == false and wallrunning == false and sliding == false and downed == false and holding == false then
- hum.AutoRotate = true
- if slidingsound.IsPlaying == true then
- slidingsound:Stop()
- end
- if wallrunningsound.IsPlaying == true then
- wallrunningsound:Stop()
- end
- else
- hum.AutoRotate = false
- if wallrunning == true then
- if wallrunningsound.IsPlaying == false then
- wallrunningsound:Play()
- end
- else
- if wallrunningsound.IsPlaying == true then
- wallrunningsound:Stop()
- end
- end
- if sliding == true then
- if slidingsound.IsPlaying == false then
- slidingsound:Play()
- end
- else
- if slidingsound.IsPlaying == true then
- slidingsound:Stop()
- end
- end
- end
- end
- end))
- function wallrunabletrue()
- coroutine.resume(coroutine.create(function()
- if hitfloor == true then return end
- wallrunable = true
- wait(0.05)
- wallrunable = false
- end))
- end
- wallrundel = false
- function verticalwallrun(grav2)
- coroutine.resume(coroutine.create(function()
- if wallrundel == true then return end
- if wallrunning == true then return end
- if downed == true then return end
- if cdown == true then return end
- if wallrunable == false then return end
- if fronthit then
- print("Made it 1")
- local rr = Ray.new(root.Position,root.CFrame.LookVector*5)
- local rhit,ray,rpoint = workspace:FindPartOnRayWithIgnoreList(rr,ignorelist)
- if rhit then
- if rhit then
- wallrunning = false
- wait()
- tilterepic(0)
- tricksinarow = tricksinarow+1
- wallrunning = true
- gyro.CFrame = CFrame.new(root.Position,root.Position+rpoint)*CFrame.Angles(math.rad(-22),math.rad(180),0)
- gyro.MaxTorque = Vector3.new(99999,99999,99999)
- local grav = grav2 + WallRunPower
- runvel.Velocity = Vector3.new(0,grav,0)
- print("Made it 2")
- runvel.MaxForce = Vector3.new(99999,99999,99999)
- wallrunable = false
- hum.PlatformStand = true
- randomclothrollsound()
- verticalwallrunanimplay:Play()
- while wallrunning == true do
- rs.RenderStepped:Wait()
- if camerakill == true then return end
- grav = grav-0.8
- local r2 = Ray.new(root.Position,root.CFrame.LookVector*5)
- local hit,ray,point = workspace:FindPartOnRayWithIgnoreList(r2,ignorelist)
- if hit then
- print("Made it 3")
- if hitfloor then wallrunning = false end
- if cdown == true then wallrunning = false end
- if hit then
- gyro.CFrame = CFrame.new((ray+root.CFrame.LookVector*-2),(ray+root.CFrame.LookVector*-2)+point)*CFrame.Angles(math.rad(-22),math.rad(180),0)
- runvel.Velocity = Vector3.new(0,grav,0)
- gyro.P = befpower
- if wallrunable == true then
- wallrunning = false
- gyro.MaxTorque = Vector3.new(0,0,0)
- hum.PlatformStand = false
- print("Jump")
- randomclothrollsound()
- jumplandsoundthingy:Play()
- local rannum = math.random(1,3)
- if rannum == 1 then
- jumplandsoundthingy.SoundId = "rbxassetid://6079433272"
- elseif rannum == 2 then
- jumplandsoundthingy.SoundId = "rbxassetid://6079432684"
- else
- jumplandsoundthingy.SoundId = "rbxassetid://6079431954"
- end
- bodymovesound:Play()
- hum.PlatformStand = false
- runvel.velocity = root.CFrame.LookVector*-hum.WalkSpeed+Vector3.new(0,30,0)
- wait(0.22)
- end
- else
- wallrunning = false
- end
- else
- wallrunning = false
- end
- end
- hum.PlatformStand = false
- verticalwallrunanimplay:Stop()
- gyro.MaxTorque = Vector3.new(0,0,0)
- print("Wall run ended")
- runvel.MaxForce = Vector3.new(0,0,0)
- hum:ChangeState(Enum.HumanoidStateType.Jumping)
- return
- end
- end
- end
- end))
- end
- function wallruncheck()
- if downed == true then
- if rolldel == false and downeddel == false then
- downedanim1play:Stop()
- downed = false
- hum.JumpPower = 50
- roll()
- return
- end
- end
- if sliding == true then return end
- if cdown == true then
- if hitfloor == true then
- roll()
- end
- end
- if wallrundel == true then return end
- if wallrunning == true then return end
- if wallrunable == false then return end
- if cdown == true then return end
- if dodgedel == true then return end
- wallrunable = false
- local rr = Ray.new(root.Position,root.CFrame.RightVector*3.5)
- local rhit,ray,rpoint = workspace:FindPartOnRayWithIgnoreList(rr,ignorelist)
- if rhit then
- if rhit then
- wallrunning = true
- gyro.CFrame = CFrame.new(root.Position,root.Position+rpoint)*CFrame.Angles(0,math.rad(-90),math.rad(20))
- gyro.MaxTorque = Vector3.new(99999,99999,99999)
- hum.PlatformStand = true
- local grav = 20
- runvel.Velocity = gyro.CFrame.LookVector*30+Vector3.new(0,grav,0)
- runvel.Velocity = runvel.Velocity + gyro.CFrame.RightVector*5
- runvel.MaxForce = Vector3.new(99999,99999,99999)
- rightwallrunanimplay:Play()
- randomclothrollsound()
- tricksinarow = tricksinarow+1
- tilterepic(35)
- while wallrunning == true do
- if camerakill == true then return end
- rs.RenderStepped:Wait()
- grav = grav-0.95
- local r2 = Ray.new(root.Position,root.CFrame.RightVector*5)
- local hit,ray,point = workspace:FindPartOnRayWithIgnoreList(r2,ignorelist)
- if hit then
- if hitfloor then wallrunning = false end
- if cdown == true then wallrunning = false end
- if fronthit == true then print("Face died") tilterepic(0) wallrunning = false rightwallrunanimplay:Stop() gyro.MaxTorque = Vector3.new(0,0,0)
- print("Wall run end")
- runvel.MaxForce = Vector3.new(0,0,0)wallrunable = true verticalwallrun(grav+hum.WalkSpeed) return end
- if hit then
- gyro.CFrame = CFrame.new((ray+root.CFrame.RightVector*-2),(ray+root.CFrame.RightVector*-2)+point)*CFrame.Angles(0,math.rad(-90),math.rad(20))
- runvel.Velocity = gyro.CFrame.LookVector*hum.WalkSpeed+Vector3.new(0,grav,0)
- gyro.P = befpower
- if wallrunable == true then
- tilterepic(0)
- wallrunning = false
- rightwallrunanimplay:Stop()
- gyro.MaxTorque = Vector3.new(0,0,0)
- hum.PlatformStand = false
- jumplandsoundthingy:Play()
- randomclothrollsound()
- local rannum = math.random(1,3)
- if rannum == 1 then
- jumplandsoundthingy.SoundId = "rbxassetid://6079433272"
- elseif rannum == 2 then
- jumplandsoundthingy.SoundId = "rbxassetid://6079432684"
- else
- jumplandsoundthingy.SoundId = "rbxassetid://6079431954"
- end
- bodymovesound:Play()
- runvel.velocity = cam.CFrame.LookVector*hum.WalkSpeed+Vector3.new(0,30,0)
- wait(0.22)
- end
- else
- wallrunning = false
- end
- else
- wallrunning = false
- end
- end
- tilterepic(0)
- hum.PlatformStand = false
- rightwallrunanimplay:Stop()
- gyro.MaxTorque = Vector3.new(0,0,0)
- print("Wall run end")
- runvel.MaxForce = Vector3.new(0,0,0)
- return
- end
- end
- local rl = Ray.new(root.Position,root.CFrame.RightVector*-3.5)
- local lhit,ray,rpoint = workspace:FindPartOnRayWithIgnoreList(rl,ignorelist)
- if lhit then
- if lhit then
- wallrunning = true
- gyro.CFrame = CFrame.new(root.Position,root.Position+rpoint)*CFrame.Angles(0,math.rad(90),math.rad(-20))
- gyro.MaxTorque = Vector3.new(99999,99999,99999)
- gyro.P = 250
- local grav = 20
- runvel.Velocity = (gyro.CFrame.LookVector*30+Vector3.new(0,grav,0))
- runvel.Velocity = runvel.Velocity + gyro.CFrame.RightVector*-5
- hum.PlatformStand = true
- leftwallrunanimplay:Play()
- randomclothrollsound()
- tilterepic(-35)
- tricksinarow = tricksinarow+1
- runvel.MaxForce = Vector3.new(99999,99999,99999)
- while wallrunning == true do
- if camerakill == true then return end
- rs.RenderStepped:Wait()
- if hitfloor then wallrunning = false end
- if fronthit == true then print("Face died") tilterepic(0) wallrunning = false leftwallrunanimplay:Stop() gyro.MaxTorque = Vector3.new(0,0,0)
- print("Wall run end")
- runvel.MaxForce = Vector3.new(0,0,0) wallrunable= true verticalwallrun(grav+hum.WalkSpeed) return end
- rs.RenderStepped:Wait()
- if camerakill == true then return end
- grav = grav-0.95
- local r2 = Ray.new(root.Position,root.CFrame.RightVector*-5)
- local hit,ray,point = workspace:FindPartOnRayWithIgnoreList(r2,ignorelist)
- if hit then
- if cdown == true then wallrunning = false end
- if hit then
- gyro.CFrame = CFrame.new((ray+root.CFrame.RightVector*2),(ray+root.CFrame.RightVector*2)+point)*CFrame.Angles(0,math.rad(90),math.rad(-20))
- runvel.Velocity = gyro.CFrame.LookVector*hum.WalkSpeed+Vector3.new(0,grav,0)
- gyro.P = befpower
- if wallrunable == true then
- wallrunning = false
- tilterepic(0)
- leftwallrunanimplay:Stop()
- gyro.MaxTorque = Vector3.new(0,0,0)
- hum.PlatformStand = false
- jumplandsoundthingy:Play()
- randomclothrollsound()
- local rannum = math.random(1,3)
- if rannum == 1 then
- jumplandsoundthingy.SoundId = "rbxassetid://6079433272"
- elseif rannum == 2 then
- jumplandsoundthingy.SoundId = "rbxassetid://6079432684"
- else
- jumplandsoundthingy.SoundId = "rbxassetid://6079431954"
- end
- bodymovesound:Play()
- runvel.velocity = cam.CFrame.LookVector*hum.WalkSpeed+Vector3.new(0,30,0)
- wait(0.22)
- end
- else
- wallrunning = false
- end
- else
- wallrunning = false
- end
- end
- hum.PlatformStand = false
- leftwallrunanimplay:Stop()
- tilterepic(0)
- gyro.MaxTorque = Vector3.new(0,0,0)
- print("Wall run end")
- runvel.MaxForce = Vector3.new(0,0,0)
- return
- end
- end
- wallrunable = true
- verticalwallrun(hum.WalkSpeed+20)
- end
- local spacedown = false
- local backjumpdel = false
- local backhit = false
- UIS.InputBegan:Connect(function(inpt,gamestuff)
- if inpt.KeyCode == Enum.KeyCode.Space then
- if gamestuff then return end
- if wallrunning == false then
- if sliding == false then
- if backhit == true then
- if hitfloor == false then
- jumplandsoundthingy:Play()
- randomclothrollsound(false)
- root.Velocity = root.CFrame.LookVector*120+Vector3.new(0,40,0)
- end
- end
- end
- end
- wallrunabletrue()
- wallruncheck()
- if sliding == true then
- spacedown = true
- wait(0.1)
- spacedown = false
- end
- wait(0.1)
- if wallrunning == false then
- if rolldel == false then
- if backjumpdel == false then
- end
- end
- end
- end
- end)
- function slide()
- coroutine.resume(coroutine.create(function()
- if downed == true then return end
- if sliding == true then return end
- sliding = true
- randomclothrollsound()
- tilterepic(-15,true)
- hum.PlatformStand = true
- gyro.MaxTorque = Vector3.new(99999,99999,99999)
- gyro.P = befpower*3
- runvel.MaxForce = Vector3.new(99999,99999,99999)
- local ogcf = root.CFrame
- local befrooty = root.Position.Y
- local ogcf = root.CFrame
- gyro.CFrame = ogcf*CFrame.Angles(math.rad(80),0,0)
- print("BEGINSLIDE")
- tricksinarow = tricksinarow+1
- while sliding == true do
- rs.RenderStepped:Wait()
- if camerakill == true then return end
- runvel.Velocity = (ogcf.LookVector*flow*1.45)+Vector3.new(0,-70,0)
- slidingplay:Play()
- slidingplay:AdjustSpeed(0)
- if root.Position.Y+0.05 < befrooty then
- flow = flow+flowmax/70
- end
- befrooty = root.Position.Y
- if root.Velocity.Magnitude < 20 then
- sliding = false
- slidingplay:Stop()
- tilterepic(0,true)
- cdown = false
- break
- end
- if cdown == false then
- sliding = false
- slidingplay:Stop()
- tilterepic(0,true)
- break
- else
- end
- flow = flow-flowmax/100
- if spacedown == true then
- sliding = false
- cdown = false
- slidingplay:Stop()
- tilterepic(0,true)
- break
- end
- if flow < flowmin+5 then
- sliding = false
- flow = flowmin
- slidingplay:Stop()
- tilterepic(0,true)
- break
- end
- end
- gyro.MaxTorque = Vector3.new(0,0,0)
- gyro.P = befpower
- runvel.MaxForce = Vector3.new(0,0,0)
- hum.PlatformStand = false
- if spacedown == true and flow < flowmax then
- hum.PlatformStand = true
- sliding = false
- tilterepic(0,true)
- slidingplay:Stop()
- local x, y, z = cam.CFrame:ToEulerAnglesYXZ()
- rollering = true
- root.CFrame = CFrame.new(root.Position)*CFrame.Angles(0, y, 0)
- bodymovesound:Play()
- roll()
- return
- elseif spacedown == true and flowmax+3 < flow then
- hum.PlatformStand = false
- sliding = false
- tilterepic(0,true)
- slidingplay:Stop()
- runvel.MaxForce = Vector3.new(99999,99999,99999)
- bodymovesound:Play()
- jumplandsoundthingy:Play()
- randomclothrollsound()
- local rannum = math.random(1,3)
- if rannum == 1 then
- jumplandsoundthingy.SoundId = "rbxassetid://6079433272"
- elseif rannum == 2 then
- jumplandsoundthingy.SoundId = "rbxassetid://6079432684"
- else
- jumplandsoundthingy.SoundId = "rbxassetid://6079431954"
- end
- runvel.velocity = cam.CFrame.LookVector*flow*2+Vector3.new(0,flow,0)
- coroutine.resume(coroutine.create(function()
- local tiltnumb = 0
- local rannum = math.random(1,4)
- if rannum == 1 then
- tiltnumb = 40
- elseif rannum == 2 then
- tiltnumb = 20
- elseif rannum == 3 then
- tiltnumb = -40
- else
- tiltnumb = -20
- end
- local cameratilterman2 =tiltnumb*0.2
- local cameratiltermax = cameratilterman2
- local sinnerman = 1
- local sinnerman2 = 0
- for i = 10,1,-1 do
- game:GetService("RunService").RenderStepped:Wait()
- if camerakill == true then return end
- sinnerman = sinnerman-0.1
- sinnerman2 = math.sin(sinnerman*1.25)
- print(sinnerman .. " I AM SIN")
- cameratilterman2 = cameratiltermax*sinnerman2
- cam.CFrame = cam.CFrame*CFrame.Angles(0,0,math.rad(cameratilterman2))
- end
- end))
- wait(0.25)
- runvel.MaxForce = Vector3.new(0,0,0)
- return
- else
- hum.PlatformStand = false
- sliding = false
- return
- end
- end))
- end
- local sliding = false
- local rppos = Vector3.new(0,0,0)
- local landed = false
- local pressspacebeforeland = false
- local landdel = false
- local beforelandy = 0
- function landdeler()
- coroutine.resume(coroutine.create(function()
- landdel = true
- wait(0.2)
- landdel = false
- pressspacebeforeland = false
- beforelandy = root.Position.Y
- end))
- end
- UIS.InputBegan:Connect(function(input,gamestuff)
- if springjumpdel == true then return end
- if input.KeyCode == Enum.KeyCode.Space then
- if gamestuff == true then return end
- if hitfloor == true then
- if pressspacebeforeland == false then
- pressspacebeforeland = true
- else
- if root.Position.Y > beforelandy + VaultTolerance then
- runvel.MaxForce = Vector3.new(99999,99999,99999)
- runvel.Velocity = cam.CFrame.LookVector*flow* VaultRange +Vector3.new(0,flow/2,0) -- 2 orig
- springjumpdel = true
- randomclothrollsound()
- jumplandsoundthingy:Play()
- local rannum = math.random(1,3)
- if rannum == 1 then
- jumplandsoundthingy.SoundId = "rbxassetid://6079433272"
- elseif rannum == 2 then
- jumplandsoundthingy.SoundId = "rbxassetid://6079432684"
- else
- jumplandsoundthingy.SoundId = "rbxassetid://6079431954"
- end
- bodymovesound:Play()
- pressspacebeforeland = false
- springjumpplay:Play()
- tricksinarow = tricksinarow+1
- coroutine.resume(coroutine.create(function()
- local tiltnumb = 0
- local rannum = math.random(1,4)
- if rannum == 1 then
- tiltnumb = 40
- elseif rannum == 2 then
- tiltnumb = 20
- elseif rannum == 3 then
- tiltnumb = -40
- else
- tiltnumb = -20
- end
- local cameratilterman2 =tiltnumb*0.2
- local cameratiltermax = cameratilterman2
- local sinnerman = 1
- local sinnerman2 = 0
- for i = 10,1,-1 do
- game:GetService("RunService").RenderStepped:Wait()
- if camerakill == true then return end
- sinnerman = sinnerman-0.1
- sinnerman2 = math.sin(sinnerman*1.25)
- print("VAULT MOMENT!")
- print(sinnerman .. " I AM SIN")
- cameratilterman2 = cameratiltermax*sinnerman2
- cam.CFrame = cam.CFrame*CFrame.Angles(0,0,math.rad(cameratilterman2))
- end
- end))
- wait(0.2)
- springjumpplay:Stop()
- runvel.MaxForce = Vector3.new(0,0,0)
- wait(0.2)
- springjumpdel = false
- end
- end
- end
- end
- end)
- local plr = game.Players.LocalPlayer
- local Character = plr.Character or plr.CharacterAdded:Wait()
- local Root = Character:WaitForChild("HumanoidRootPart")
- local Head = Character:WaitForChild("Head")
- local Hum = Character:WaitForChild("Humanoid")
- local holdingon = Instance.new("Animation",hum)
- holdingon.AnimationId = "rbxassetid://148831003"
- local climbingstuffs = Instance.new("Animation",hum)
- climbingstuffs.AnimationId = "rbxassetid://125750702"
- local CA = Hum:LoadAnimation(climbingstuffs)
- local HA = Hum:LoadAnimation(holdingon)
- local TouchGui = plr:WaitForChild("PlayerGui"):FindFirstChild("TouchGui")
- local UIS = game:GetService("UserInputService")
- ledgeavailable = true
- holding = false
- function climb()
- local Vele = Instance.new("BodyVelocity",Head)
- Root.Anchored = false
- Vele.MaxForce = Vector3.new(1,1,1) * math.huge
- Vele.Velocity = Root.CFrame.LookVector * LedgePushOff + Vector3.new(0,LedgeJumpPower,0)
- HA:Stop() CA:Play()
- game.Debris:AddItem(Vele,.15)
- holding = false
- wait(.0)
- ledgeavailable = true
- end
- UIS.InputBegan:Connect(function(Key,Chat)
- if not holding then return end
- if Key.KeyCode == Enum.KeyCode.Space and not Chat then
- climb()
- end
- end)
- if TouchGui then
- TouchGui:WaitForChild("TouchControlFrame"):WaitForChild("JumpButton").MouseButton1Click:Connect(function()
- if not holding then return end climb()
- end)
- end
- while true do
- repeat rs.RenderStepped:Wait() until sliding == false
- rs.RenderStepped:Wait()
- local r = Ray.new(root.Position,root.CFrame.LookVector*-6)
- local hit,ray = workspace:FindPartOnRayWithIgnoreList(r,ignorelist)
- if hit then
- backhit = true
- else
- backhit = false
- end
- if camerakill == true then return end
- if hum.FloorMaterial == Enum.Material.Air then
- if landed == true then
- landed = false
- end
- else
- if landed == false then
- landed = true
- landdeler()
- end
- end
- local killx,killy,killz = root.CFrame:ToEulerAnglesYXZ()
- local nobadcf = CFrame.new(root.Position)*CFrame.Angles(0,killy,0)
- local rclimber = Ray.new(Head.CFrame.p, nobadcf.LookVector * 6)
- local killclimberray = Ray.new(Head.CFrame.p+Vector3.new(0,0.5,0), nobadcf.LookVector * 9)
- local killmansraypart,killmansposition workspace:FindPartOnRayWithIgnoreList(killclimberray,ignorelist)
- local part,position = workspace:FindPartOnRayWithIgnoreList(rclimber,ignorelist)
- if not killmansraypart then
- if part and ledgeavailable and not holding and not killmansraypart then
- if part.Size.Y >= 4 and part.CanCollide == true and killmansraypart == nil and part.Transparency ~= 1 then
- if Head.Position.Y >= (part.Position.Y + (part.Size.Y / 2)) - 1 and Head.Position.Y <= part.Position.Y + (part.Size.Y / 2) and Hum.FloorMaterial == Enum.Material.Air and sliding == false and downed == false and wallrunning == true then
- if HA.IsPlaying == false then
- wallrunning = false
- root.CFrame = nobadcf
- randomclothrollsound(false)
- HA:Play()
- wallrunning = false
- HA:AdjustSpeed(0)
- HA.TimePosition = 1.3
- end
- Root.Anchored = true holding = true ledgeavailable = false
- end
- end
- end
- end
- local r = Ray.new(root.Position,Vector3.new(0,1,0).Unit*-5.5)
- local hit,ray = workspace:FindPartOnRayWithIgnoreList(r,ignorelist)
- if hit then
- floorpositiony = ray.Y
- if hitfloor == false then
- hitfloor = true
- if root.Velocity.Y < -60 then
- if cdown == true then
- root.Velocity = Vector3.new(root.Velocity.X,-10,root.Velocity.Z)
- cdown = false
- roll()
- else
- if root.Velocity.Y < StunVelocity then
- downer()
- end
- end
- end
- end
- else
- if hitfloor == true then
- hitfloor = false
- end
- end
- local r = Ray.new(root.Position,root.CFrame.LookVector*1.8)
- local hit,ray,rp = workspace:FindPartOnRayWithIgnoreList(r,ignorelist)
- if hit then
- fronthit = true
- rppos = rp
- else
- fronthit = false
- end
- if hitfloor == true then
- if cdown == true then
- if flow < flowmin+5 then
- if flow ~= crouchspeed then
- flow = crouchspeed
- end
- if crouchingplay.IsPlaying == false then
- crouchingplay:Play()
- randomclothrollsound()
- end
- else
- if landed == true then
- slide()
- end
- end
- end
- end
- if cdown == false then
- if crouchingplay.IsPlaying == true then
- crouchingplay:Stop()
- end
- if walkingmode == false and hum.MoveDirection ~= Vector3.new(0,0,0) or wallrunning == true then
- flow = flow+flowmax/70
- if tricksinarow > 8 then
- if combatmusic.Volume ~= 0.5 then
- combatmusic.Volume = 0
- ambience.Volume = 0
- explorationmusic.Volume =0.5
- end
- end
- if timestanding ~= 0 then
- timestanding = 0
- end
- if flow > flowmax then
- flow = flowmax
- end
- else
- flow = flow-flowmax/23
- if combatmusic.Volume ~= 0.5 then
- timestanding = timestanding+0.05
- end
- if timestanding > 18 then
- timestanding = 0
- tricksinarow = 0
- if combatmusic.Volume ~= 0.5 then
- if ambience.Volume ~= 0.5 then
- ambience.Volume = 0.5
- explorationmusic.Volume = 0
- combatmusic.Volume = 0
- end
- end
- end
- if flow < flowmin then
- flow = flowmin
- end
- end
- end
- if downed == false then
- hum.WalkSpeed = flow
- else
- hum.WalkSpeed = 1
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement