Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Wanted = {}
- function umsgRecieveWantedList(um)
- table.insert(Wanted, {Name = um:ReadString(), Crime = um:ReadString(), Stage = um:ReadString(), ID = um:ReadShort()})
- end
- usermessage.Hook("_umsgRecieveWantedList", umsgRecieveWantedList)
- function ClearWantedTable()
- Wanted = { }
- end
- usermessage.Hook("_ClearTblWanted", ClearWantedTable)
- function OpenMenu()
- PrintTable(Wanted)
- local W = ScrW() / 2
- local H = ScrH() / 2
- local PoliceMenu = vgui.Create( "DFrame" )
- PoliceMenu:SetPos(W - 200, H - 200)
- PoliceMenu:SetSize(400, 400)
- PoliceMenu:SetTitle("Police - Data Center Registry System")
- PoliceMenu:SetVisible(true)
- PoliceMenu:SetDraggable(true)
- PoliceMenu:ShowCloseButton(true)
- PoliceMenu:MakePopup()
- local PoliceSheet = vgui.Create( "DPropertySheet", PoliceMenu )
- PoliceSheet:SetPos( 5, 30 )
- PoliceSheet:SetSize( PoliceMenu:GetWide() - 10, PoliceMenu:GetTall() - 35 )
- local PeopleListView = vgui.Create("DListView")
- PeopleListView:SetPos(0, 0)
- PeopleListView:SetSize(PoliceSheet:GetWide() - 10, PoliceSheet:GetTall() - 35)
- PeopleListView:SetMultiSelect(false)
- PeopleListView:AddColumn("Name"):SetFixedWidth(PeopleListView:GetWide())
- PeopleListView:AddColumn("Crime"):SetFixedWidth(0)
- PeopleListView:AddColumn("Stage"):SetFixedWidth(0)
- PeopleListView:AddColumn("ID"):SetFixedWidth(0)
- for _, v in pairs(Wanted) do
- PeopleListView:AddLine(v.Name, v.Crime, v.Stage, v.ID)
- end
- if LocalPlayer():Team() == TEAM_MAYOR or LocalPlayer():Team() == TEAM_CHIEF then
- PeopleListView.OnRowRightClick = function(self, lineID, line)
- local InfoDMenu = DermaMenu()
- InfoDMenu:AddOption("View Information", function()
- local InfoMenu = vgui.Create( "DFrame" )
- InfoMenu:SetPos(W - 155, H - 115)
- InfoMenu:SetSize(310, 330)
- InfoMenu:SetTitle("Police - Suspect Information")
- InfoMenu:SetVisible(true)
- InfoMenu:SetDraggable(true)
- InfoMenu:ShowCloseButton(true)
- InfoMenu:MakePopup()
- local InfoPanel = vgui.Create( "DPanel", InfoMenu)
- InfoPanel:SetPos( 5, 25 )
- InfoPanel:SetSize( InfoMenu:GetWide() - 10, InfoMenu:GetTall() - 30 )
- local SNameLabel = vgui.Create("DLabel", InfoPanel)
- SNameLabel:SetPos(5,5)
- SNameLabel:SetColor(Color(0,0,0,255))
- SNameLabel:SetText("Suspect Name: " .. line:GetColumnText(1))
- SNameLabel:SizeToContents()
- local SIDLabel = vgui.Create("DLabel", InfoPanel)
- SIDLabel:SetPos(5,25)
- SIDLabel:SetColor(Color(0,0,0,255))
- SIDLabel:SetText("Suspect ID: #" .. line:GetColumnText(4))
- SIDLabel:SizeToContents()
- local StageLabel = vgui.Create("DLabel", InfoPanel)
- StageLabel:SetPos(5,45)
- StageLabel:SetColor(Color(0,0,0,255))
- StageLabel:SetText("Last Known Condition: " .. line:GetColumnText(3))
- StageLabel:SizeToContents()
- local CrimeLabel = vgui.Create("DLabel", InfoPanel)
- CrimeLabel:SetPos(5,70)
- CrimeLabel:SetColor(Color(0,0,0,255))
- CrimeLabel:SetText("Crime(s) Committed")
- CrimeLabel:SizeToContents()
- local CrimeText = vgui.Create("DTextEntry", InfoPanel)
- CrimeText:SetPos(5,90)
- CrimeText:SetSize(InfoPanel:GetWide() - 10, InfoPanel:GetTall() - 95)
- CrimeText:SetText(line:GetColumnText(2))
- CrimeText:SetMultiline(true)
- CrimeText:SetEditable(false)
- end)
- InfoDMenu:AddSpacer()
- InfoDMenu:AddOption("Edit Suspect", function()
- local EditMenu = vgui.Create( "DFrame" )
- EditMenu:SetPos(W - 165, H - 140)
- EditMenu:SetSize(230, 280)
- EditMenu:SetTitle("Police - Edit Suspect Information")
- EditMenu:SetVisible(true)
- EditMenu:SetDraggable(true)
- EditMenu:ShowCloseButton(true)
- EditMenu:MakePopup()
- local EditPanel = vgui.Create( "DPanel", EditMenu)
- EditPanel:SetPos( 5, 25 )
- EditPanel:SetSize( EditMenu:GetWide() - 10, EditMenu:GetTall() - 30 )
- local EStageLabel = vgui.Create("DLabel", EditPanel)
- EStageLabel:SetPos(5,5)
- EStageLabel:SetColor(Color(0,0,0,255))
- EStageLabel:SetText("Last Known Condition:")
- EStageLabel:SizeToContents()
- local ELastStage = vgui.Create( "DMultiChoice", EditPanel)
- ELastStage:SetPos(5, 25)
- ELastStage:SetSize( 210, 20 )
- ELastStage:SetEditable( false )
- ELastStage:AddChoice("Unknown")
- ELastStage:AddChoice("Armed and Dangerous")
- ELastStage:AddChoice("Wounded")
- ELastStage:SetText(line:GetColumnText(3))
- local ECrimeLabel = vgui.Create("DLabel", EditPanel)
- ECrimeLabel:SetPos(5, 55)
- ECrimeLabel:SetColor(Color(0,0,0,255))
- ECrimeLabel:SetText("Crime(s) Committed")
- ECrimeLabel:SizeToContents()
- local ECrimeText = vgui.Create("DTextEntry", EditPanel)
- ECrimeText:SetPos(5,75)
- ECrimeText:SetSize(210, 140)
- ECrimeText:SetText(line:GetColumnText(2))
- ECrimeText:SetMultiline(true)
- local ECrimeButton = vgui.Create( "DButton", EditPanel )
- ECrimeButton:SetSize( 210, 25 )
- ECrimeButton:SetPos( 5, EditPanel:GetTall() - 30 )
- ECrimeButton:SetText( "Save Changes" )
- ECrimeButton.DoClick = function()
- Wanted = { }
- RunConsoleCommand("_ChangeCrime", ECrimeText:GetValue(), ELastStage.TextEntry:GetValue(), line:GetColumnText(4))
- PeopleListView:AddLine(line:GetColumnText(1), ECrimeText:GetValue(), ELastStage.TextEntry:GetValue(), line:GetColumnText(4))
- PeopleListView:RemoveLine(PeopleListView:GetSelectedLine())
- EditMenu:Close()
- end
- end)
- InfoDMenu:AddSpacer()
- InfoDMenu:AddOption("Remove Suspect", function()
- Wanted = { }
- RunConsoleCommand("_DeleteWanted", line:GetColumnText(4))
- PeopleListView:RemoveLine(PeopleListView:GetSelectedLine())
- end)
- InfoDMenu:Open()
- end
- end
- PoliceSheet:AddSheet( "Wanted People", PeopleListView, "gui/silkicons/user", false, false, nil )
- if LocalPlayer():Team() == TEAM_MAYOR or LocalPlayer():Team() == TEAM_CHIEF then
- local AddPanel = vgui.Create( "DPanel")
- AddPanel:SetPos( 0, 0 )
- AddPanel:SetSize( PoliceSheet:GetWide(), PoliceSheet:GetTall() )
- local SelectAddLabel = vgui.Create('DLabel', AddPanel)
- SelectAddLabel:SetPos(6, 5)
- SelectAddLabel:SetText('Select Person')
- SelectAddLabel:SizeToContents()
- SelectAddLabel:SetTextColor(Color(0, 0, 0, 255))
- local SelectPAddBox = vgui.Create('DComboBox', AddPanel)
- SelectPAddBox:SetSize(140, 195)
- SelectPAddBox:SetPos(5, 25)
- SelectPAddBox:EnableHorizontal(false)
- SelectPAddBox:EnableVerticalScrollbar(true)
- SelectPAddBox:SetMultiple(false)
- SelectPAddBox:SetSelected(true)
- for _, v in pairs(player.GetAll()) do
- SelectPAddBox:AddItem(v:Name())
- end
- local SIDAddLabel = vgui.Create('DLabel', AddPanel)
- SIDAddLabel:SetPos(156, 5)
- SIDAddLabel:SetText('Suspect ID')
- SIDAddLabel:SizeToContents()
- SIDAddLabel:SetTextColor(Color(0, 0, 0, 255))
- local SIDAddText = vgui.Create('DTextEntry', AddPanel)
- SIDAddText:SetSize(210, 20)
- SIDAddText:SetPos(155, 25)
- SIDAddText:SetEditable(false)
- SIDAddText:SetText(math.random(1000,9999999))
- LastStageLabel = vgui.Create('DLabel', AddPanel)
- LastStageLabel:SetPos(156, 50)
- LastStageLabel:SetText('Last Known Condition')
- LastStageLabel:SizeToContents()
- LastStageLabel:SetTextColor(Color(0, 0, 0, 255))
- local LastStage = vgui.Create( "DMultiChoice", AddPanel)
- LastStage:SetPos(155, 70)
- LastStage:SetSize( 210, 20 )
- LastStage:SetEditable( false )
- LastStage:AddChoice("Unknown")
- LastStage:AddChoice("Armed and Dangerous")
- LastStage:AddChoice("Wounded")
- CrimeAddLabel = vgui.Create('DLabel', AddPanel)
- CrimeAddLabel:SetPos(156, 95)
- CrimeAddLabel:SetText('Crime(s) Committed')
- CrimeAddLabel:SizeToContents()
- CrimeAddLabel:SetTextColor(Color(0, 0, 0, 255))
- AddCrimeText = vgui.Create('DTextEntry', AddPanel)
- AddCrimeText:SetPos(155, 115)
- AddCrimeText:SetSize(210, 119)
- AddCrimeText:SetMultiline(true)
- AddCrimeText:SetText('')
- local AddSButton = vgui.Create('DButton', AddPanel)
- AddSButton:SetSize(100, 25)
- AddSButton:SetPos(265, 240)
- AddSButton:SetText('Add Suspect')
- AddSButton.DoClick = function()
- if string.len(AddCrimeText:GetValue()) < 10 or string.len(SIDAddText:GetValue()) < 4 then return end
- RunConsoleCommand("_AddWanted", SelectPAddBox:GetSelectedItems()[1]:GetValue(), AddCrimeText:GetValue(), LastStage.TextEntry:GetValue(), SIDAddText:GetValue())
- PeopleListView:AddLine(SelectPAddBox:GetSelectedItems()[1]:GetValue(), AddCrimeText:GetValue(), LastStage.TextEntry:GetValue(), SIDAddText:GetValue())
- SIDAddText:SetText(math.random(1000,9999999))
- AddCrimeText:SetText("")
- end
- local ClearAddButton = vgui.Create('DButton', AddPanel)
- ClearAddButton:SetSize(100, 25)
- ClearAddButton:SetPos(SelectPAddBox:GetWide() + 15, 240)
- ClearAddButton:SetText('Clear')
- ClearAddButton.DoClick = function()
- SIDAddText:SetText("")
- AddCrimeText:SetText("")
- end
- PoliceSheet:AddSheet( "Add Suspect", AddPanel, "gui/silkicons/shield", false, false, nil )
- end
- end
- usermessage.Hook("_WantedMenu", OpenMenu)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement