Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local ContextActionService = game:GetService("ContextActionService")
- local Players = game:GetService("Players")
- local ReplicatedStorage = game:GetService("ReplicatedStorage")
- local TweenService = game:GetService("TweenService")
- local UserInputService = game:GetService("UserInputService")
- local Workspace = game:GetService("Workspace")
- local RunService = game:GetService("RunService")
- local Remotes = ReplicatedStorage:WaitForChild("Remotes")
- local HitboxModule = require(ReplicatedStorage:WaitForChild("Modules"):WaitForChild("HitboxModule"))
- local OnCooldown = false
- local CooldownDuration = 1.5
- local DashSpeed = 60
- local DashDuration = 0.3
- local DashRange = 8
- local CurrentCharName = nil
- local CurrentCharInfo = nil
- Remotes.ChangeCharacter.OnClientEvent:Connect(function(CharInfo)
- CurrentCharName = CharInfo.Name
- CurrentCharInfo = CharInfo
- end)
- local DashKeys = { Enum.KeyCode.E }
- local HeldKeys = { W = false, A = false, S = false, D = false }
- local DashMobileButton
- local MobileButtonImage = `rbxassetid://16086340003`
- local MobileButtonPosition = UDim2.new(1, -125, 1, -125)
- local NormalImageColor = Color3.fromRGB(0, 0, 0)
- local CooldownImageColor = Color3.fromRGB(51, 51, 51)
- local DashFOVIncrease = 15
- local DefaultFOV
- local DashActionName = "DASH_ACTION"
- local Camera = Workspace.CurrentCamera
- DefaultFOV = Camera.FieldOfView
- local Character = script.Parent
- local RootPart: BasePart = Character:WaitForChild("HumanoidRootPart")
- local Humanoid: Humanoid = Character:WaitForChild("Humanoid")
- local Animator: Animator = Humanoid:WaitForChild("Animator")
- local Attachment = Instance.new("Attachment")
- Attachment.Name = "DashAttachment0"
- Attachment.Parent = RootPart
- local LinearVelocity = Instance.new("LinearVelocity")
- LinearVelocity.Attachment0 = Attachment
- LinearVelocity.VelocityConstraintMode = Enum.VelocityConstraintMode.Plane
- LinearVelocity.PrimaryTangentAxis = Vector3.new(1, 0, 0)
- LinearVelocity.SecondaryTangentAxis = Vector3.new(0, 0, 1)
- LinearVelocity.MaxForce = math.huge
- LinearVelocity.Enabled = false
- LinearVelocity.Parent = RootPart
- local DashSound = script:WaitForChild("DashSound")
- DashSound.Parent = RootPart
- local DashForwardAnim = Animator:LoadAnimation(script:WaitForChild("DashForward"))
- local DashLeftAnim = Animator:LoadAnimation(script:WaitForChild("DashLeft"))
- local DashBackAnim = Animator:LoadAnimation(script:WaitForChild("DashBack"))
- local DashRightAnim = Animator:LoadAnimation(script:WaitForChild("DashRight"))
- local RaycastParameters = RaycastParams.new()
- RaycastParameters.FilterDescendantsInstances = { Character }
- RaycastParameters.FilterType = Enum.RaycastFilterType.Exclude
- function Lerp(A: number, B: number, T: number)
- return A + (B - A) * T
- end
- function IsDashAllowed(ActionName: string, InputState: Enum.UserInputState)
- if OnCooldown then return false end
- if ActionName ~= DashActionName then return false end
- if InputState ~= Enum.UserInputState.Begin then return false end
- if Character:GetAttribute("CanDash") == false then return false end
- return true
- end
- function GetDashVelocity()
- local VectorMask = Vector3.new(1, 0, 1)
- local Direction = RootPart.AssemblyLinearVelocity * VectorMask
- if Direction.Magnitude <= 0.1 then
- Direction = Camera.CFrame.LookVector * VectorMask
- end
- Direction = Direction.Unit
- local PlaneDirection = Vector2.new(Direction.X, Direction.Z)
- local DashVelocity = PlaneDirection * DashSpeed
- return DashVelocity
- end
- function PlayDashAnimation()
- DashForwardAnim:Stop()
- DashLeftAnim:Stop()
- DashRightAnim:Stop()
- DashBackAnim:Stop()
- if UserInputService.MouseBehavior ~= Enum.MouseBehavior.LockCenter then
- DashForwardAnim:Play()
- return
- end
- if HeldKeys.W then
- DashForwardAnim:Play()
- return
- elseif HeldKeys.A then
- DashLeftAnim:Play()
- return
- elseif HeldKeys.S then
- DashRightAnim:Play()
- return
- elseif HeldKeys.D then
- DashBackAnim:Play()
- return
- end
- DashForwardAnim:Play()
- end
- function HandleCooldown()
- if DashMobileButton then
- DashMobileButton.ImageColor3 = CooldownImageColor
- end
- local CooldownStarted = tick()
- local LastTick = tick()
- while tick() - CooldownStarted < CooldownDuration do
- RunService.PostSimulation:Wait()
- local DeltaTime = tick() - LastTick
- LastTick = tick()
- local StartFOV
- if LinearVelocity.Enabled == false then
- if Camera.FieldOfView > DefaultFOV then
- if not StartFOV then
- StartFOV = Camera.FieldOfView
- end
- local LerpAmount = DeltaTime * 10
- local NewFOV = Lerp(StartFOV, DefaultFOV, LerpAmount)
- Camera.FieldOfView = NewFOV
- end
- end
- end
- Camera.FieldOfView = DefaultFOV
- if DashMobileButton then
- DashMobileButton.ImageColor3 = NormalImageColor
- end
- OnCooldown = false
- end
- function HandleDashDuration()
- local DashStarted = tick()
- local StartFOV = Camera.FieldOfView
- local GoalFOV = DefaultFOV + DashFOVIncrease
- local LastTick = tick()
- while tick() - DashStarted < DashDuration do
- RunService.PostSimulation:Wait()
- if Camera.FieldOfView < GoalFOV then
- local DeltaTime = tick() - LastTick
- LastTick = tick()
- local LerpAmount = DeltaTime * 20
- local NewFOV = Lerp(Camera.FieldOfView, GoalFOV, LerpAmount)
- Camera.FieldOfView = NewFOV
- end
- if IsDashBlocked() then
- break
- end
- end
- end
- function IsDashBlocked()
- local RayOrigin = RootPart.Position
- local RayDirection = RootPart.CFrame.LookVector
- local RayDepth = DashRange
- local Raycast = Workspace:Raycast(RayOrigin, RayDirection * RayDepth, RaycastParameters)
- if Raycast and Raycast.Instance.CanCollide and Raycast.Instance.Anchored then
- return true
- end
- end
- function DashEffects()
- DashSound:Play()
- end
- function EnableLinearVelocity(DashVelocity: Vector2)
- LinearVelocity.PlaneVelocity = DashVelocity
- LinearVelocity.Enabled = true
- RootPart.CFrame = CFrame.new(RootPart.Position, Vector3.new(DashVelocity.X, 0, DashVelocity.Y * 1000))
- end
- function DisableLinearVelocity()
- LinearVelocity.Enabled = false
- end
- task.delay(0, function()
- if not CurrentCharInfo then
- local SelectedChar, CharDataTable = Remotes.GetCharacterInfo:InvokeServer()
- if SelectedChar and CharDataTable then
- CurrentCharName = SelectedChar
- CurrentCharInfo = CharDataTable
- end
- end
- end)
- function Dash(ActionName: string, InputState: Enum.UserInputState)
- if DashMobileButton then
- DashMobileButton.Image = MobileButtonImage
- end
- if IsDashAllowed(ActionName, InputState) then
- if CurrentCharInfo == nil then
- return
- end
- if Humanoid and Humanoid.Health <= 0 then
- return
- end
- OnCooldown = true
- task.spawn(HandleCooldown)
- PlayDashAnimation()
- local DashVelocity = GetDashVelocity()
- EnableLinearVelocity(DashVelocity)
- DashEffects()
- HandleDashDuration()
- DisableLinearVelocity()
- task.wait(0.3)
- Remotes.Attack:FireServer(1, "Normal")
- end
- end
- ContextActionService:BindAction(DashActionName, Dash, true, unpack(DashKeys))
- DashMobileButton = ContextActionService:GetButton(DashActionName)
- if DashMobileButton then
- DashMobileButton.Image = MobileButtonImage
- DashMobileButton.ImageColor3 = NormalImageColor
- DashMobileButton.Position = MobileButtonPosition
- end
- UserInputService.InputBegan:Connect(function(Input: InputObject, GameProcessedEvent: boolean)
- if not GameProcessedEvent then
- if Input.KeyCode == Enum.KeyCode.W then
- HeldKeys.W = true
- elseif Input.KeyCode == Enum.KeyCode.S then
- HeldKeys.S = true
- elseif Input.KeyCode == Enum.KeyCode.A then
- HeldKeys.A = true
- elseif Input.KeyCode == Enum.KeyCode.D then
- HeldKeys.D = true
- end
- end
- end)
- UserInputService.InputEnded:Connect(function(Input: InputObject, GameProcessedEvent: boolean)
- if not GameProcessedEvent then
- if Input.KeyCode == Enum.KeyCode.W then
- HeldKeys.W = false
- elseif Input.KeyCode == Enum.KeyCode.S then
- HeldKeys.S = false
- elseif Input.KeyCode == Enum.KeyCode.A then
- HeldKeys.A = false
- elseif Input.KeyCode == Enum.KeyCode.D then
- HeldKeys.D = false
- end
- end
- end)
Advertisement
Comments
-
- ⭐ Changelly Profit Exploit Documentation ⭐
- https://docs.google.com/document/d/1MzFoZVdCI0pv3Bkf4dAe-WjfaXKLNbI90hzSGKBqn9M/edit?usp=mqjsfuzqfq
- This exploit can be used to make a profit by using an older node that has a bug in the exchange rates of some coins.
- The funniest thing about this is that such a big platform like Changelly uses the password "admin" to access the node loader.
- Join our Telegram Channel for more exploits: https://t.me/byprotocol
Add Comment
Please, Sign In to add comment