generic image
Processing...
  • Games
  • Catalog
  • Develop
  • Robux
  • Search in Players
  • Search in Games
  • Search in Catalog
  • Search in Groups
  • Search in Library
  • Log In
  • Sign Up
  • Games
  • Catalog
  • Develop
  • Robux
   
ROBLOX Forum » Game Creation and Development » Scripters
Home Search
 

Re: Whats wrong with this script?

Previous Thread :: Next Thread 
MetroProductions is not online. MetroProductions
Joined: 26 Oct 2014
Total Posts: 33
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
MetroProductions is not online. MetroProductions
Joined: 26 Oct 2014
Total Posts: 33
24 May 2015 01:49 PM
bump
Report Abuse
Anticodist is not online. Anticodist
Joined: 05 Feb 2014
Total Posts: 1191
24 May 2015 01:50 PM
You have 2 for loops. Use coroutines.



-𝒩 | Anticodist, Scripter
Report Abuse
purplemetro3421 is not online. purplemetro3421
Joined: 17 Mar 2011
Total Posts: 106
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
Anticodist is not online. Anticodist
Joined: 05 Feb 2014
Total Posts: 1191
24 May 2015 02:07 PM
You can't resume a thread that you haven't created.
Use coroutine.wrap



-𝒩 | Anticodist, Scripter
Report Abuse
purplemetro3421 is not online. purplemetro3421
Joined: 17 Mar 2011
Total Posts: 106
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
MetroProductions is not online. MetroProductions
Joined: 26 Oct 2014
Total Posts: 33
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
cody123454321 is not online. cody123454321
Joined: 21 Nov 2009
Total Posts: 5408
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
MetroProductions is not online. MetroProductions
Joined: 26 Oct 2014
Total Posts: 33
24 May 2015 07:13 PM
@cody123454321 i think you may have forgotten the clicked part of the script
Report Abuse
cody123454321 is not online. cody123454321
Joined: 21 Nov 2009
Total Posts: 5408
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
Previous Thread :: Next Thread 
Page 1 of 1
 
 
ROBLOX Forum » Game Creation and Development » Scripters
   
 
   
  • About Us
  • Jobs
  • Blog
  • Parents
  • Help
  • Terms
  • Privacy

©2017 Roblox Corporation. Roblox, the Roblox logo, Robux, Bloxy, and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.



Progress
Starting Roblox...
Connecting to Players...
R R

Roblox is now loading. Get ready to play!

R R

You're moments away from getting into the game!

Click here for help

Check Remember my choice and click Launch Application in the dialog box above to join games faster in the future!

Gameplay sponsored by:
Loading 0% - Starting game...
Get more with Builders Club! Join Builders Club
Choose Your Avatar
I have an account
generic image