Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- print("подождите 10 секунд")
- wait(10)
- local TeleportService = game:GetService("TeleportService")
- local Players = game:GetService("Players")
- local HttpService = game:GetService("HttpService")
- -- Настройки
- local SETTINGS = {
- initialPosition = Vector3.new(-1010.22, 328.23, 4.06),
- teleportDelay = 0.5,
- heightOffset = 3,
- respawnDelay = 2,
- serverHopDelay = 5, -- Уменьшенная задержка перед сменой сервера
- placeId = game.PlaceId,
- serverHopEnabled = true
- }
- -- Глобальная переменная для контроля работы скрипта
- _G.TeleportBotRunning = true
- -- Функция для безопасного выполнения
- local function safeExecute(func)
- local success, err = pcall(func)
- if not success then
- warn("Ошибка выполнения: " .. tostring(err))
- end
- return success
- end
- -- Получение списка серверов
- local function getServerList()
- local servers = {}
- local success, result = pcall(function()
- return HttpService:JSONDecode(game:HttpGet(
- "https://games.roblox.com/v1/games/" .. SETTINGS.placeId .. "/servers/Public?limit=100"
- ))
- end)
- if success and result and result.data then
- for _, server in ipairs(result.data) do
- if server.playing and server.id ~= game.JobId then
- table.insert(servers, server.id)
- end
- end
- end
- return servers
- end
- -- Основная функция телепортации
- local function teleportToPosition(position)
- local char = Players.LocalPlayer.Character
- if char and char.PrimaryPart then
- char:SetPrimaryPartCFrame(CFrame.new(position))
- return true
- end
- return false
- end
- -- Функция выполнения цикла телепортации
- local function executeTeleportCycle()
- -- Телепорт к начальной позиции
- if not teleportToPosition(SETTINGS.initialPosition) then return false end
- wait(SETTINGS.teleportDelay)
- -- Телепорт к объектам в Slapples
- local slapples = workspace:FindFirstChild("Arena") and
- workspace.Arena:FindFirstChild("island5") and
- workspace.Arena.island5:FindFirstChild("Slapples")
- if slapples then
- for _, obj in ipairs(slapples:GetChildren()) do
- if not _G.TeleportBotRunning then return false end
- local targetPart = obj:IsA("BasePart") and obj or
- (obj:IsA("Model") and (obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart")))
- if targetPart then
- local targetPos = targetPart.Position + Vector3.new(0, SETTINGS.heightOffset, 0)
- teleportToPosition(targetPos)
- wait(SETTINGS.teleportDelay / 2) -- Ускоренная телепортация между объектами
- end
- end
- end
- -- Респавн
- if Players.LocalPlayer.Character then
- Players.LocalPlayer.Character:BreakJoints()
- end
- wait(SETTINGS.respawnDelay)
- return true
- end
- -- Функция смены сервера с автоматическим перезапуском
- local function serverHopAndRestart()
- if not SETTINGS.serverHopEnabled then return end
- print("Инициируем смену сервера...")
- local servers = getServerList()
- if #servers > 0 then
- local randomServer = servers[math.random(1, #servers)]
- print("Переходим на сервер: " .. randomServer)
- -- Сохраняем состояние перед переходом
- _G.TeleportBotRunning = true
- -- Обработчик успешной телепортации
- local function onTeleport()
- print("Успешно перешли на новый сервер, запускаем скрипт снова")
- wait(2) -- Короткая задержка после перехода
- loadfile(script.Name)() -- Перезапускаем текущий скрипт
- end
- -- Обработчик ошибки телепортации
- local function onTeleportFailure(message)
- warn("Ошибка при переходе на сервер: " .. tostring(message))
- wait(5)
- serverHopAndRestart() -- Повторяем попытку
- end
- -- Пытаемся выполнить телепортацию
- pcall(function()
- TeleportService:TeleportToPlaceInstance(SETTINGS.placeId, randomServer, Players.LocalPlayer, onTeleport, onTeleportFailure)
- end)
- else
- warn("Не найдено доступных серверов! Повторная попытка через 10 секунд...")
- wait(10)
- serverHopAndRestart()
- end
- end
- -- Главный цикл выполнения
- local function mainLoop()
- while _G.TeleportBotRunning do
- if not safeExecute(executeTeleportCycle) then
- wait(1)
- continue
- end
- -- После завершения цикла - смена сервера
- if SETTINGS.serverHopEnabled then
- serverHopAndRestart()
- break -- Выходим из цикла, так как будет перезапуск
- end
- end
- end
- -- Запускаем основной цикл
- mainLoop()
- print("Автотелепорт запущен! Для остановки выполните: _G.TeleportBotRunning = false")
- -- Обработчик для автоматического перезапуска при возвращении в игру
- game:GetService("Players").LocalPlayer.OnTeleport:Connect(function(state)
- if state == Enum.TeleportState.InProgress then
- print("Обнаружена телепортация, готовимся к перезапуску...")
- elseif state == Enum.TeleportState.Failed then
- warn("Телепортация не удалась, повторная попытка...")
- wait(5)
- serverHopAndRestart()
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement