Advertisement
HowToRoblox

GameHandler

Jan 3rd, 2021
6,147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.35 KB | None | 0 0
  1. game.Players.PlayerAdded:Connect(function(plr)
  2.    
  3.     local ls = Instance.new("Folder")
  4.     ls.Name = "leaderstats"
  5.     ls.Parent = plr
  6.    
  7.     local cash = Instance.new("IntValue")
  8.     cash.Name = "Cash"
  9.     cash.Value = 0
  10.     cash.Parent = ls
  11. end)
  12.  
  13.  
  14. local gun = script:WaitForChild("Gun")
  15. local mobs = {[10] = script:WaitForChild("HardMob"), [5] = script:WaitForChild("MediumMob"), [1] = script:WaitForChild("EasyMob")}
  16.  
  17.  
  18. local mobSpawns = workspace:WaitForChild("MobSpawns")
  19.  
  20.  
  21. local statusValue = game.ReplicatedStorage:WaitForChild("StatusValue")
  22.  
  23.  
  24. local respawnWave = 10
  25.  
  26. local startingMobs = 5
  27.  
  28. local maxWave = math.huge
  29.  
  30.  
  31. while true do
  32.    
  33.    
  34.     statusValue.Value = "Intermission"
  35.    
  36.     workspace:WaitForChild("MobsFolder"):ClearAllChildren()
  37.    
  38.     wait(5)
  39.    
  40.    
  41.     local alivePlrs = {}
  42.    
  43.     for i, plr in pairs(game.Players:GetPlayers()) do
  44.        
  45.         plr:LoadCharacter()
  46.        
  47.         table.insert(alivePlrs, plr)
  48.        
  49.         plr.Character.Humanoid.Died:Connect(function()
  50.             table.remove(alivePlrs, alivePlrs[plr])
  51.         end)
  52.        
  53.         gun:Clone().Parent = plr.Backpack
  54.     end
  55.    
  56.    
  57.     for i = 1, maxWave do
  58.        
  59.         local mobsToSpawn = (startingMobs / 2) * (2 ^ i)
  60.        
  61.         statusValue.Value = "Wave " .. i .. " starting."
  62.         wait(3)
  63.        
  64.        
  65.         local mobTypeSpawn
  66.         for waveNum, mobType in pairs(mobs) do
  67.            
  68.             if i >= waveNum then
  69.                
  70.                 mobTypeSpawn = mobType
  71.                 break
  72.             end
  73.         end
  74.        
  75.        
  76.         while mobsToSpawn > 0 do
  77.            
  78.             for x, spawner in pairs(mobSpawns:GetChildren()) do
  79.                
  80.                 mobsToSpawn = mobsToSpawn - 1
  81.                
  82.                 local mobClone = mobTypeSpawn:Clone()
  83.                 mobClone.HumanoidRootPart.CFrame = spawner.CFrame + Vector3.new(0, 10, 0)
  84.                
  85.                 mobClone.Parent = workspace:WaitForChild("MobsFolder")
  86.             end
  87.         end
  88.        
  89.         repeat
  90.             wait()
  91.            
  92.             statusValue.Value = "Wave " .. i .. " | " .. #workspace:WaitForChild("MobsFolder"):GetChildren() .. "/" .. (startingMobs / 2) * (2 ^ i) .. " Zombies"
  93.            
  94.         until #workspace:WaitForChild("MobsFolder"):GetChildren() < 1 or #alivePlrs < 1
  95.        
  96.         if #alivePlrs < 1 then
  97.             break
  98.            
  99.         else
  100.            
  101.             for y, plrAlive in pairs(alivePlrs) do
  102.                
  103.                 plrAlive.leaderstats.Cash.Value = plrAlive.leaderstats.Cash.Value + (20 * i)
  104.             end
  105.            
  106.             if i % respawnWave == 0 then
  107.                
  108.                 for z, plr in pairs(game.Players:GetPlayers()) do
  109.                    
  110.                     plr:LoadCharacter()
  111.                     gun:Clone().Parent = plr.Backpack
  112.                 end
  113.             end
  114.         end
  115.     end
  116. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement