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

function transport()
    math.randomseed(tick())
    local num = math.random(1,4)
    wait()
    if num == 1 then    
    script.Parent.Parent.Torso.CFrame = game.Workspace.planetbeam.CFrame + Vector3.new(0,5,0)
    elseif num == 2 then    
    script.Parent.Parent.Torso.CFrame = game.Workspace.bridgebeam.CFrame + Vector3.new(0,5,0)
    elseif num == 3 then    
    script.Parent.Parent.Torso.CFrame = game.Workspace.brigbeam.CFrame + Vector3.new(0,5,0)
    elseif num == 4 then    
    script.Parent.Parent.Torso.CFrame = game.Workspace.medbeam.CFrame + Vector3.new(0,5,0)
end 
    script.Parent.Handle.Sound:play()
    wait(2.04)
    script.Parent:Destroy()
end
end

script.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 — 8y
0
math.randomseed is like that, i'd use a table and check if it's on there... HungryJaffer 1246 — 8y

1 answer

Log in to vote
0
Answered by
Reselim 35
8 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:

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

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

function transport()
    math.randomseed(tick())
    local num = math.random(1,4)
    wait()
    if num == 1 then    
    script.Parent.Parent.Torso.CFrame = game.Workspace.planetbeam.CFrame * CFrame.new(Vector3.new(0,5,0))
    elseif num == 2 then    
    script.Parent.Parent.Torso.CFrame = game.Workspace.bridgebeam.CFrame * CFrame.new(Vector3.new(0,5,0))
    elseif num == 3 then    
    script.Parent.Parent.Torso.CFrame = game.Workspace.brigbeam.CFrame * CFrame.new( Vector3.new(0,5,0))
    elseif num == 4 then    
    script.Parent.Parent.Torso.CFrame = game.Workspace.medbeam.CFrame * CFrame.new(Vector3.new(0,5,0))
end 
    script.Parent.Handle.Sound:play()
    wait(2.04)
    script.Parent:Destroy()
end
end

script.Parent.Activated:connect(transport)

Hope this helped :)

Ad

Answer this question