Advertisement
Guest User

Untitled

a guest
Apr 8th, 2020
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.52 KB | None | 0 0
  1. local Jury_Morphs = {"JURY"}
  2. local JuryRemote = game.ReplicatedStorage.eTech.Remotes.JURY
  3. local JailSpawn = game.Workspace.TeleportParts.Jail
  4. local ArrestedPlayers = {}
  5.  
  6. function getRandomCell()
  7.     local Folder = game.Workspace.JuryTPs:GetChildren()
  8.     local SpawnPart = Folder[math.random(1,#Folder)]
  9.     return SpawnPart
  10. end
  11.  
  12. function removeTools(plr)
  13.     local char = plr.Character
  14.     for i,tool in pairs(char:GetChildren()) do
  15.         if tool:IsA("Tool") then
  16.             tool:Destroy()
  17.         end
  18.     end
  19.     for i,tool in pairs(plr.Backpack:GetChildren()) do
  20.         if tool:IsA("Tool") then
  21.             tool:Destroy()
  22.         end
  23.     end
  24. end
  25.  
  26. local PunishInfo = {
  27.     ["Disobedience"] = {
  28.         ["TIME"] = 240,
  29.         ["INFO"] = "Disobedience and/or refusal to comply."
  30.     },
  31.     ["Harrassment"] = {
  32.         ["TIME"] = 180,
  33.         ["INFO"] = "Harrasment/annoyance towards an Officer."
  34.     },
  35.     ["Tresspassing"] = {
  36.         ["TIME"] = 300,
  37.         ["INFO"] = "Trespassing of unauthorized area."
  38.     },
  39.     ["Defunct"] = {
  40.         ["TIME"] = 400,
  41.         ["INFO"] = "Defunct and unauthorized behavior."
  42.         }
  43. }
  44.  
  45. game.Players.PlayerAdded:Connect(function(plr)
  46.     local ArrestedValue = Instance.new("BoolValue",plr)
  47.     ArrestedValue.Name = 'Arrested'
  48.     local plrHasBeenChecked = false
  49.     plr.CharacterAdded:Connect(function(Char)
  50.         repeat wait() until Char.Parent == workspace
  51.         print('parent = workspace')
  52.         local TableCheck = false
  53.         if ArrestedPlayers[plr.Name] then
  54.             TableCheck = true
  55.         end
  56.             if TableCheck == true and ArrestedPlayers[plr.Name] ~= 0 then
  57.                 if ArrestedPlayers[plr.Name] > 0 then
  58.                     if plrHasBeenChecked == false then
  59.                         plrHasBeenChecked = true
  60.                         ArrestedValue.Value = true
  61.                     end
  62.                     if plr["Arrested"] then
  63.                     if plr["Arrested"].Value == true then
  64.                         print('Found '..plr.Name.."'s Table.")
  65.                         local TimeLeft = ArrestedPlayers[plr.Name]
  66.                         local SpawnPart = getRandomCell()
  67.                         Char:WaitForChild("HumanoidRootPart").CFrame = SpawnPart.CFrame + Vector3.new(0,3,0)
  68.                         print('Teleported Player back to jail')
  69.                         removeTools(plr)
  70.                         JuryRemote:FireClient(plr,"Disable")
  71.                         local RankTag = Char.Head:WaitForChild("Rank"):WaitForChild("Frame").Rank
  72.                         local plrIsInServer = true
  73.                         game.Players.PlayerRemoving:Connect(function(PLAYER)
  74.                             if PLAYER == plr then
  75.                                 plrIsInServer = false
  76.                             end
  77.                         end)
  78.                         if plr["Arrested"] then
  79.                         repeat wait(1)
  80.                             TimeLeft = TimeLeft - 1
  81.                             RankTag.Text = TimeLeft
  82.                             ArrestedPlayers[plr.Name] = TimeLeft
  83.                         until TimeLeft == 0 or plrIsInServer == false or ArrestedValue.Value == false
  84.                         if TimeLeft == 0 or plr["Arrested"].Value == false then
  85.                             table.remove(ArrestedPlayers,ArrestedPlayers[plr.Name])
  86.                             print('Removed Table')
  87.                             JuryRemote:FireClient(plr,"Enable")
  88.                             ArrestedValue.Value = false
  89.                             plr:LoadCharacter()
  90.                         end
  91.                         if plrIsInServer == false then
  92.                             print('Player Left, Stopping')
  93.                         end
  94.                         end
  95.                     end
  96.                     end
  97.                
  98.                 end
  99.         elseif TableCheck == false then
  100.                 print('player not checked, not in jail')
  101.                 plrHasBeenChecked = true
  102.         end
  103.     end)
  104. end)
  105.  
  106. JuryRemote.OnServerEvent:Connect(function(Player,Punishment,TargetPlayer)
  107.     local Character = Player.Character or Player.CharacterAdded:Wait()
  108.     local isJury = false
  109.     for i,v in pairs(Jury_Morphs) do
  110.         if Player.Character.MorphName.Value == v then
  111.             isJury = true
  112.         end
  113.     end
  114.     if isJury == true then
  115.         local PunishmentTime = PunishInfo[Punishment]["TIME"]
  116.         local TimeLeft = PunishmentTime
  117.         local TargetCharacter = TargetPlayer.Character
  118.         local ArrestedValue = TargetPlayer:WaitForChild("Arrested")
  119.         ArrestedValue.Value = true
  120.         local SpawnPart = getRandomCell()
  121.         TargetCharacter:WaitForChild("HumanoidRootPart").CFrame = SpawnPart.CFrame + Vector3.new(0,3,0)
  122.         removeTools(TargetPlayer)
  123.         JuryRemote:FireClient(TargetPlayer,"Disable")
  124.         local tableFound = false
  125.         local PlayerName = TargetPlayer.Name
  126.         for _, thing in pairs(ArrestedPlayers) do
  127.             if thing == ArrestedPlayers.PlayerName then
  128.                 print('Table found not making a new one')
  129.                 tableFound = true
  130.             end
  131.         end
  132.         if tableFound == false then
  133.             local newTable = {
  134.             [TargetPlayer.Name] = PunishmentTime
  135.             }
  136.             table.insert(ArrestedPlayers,newTable)
  137.             print('Table was not found, making a new one')
  138.         end
  139.         ArrestedPlayers[TargetPlayer.Name] = PunishmentTime
  140.         local RankTag = TargetPlayer.Character.Head:WaitForChild("Rank"):WaitForChild("Frame").Rank
  141.         local plrIsInServer = true
  142.         game.Players.PlayerRemoving:Connect(function(PLAYER)
  143.             if PLAYER == TargetPlayer then
  144.                 plrIsInServer = false
  145.             end
  146.         end)
  147.         repeat wait(1)
  148.             TimeLeft = TimeLeft - 1
  149.             RankTag.Text = TimeLeft
  150.             ArrestedPlayers[TargetPlayer.Name] = TimeLeft
  151.         until TimeLeft == 0 or plrIsInServer == false or ArrestedValue.Value == false
  152.         if plrIsInServer == false then
  153.             print('Player Left, Stopping')
  154.         end
  155.         if TimeLeft == 0 or ArrestedValue.Value == false then
  156.             table.remove(ArrestedPlayers,ArrestedPlayers[TargetPlayer.Name])
  157.             print('removed table')
  158.             TargetPlayer:LoadCharacter()
  159.             JuryRemote:FireClient(TargetPlayer,"Enable")
  160.             ArrestedValue.Value = false
  161.         end
  162.     end
  163. end)
  164.  
  165. game.ReplicatedStorage.eTech.Remotes.ArrestRelease.OnServerEvent:Connect(function(plr,TargetPlayer)
  166.     local ArrestValue = TargetPlayer:FindFirstChild("Arrested")
  167.     local PlayerName = TargetPlayer.Name
  168.     if ArrestValue then
  169.         local playerTable = ArrestedPlayers[TargetPlayer.Name]
  170.         if playerTable then
  171.             ArrestValue.Value = false
  172.             table.remove(ArrestedPlayers,ArrestedPlayers.PlayerName)
  173.             print('Releasing Player')
  174.         end
  175.     end
  176. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement