Roblox Screen GUI проблемы - PullRequest
0 голосов
/ 05 мая 2020

Мне было интересно, нужно ли было что-то сделать, чтобы изменить текст GUI в середине игры. Потому что моя проблема в том, что я делаю таймер, который проходит через «Идет раунд», «Игра окончена», «Перерыв», «Идет голосование», а затем повторяется до бесконечности. Но сам текст застревает на Round In Progress. На протяжении всего таймера текстовое значение в свойствах метки меняется, но текст на экране не меняется GUI

Я каждый раз меняю текст одним и тем же методом:

status.Text = "Game over"

тогда у меня будет таймер go около 5 секунд, прежде чем я снова его изменю:

status.Text = "Intermission"

И так далее в al oop ...

Это весь код:

local rep = game:GetService("ReplicatedStorage")
local players = game:GetService("Players")
local minutesvalue = rep:WaitForChild("Minutes")
local secondsvalue = rep:WaitForChild("Seconds")
local minutes = 0 --minutes
local seconds = 11 --seconds
local status = game.StarterGui.Status:WaitForChild("Status")

while true do
    status.Text = "Round In Progress"
    minutesvalue.Value = minutes
    secondsvalue.Value = seconds

    repeat
        if secondsvalue.Value <= 0 then
            minutesvalue.Value = minutesvalue.Value - 1
            secondsvalue.Value = 59
        else
            secondsvalue.Value = secondsvalue.Value - 1
        end
        wait(1)
    until secondsvalue.Value <= 0 and minutesvalue.Value <= 0

    status.Text = "Game Over!"

    wait(5)

    status.Text = "Intermission"
    secondsvalue.Value = 15

    repeat
        secondsvalue.Value = secondsvalue.Value - 1
        wait(1)
    until secondsvalue.Value <= 0 and minutesvalue.Value <= 0

    status.Text = "Voting In Progress"

    secondsvalue.Value = 10
    repeat
        secondsvalue.Value = secondsvalue.Value - 1
        wait(1)
    until secondsvalue.Value <= 0 and minutesvalue.Value <= 0
    status.Text = "Loading Map..."

end

Таймер и статус являются отдельными графическими интерфейсами. Я разделил его в надежде, что это сработает, но не вышло.

1 Ответ

1 голос
/ 05 мая 2020

Это потому, что вы делаете это в Starter Gui, я уверен, сделайте это в Player Gui, поэтому замените:

local status = game.StarterGui.Status:WaitForChild("Status")

на :

local status = players[plr].PlayerGui:WaitForChild("Status")

(Определить plr)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...