Hey, I am making a game and it has 5-minute rounds. The leaderboard tracks something called team kills which is basically the number of kills the entire team got combined. My goal is to make it so that when each round ends, the game will figure out which team has more team kills and announce in a screen GUI who won. I have scripted the clock, leaderboard, weapons, arena, GUIs, and everything else successfully I just need help with the determining who won the game, announcing it after every game, then restarting the round (resets all players). If someone could help me with this that would be really appreciated. Thanks for your time.
Pertinent Details: The two teams are called Red and Blue (This might change later on but those are the names for right now)
This is my working timer script (I do NOT need help with this script, it works, I just thought it might be needed to help with the requested script):
repeat while true do wait(1) if script.Parent.Value == 0 then local map = game.Workspace.LaserArena map:Clone().Parent = game.Workspace wait(5) game.Workspace.LaserArena:Destroy() wait(5) script.Parent.Value = 300 script.Parent.Value = script.Parent.Value -1 else script.Parent.Value = script.Parent.Value -1 end end until character == nil
A full script would be extremely helpful but help to create one would be just as good. If you have any other questions regarding my question or if you want to see any of my other scripts from the game (like my leaderboard script, etc...), just ask in the comments or message me on Roblox, I will check both often so it probably won't take long for me to respond.
Thank you, Skyraider5
So, what you'd probably want to do is wrap everything in a while loop instead. Like so:
local clockTime = 500 while true do --// Load in your map --// Give weapons, etc. --// Clock stuff for i = clockTime, 1 do wait(1) --// Update Clock GUI end --// Did a for loop so you could easily update a clock GUI if you so wish, if not just make it this instead: wait(clockTime) local Gui = leaderboard --// You didn't say where it was so.. local winMessage if leaderboard.Red.TeamKill.Value > leaderboard.Blue.TeamKill.Value then winMessage = "The Red team has won!" elseif leaderboard.Red.TeamKill.Value == leaderboard.Blue.TeamKill.Value then winMessage = "There was a draw!" else winMessage = "The Blue team has won!" --// Set GUI to visible, set text to winMessage --// Reset/Reposition players for i, plrs in pairs (game.Players:GetPlayers()) do plrs.Character:MoveTo(workspace.Lobby.MainTP.Position) --// Assuming you have a lobby end end
This script should restart itself, and repeat everything all the time. It should work, but maybe not. I just quickly wrote it to give you a rough idea of how it could be done. Instead of having separate scripts, just have one control the main game mechanics like:
Loading in players, setting up the map, giving weapons, then the clock, displaying who won, then resetting the players.