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

Having Trouble with ':GetChildren()' In my mains script for my game. Can you guys solve it?

Asked by 3 years ago

Hello,

Recently I was trying to script a sword fighting game. Im not good at scripting, and had many errors. I am having trouble with ":GetChildren()" In 1 part of my code. Ive watched many tutorials to help me, but still can't find the problem.

(Script)(I put words where the script is: local AvailableSpawnPoints = SpawnPoints)

-- Define Values

local ReplicatedStorage = game:GetService("ReplicatedStorage")

local ServerStorage = game:GetService("ServerStorage")

local MapsFolder = ServerStorage:WaitForChild("Maps")

local Status = ReplicatedStorage:WaitForChild("Status")

local GameLength = 100

-- Game loop

while true do

Status.Value = "Waiting for more players"

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

Status.Value = "Intermission..."

wait (10)

local plrs = {}

for i, player in pairs(game.Players:GetPlayers())do
    if player then
        table.insert(plrs,player)-- Add each player into plrs table
    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 map

local SpawnPoints = ClonedMap:FindFirstChild("SpawnPoints")

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

local AvailableSpawnPoints = SpawnPoints 

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 = "Ready... Go!"

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                             
            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                 
        end 
    end     
    Status.Value = "There are "..i.." seconds remaning / "..#plrs.." players left"

    if #plrs == 1 then  
        --winner                        
        Status.Value = "And the winner is..."..plrs[1].Name 
        break                       
    elseif #plrs == 0 then              
        Status.Value = "Nobody won :/"              
        break               
    elseif i == 0 then                  
        Status.Value = "Time ran out :/"                    
        break                   
    end

    wait(1)
end

print("End of game")    

wait(2)


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

    if not character then
    --ignore        
    else    
        if character:FindFirstChild("Gametag") then 
            character.GameTag:Destroy()     
        end         
        if player: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

2 answers

Log in to vote
0
Answered by 3 years ago

Hello dude, please highlight where is that GetChildren problem, and always post us error which it is throwing up. If it is not called from localscript which cant access server storage I think, we would really need to see error and that certain part of code, please edit your post or post new one, or contact me on discord - lukiny9000_2#0558. Have a good day.

Ad
Log in to vote
0
Answered by
Jo1nts 134
3 years ago

where is the :GetChildren() in your code I cannot pick it out with over 130 lines of code.

Answer this question