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

Simple Teleport Script Gone Wrong? [STILL UNSOLVED]

Asked by
Discern 1007 Moderation Voter
10 years ago

I'm not sure why this won't work. There is a brick named "Power" located in a model. There is also 2 other bricks in the model: "TeleportBrick1" and "TeleportBrick2"

TeleportBrick2 does not have any scripts inside of it.

The script inside TeleportBrick1 is this:

script.Parent.Touched:connect(function(hit)
    if hit.Name == "Power" then
        hit.CFrame = script.Parent.Parent.TeleportBrick2.CFrame
    end
end)

The script inside Power is this:

while true do
    script.Parent.CFrame = script.Parent.CFrame * CFrame.new(-.01, 0, 0)
    wait(.001)
end

The script inside of Power is functioning perfectly.

The script inside of TeleportBrick1 is not functioning at all. There is no output.

The brick named "Power" happens to go directly through the center of "TeleportBrick1".

Can anyone help?

0
If this isn't working and the way I mentioned doesn't work, you have your paths wrong. Check to see if Everything is in place. TeleportBrick2 is in the right place. Shawnyg 4330 — 10y
0
I have triple-checked this. Every part is correctly corresponding to the amount of Parents in each script. Discern 1007 — 10y

3 answers

Log in to vote
0
Answered by 10 years ago

Instead or CFraming, you can always try "Position"

For instance--

while true do

while true do script.Parent.Position = script.Parent.Position * Vector3.new(-.01, 0, 0) wait(.001) end

The script may be invalid, but you get what I'm doing here.

0
I can't use Position, since the brick is actually inside of another brick. Discern 1007 — 10y
Ad
Log in to vote
0
Answered by
Lacryma 548 Moderation Voter
10 years ago

I believe it's because you are cframing to it and not actually "hitting" it.

Log in to vote
-1
Answered by 10 years ago

Please provide explanation with your answers. Simply posting code does not spread knowledge of integral scripting processes which helps people understand the logic and reasoning behind your answer.

This will be the script for Brick A

--Enter the name of the model you want to go to here.
------------------------------------
modelname="teleporter1b"
------------------------------------

function onTouched(part)
    if part.Parent ~= nil then
    local h = part.Parent:findFirstChild("Humanoid")
        if h~=nil then
            local teleportfrom=script.Parent.Enabled.Value
            if teleportfrom~=0 then
                if h==humanoid then
                return
                end
                local teleportto=script.Parent.Parent:findFirstChild(modelname)
                if teleportto~=nil then
                    local torso = h.Parent.Torso
                    local location = {teleportto.Position}
                    local i = 1

                    local x = location[i].x
                    local y = location[i].y
                    local z = location[i].z

                    x = x + math.random(-1, 1)
                    z = z + math.random(-1, 1)
                    y = y + math.random(2, 3)

                    local cf = torso.CFrame
                    local lx = 0
                    local ly = y
                    local lz = 0

                    script.Parent.Enabled.Value=0
                    teleportto.Enabled.Value=0
                    torso.CFrame = CFrame.new(Vector3.new(x,y,z), Vector3.new(lx,ly,lz))
                    wait(3)
                    script.Parent.Enabled.Value=1
                    teleportto.Enabled.Value=1
                else
                    print("Could not find teleporter!")
                end
            end
        end
    end
end

script.Parent.Touched:connect(onTouched)

This is the script for Brick B

--Enter the name of the model you want to go to here.
------------------------------------
modelname="teleporter1a"
------------------------------------

function onTouched(part)
    if part.Parent ~= nil then
    local h = part.Parent:findFirstChild("Humanoid")
        if h~=nil then
            local teleportfrom=script.Parent.Enabled.Value
            if teleportfrom~=0 then
                if h==humanoid then
                return
                end
                local teleportto=script.Parent.Parent:findFirstChild(modelname)
                if teleportto~=nil then
                    local torso = h.Parent.Torso
                    local location = {teleportto.Position}
                    local i = 1

                    local x = location[i].x
                    local y = location[i].y
                    local z = location[i].z

                    x = x + math.random(-1, 1)
                    z = z + math.random(-1, 1)
                    y = y + math.random(2, 3)

                    local cf = torso.CFrame
                    local lx = 0
                    local ly = y
                    local lz = 0

                    script.Parent.Enabled.Value=0
                    teleportto.Enabled.Value=0
                    torso.CFrame = CFrame.new(Vector3.new(x,y,z), Vector3.new(lx,ly,lz))
                    wait(3)
                    script.Parent.Enabled.Value=1
                    teleportto.Enabled.Value=1
                else
                    print("Could not find teleporter!")
                end
            end
        end
    end
end

script.Parent.Touched:connect(onTouched)

Use this as an example and see if it works.

0
Didn't fix. Discern 1007 — 10y
0
Did you make sure to change all names and the brick so it had the same name? Tonitrua 20 — 10y
0
Yes. I went through every script and changed the names in then, and it still doesn't work. Discern 1007 — 10y
0
I'll let you example off of my teleport script. I'll let you know when I am finished. Tonitrua 20 — 10y
View all comments (6 more)
0
Ok, I have changed the post, example from it and see if it works. Tonitrua 20 — 10y
0
Again with the free models........... Discern 1007 — 10y
0
You really can't be happy, can you? Tonitrua 20 — 10y
0
Not when you give me a free model script. Have you looked at it even? "Humanoid"? "Torso"? Discern 1007 — 10y
0
Yes. It is supposed to teleport your whole player to the brick. It gets all of your Humanoid and Body Parts and teleports it using Vector3. Tonitrua 20 — 10y
0
Well then you obviously didn't read my question, since I'm not trying to teleport players. Discern 1007 — 10y

Answer this question