Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Roblox Lua if语句即使在值为';这不是真的_Lua_Roblox - Fatal编程技术网

Roblox Lua if语句即使在值为';这不是真的

Roblox Lua if语句即使在值为';这不是真的,lua,roblox,Lua,Roblox,这一直是我比赛中的一个主要问题。我一直在尝试制作一个脚本来检测值是1、2、3、4还是5。但是,即使值为0,if语句仍将执行,使计时器在任何人进入电梯之前启动。这真的很烦人,我无法解决。以下是脚本: localplayers=workspace.TestMode.players 玩家。值=0 等等(5) script.Parent.Text=“等待玩家…” 函数StartTimer() 尽管如此 如果players.Value==1或2或3或4或5,则 script.Parent.Text=“15

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

localplayers=workspace.TestMode.players
玩家。值=0
等等(5)
script.Parent.Text=“等待玩家…”
函数StartTimer()
尽管如此
如果players.Value==1或2或3或4或5,则
script.Parent.Text=“15”
打印(“足够的玩家”)
等待(0.1)
其他的
script.Parent.Text=“等待玩家…”
打印(“没有足够的玩家”)
结束
如果players.Value==1或2或3或4或5,则
等待(0.9)
script.Parent.Text=“14”
其他的
script.Parent.Text=“等待玩家…”
结束
等待(0.1)
如果players.Value==1或2或3或4或5,则
等待(0.9)
script.Parent.Text=“13”
其他的
script.Parent.Text=“等待玩家…”
结束
等待(0.1)
如果players.Value==1或2或3或4或5,则
等待(0.9)
script.Parent.Text=“12”
其他的
script.Parent.Text=“等待玩家…”
结束
等待(0.1)
如果players.Value==1或2或3或4或5,则
等待(0.9)
script.Parent.Text=“11”
其他的
script.Parent.Text=“等待玩家…”
结束
等待(0.1)
如果players.Value==1或2或3或4或5,则
等待(0.9)
script.Parent.Text=“10”
其他的
script.Parent.Text=“等待玩家…”
结束
等待(0.1)
如果players.Value==1或2或3或4或5,则
等待(0.9)
script.Parent.Text=“9”
其他的
script.Parent.Text=“等待玩家…”
结束
等待(0.1)
如果players.Value==1或2或3或4或5,则
等待(0.9)
script.Parent.Text=“8”
其他的
script.Parent.Text=“等待玩家…”
结束
等待(0.1)
如果players.Value==1或2或3或4或5,则
等待(0.9)
script.Parent.Text=“7”
其他的
script.Parent.Text=“等待玩家…”
结束
等待(0.1)
如果players.Value==1或2或3或4或5,则
等待(0.9)
script.Parent.Text=“6”
其他的
script.Parent.Text=“等待玩家…”
结束
等待(0.1)
如果players.Value==1或2或3或4或5,则
等待(0.9)
script.Parent.Text=“5”
其他的
script.Parent.Text=“等待玩家…”
结束
等待(0.1)
如果players.Value==1或2或3或4或5,则
等待(0.9)
script.Parent.Text=“4”
其他的
script.Parent.Text=“等待玩家…”
结束
等待(0.1)
如果players.Value==1或2或3或4或5,则
等待(0.9)
script.Parent.Text=“3”
其他的
script.Parent.Text=“等待玩家…”
结束
等待(0.1)
如果players.Value==1或2或3或4或5,则
等待(0.9)
script.Parent.Text=“2”
其他的
script.Parent.Text=“等待玩家…”
结束
等待(0.1)
如果players.Value==1或2或3或4或5,则
等待(0.9)
script.Parent.Text=“1”
其他的
script.Parent.Text=“等待玩家…”
结束
等待(0.1)
如果players.Value==1或2或3或4或5,则
等待(0.9)
script.Parent.Text=“传送玩家…”
其他的
script.Parent.Text=“等待玩家…”
结束
结束
结束
StartTimer()

在Lua中,除
nil
false
之外的所有值都是
truthy
,因此在布尔上下文中计算时,它们将被视为
true

如果players.Value==1或2或3或4或5,则
这意味着您的if条件是
players.Value==1
true
或是
2
true
,依此类推<代码>2始终为
。因此,您的if条件总是
true

您的情况应该如下所示:

如果players.Value==1或players.Value==2或players.Value==3或players.Value==4或players.Value==5,则

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


如果players.Value>0和players.Value这不是一个答案,因为上面的人回答了,但这只是告诉您脚本有什么问题,以便您可以从中学习。如果players.Value==1或2或3或4或5,则会执行此操作。当您使用if语句时,其中包含or语句。您必须完全重新启动代码。例如,如果是players.Value==1或players.Value==2或players.Value==3等,它就会工作。这就是它不工作的原因。

您错误地使用了“或”。它应该像“如果players.Value==1或players.Value==2”那样使用。你应该阅读更多的文档,有更好的方法。你也可以查一下