Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Random teleportation malfunction?

Asked by
JJ_B 250 Moderation Voter
9 years ago

I made a script that teleports you to a certain brick depending on a number generated by math.random. However, this particular script only seems to transport me to the destination denoted by number 3. Here is the script.

01function transport()
02    math.randomseed(tick())
03    local num = math.random(1,4)
04    wait()
05    if num == 1 then   
06    script.Parent.Parent.Torso.CFrame = game.Workspace.planetbeam.CFrame + Vector3.new(0,5,0)
07    elseif num == 2 then   
08    script.Parent.Parent.Torso.CFrame = game.Workspace.bridgebeam.CFrame + Vector3.new(0,5,0)
09    elseif num == 3 then   
10    script.Parent.Parent.Torso.CFrame = game.Workspace.brigbeam.CFrame + Vector3.new(0,5,0)
11    elseif num == 4 then   
12    script.Parent.Parent.Torso.CFrame = game.Workspace.medbeam.CFrame + Vector3.new(0,5,0)
13end
14    script.Parent.Handle.Sound:play()
15    wait(2.04)
16    script.Parent:Destroy()
17end
18end
19 
20script.Parent.Activated:connect(transport)

Can anybody help?

0
I'm not sure what math.randomseed does, but it shouldn't be picking 3 every time. Try testing more and see if it still picks 3 every single time. Discern 1007 — 9y
0
math.randomseed is like that, i'd use a table and check if it's on there... HungryJaffer 1246 — 9y

1 answer

Log in to vote
0
Answered by
Reselim 35
9 years ago

I see 2 errors in your script. First of all, CFrame + Vector3 doesn't work, so you'd have to do CFrame * CFrame, how would you do that? Here:

1local CFrame1 = CFrame.new(0, 0, 0)
2local CFrame2 = CFrame.new(0, 50, 25)
3local CFrame3 = CFrame1 * CFrame2

So, to fix off your script, it would be:

01function transport()
02    math.randomseed(tick())
03    local num = math.random(1,4)
04    wait()
05    if num == 1 then   
06    script.Parent.Parent.Torso.CFrame = game.Workspace.planetbeam.CFrame * CFrame.new(Vector3.new(0,5,0))
07    elseif num == 2 then   
08    script.Parent.Parent.Torso.CFrame = game.Workspace.bridgebeam.CFrame * CFrame.new(Vector3.new(0,5,0))
09    elseif num == 3 then   
10    script.Parent.Parent.Torso.CFrame = game.Workspace.brigbeam.CFrame * CFrame.new( Vector3.new(0,5,0))
11    elseif num == 4 then   
12    script.Parent.Parent.Torso.CFrame = game.Workspace.medbeam.CFrame * CFrame.new(Vector3.new(0,5,0))
13end
14    script.Parent.Handle.Sound:play()
15    wait(2.04)
16    script.Parent:Destroy()
17end
18end
19 
20script.Parent.Activated:connect(transport)

Hope this helped :)

Ad

Answer this question