Кто может написать скрипт для роблокс студио?
Пж напишите скрипт на смену карт, я пол дня пытаюсь вспомнить как его писать.
По дате
По рейтингу
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Смену карт? Типо тп на другую карту? Сейчас.
local TeleportService = game:GetService("TeleportService")
local PLACE_ID = 123456789 -- ID твоего плейса.
function teleportPlayer(player)
TeleportService:Teleport(PLACE_ID, player)
end
Можешь редактировать код под себя, если что могу помочь.