gpt4 book ai didi

lua - 即使值不正确,Roblox Lua if 语句仍在执行

转载 作者:行者123 更新时间:2023-12-04 02:34:09 25 4
gpt4 key购买 nike

这是我游戏中的一个主要问题。我一直在尝试制作一个脚本来检测值何时为 1、2、3、4 或 5。但是,即使值为 0,if 语句仍将执行,使计时器在任何人进入之前启动电梯。这真的很烦人,我无法修复它。这是脚本:

local players = workspace.TestMode.Players
players.Value = 0
wait(5)
script.Parent.Text = "Waiting for players..."

function StartTimer()
while true do
if players.Value == 1 or 2 or 3 or 4 or 5 then
script.Parent.Text = "15"
print("enough players")
wait(0.1)
else
script.Parent.Text = "Waiting for players..."
print("not enough players")
end
if players.Value == 1 or 2 or 3 or 4 or 5 then
wait(0.9)
script.Parent.Text = "14"
else
script.Parent.Text = "Waiting for players..."
end
wait(0.1)
if players.Value == 1 or 2 or 3 or 4 or 5 then
wait(0.9)
script.Parent.Text = "13"
else
script.Parent.Text = "Waiting for players..."
end
wait(0.1)
if players.Value == 1 or 2 or 3 or 4 or 5 then
wait(0.9)
script.Parent.Text = "12"
else
script.Parent.Text = "Waiting for players..."
end
wait(0.1)
if players.Value == 1 or 2 or 3 or 4 or 5 then
wait(0.9)
script.Parent.Text = "11"
else
script.Parent.Text = "Waiting for players..."
end
wait(0.1)
if players.Value == 1 or 2 or 3 or 4 or 5 then
wait(0.9)
script.Parent.Text = "10"
else
script.Parent.Text = "Waiting for players..."
end
wait(0.1)
if players.Value == 1 or 2 or 3 or 4 or 5 then
wait(0.9)
script.Parent.Text = "9"
else
script.Parent.Text = "Waiting for players..."
end
wait(0.1)
if players.Value == 1 or 2 or 3 or 4 or 5 then
wait(0.9)
script.Parent.Text = "8"
else
script.Parent.Text = "Waiting for players..."
end
wait(0.1)
if players.Value == 1 or 2 or 3 or 4 or 5 then
wait(0.9)
script.Parent.Text = "7"
else
script.Parent.Text = "Waiting for players..."
end
wait(0.1)
if players.Value == 1 or 2 or 3 or 4 or 5 then
wait(0.9)
script.Parent.Text = "6"
else
script.Parent.Text = "Waiting for players..."
end
wait(0.1)
if players.Value == 1 or 2 or 3 or 4 or 5 then
wait(0.9)
script.Parent.Text = "5"
else
script.Parent.Text = "Waiting for players..."
end
wait(0.1)
if players.Value == 1 or 2 or 3 or 4 or 5 then
wait(0.9)
script.Parent.Text = "4"
else
script.Parent.Text = "Waiting for players..."
end
wait(0.1)
if players.Value == 1 or 2 or 3 or 4 or 5 then
wait(0.9)
script.Parent.Text = "3"
else
script.Parent.Text = "Waiting for players..."
end
wait(0.1)
if players.Value == 1 or 2 or 3 or 4 or 5 then
wait(0.9)
script.Parent.Text = "2"
else
script.Parent.Text = "Waiting for players..."
end
wait(0.1)
if players.Value == 1 or 2 or 3 or 4 or 5 then
wait(0.9)
script.Parent.Text = "1"
else
script.Parent.Text = "Waiting for players..."
end
wait(0.1)
if players.Value == 1 or 2 or 3 or 4 or 5 then
wait(0.9)
script.Parent.Text = "Teleporting players..."
else
script.Parent.Text = "Waiting for players..."
end
end
end
StartTimer()

最佳答案

在 Lua 中,除了 nilfalse 之外的所有值都是 truthy 所以当在 bool 上下文中评估时,它们将被视为 是的

if players.Value == 1 or 2 or 3 or 4 or 5 then

这意味着您的 if 条件是 players.Value == 1 true2 true 并且很快。 2 始终为 true。所以你的 if 条件总是 true

你的情况应该是这样的:

if players.Value == 1 or players.Value == 2 or players.Value == 3 or players.Value == 4 or players.Value == 5 then

或者你可以有一个更简单的条件,这里有一些想法:

if players.Value > 0 and players.Value <= 5 then
conditions = {[1] = true, [2] = true, [3] = true, [4] = true, [5] = true}

if conditions[players.Value] then

关于lua - 即使值不正确,Roblox Lua if 语句仍在执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62705061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com