
Key RequiredUniversal

-- Получаем сервисы
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
-- Переменные
local isFollowing = false -- Следует ли за игроком при нажатии X
local isMoving = false -- Следует ли за игроком при удержании C
local targetPlayer = nil -- Целевой игрок
local offset = Vector3.new(0, 0, 3) -- Смещение за спиной игрока
local followSpeed = 100 -- Скорость следования за игроком
local moveSpeed = 100 -- Скорость перемещения к игроку
-- Создание GUI
local screenGui = Instance.new("ScreenGui", player.PlayerGui)
screenGui.Name = "OnePunchManGui"
-- Текст "One Punch Man"
local textLabel = Instance.new("TextLabel", screenGui)
textLabel.Text = "One Punch Man"
textLabel.Font = Enum.Font.Arcade -- Квадратный шрифт
textLabel.TextColor3 = Color3.new(1, 1, 1) -- Белый цвет
textLabel.TextSize = 50 -- Размер текста
textLabel.BackgroundTransparency = 1
textLabel.Size = UDim2.new(0.5, 0, 0.1, 0) -- Размер
textLabel.Position = UDim2.new(0.25, 0, 0.4, 0) -- Центр экрана
textLabel.TextTransparency = 0
-- Анимация исчезновения текста
local tweenInfo = TweenInfo.new(10, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
local goal = {TextTransparency = 1}
local tween = TweenService:Create(textLabel, tweenInfo, goal)
tween:Play() -- Запуск анимации
tween.Completed:Connect(function()
textLabel:Destroy() -- Удаляем текст после анимации
end)
-- Создание кнопки "Перемещение"
local moveButton = Instance.new("TextButton", screenGui)
moveButton.Text = "Перемещение"
moveButton.Font = Enum.Font.SourceSans
moveButton.TextSize = 20
moveButton.Size = UDim2.new(0.2, 0, 0.05, 0)
moveButton.Position = UDim2.new(0.01, 0, 0.1, 0)
moveButton.BackgroundColor3 = Color3.new(0.2, 0.2, 0.8)
moveButton.TextColor3 = Color3.new(1, 1, 1)
-- Создание кнопки "Перемещение 2"
local followButton = Instance.new("TextButton", screenGui)
followButton.Text = "Перемещение 2"
followButton.Font = Enum.Font.SourceSans
followButton.TextSize = 20
followButton.Size = UDim2.new(0.2, 0, 0.05, 0)
followButton.Position = UDim2.new(0.01, 0, 0.2, 0)
followButton.BackgroundColor3 = Color3.new(0.8, 0.2, 0.2)
followButton.TextColor3 = Color3.new(1, 1, 1)
-- Функция для нахождения ближайшего игрока
local function getClosestPlayer()
local closestPlayer = nil
local shortestDistance = math.huge
for _, otherPlayer in pairs(Players:GetPlayers()) do
if otherPlayer ~= player and otherPlayer.Character and otherPlayer.Character:FindFirstChild("HumanoidRootPart") then
local otherCharacter = otherPlayer.Character
local distance = (character.HumanoidRootPart.Position - otherCharacter.HumanoidRootPart.Position).Magnitude
if distance < shortestDistance then
shortestDistance = distance
closestPlayer = otherPlayer
end
end
end
return closestPlayer
end
-- Функция для перемещения к ближайшему игроку (C)
local function moveToClosestPlayer(deltaTime)
if targetPlayer and targetPlayer.Character and targetPlayer.Character:FindFirstChild("HumanoidRootPart") then
local targetPosition = targetPlayer.Character.HumanoidRootPart.Position
local currentPosition = character.HumanoidRootPart.Position
local direction = (targetPosition - currentPosition).Unit
local newPosition = currentPosition + direction * moveSpeed * deltaTime
character.HumanoidRootPart.CFrame = CFrame.new(newPosition, targetPosition)
else
isMoving = false -- Если цель потеряна, останавливаем движение
end
end
-- Функция для следования за спину игрока (X)
local function followPlayer(deltaTime)
if targetPlayer and targetPlayer.Character and targetPlayer.Character:FindFirstChild("HumanoidRootPart") then
local targetRootPart = targetPlayer.Character.HumanoidRootPart
local targetPosition = targetRootPart.Position - targetRootPart.CFrame.LookVector * offset.Z
local currentPosition = character.HumanoidRootPart.Position
local direction = (targetPosition - currentPosition).Unit
local newPosition = currentPosition + direction * followSpeed * deltaTime
character.HumanoidRootPart.CFrame = CFrame.new(newPosition, targetRootPart.Position)
else
isFollowing = false -- Если цель потеряна, останавливаем следование
end
end
-- Логика кнопки "Перемещение"
moveButton.MouseButton1Click:Connect(function()
targetPlayer = getClosestPlayer()
if targetPlayer then
isMoving = not isMoving
print(isMoving and "Перемещение включено." or "Перемещение выключено.")
else
print("Рядом нет игроков для перемещения.")
end
end)
-- Логика кнопки "Перемещение 2"
followButton.MouseButton1Click:Connect(function()
targetPlayer = getClosestPlayer()
if targetPlayer then
isFollowing = not isFollowing
print(isFollowing and "Следование включено." or "Следование выключено.")
else
print("Рядом нет игроков для следования.")
end
end)
-- Цикл обновления движения
RunService.Heartbeat:Connect(function(deltaTime)
if isMoving then
moveToClosestPlayer(deltaTime)
end
if isFollowing then
followPlayer(deltaTime)
end
end)



ChatGPT Moment
yes