Вопрос со скриптом роблокс студио
короче создаю свою игру, надо зделать телепорт из 1 точки (лобби) в 2 точку (арена) каждые 20 секунд
Имееться ввиду пример: Вы заходите, над вами надпись: Game start in 20 - 19 - 18 sec
после этих 20 секунд вас телепортирует на арену и пока не умрет последний игрок игра не начнеться заного
Типо как в Natural Disaster Survival
ДОПОЛНЕНИЕ: Если вдруг такой есть, то подскажите можно ли так же добавить в этот скрипт кнопку "afk" чтобы тебя не телепортировало пока ты ее не нажмешь заного
-- Настройки
local LOBBY_POSITION = Vector3.new(0, 10, 0) -- Координаты лобби
local ARENA_POSITION = Vector3.new(100, 10, 100) -- Координаты арены
local COUNTDOWN_TIME = 20 -- Время обратного отсчета в секундах
-- Функция телепортации всех игроков на арену
local function teleportToArena()
for _, player in pairs(game.Players:GetPlayers()) do
if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
player.Character.HumanoidRootPart.CFrame = CFrame.new(ARENA_POSITION)
end
end
end
-- Функция для телепортации всех игроков обратно в лобби
local function teleportToLobby()
for _, player in pairs(game.Players:GetPlayers()) do
if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
player.Character.HumanoidRootPart.CFrame = CFrame.new(LOBBY_POSITION)
end
end
end
-- Обратный отсчет
local function startCountdown()
local countdown = COUNTDOWN_TIME
while countdown > 0 do
for _, player in pairs(game.Players:GetPlayers()) do
player:SendNotification({
Title = "Game Starting",
Text = "Game start in " .. countdown .. " seconds",
Duration = 1
})
end
wait(1)
countdown = countdown - 1
end
teleportToArena()
end
-- Основной игровой цикл
while true do
-- Телепортируем игроков в лобби и запускаем обратный отсчет
teleportToLobby()
startCountdown()
-- Ждем, пока не останется один игрок на арене
while #game.Players:GetPlayers() > 1 do
wait(1)
end
-- Игра закончена, возвращаем всех игроков в лобби и запускаем новую игру
wait(3) -- Даем немного времени перед перезапуском
end
включи впн и зайди на новый чат гпт там он коды придумывает
-- GameController.lua
-- Сервисы
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TeleportService = game:GetService("TeleportService")
-- Определение точек спавна
local LobbySpawn = workspace:WaitForChild("LobbySpawn")
local ArenaSpawn = workspace:WaitForChild("ArenaSpawn")
-- Создание RemoteEvent для обновления GUI
local CountdownEvent = Instance.new("RemoteEvent")
CountdownEvent.Name = "CountdownEvent"
CountdownEvent.Parent = ReplicatedStorage
-- Функция для телепортации игроков
local function teleportPlayers(destination)
for _, player in ipairs(Players:GetPlayers()) do
local character = player.Character
if character and character:FindFirstChild("HumanoidRootPart") then
character.HumanoidRootPart.CFrame = destination.CFrame + Vector3.new(0, 3, 0) -- Немного поднять над точкой спавна
end
end
end
-- Функция для отображения обратного отсчета
local function startCountdown(duration)
for i = duration, 1, -1 do
CountdownEvent:FireAllClients(i)
wait(1)
end
end
-- Функция для проверки окончания игры
local function checkGameEnd()
while true do
local alivePlayers = 0
for _, player in ipairs(Players:GetPlayers()) do
local character = player.Character
if character and character:FindFirstChild("Humanoid") and character.Humanoid.Health > 0 then
alivePlayers = alivePlayers + 1
end
end
if alivePlayers <= 1 and #Players:GetPlayers() > 0 then
-- Ожидание, чтобы убедиться, что все игроки умерли
wait(3)
teleportPlayers(LobbySpawn)
startCountdown(20)
end
wait(2)
end
end
-- Основная функция управления игрой
local function gameLoop()
while true do
teleportPlayers(LobbySpawn)
startCountdown(20)
teleportPlayers(ArenaSpawn)
-- Запуск проверки окончания игры
spawn(checkGameEnd)
-- Ожидание завершения игры
-- Здесь можно добавить дополнительные условия или ожидания
wait(60) -- Например, ждать 60 секунд перед перезапуском
end
end
-- Запуск игрового цикла при запуске сервера
gameLoop()
https://chatgpt.com/share/672f685f-7884-8003-bfea-ee5723e742fa
Подготовка. Откройте Roblox Studio и создайте новый проект. В настройках игры перейдите в раздел Security и включите «Allow Scripts to Access Network». Это позволит работать скрипту телепортации.
Создание моделей. Создайте две модели, которые будут представлять собой порталы. Например, это могут быть две платформы разного цвета. Переименуйте модели в «Enter» и «Exit».
Создание скрипта. Выберите модель «Enter» и добавьте к ней скрипт. Вставьте в скрипт следующий код:
local player = game.Players.LocalPlayer
local enter = script.Parent
local exit = game.Workspace:FindFirstChild("Exit")
enter.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") then
player.Character.HumanoidRootPart.CFrame = exit.CFrame
end
end)