Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как сделать день и ночь в роблокс студио по таймингам?

片尺巳工乚 从升乂 Ученик (135), закрыт 3 месяца назад
Всем привет, мне нужна помощь, помогите написать скрипт на день и ночь, я хочу чтоб ночь в игре длилась 10 минут, а потом плавно но быстро наступал день и длился 3 минуты, зачем быстро и плавно наступала ночь и так всё по новой.
Лучший ответ
Милан Балмочных Профи (940) 3 месяца назад
lua
local Lighting = game:GetService("Lighting")

local dayLength = 180 -- Длительность дня в секундах (3 минуты)
local nightLength = 600 -- Длительность ночи в секундах (10 минут)
local transitionTime = 30 -- Время перехода между днем и ночью

local function setDay()
Lighting.TimeOfDay = "14:00:00" -- Устанавливаем день
Lighting.Brightness = 2 -- Яркость
end

local function setNight()
Lighting.TimeOfDay = "00:00:00" -- Устанавливаем ночь
Lighting.Brightness = 0.5 -- Темнота
end

local function transition(toDay)
local startTime = tick() -- Время начала перехода
local startBrightness = Lighting.Brightness

for i = 0, transitionTime, 1 do
wait(1)
local alpha = i / transitionTime
Lighting.Brightness = startBrightness * (1 - alpha) + (toDay and 2 or 0.5) * alpha
end
end

while true do
setDay()
wait(dayLength)
transition(false)
setNight()
wait(nightLength)
transition(true)
end


Этот скрипт будет постоянно переключать время суток между днем и ночью. Поместите его в `ServerScriptService`, и он будет работать в вашем игровом мире. Вы можете настроить длительность дня, ночи и время перехода по своему усмотрению.
Остальные ответы
Татьяна Просветленный (36408) 3 месяца назад
 -- Настройки 
local Lighting = game:GetService("Lighting")
local dayDuration = 3 * 60 -- Продолжительность дня в секундах (3 минуты)
local nightDuration = 10 * 60 -- Продолжительность ночи в секундах (10 минут)
local transitionTime = 10 -- Время на плавный переход в секундах

-- Функция для плавного изменения времени суток
local function lerpTimeOfDay(start, finish, duration)
local startTime = tick()
while tick() - startTime < duration do
local elapsed = tick() - startTime
local progress = elapsed / duration
local currentTime = start + (finish - start) * progress
Lighting.ClockTime = currentTime
wait(0.1) -- Плавное обновление
end
Lighting.ClockTime = finish -- Обновляем на конечное значение
end

-- Главный цикл дня и ночи
while true do
-- Ночь (от 18:00 до 6:00)
lerpTimeOfDay(18, 6, transitionTime)
wait(nightDuration)

-- День (от 6:00 до 18:00)
lerpTimeOfDay(6, 18, transitionTime)
wait(dayDuration)
end
Рустам Абдрашитов Мудрец (11001) 3 месяца назад
 local dayDuration = 3 * 60 -- 3 минуты 
local nightDuration = 10 * 60 -- 10 минут
local transitionTime = 30 -- время перехода (в секундах)

-- Функция для плавного изменения времени
local function transitionTimeOfDay(targetTime)
local startTime = game.Lighting.ClockTime
local elapsedTime = 0

while elapsedTime < transitionTime do
elapsedTime = elapsedTime + wait(1)
local alpha = elapsedTime / transitionTime -- Пропорция времени
game.Lighting.ClockTime = startTime + (targetTime - startTime) * alpha
end

game.Lighting.ClockTime = targetTime -- Устанавливаем конечное время
end

while true do
-- Ночь
transitionTimeOfDay(0) -- Устанавливаем ночь (0:00)
wait(nightDuration)

-- Переход в день
transitionTimeOfDay(12) -- Устанавливаем день (12:00)

-- День
wait(dayDuration)

-- Переход в ночь
transitionTimeOfDay(0) -- Возвращаемся к ночи (0:00)
end
Похожие вопросы