Загрузка данных


local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")

local player = Players.LocalPlayer

local NORMAL_SPEED = 16
local SPRINT_SPEED = 24

local character
local humanoid
local sprinting = false

local function setupCharacter(char)
	character = char
	humanoid = char:WaitForChild("Humanoid")

	humanoid.WalkSpeed = NORMAL_SPEED
	sprinting = false
end

if player.Character then
	setupCharacter(player.Character)
end

player.CharacterAdded:Connect(setupCharacter)

UserInputService.InputBegan:Connect(function(input, processed)
	if processed then
		return
	end

	if input.KeyCode == Enum.KeyCode.R then
		sprinting = true
	end
end)

UserInputService.InputEnded:Connect(function(input)
	if input.KeyCode == Enum.KeyCode.R then
		sprinting = false
	end
end)

local playerGui = player:WaitForChild("PlayerGui")

local gui = Instance.new("ScreenGui")
gui.Name = "SprintGui"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.Parent = playerGui

local button = Instance.new("TextButton")

button.Name = "SprintButton"
button.Size = UDim2.fromOffset(95, 95)
button.Position = UDim2.new(1, -120, 1, -150)
button.AnchorPoint = Vector2.new(0.5, 0.5)

button.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
button.BackgroundTransparency = 0.2

button.Text = "SPRINT"
button.TextColor3 = Color3.new(1, 1, 1)
button.TextScaled = true
button.Font = Enum.Font.GothamBold

button.Visible = UserInputService.TouchEnabled
button.Parent = gui

local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(1, 0)
corner.Parent = button

local stroke = Instance.new("UIStroke")
stroke.Thickness = 2
stroke.Transparency = 0.25
stroke.Parent = button

button.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.Touch then
		sprinting = true
	end
end)

button.InputEnded:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.Touch then
		sprinting = false
	end
end)

game:GetService("RunService").Heartbeat:Connect(function()
	if not humanoid then
		return
	end

	if sprinting and humanoid.MoveDirection.Magnitude > 0.05 then
		humanoid.WalkSpeed = SPRINT_SPEED
	else
		humanoid.WalkSpeed = NORMAL_SPEED
	end
end)