Il testo cambia solo per il giocatore 2 e non per il giocatore 1

Aug 18 2020

Quindi ho digitato questo script (è uno script normale) per cambiare il testo quando 2 giocatori sono nel gioco ma il problema è che quando il giocatore 2 si unisce al gioco più tardi il testo cambia solo al giocatore 2 e non succede nulla al giocatore 1 (ho inserito lo script nell'etichetta di testo dove cambierà l'etichetta di testo) e quando il giocatore 1 lascia il gioco il testo non cambia. Comunque, ecco lo script:

if #game:GetService("Players"):GetPlayers() >= 2 then
script.Parent.Text ="Intermission: 25"
wait(1)
script.Parent.Text ="Intermission: 24"
wait(1)
script.Parent.Text ="Intermission: 23"
wait(1)
script.Parent.Text ="Intermission: 22"
wait(1)
script.Parent.Text ="Intermission: 21"
wait(1)
script.Parent.Text ="Intermission: 20"
wait(1)
script.Parent.Text ="Intermission: 19"
wait(1)
script.Parent.Text ="Intermission: 18"
wait(1)
script.Parent.Text ="Intermission: 17"
wait(1)
script.Parent.Text ="Intermission: 16"
wait(1)
script.Parent.Text ="Intermission: 15"
wait(1)
script.Parent.Text ="Intermission: 14"
wait(1)
script.Parent.Text ="Intermission: 13"
wait(1)
script.Parent.Text ="Intermission: 12"
wait(1)
script.Parent.Text ="Intermission: 11"
wait(1)
script.Parent.Text ="Intermission: 10"
wait(1)
script.Parent.Text ="Intermission: 9"
wait(1)
script.Parent.Text ="Intermission: 8"
wait(1)
script.Parent.Text ="Intermission: 7"
wait(1)
script.Parent.Text ="Intermission: 6"
wait(1)
script.Parent.Text ="Intermission: 5"
wait(1)
script.Parent.Text ="Intermission: 4"
wait(1)
script.Parent.Text ="Intermission: 3"
wait(1)
script.Parent.Text ="Intermission: 2"
wait(1)
script.Parent.Text ="Intermission: 1"
wait(1)
script.Parent.Text ="Intermission: 0"
else
script.Parent.Text ="Waiting for Players"
end

Risposte

EliaGames Aug 29 2020 at 07:37

questo dovrebbe correggere gli errori

local countdown = 25
local players = 0

game:GetService("Players").PlayerAdded:Connect(function()
    players = players + 1
end)

game:GetService("Players").PlayerRemoving:Connect(function()
    players = players - 1
end)

while wait(1) do
    if players > 1 then
        script.Parent.Text = "Intermission: ".. countdown
        print("Intermission: ".. countdown)
        countdown = countdown - 1
        if countdown <= 0 then
            script.Parent.Visible = false
            countdown = 25
        end
    end
    
    if players < 2 then
        script.Parent.Text = "Intermission: ".. countdown
        print("Intermission: ".. countdown)
        countdown = 25
    end
end