Возможно ли это, например.новое, которое будет добавлено в инструкцию if

#roblox

Вопрос:

Мне нужна помощь со сценарием Roblox! Видите ли, я новичок и учусь использовать операторы if. Они просты, но я хочу добавить «Экземпляр. Новое(«Часть») вот пример:

если игра.Освещение.TimeOfDay == «12:00:00», затем локальная часть = Экземпляр.новый(«Часть») конец

Сработает ли это? кроме того, есть ли способ, которым я могу получить фонарик, например, когда становится 3 часа ночи, это также возможно?

Ответ №1:

Возможно ли это, например.новое, которое будет добавлено в инструкцию if

Самый простой ответ-да, это возможно. Но лучшим названием для вашего вопроса было бы :

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

И ваш код будет работать только в том случае, если он был выполнен в ту самую секунду, когда время было «03:00:00». Поэтому, поскольку это маловероятно, вам нужен способ многократно проверять время.

В других ответах рекомендуется использовать цикл с wait(seconds) функцией, чтобы повторно проверять, сколько сейчас времени. Но это приводит к проблеме, когда, если интервал ожидания слишком велик, вы можете перейти от «02:59:59» к «03:00:01» и пропустить тот решающий момент, когда это точно «03:00:00». В качестве альтернативы, если интервал ожидания слишком мал, ваш код может сработать несколько раз, когда время «03:00:00». Поэтому вам нужно что-то, чтобы убедиться, что ваш код срабатывает только один раз, когда наступает подходящее время. Я бы рекомендовал использовать освещение.Вместо этого изменился сигнал. Таким образом, вместо того, чтобы вы спрашивали, который час, он сообщит вам, когда он изменится.

Следующее, что нужно иметь в виду, — это освещение.Время дня не изменится, пока вы не скажете об этом. Таким образом, время может двигаться так быстро или так медленно, как вы говорите, но вы должны написать сценарий, чтобы он изменился. Вы можете сделать это, установив освещение.Время по часам или освещение:функция SetMinutesAfterMidnight ().

Последняя часть-найти фонарик. Я бы рекомендовал просто взять один из инструментов из набора инструментов и добавить его в качестве дочернего элемента сценария.

Полный пример того, как это может выглядеть, приведен здесь. Представьте, что это сценарий в ServerScriptService, в котором в качестве дочернего элемента сценария используется инструмент «фонарик».

 local Lighting = game:GetService("Lighting")
local Players = game:GetService("Players")

-- 1) grab a reference to the flashlight Tool
local flashlightTool = script.Flashlight


-- 2) create a different thread to handle time changes
spawn(function()
    -- round the number to avoid floating point math issues
    local oneSecond = tonumber(string.format("%.4f", 1.0 / 3600.0))
    
    -- progress the time of day
    while true do
        -- to speed up time, multiply oneSecond by 2, 3, 4, 5, 6, 10, or any factor of 60
        -- this will ensure that minutes are still hit on time
        Lighting.ClockTime  = oneSecond
        wait(1.0)
    end
end)



-- 3) listen for when the time of day changes
Lighting.Changed:Connect(function(propertyName)
    if propertyName == "TimeOfDay" then
        --print("Time of Day changed : ", Lighting.TimeOfDay)
        
        if Lighting.TimeOfDay == "03:00:00" then
            -- give everyone a flashlight
            warn("IT'S 3 AM")
            local players = Players:GetPlayers()
            for i, player in ipairs(players) do
                -- check if they already have one, and escape if they do
                if player.Backpack:FindFirstChild(flashlightTool.Name) then
                    continue
                end

                local flashlight = flashlightTool:Clone()
                flashlight.Parent = player.Backpack
            end
        end
    end
end)
 

Ответ №2:

Поместите этот код и вставьте его в localscript // StarterGui почему я поставил циклы? так что он может проверить, когда изменится время. Вам нужен пульт дистанционного управления, чтобы он был виден каждому игроку в вашей игре, если вы не используете пульты дистанционного управления, он виден только одному игроку

https://developer.roblox.com/en-us/articles/Remote-Functions-and-Events

 delay(0, function()
while true do wait(.1)
    if game.Lighting.TimeOfDay == "12:00:00" then
        print("Time Changed")
        --Put Your Code Here

    end
end
end)