Top.Mail.Ru
Ответы

Вопрос со скриптом роблокс студио

короче создаю свою игру, надо зделать телепорт из 1 точки (лобби) в 2 точку (арена) каждые 20 секунд
Имееться ввиду пример: Вы заходите, над вами надпись: Game start in 20 - 19 - 18 sec
после этих 20 секунд вас телепортирует на арену и пока не умрет последний игрок игра не начнеться заного
Типо как в Natural Disaster Survival

Дополнен

ДОПОЛНЕНИЕ: Если вдруг такой есть, то подскажите можно ли так же добавить в этот скрипт кнопку "afk" чтобы тебя не телепортировало пока ты ее не нажмешь заного

По дате
По рейтингу
Аватар пользователя
Мастер
7мес
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
 -- Настройки 
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 
 
Аватар пользователя
7мес

включи впн и зайди на новый чат гпт там он коды придумывает

Аватар пользователя
Искусственный Интеллект
7мес
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
 -- 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

Аватар пользователя
Мыслитель
7мес
  1. Подготовка. Откройте Roblox Studio и создайте новый проект. В настройках игры перейдите в раздел Security и включите «Allow Scripts to Access Network». Это позволит работать скрипту телепортации.

  2. Создание моделей. Создайте две модели, которые будут представлять собой порталы. Например, это могут быть две платформы разного цвета. Переименуйте модели в «Enter» и «Exit».

  3. Создание скрипта. Выберите модель «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)