Lua UI 文本 == 带或的多个字符串
Lua UI Text == multiple string's with or's
现在我是 lua 的新手,需要一点帮助这个脚本检查播放器 UI 上的一些文本,如果它等于一件事,它就会工作,例如:game:GetService("Players").LocalPlayer.PlayerGui.Main.Border.ClassLabel.Text == "UNIVERSELORD"
但是,如果我添加 or game:GetService("Players").LocalPlayer.PlayerGui.Main.Border.ClassLabel.Text == "UNIVERSELORD" or "TANKTOP"
则不起作用,无论如何它最终都会这样做,而且我不确定为什么,但是如果我只输入一个名字它会起作用,我将不胜感激,谢谢!
由于缺少详细信息,几天前您已经收到 same question closed。不清楚 为什么 你想在文本中添加“或”,所以你需要清楚地解释并提供一个例子,在一些上下文中,这种用法会有意义。
就“或”语句而言,它不会产生您想要的结果,因为它 returns 第一个被评估为非 false
的结果,所以当您有 1 or 2
表达式,结果是 1
,因为它是从左到右求值的,这不是 false
结果。同样,在您的情况下,表达式 "UNIVERSELORD" or "TANKTOP"
的计算结果为 "UNIVERSELORD"
,因为它是遇到的第一个非 false
值。
不幸的是,没有人可以告诉您如何将其更改为 到 ,因为问题中没有足够的详细信息来说明您的目标。可能是 XY Problem.
[已更新] 根据您的评论,您需要将 or
分成两个完整的比较:game:GetService("Players").LocalPlayer.PlayerGui.Main.Border.ClassLabel.Text == "UNIVERSELORD" or game:GetService("Players").LocalPlayer.PlayerGui.Main.Border.ClassLabel.Text == "TANKTOP"
在 Lua 中,任何不是 nil
或 false
的值都被认为是真实的。
所以在
if (game:GetService("Players").LocalPlayer.PlayerGui.Main.Border.ClassLabel.Text == "UNIVERSELORD" or "TANKTOP") then
getgenv().Spinloop = false print("Stopped!") return 0;
end
"TANKTOP"
是一个字符串,因此是一个真值。
or-ing 任何具有真值的东西总是真。所以 game:GetService("Players").LocalPlayer.PlayerGui.Main.Border.ClassLabel.Text
是否等于 "UNIVERSELORD"
并不重要。结果总是正确的。因此,无论文本值如何,您的 if 条件始终得到满足。
现在我是 lua 的新手,需要一点帮助这个脚本检查播放器 UI 上的一些文本,如果它等于一件事,它就会工作,例如:game:GetService("Players").LocalPlayer.PlayerGui.Main.Border.ClassLabel.Text == "UNIVERSELORD"
但是,如果我添加 or game:GetService("Players").LocalPlayer.PlayerGui.Main.Border.ClassLabel.Text == "UNIVERSELORD" or "TANKTOP"
则不起作用,无论如何它最终都会这样做,而且我不确定为什么,但是如果我只输入一个名字它会起作用,我将不胜感激,谢谢!
由于缺少详细信息,几天前您已经收到 same question closed。不清楚 为什么 你想在文本中添加“或”,所以你需要清楚地解释并提供一个例子,在一些上下文中,这种用法会有意义。
就“或”语句而言,它不会产生您想要的结果,因为它 returns 第一个被评估为非 false
的结果,所以当您有 1 or 2
表达式,结果是 1
,因为它是从左到右求值的,这不是 false
结果。同样,在您的情况下,表达式 "UNIVERSELORD" or "TANKTOP"
的计算结果为 "UNIVERSELORD"
,因为它是遇到的第一个非 false
值。
不幸的是,没有人可以告诉您如何将其更改为 到 ,因为问题中没有足够的详细信息来说明您的目标。可能是 XY Problem.
[已更新] 根据您的评论,您需要将 or
分成两个完整的比较:game:GetService("Players").LocalPlayer.PlayerGui.Main.Border.ClassLabel.Text == "UNIVERSELORD" or game:GetService("Players").LocalPlayer.PlayerGui.Main.Border.ClassLabel.Text == "TANKTOP"
在 Lua 中,任何不是 nil
或 false
的值都被认为是真实的。
所以在
if (game:GetService("Players").LocalPlayer.PlayerGui.Main.Border.ClassLabel.Text == "UNIVERSELORD" or "TANKTOP") then
getgenv().Spinloop = false print("Stopped!") return 0;
end
"TANKTOP"
是一个字符串,因此是一个真值。
or-ing 任何具有真值的东西总是真。所以 game:GetService("Players").LocalPlayer.PlayerGui.Main.Border.ClassLabel.Text
是否等于 "UNIVERSELORD"
并不重要。结果总是正确的。因此,无论文本值如何,您的 if 条件始终得到满足。