Roblox 错误:预期在第 3 列关闭“(”,而是得到“=”

嗨,我是 Roblox 上的用户,我正在尝试编写一个将关闭 4 条灯的灯开关,但是我遇到了一个错误(标题中有说明)

有 2 个块正在使用,Off4 和 On4 开关。

我的代码是

function OnClicked()
if (workspace.LivingRoomLight.SpotLight.Enabled == true) and (workspace.LivingRoomLight2.SpotLight.Enabled == true) and (workspace.LivingRoomLight3.SpotLight.Enabled == true) and (workspace.LivingRoomLight4.SpotLight.Enabled == true) then
    (workspace.LivingRoomLight.SpotLight.Enabled = false) and (workspace.LivingRoomLight2.SpotLight.Enabled == false) and (workspace.LivingRoomLight3.SpotLight.Enabled == false) and (workspace.LivingRoomLight3.SpotLight.Enabled == false)
    script.Parent.Transparency = 1
    workspace.Off4.Transparency = 0
end
end
script.Parent.ClickDetector.MouseClick:connect(OnClicked)

我在其他(正常工作的)脚本中使用的是仅使用一条灯的脚本

function OnClicked()
if (workspace.Hallwaylight.SpotLight.Enabled == true) then
    workspace.Hallwaylight.SpotLight.Enabled = false
    script.Parent.Transparency = 1
    workspace.Off.Transparency = 0
end
end
script.Parent.ClickDetector.MouseClick:connect(OnClicked)

注意:我仅使用打开脚本,因为那是我为带有错误的脚本编辑的唯一一个。在打开脚本中的错误是第 3 列的第一个 =,当我使用“==”而不是“=”时,整行就变成了一个错误。

点赞
用户257418
用户257418

尝试这个:

如果(workspace.LivingRoomLight.SpotLight.Enabled == true) and (workspace.LivingRoomLight2.SpotLight.Enabled == true) and (workspace.LivingRoomLight3.SpotLight.Enabled == true) and (workspace.LivingRoomLight4.SpotLight.Enabled == true) then
    workspace.LivingRoomLight.SpotLight.Enabled = false
    workspace.LivingRoomLight2.SpotLight.Enabled = false
    workspace.LivingRoomLight3.SpotLight.Enabled = false
    workspace.LivingRoomLight4.SpotLight.Enabled = false
    ...

一些提示:

  • x == y 表示“x是否等于y?”。这是一个条件(true或false)。
  • x = y 表示“将x设置为y”。这是一个语句(一个命令,让程序修改x的值)。
  • and是一个操作符,期望左右是条件

你的程序的形式是

如果(这四个值是true)则
  把它们都设为false
结束

所以你需要在第一行使用and==,但它们在if之内没有意义 - 你需要使用=的四个简单语句。


你不需要真正使用==。将布尔值(如workspace.LivingRoomLight.SpotLight.Enabled)与true进行比较有点愚蠢:不要写if x == true then ... end,而写成if x then ... end更好些。

2016-07-29 10:03:23