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

Is my source code wrong? my Sword fighting game is stuck on intermission.

Asked by 5 years ago
Edited by Rare_tendo 5 years ago

here is the source code my sword fighting game is stuck on Intermission the source code is down below i hope to get this fixed.




local ReplicatedStorage = game:GetService("ReplicatedStorage") local ServerStorage = game:GetService("ServerStorage") local MapsFolder = ServerStorage:WaitForChild("Maps") local Status = ReplicatedStorage:WaitForChild("Status") local GameLength = 100 while true do Status.Value = "Waiting for more people" 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) end end wait(2) local AvailableMaps = MapsFolder:GetChildern() local ChosenMap = AvailableMaps[math.random(1)] Status.Value = ChosenMap.Name.." Chosen" local ClonedMap = ChosenMap:Clone() ClonedMap.Parent = workspace local SpawnPoints = ClonedMap:FindFirstChild("SpawnPoints") if not SpawnPoints then print("SpawnPoints AM!") end local AvailableSpawnPoints = SpawnPoints:GetChildren() for i, player in pairs (plrs) do if player then character = player.Character if character then character:FindFirstChild("HumanoidRootPart").CFrame = AvailableSpawnPoints[1].CFrame table.remove(AvailableSpawnPoints,1) local Sword = ServerStorage.Sword:Clone() Sword.Parent = player.backback local GameTag = Instance.new ("BoolValue") GameTag.Name = "GameTag" GameTag.Parent = player.Character else if not player then table.remove(plrs,i) end end end end Status.Value = "Get Ready To fight!" wait(2) for i = GameLength,0,-1 do for i, player in pairs(plrs) do if player then character = player.Character if not character then else if character:FindFirstChild("GameTag") then print (player.Name.."is still in the game") else 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 remaining, and"..#plrs.."people left" if #plrs == 1 then Status.Value = "The Winner is"..plrs[1].Name plrs[1].leaderstats.wins.value = plrs[1].leaderstats.wins.Value + reward break elseif #plrs == 0 then Status.Value = "No one has survived and nobody won!" break elseif i == 0 then Status.value = "Time is up and nobody has won!" break end wait(1) end print("End of game") for i, player in pairs(game.Players:GetPlayers()) do character = player.character if not character then 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 = "This game has Ended" wait (2) end
0
I hope this will help if not then i can help you with more info about this TasaDjukic 13 — 5y
0
It'll help if you post any errors Rare_tendo 3000 — 5y

3 answers

Log in to vote
0
Answered by 5 years ago

Just change :GetChildern() on line 19 to :GetChildren().

0
this could've been a comment anyways User#23365 30 — 5y
0
we were talking on community chat and I solved it for him and wanted to post an answer here ihatecars100 502 — 5y
0
Thank you soo much! I had the same problem and you fixed it! xXobbyboymeXX 0 — 2y
Ad
Log in to vote
0
Answered by 5 years ago

I will try and see if I can help. So, I have this food fighting game I am working on, but the round system isn't finished yet. So I have a working Gui that displays the game status, and here is how I do it. I have a sting value in replicated storage and another script that checks to see what the string in the string value is and puts it on a gui. so this is what my intermission is like:

--Update the RoundStatus with new data of how the round is going and manage the rounds
local RoundStatus = game.ReplicatedStorage:WaitForChild("RoundStatus")
    local IntermissionTime = 45
    for i = 1, 45 do
        RoundStatus.Value = "Intermission "..IntermissionTime
        IntermissionTime = IntermissionTime - 1
        wait(1)
    end 
     while wait(1) do
        if #game.Players:GetPlayers() > 0 then
            break
        else RoundStatus.Value = "Need "..(2 - #game.Players:GetPlayers()).." more players to start the round."
        end
    end

you could edit this code sample to make a very simple intermission and add everything else to it. If it doesn't work, please just comment and don't downvote me. I only have 91 reputation and am on a good track for it.

Log in to vote
0
Answered by 2 years ago

add

local reward = whatever amount of bucks you want to give to the play who wins

also change ":GetChildern()"":GetChildren() on line 19"

Answer this question