テキストはプレーヤー2でのみ変更され、プレーヤー1では変更されません

Aug 18 2020

そこで、このスクリプト(通常のスクリプト)を入力して、2人のプレーヤーがゲームに参加しているときにテキストを変更しましたが、問題は、プレーヤー2が後でゲームに参加すると、テキストがプレーヤー2にのみ変更され、プレーヤー1には何も起こらないことです(挿入しました)テキストラベルが変更されるテキストラベル内のスクリプト)およびプレーヤー1がゲームを終了しても、テキストは変更されません。とにかく、スクリプトは次のとおりです。

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

回答

EliaGames Aug 29 2020 at 07:37

これでエラーが修正されます

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