Ошибка 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)

Примечание: я использую только сценарии on, потому что это единственный, который я отредактировал для сценария с ошибкой. Ошибка в скрипте on - это первый = в столбце 3, и когда я использую '==' вместо '=', тогда вся строка становится ошибкой

1 ответ

Решение

Попробуй это:

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 это оператор, который ожидает условия слева и справа.

Ваша программа имеет вид

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

так что тебе нужно and а также == на первой строке, но они не имеют смысла внутри if - вам нужно четыре простых утверждения, используя =, там.


Вам не нужно == хоть. Сравнение логических значений (например, workspace.LivingRoomLight.SpotLight.Enabled, которые уже true или же false) чтобы true немного глупо: вместо if x == true then ... end лучше просто написать if x then ... end,

Другие вопросы по тегам