|
| 24 May 2015 10:56 AM |
How come my script won't work? I'm trying to make elevator doors but instead of having to click on them separately i wanted to make it to where both move different ways at the same time. This is the script i came up with.
speed = 0.30 door1 = script.Parent.ElevatorDoor1 door2 = script.Parent.ElevatorDoor2 open = script.open
function onClicked() if open.Value then for i=1,(door1.Size.z/speed) + 1 do wait() door1.CFrame = door1.CFrame - (door1.CFrame.lookVector * speed) door2.CFrame = door2.CFrame - (door2.CFrame.lookVector * speed) end else for i=1,(door1.Size.z/speed) + 1 do wait() door1.CFrame = door1.CFrame + (door1.CFrame.lookVector * speed) door2.CFrame = door2.CFrame + (door2.CFrame.lookVector * speed) end end end
open.ClickDetector.MouseClick:connect(onClicked)
Can someone tell me whats wrong with it? |
|
|
| Report Abuse |
|
|
| |
|
|
| 24 May 2015 01:50 PM |
You have 2 for loops. Use coroutines.
-𝒩 | Anticodist, Scripter |
|
|
| Report Abuse |
|
|
|
| 24 May 2015 02:07 PM |
Would this work?
speed = 0.30
door1 = script.Parent.SlidingDoor1 door2 = script.Parent.SlidingDoor2 open = script.open
while true do coroutine.resume(coroutine.create(function() while true do if open.value then for i=1,(door1.Size.z/speed) + 1 do wait() door1.CFrame = door1.CFrame - (door1.CFrame.lookVector *speed) door2.CFrame = door2.CFrame - (door2.CFrame.lookVector * speed) end else for i=1,(door1.Size.z/speed) + 1 do wait() door1.CFrame = door1.CFrame + (door1.CFrame.lookVector * speed) door2.CFrame = door2.CFrame + (door2.CFrame.lookVector * speed) end end script.Parent.ClickDetector.MouseClick:connect(onClicked)
|
|
|
| Report Abuse |
|
|
|
| 24 May 2015 02:07 PM |
You can't resume a thread that you haven't created. Use coroutine.wrap
-𝒩 | Anticodist, Scripter |
|
|
| Report Abuse |
|
|
|
| 24 May 2015 02:40 PM |
I have never tried coroutines so im gonna have to do some more reading but this is the last i came up with
speed = 0.30
door1 = script.Parent.SlidingDoor1 door2 = script.Parent.SlidingDoor2 open = script.open
local newThread = coroutine.wrap(function() if open.value then for i=1,(door1.Size.z/speed) + 1 do wait() door1.CFrame = door1.CFrame - (door1.CFrame.lookVector *speed) door2.CFrame = door2.CFrame - (door2.CFrame.lookVector * speed) end else for i=1,(door1.Size.z/speed) + 1 do wait() door1.CFrame = door1.CFrame + (door1.CFrame.lookVector * speed) door2.CFrame = door2.CFrame + (door2.CFrame.lookVector * speed) end end script.Parent.ClickDetector.MouseClick:connect(onClicked)
|
|
|
| Report Abuse |
|
|
|
| 24 May 2015 04:27 PM |
Wrong account ^^ but anyways i made a few minor changes to the script.
speed = 0.30
door1 = script.Parent.SlidingDoor1 door2 = script.Parent.SlidingDoor2 open = script.open
local newThread = coroutine.wrap(function() if open.value then for i=1, (door1.Size.z/speed) + 1 do wait() door1.CFrame = door1.CFrame - (door1.CFrame.lookVector *speed) door2.CFrame = door2.CFrame - (door2.CFrame.lookVector * speed) end else for i=1,(door1.Size.z/speed) + 1 dp wait() door1.CFrame = door1.CFrame - (door1.CFrame.lookVector *speed) door2.CFrame = door2.CFrame - (door2.CFrame.lookVector * speed) end end) script.Parent.ClickDetector.MouseClick:connect(onClicked)
Will it work now? |
|
|
| Report Abuse |
|
|
|
| 24 May 2015 05:09 PM |
local speed = 0.30 local delay = 0
local door1 = script.Parent.SlidingDoor1 local door2 = script.Parent.SlidingDoor2 local open = script.open
local Switch = function(open) for i=(open and door1.Size.Z or 1), (open and 1 or door1.Size.Z), (door and -1 or 1) *speed do door1.CFrame = door1.CFrame * CFrame.new(0,0,speed) door2.CFrame = door2.CFrame * CFrame.new(0,0,-speed) wait(delay) end end
I am not sure if this would work. It is the way it should go, but i might have the for settings backwards or something. |
|
|
| Report Abuse |
|
|
|
| 24 May 2015 07:13 PM |
| @cody123454321 i think you may have forgotten the clicked part of the script |
|
|
| Report Abuse |
|
|
|
| 24 May 2015 07:29 PM |
| That is up to you lol. If you can't connect a function to an event by yourself... |
|
|
| Report Abuse |
|
|