Ответы

Дайте скрипт для роблокс

Надо чтобы на 65 секунде играла музычка, и текст TimeLeft стал красным

(Скрипты ниже :P)

TimeLeft:

иии сам раунд скрипт

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
game.ReplicatedStorage.Time.Changed:Connect(function(value)
script.Parent.Text = tostring(value)
end -- TIME LEFT СКРИПТ!!!

-- РАУНД СКРИПТ НИЖЕ
local Players = game:GetService("Players")
local Teams = game:GetService("Teams")
local RunService = game:GetService("RunService")
local ServerStorage = game:GetService("ServerStorage")

local timee = game.ReplicatedStorage:FindFirstChild("Time")

local Lobby = 25
local Round_time = 180
local Spectator_Spawn = workspace:FindFirstChild("Lobby_Spawn")

local survivorsTeam = Teams:FindFirstChild("Hiders")
local murdererTeam = Teams:FindFirstChild("Seekers")
local SpectatorTeam = Teams:FindFirstChild("Lobby")

local lobby_T = Lobby
local round_T = Round_time

-- Переменные для управления картами
local Allpart = ServerStorage:FindFirstChild("AllMaps")
local Allparts = Allpart and Allpart:GetChildren() or {}
local currentmap = nil
local Survivor_spawn = nil
local killer_spawn = nil

if timee then
	timee.Value = lobby_T
end

-- Функция для спавна случайной карты
function RandomMap()
	if #Allparts > 0 then
		local randomIndex = math.random(1, #Allparts)
		local randomMap = Allparts[randomIndex]
		local cloneMap = randomMap:Clone()
		print("Spawning map: " .. cloneMap.Name)
		cloneMap.Parent = workspace
		currentmap = cloneMap

		-- Обновляем спавны после создания карты (ищем внутри карты)
		Survivor_spawn = currentmap:FindFirstChild("Hider_Spawn")
		killer_spawn = currentmap:FindFirstChild("Seeker_Spawn")

		-- Если не нашли, попробуем найти в других местах карты
		if not Survivor_spawn then
			Survivor_spawn = currentmap:FindFirstChild("Survivor_Spawn") or currentmap:FindFirstChild("HiderSpawn")
		end
		if not killer_spawn then
			killer_spawn = currentmap:FindFirstChild("Killer_Spawn") or currentmap:FindFirstChild("SeekerSpawn")
		end

		if not Survivor_spawn or not killer_spawn then
			warn("Не удалось найти спавны в карте: " .. cloneMap.Name)
		else
			print("Спавны успешно найдены в карте")
		end

		return true
	else
		warn("No maps found in ServerStorage:AllMaps")
		return false
	end
end

-- Функция для очистки карты
function ClearMap()
	if currentmap then
		currentmap:Destroy()
		currentmap = nil
		Survivor_spawn = nil
		killer_spawn = nil
		print("Map cleared")
	end
end

-- Функция для проверки состояния игроков
function checkRoundStatus(murderer)
	if not murderer or not murderer.Parent then
		return false
	end

	local aliveSurvivors = 0
	local players = Players:GetPlayers()
	for i = 1, #players do
		local player = players[i]
		if player.Team == survivorsTeam and player.Character then
			local humanoid = player.Character:FindFirstChild("Humanoid")
			if humanoid and humanoid.Health > 0 then
				aliveSurvivors = aliveSurvivors + 1
			end
		end
	end

	return aliveSurvivors > 0
end

-- Функция для безопасного ожидания
function safeWait(seconds)
	local start = tick()
	while tick() - start < seconds do
		task.wait()
	end
end

-- Основной игровой цикл
spawn(function()
	while true do
		

		-- Убедимся, что карта удалена в начале лобби
		ClearMap()

		lobby_T = Lobby
		if timee then
			timee.Value = lobby_T
		end

		-- Лобби фаза - карты не должно быть
		while lobby_T > 0 do
			safeWait(1)
			lobby_T = lobby_T - 1
			if timee then
				timee.Value = lobby_T
			end
		end

		-- Начало раунда - спавним карту
	
		local mapSpawned = RandomMap()

		if not mapSpawned then
			warn("Failed to spawn map, skipping round")
			task.wait(3)
			continue
		end

		if timee then
			timee.Value = round_T
		end

		local players = Players:GetPlayers()
		if #players > 0 then
			-- Ждем немного чтобы карта полностью загрузилась
			task.wait(1)

			local murderer = players[math.random(1, #players)]

			for i = 1, #players do
				local player = players[i]
				if player == murderer then
					player.Team = murdererTeam
					if player.Character and player.Character:FindFirstChild("HumanoidRootPart") and killer_spawn then
						player.Character.HumanoidRootPart.CFrame = killer_spawn.CFrame + Vector3.new(0,5,0)
					else
						warn("Не удалось телепортировать убийцу: спавн не найден или отсутствует персонаж")
					end
				else
					player.Team = survivorsTeam
					if player.Character and player.Character:FindFirstChild("HumanoidRootPart") and Survivor_spawn then
						player.Character.HumanoidRootPart.CFrame = Survivor_spawn.CFrame + Vector3.new(0,5,0)
					else
						warn("Не удалось телепортировать выжившего: спавн не найден или отсутствует персонаж")
					end
				end
			end

			safeWait(2)

			-- Фаза игры
			local roundTimer = round_T
			if timee then
				timee.Value = roundTimer
			end

			while roundTimer > 0 do
				safeWait(1)
				roundTimer = roundTimer - 1
				if timee then
					timee.Value = roundTimer
				end
				

				if not checkRoundStatus(murderer) then
					break
				end
			end
		else
			print("Нет игроков для начала раунда")
		end

		print("Раунд завершен, возвращение в лобби")

		-- Телепортируем всех в лобби
		local players = Players:GetPlayers()
		for i = 1, #players do
			local player = players[i]
			player.Team = SpectatorTeam
			if player.Character and player.Character:FindFirstChild("HumanoidRootPart") and Spectator_Spawn then
				player.Character.HumanoidRootPart.CFrame = Spectator_Spawn.CFrame + Vector3.new(0,5,0)
			end
		end

		-- Удаляем карту после завершения раунда
		ClearMap()

		safeWait(3)
	end
end)

-- Дополнительная проверка на застывшее время
spawn(function()
	while true do
		task.wait(5)
		if timee and timee.Value <= 0 then
			print("Обнаружено застывшее время, принудительное обновление")
		end
	end
end)
По дате
По рейтингу
Аватар пользователя
Ученик
1мес

Вот модифицированный скрипт раунда с добавлением музыки на 65 секунде и изменением цвета текста:

lua

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
game.ReplicatedStorage.Time.Changed:Connect(function(value)
    script.Parent.Text = tostring(value)
    
    -- Добавляем изменение цвета на 65 секунде
    if value == 65 then
        script.Parent.TextColor3 = Color3.fromRGB(255, 0, 0)  -- Красный цвет
    end
end)

-- РАУНД СКРИПТ НИЖЕ
local Players = game:GetService("Players")
local Teams = game:GetService("Teams")
local RunService = game:GetService("RunService")
local ServerStorage = game:GetService("ServerStorage")
local SoundService = game:GetService("SoundService")

local timee = game.ReplicatedStorage:FindFirstChild("Time")

local Lobby = 25
local Round_time = 180
local Spectator_Spawn = workspace:FindFirstChild("Lobby_Spawn")

local survivorsTeam = Teams:FindFirstChild("Hiders")
local murdererTeam = Teams:FindFirstChild("Seekers")
local SpectatorTeam = Teams:FindFirstChild("Lobby")

local lobby_T = Lobby
local round_T = Round_time

-- Переменные для управления картами
local Allpart = ServerStorage:FindFirstChild("AllMaps")
local Allparts = Allpart and Allpart:GetChildren() or {}
local currentmap = nil
local Survivor_spawn = nil
local killer_spawn = nil

-- Переменная для звука
local alarmSound = Instance.new("Sound")
alarmSound.SoundId = "rbxassetid://" -- Вставьте сюда ID вашего звука
alarmSound.Volume = 0.7
alarmSound.Parent = SoundService

if timee then
	timee.Value = lobby_T
end

-- Функция для спавна случайной карты
function RandomMap()
	if #Allparts > 0 then
		local randomIndex = math.random(1, #Allparts)
		local randomMap = Allparts[randomIndex]
		local cloneMap = randomMap:Clone()
		print("Spawning map: " .. cloneMap.Name)
		cloneMap.Parent = workspace
		currentmap = cloneMap

		-- Обновляем спавны после создания карты (ищем внутри карты)
		Survivor_spawn = currentmap:FindFirstChild("Hider_Spawn")
		killer_spawn = currentmap:FindFirstChild("Seeker_Spawn")

		-- Если не нашли, попробуем найти в других местах карты
		if not Survivor_spawn then
			Survivor_spawn = currentmap:FindFirstChild("Survivor_Spawn") or currentmap:FindFirstChild("HiderSpawn")
		end
		if not killer_spawn then
			killer_spawn = currentmap:FindFirstChild("Killer_Spawn") or currentmap:FindFirstChild("SeekerSpawn")
		end

		if not Survivor_spawn or not killer_spawn then
			warn("Не удалось найти спавны в карте: " .. cloneMap.Name)
		else
			print("Спавны успешно найдены в карте")
		end

		return true
	else
		warn("No maps found in ServerStorage:AllMaps")
		return false
	end
end

-- Функция для очистки карты
function ClearMap()
	if currentmap then
		currentmap:Destroy()
		currentmap = nil
		Survivor_spawn = nil
		killer_spawn = nil
		print("Map cleared")
	end
end

-- Функция для проверки состояния игроков
function checkRoundStatus(murderer)
	if not murderer or not murderer.Parent then
		return false
	end

	local aliveSurvivors = 0
	local players = Players:GetPlayers()
	for i = 1, #players do
		local player = players[i]
		if player.Team == survivorsTeam and player.Character then
			local humanoid = player.Character:FindFirstChild("Humanoid")
			if humanoid and humanoid.Health > 0 then
				aliveSurvivors = aliveSurvivors + 1
			end
		end
	end

	return aliveSurvivors > 0
end

-- Функция для безопасного ожидания
function safeWait(seconds)
	local start = tick()
	while tick() - start < seconds do
		task.wait()
	end
end

-- Функция для воспроизведения звука на 65 секунде
function playAlarmSound()
    if alarmSound then
        alarmSound:Play()
        print("Воспроизводится звук тревоги на 65 секунде!")
    end
end

-- Основной игровой цикл
spawn(function()
	while true do
		

		-- Убедимся, что карта удалена в начале лобби
		ClearMap()

		lobby_T = Lobby
		if timee then
			timee.Value = lobby_T
		end

		-- Лобби фаза - карты не должно быть
		while lobby_T > 0 do
			safeWait(1)
			lobby_T = lobby_T - 1
			if timee then
				timee.Value = lobby_T
			end
		end

		-- Начало раунда - спавним карту
	
		local mapSpawned = RandomMap()

		if not mapSpawned then
			warn("Failed to spawn map, skipping round")
			task.wait(3)
			continue
		end

		if timee then
			timee.Value = round_T
		end

		local players = Players:GetPlayers()
		if #players > 0 then
			-- Ждем немного чтобы карта полностью загрузилась
			task.wait(1)

			local murderer = players[math.random(1, #players)]

			for i = 1, #players do
				local player = players[i]
				if player == murderer then
					player.Team = murdererTeam
					if player.Character and player.Character:FindFirstChild("HumanoidRootPart") and killer_spawn then
						player.Character.HumanoidRootPart.CFrame = killer_spawn.CFrame + Vector3.new(0,5,0)
					else
						warn("Не удалось телепортировать убийцу: спавн не найден или отсутствует персонаж")
					end
				else
					player.Team = survivorsTeam
					if player.Character and player.Character:FindFirstChild("HumanoidRootPart") and Survivor_spawn then
						player.Character.HumanoidRootPart.CFrame = Survivor_spawn.CFrame + Vector3.new(0,5,0)
					else
						warn("Не удалось телепортировать выжившего: спавн не найден или отсутствует персонаж")
					end
				end
			end

			safeWait(2)

			-- Фаза игры
			local roundTimer = round_T
			if timee then
				timee.Value = roundTimer
			end

			-- Переменная для отслеживания воспроизведения звука
			local alarmPlayed = false

			while roundTimer > 0 do
				safeWait(1)
				roundTimer = roundTimer - 1
				if timee then
					timee.Value = roundTimer
				end
				
				-- Проверяем, настала ли 65 секунда и не воспроизводили ли уже звук
				if roundTimer == 65 and not alarmPlayed then
					playAlarmSound()
					alarmPlayed = true
				end

				if not checkRoundStatus(murderer) then
					break
				end
			end
		else
			print("Нет игроков для начала раунда")
		end

		print("Раунд завершен, возвращение в лобби")

		-- Телепортируем всех в лобби
		local players = Players:GetPlayers()
		for i = 1, #players do
			local player = players[i]
			player.Team = SpectatorTeam
			if player.Character and player.Character:FindFirstChild("HumanoidRootPart") and Spectator_Spawn then
				player.Character.HumanoidRootPart.CFrame = Spectator_Spawn.CFrame + Vector3.new(0,5,0)
			end
		end

		-- Удаляем карту после завершения раунда
		ClearMap()

		safeWait(3)
	end
end)

-- Дополнительная проверка на застывшее время
spawn(function()
	while true do
		task.wait(5)
		if timee and timee.Value <= 0 then
			print("Обнаружено застывшее время, принудительное обновление")
		end
	end
end)

📝 Что было добавлено:

  1. Изменение цвета текста в скрипте TimeLeft (строки 3-7)

  2. Система звука:

    • Создан объект Sound

    • Добавлена функция playAlarmSound()

    • Логика воспроизведения на 65 секунде (строки 168-172)

⚠️ Важные замечания:

  1. Замените SoundId: В строке 36 вместо "rbxassetid://" вставьте настоящий ID вашего звука из Roblox

  2. Проверьте логику времени: Убедитесь, что отсчет времени идет правильно (65 секунд = 180 - 65 = 115 оставшегося времени)

Если хотите, чтобы текст возвращался к исходному цвету после 65 секунды, добавьте соответствующую логику изменения цвета обратно!

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

У дипсика попроси,хотя он навряд ли научился делатт скрипты