Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local roles =
- {
- Murderer = {1, Color3.fromRGB(221, 29, 29), script.Sword};
- Sheriff = {1, Color3.fromRGB(22, 120, 240), script.Gun};
- Innocent = {100, Color3.fromRGB(62, 197, 32)}
- }
- local rolesTable = {"Murderer", "Sheriff", "Innocent"}
- function handleGui(plr, pickedRole, weapon)
- local gui = plr.PlayerGui.PickerGui
- gui.Enabled = true
- for x = 1, 10 do
- local randomRole = rolesTable[math.random(1, #rolesTable)]
- gui.Background.RoleGiven.TextColor3 = roles[randomRole][2]
- gui.Background.RoleGiven.Text = randomRole
- wait(0.2)
- end
- gui.Background.RoleGiven.TextColor3 = roles[pickedRole][2]
- gui.Background.RoleGiven.Text = pickedRole
- if weapon then
- weapon:Clone().Parent = plr.Backpack
- end
- wait(2)
- gui.Enabled = false
- end
- function checkAlive(plrRoles)
- local survivor = false
- local murderer = false
- for plr, roleName in pairs(plrRoles) do
- if plr then
- if roleName == "Sheriff" or roleName == "Innocent" then
- survivor = true
- elseif roleName == "Murderer" then
- murderer = true
- end
- end
- end
- return survivor, murderer
- end
- while true do
- while wait() do
- local chars = 0
- for i, plr in pairs(game.Players:GetPlayers()) do
- if plr.Character then chars += 1 end
- end
- if chars >= 3 then break end
- end
- local plrs = game.Players:GetPlayers()
- local plrRoles = {}
- for rolePos, roleName in pairs(rolesTable) do
- local roleInfo = roles[roleName]
- for i = 1, roleInfo[1] do
- if i <= #plrs then
- local randomPlr = plrs[math.random(1, #plrs)]
- if randomPlr then
- plrRoles[randomPlr] = roleName
- table.remove(plrs, table.find(plrs, randomPlr))
- local char = randomPlr.Character
- local hum = char:WaitForChild("Humanoid")
- hum.Died:Connect(function()
- plrRoles[randomPlr] = nil
- end)
- coroutine.resume(coroutine.create(function()
- handleGui(randomPlr, roleName, roleInfo[3])
- end))
- end
- end
- end
- end
- for i = 1, 180 do
- local survivor, murderer = checkAlive(plrRoles)
- if survivor and not murderer or murderer and not survivor or not murderer and not survivor then
- break
- end
- wait(1)
- end
- local survivor, murderer = checkAlive(plrRoles)
- if survivor then
- print("Innocents win!")
- elseif murderer then
- print("Murderer wins!")
- else
- print("Draw!")
- end
- for i, plr in pairs(game.Players:GetPlayers()) do
- plr.Backpack:ClearAllChildren()
- if plr.Character then
- for i, d in pairs(plr.Character:GetDescendants()) do
- if d:IsA("Tool") then d:Destroy() end
- end
- end
- end
- wait(5)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement