Roblox Error: Expected ')' to close '(' at column 3), got '='

Roblox Error: Expected ')' to close '(' at column 3), got '='

嗨,我是 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)

注意:我只使用 on 脚本,因为这是我为出现错误的脚本编辑的唯一脚本。 on 脚本中的错误是第 3 列的第一个 =,当我​​使用 '==' 而不是 '=' 时,整行变成错误

试试这个:

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
    workspace.LivingRoomLight2.SpotLight.Enabled = false
    workspace.LivingRoomLight3.SpotLight.Enabled = false
    workspace.LivingRoomLight4.SpotLight.Enabled = false
    ...

一些建议:

  • x == y 表示“x 等于 y 吗?”。这是一个条件(真或假)。
  • x = y 表示“将 x 设置为 y”。它是一个语句(命令你的程序修改x的值)。
  • and 是一个期望 conditions 左右的运算符。

你的程序是这样的形式

if (these four values are true) then
  set each of them to false
end

所以您需要在第一行使用 and==,但它们在 if 中没有意义 — 您需要使用 = 的四个简单语句, 那里.


不过你并不真的需要 ==。将布尔值(如 workspace.LivingRoomLight.SpotLight.Enabled,已经是 truefalse)与 true 进行比较有点愚蠢:写 if x == true then ... endif x == true then ... end 更好=30=].