2016-07-29 6 views
1

Hallo Ich bin ein Benutzer auf Roblox und ich versuche, einen Lichtschalter zu skripten, der 4 Lichter ausschaltet und ich habe ein Fehler (im Titel)Roblox Fehler: Erwartet ')' zu schließen '(' in Spalte 3), bekam '='

Es werden 2 Blöcke verwendet, der Schalter Off4 und On4.

Mein Code ist

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) 

Die anderen Skripten (die Arbeit) Ich habe diejenigen verwenden, die nur ein Licht verwenden, wird

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) 

Hinweis: Ich habe nur die Skripte verwende, weil das ist der einzige, den ich für den mit dem Fehler bearbeitet habe. Der Fehler in der am Skript ist die erste = in Spalte 3 und wenn ich ‚==‘ anstelle von ‚=‘ benutzen dann die ganze Zeile wird ein Fehler

+0

Setzen Sie einfach Bedingungen in Klammern (if()) nicht Operationen. –

Antwort

1

Versuchen Sie folgendes:

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 
    ... 

Einige Hinweise:

  • x == y bedeutet „tut x gleich y?“. Es ist eine Bedingung (entweder wahr oder falsch).
  • x = y bedeutet "set x zu y". Es ist eine Anweisung (ein Befehl an Ihr Programm, um den Wert von x zu ändern).
  • and ist ein Operator, der Bedingungen zu seiner linken und rechten Seite erwartet.

Ihr Programm ist von der Form

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

, so dass Sie and und == auf der ersten Linie brauchen, aber sie keinen Sinn in der if machen - Sie vier einfache Aussagen müssen = verwenden, gibt .


Sie nicht wirklich brauchen == though. Vergleiche boolesche Werte (wie workspace.LivingRoomLight.SpotLight.Enabled, die bereits true oder false sind) zu true ist ein bisschen albern: statt if x == true then ... end ist es schöner, einfach if x then ... end zu schreiben.

+0

Arbeitete perfekt! Vielen Dank! – Austinsoevil81

+0

Ich bin froh :) Könnten Sie meine Antwort akzeptieren (klicken Sie auf ✓), damit Ihre Frage als gelöst angezeigt wird? – Lynn

+0

Wenn sie 'if' nicht verstehen, ist es in keiner Weise meine Aufgabe, sie über' for' zu unterrichten. Es tat weh, diesen Codeschnipsel zu schreiben, aber Anfänger verdienen auch eine fokussierte Q & A-Erfahrung - und die Frage des OP ging es nicht um 'für'. – Lynn

Verwandte Themen