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

Why is my code not teleporting player who just died?

Asked by
Jo1nts 134
2 years ago
Edited 2 years ago

So in the script the function runRounds() works with 'round1' as the parameter. Everything goes well, and when one of the players dies, it will run the function again, but on the line where it teleports the players back to the spawn, the player who died does not tp back into the spawn.

local Players = game:GetService('Players')
local replicatedStorage = game:GetService('ReplicatedStorage')

local arena = script.Parent
local spawns = arena.spawns

local pad = arena.pad
local pad1 = arena.pad1

local board = arena.board
local boardgui = board.SurfaceGui

local status = arena.status
local timeLeft = arena:WaitForChild('timeLeft')
local round = arena.round

local sword = replicatedStorage.Sword


local function runRounds(round)

    print("started "..status.Value)
    local user = tostring(pad.player.Value)
    local user1 = tostring(pad1.player.Value)


    local player = game.Workspace[user]
    local player1 = game.Workspace[user1]

    local winner

    player.Humanoid.Died:Connect(function()
        winner = player1.Name
        print(player1.Name.." won ".. status.Value.."!")
        if round == "round1" then
            status.Value = "round2"
            runRounds(tostring(status.Value))
        elseif round == "round2" then
            status.Value = "round3"
            runRounds(tostring(status.Value))
        elseif round == "round3" then
            status.Value = "intermission"
            round.Value = "waiting"
            db = false

        end
    end)

    player1.Humanoid.Died:Connect(function()
        winner = player.Name
        print(player.Name.." won ".. status.Value.."!")
        if round == "round1" then
            status.Value = "round2"
            runRounds(tostring(status.Value))
        elseif round == "round2" then
            status.Value = "round3"
            runRounds(tostring(status.Value))
        elseif round == "round3" then
            status.Value = "intermission"
            round.Value = "waiting"
            db = false

        end
    end)


--this part of the script is what doesntwork for when the player who just dies vvv
        player:WaitForChild('HumanoidRootPart').CFrame = spawns.spawn.CFrame 
        player1:WaitForChild('HumanoidRootPart').CFrame = spawns.spawn1.CFrame

--rest of the script

print("spawned")

if status.Value == 'round1' then
    local sword1 = sword:Clone()
    local sword2 = sword:Clone()

    sword1.Parent = player
    sword2.Parent = player1
elseif status.Value ~= 'round1' then
    if winner == player1.Name then
        local sword1 = sword:Clone()
        sword1.Parent = player

    else
        local sword1 = sword:Clone()
        sword1.Parent = player1
    end
end

end

Answer this question