2016-07-29 3 views
1

Salut, je suis un utilisateur sur Roblox et j'essaie d'écrire un interrupteur qui éteint 4 lumières et j'ai un erreur (c'est dans le titre)Roblox Erreur: Attendu ')' pour fermer '(' à la colonne 3), got '='

Deux blocs sont utilisés, les commutateurs Off4 et On4.

Mon code est

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) 

Les autres scripts (ce travail) que j'utilise dans ceux qui utilisent une seule lumière est

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) 

Note: Je n'utilise le sur des scripts parce que ce le seul que j'ai édité pour celui avec l'erreur. L'erreur dans le script est sur la première = à la colonne 3 et quand je l'utilise « == » au lieu de « = » alors la ligne entière devient une erreur

+0

Il suffit de mettre les conditions entre parenthèses (if()) pas les opérations. –

Répondre

1

Essayez ceci:

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

Quelques conseils:

  • x == y signifie « ne x égal y? ». C'est une condition (vrai ou faux).
  • x = y signifie "définir x à y". C'est une instruction (une commande à votre programme pour modifier la valeur de x).
  • and est un opérateur qui attend conditions à gauche et à droite.

Votre programme est de la forme

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

si vous avez besoin and et == sur la première ligne, mais ils ne font pas de sens à l'intérieur du if - vous avez besoin de quatre déclarations simples à l'aide =, il .


Vous avez vraiment pas besoin == cependant. Comparer les valeurs booléennes (comme workspace.LivingRoomLight.SpotLight.Enabled, qui sont déjà true ou false) à true est un peu bête: au lieu de if x == true then ... end il est plus agréable d'écrire simplement if x then ... end.

+0

A travaillé parfaitement! Je vous remercie! – Austinsoevil81

+0

Je suis content :) Pourriez-vous accepter ma réponse (cliquez sur le ✓) pour que votre question apparaisse comme résolue? – Lynn

+0

S'ils ne comprennent pas «si», ce n'est en aucun cas mon travail de leur enseigner «for». Cela a fait mal d'écrire cet extrait de code, mais les débutants méritent aussi une expérience de Q & A ciblée - et la question de l'OP ne portait pas sur «for». – Lynn