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

I did something wrong while following this tutorial by AlvinBlox. can somebody help me find it?

Asked by 5 years ago
Edited 5 years ago

This is the code from the episode with the problem...



Status.Value = "Get ready to play!" wait(2) for i = GameLength,0,-1 do for x, player in pairs(plrs) do if player then character = player.Character if not character then -- left the game table.remove(plrs,x) else if character:FindFirstChild("GameTag") then -- they are still alive print(player.Name.." is still in the game!") else -- they are dead table.remove(plrs,x) print(player.Name.." has been removed!") end end else table.remove(plrs,x) print(player.Name.." has been removed!") end end Status.Value = "There are "..i.." seconds left, and "..#plrs.." players left." if #plrs == 1 then -- last person standing Status.Value = "The Winner is "..plrs[1].Name plrs[1].leaderstats.Bucks.Value = plrs[1].leaderstats.Bucks.Value + reward break elseif #plrs == 0 then Status.Value = "Nobody Won!" break elseif i == 0 then Status.Value = "Time is up!" break end wait(1) end print("The game has ended!") wait(3) for i, player in pairs(game.Players:GetPlayers()) do character = player.Character if not character then -- ignore them else if character:FindFirstChild("GameTag") then character.GameTag:Destroy() end if player.Backpack:FindFirstChild("Sword") then player.Backpack.Sword:Destroy() end if character:FindFirstChild("Sword") then character.Sword:Destroy() end end player:LoadCharacter() end ClonedMap:Destroy() Status.Value = "Game Ended" wait(2) end

...and the link to the video here. can somebody help find out what I did wrong?

Edit: For the people asking what the output was, it said "leaderstats is not a valid member of player name here, on line 121, which is on line 36 here.

Edit 2: Here is the script that I am having the Instance problem with.

game.Players.PlayerAdded:Connect(function(player)

    local leaderstats = Instance.new("Folder")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = player

    local bucks = Instance.new("IntValue")
    bucks.Name = "Bucks"
    bucks.Value = 0
    bucks.Parent = leaderstats


    player.CharacterAdded:connect(function(character)
        character.Humanoid.WalkSpeed = 16
        character.Humanoid.Died:Connect(function()
            -- whenever somebody dies, the event will run

            if character.Humanoid and character.Humanoid:FindFirstChild("creator") then
                game.ReplicatedStorage.Status.Value = tostring(character.Humanoid.creator.Value).." KILLED "player.Name
            end

            if character:FindFirstChild("GameTag") then
                character.GameTag:Destroy
            end

            player:LoadCharacter()
        end)

    end)
end)

On line 3, you see that there is an Instance there. But, for some reason, when I type it, it doesn't turn blue.

0
What's the error message? It looks like you might have one too many `end`s. fredfishy 833 — 5y
0
Scripts should be of your own attempt, and alvinbloxx teaches very bad code as shown here User#24403 69 — 5y
0
sounds like he already went through puberty compared to a recent video Nickelz 37 — 5y
0
Can you put the error in the output here? rochel89 42 — 5y
View all comments (9 more)
0
i give this question a 1/10 DinozCreates 1070 — 5y
0
for everyone asking, I edited the post with the output that happens at the end of each round. Banhamr 0 — 5y
0
Based on the error you need to create a leaderstats folder on player joined with a Bucks value inside it. Rheines 661 — 5y
0
So, I think I may have found my problem. In the place where I make the leaderstats folder, there was something not right. The word instance wasn't blue like it was supposed to be, even though I spelt it correctly, as Instance. Yet, it is not turning blue. So, that brings up a new problem that I have. How do I make that text blue? Banhamr 0 — 5y
0
Can you post the script. Rheines 661 — 5y
0
Alright. I'll edit the post with both scripts. Banhamr 0 — 5y
0
Maybe attempt writing it yourself? Alvin doesn't teach anything. Formidable_Beast 197 — 5y
0
alvinbloxx's tutorials dont work dude. If u want to learn coding i recommend going to the roblox wiki. nzsalty16 81 — 5y

1 answer

Log in to vote
0
Answered by 3 years ago

try this, it will not work completely but maybe it will help so try it

-- Define variables

local ReplicatedStorage = game:GetService("ReplicatedStorage")

local ServerStorage = game:GetService("ServerStorage")

local MapsFolder = ServerStorage:WaitForChild("Maps")

local Status = ReplicatedStorage:WaitForChild("Status")

local GameLength = 50 

local reward = 20

--Game loop 

while true do

    Status.Value = "Waiting for 2 (or more) Players to Join!"

    repeat wait(1) until game.Players.NumPlayers >= 2

    Status.Value = "Intermission (15 seconds)"

    wait(15)

    local plrs = {}

    for i, player in pairs (game.Players:GetPlayers())do
        if player then
            table.insert(plrs,player)
        end
    end

    wait(2)

    local AvailableMaps = MapsFolder:GetChildren()

    local ChosenMap = AvailableMaps[math.random(1,#AvailableMaps)]

    Status.Value = ChosenMap.Name.." Chosen"

    local ClonedMap = ChosenMap:Clone()
    ClonedMap.Parent = workspace

    --Teleport players to the map 

    local SpawnPoints = ClonedMap:FindFirstChild("SpawnPoints")

    if not SpawnPoints then
        print("SpawnPoints not found!")
    end

    local AvailableSpawnPoints = SpawnPoints:GetChildren()

    for i, player in pairs(plrs) do
        if player then
            character = player.Character     

            if character then 
                --Teleport them
                character:FindFirstChild("HumanoidRootPart").CFrame = AvailableSpawnPoints[1].CFrame
                table.remove(AvailableSpawnPoints,1)


                --Give them a sword 

                local Sword = ServerStorage.Sword:Clone()
                Sword.Parent = player.Backpack

                local GameTag = Instance.new("BoolValue")
                GameTag.Name = "GameTag"
                GameTag.Parent = player.Character

            else
                --There is no character
                if not player then
                    table.remove(plrs,i)
                end
            end
        end
    end




    Status.Value = "Get ready for Battle!"

    wait(5)

    for i = GameLength,0,-1 do

        for x, player in pairs(plrs) do
            if player then

                character = player.Character

                if not character then 
                    --Left the game
                    table.remove(plrs,x)
                else
                    if character:FindFirstChild("GameTag") then
                        --They are still alive 
                        print(player.Name.." is still in the game!")
                    else

                        --They are dead 
                        table.remove(plrs,x)
                        print(player.Name.." has been removed!")
                    end
                end
            else
                table.remove(plrs,x)
                print(player.Name.." has been removed!")   
            end
        end

        Status.Value = "There are "..i.." seconds left, and "..#plrs.." players left."

        if #plrs == 1 then

            --Last person standing 
            Status.Value = "The winner is "..plrs[1].Name 
            plrs[1].leaderstats.Bucks.Value = plrs[1].leaderstats.Bucks.Value + reward 
            break 
        elseif #plrs == 0 then 
            Status.Value = "Nobody won!" 
            break 
        elseif i == 0 then 
            Status.Value = "Time up!" 
            break
        end

        wait(1) 
    end 

    print("GAME ENDED") 

    for i, player in pairs(game.Players:GetPlayers()) do 
        character = player.character 

        if not character then 
            --Ignore them 
        else
            if character:FindFirstChild("GameTag") then
                character.GameTag:Destroy()
            end

            if player.Backpack:FindFirstChild("Sword") then
                player.Backpack.Sword:Destroy()
            end

            if character:FindFirstChild("Sword") then
                character.Sword:Destroy()
            end

        end

        player:LoadCharacter()
    end

    ClonedMap:Destroy()

    Status.Value = "Game Ended"

    wait(2)
end

Ad

Answer this question