Дайте скрипт для роблокс
Надо чтобы на 65 секунде играла музычка, и текст TimeLeft стал красным
(Скрипты ниже :P)
TimeLeft:
иии сам раунд скрипт
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)Вот модифицированный скрипт раунда с добавлением музыки на 65 секунде и изменением цвета текста:
lua
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)📝 Что было добавлено:
Изменение цвета текста в скрипте TimeLeft (строки 3-7)
Система звука:
Создан объект Sound
Добавлена функция playAlarmSound()
Логика воспроизведения на 65 секунде (строки 168-172)
⚠️ Важные замечания:
Замените SoundId: В строке 36 вместо "rbxassetid://" вставьте настоящий ID вашего звука из Roblox
Проверьте логику времени: Убедитесь, что отсчет времени идет правильно (65 секунд = 180 - 65 = 115 оставшегося времени)
Если хотите, чтобы текст возвращался к исходному цвету после 65 секунды, добавьте соответствующую логику изменения цвета обратно!
У дипсика попроси,хотя он навряд ли научился делатт скрипты