Ответы

Кто может написать скрипт для роблокс студио?

Пж напишите скрипт на смену карт, я пол дня пытаюсь вспомнить как его писать.

По дате
По рейтингу
Аватар пользователя
Ученик
2мес
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
-- ==========================================
-- Основной скрипт смены карт (ServerScript)
-- ==========================================

-- Получаем ссылки на необходимые объекты в игре
local mapsFolder = game.ServerStorage:WaitForChild("Maps") -- Папка с картами-моделями
local currentMapFolder = workspace:WaitForChild("CurrentMap") -- Папка в Workspace для текущей карты
local chosenMapValue = script:WaitForChild("ChosenMap") -- Value для хранения названия карты
local lobbySpawn = workspace.Lobby.Spawn -- Часть в лобби, куда возвращаются игроки

-- Функция для выбора случайной карты
local function chooseMap()
    local allMaps = mapsFolder:GetChildren()
    local validMaps = {}
    
    -- Собираем все модели, которые являются картами
    for _, item in ipairs(allMaps) do
        if item:IsA("Model") then
            table.insert(validMaps, item)
        end
    end
    
    -- Случайно выбираем одну карту
    local selected = validMaps[math.random(1, #validMaps)]
    chosenMapValue.Value = selected.Name
    print("Выбрана карта: " .. selected.Name)
end

-- Функция для загрузки выбранной карты в Workspace
local function loadMap()
    local mapToLoad = mapsFolder:FindFirstChild(chosenMapValue.Value)
    if mapToLoad then
        local clonedMap = mapToLoad:Clone()
        clonedMap.Parent = currentMapFolder
        print("Загружена карта: " .. chosenMapValue.Value)
    else
        warn("Карта с именем " .. chosenMapValue.Value .. " не найдена!")
    end
end

-- Функция для удаления текущей карты
local function deleteMap()
    for _, item in ipairs(currentMapFolder:GetChildren()) do
        if item:IsA("Model") then
            item:Destroy()
        end
    end
    print("Текущая карта удалена.")
end

-- Функция для телепорта всех игроков на точку спауна на карте
local function teleportPlayersToMap()
    local players = game.Players:GetPlayers()
    local mapModel = currentMapFolder:FindFirstChild(chosenMapValue.Value)
    
    if not mapModel then
        warn("Модель карты в Workspace не найдена.")
        return
    end
    
    local spawnPart = mapModel:FindFirstChild("Spawn")
    if not spawnPart then
        warn("Часть 'Spawn' на карте не найдена.")
        return
    end

    for _, player in ipairs(players) do
        if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
            -- Добавляем небольшой случайный разброс вокруг точки спауна
            local offset = CFrame.new(math.random(-5, 5), 0, math.random(-5, 5))
            player.Character.HumanoidRootPart.CFrame = spawnPart.CFrame * offset
        end
    end
    print("Игроки телепортированы на карту.")
end

-- Функция для телепорта всех игроков обратно в лобби
local function teleportPlayersToLobby()
    local players = game.Players:GetPlayers()
    
    for _, player in ipairs(players) do
        if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
            -- Добавляем небольшой случайный разброс вокруг точки спауна в лобби
            local offset = CFrame.new(math.random(-5, 10), 0, math.random(-5, 10))
            player.Character.HumanoidRootPart.CFrame = lobbySpawn.CFrame * offset
        end
    end
    print("Игроки возвращены в лобби.")
end

-- Главный цикл игры
while true do
    wait(5) -- Ожидание перед началом раунда
    
    chooseMap()   -- Выбираем карту
    loadMap()     -- Загружаем карту
    wait(1)       -- Короткая пауза на "подготовку"
    teleportPlayersToMap() -- Телепортируем игроков на карту
    
    wait(20)      -- Длительность раунда (20 секунд)
    
    teleportPlayersToLobby() -- Возвращаем игроков в лобби
    deleteMap()   -- Удаляем карту
end

Аватар пользователя
Ученик
2мес

Смену карт? Типо тп на другую карту? Сейчас.
local TeleportService = game:GetService("TeleportService")

local PLACE_ID = 123456789 -- ID твоего плейса.

function teleportPlayer(player)

TeleportService:Teleport(PLACE_ID, player)

end
Можешь редактировать код под себя, если что могу помочь.