Advertisement
Guest User

Untitled

a guest
Dec 12th, 2012
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.63 KB | None | 0 0
  1. local Wanted = {}
  2.  
  3. function umsgRecieveWantedList(um)
  4.  
  5. table.insert(Wanted, {Name = um:ReadString(), Crime = um:ReadString(), Stage = um:ReadString(), ID = um:ReadShort()})
  6.  
  7. end
  8.  
  9. usermessage.Hook("_umsgRecieveWantedList", umsgRecieveWantedList)
  10.  
  11. function ClearWantedTable()
  12.  
  13. Wanted = { }
  14.  
  15. end
  16.  
  17. usermessage.Hook("_ClearTblWanted", ClearWantedTable)
  18.  
  19. function OpenMenu()
  20.  
  21. PrintTable(Wanted)
  22.  
  23. local W = ScrW() / 2
  24. local H = ScrH() / 2
  25.  
  26. local PoliceMenu = vgui.Create( "DFrame" )
  27. PoliceMenu:SetPos(W - 200, H - 200)
  28. PoliceMenu:SetSize(400, 400)
  29. PoliceMenu:SetTitle("Police - Data Center Registry System")
  30. PoliceMenu:SetVisible(true)
  31. PoliceMenu:SetDraggable(true)
  32. PoliceMenu:ShowCloseButton(true)
  33. PoliceMenu:MakePopup()
  34.  
  35. local PoliceSheet = vgui.Create( "DPropertySheet", PoliceMenu )
  36. PoliceSheet:SetPos( 5, 30 )
  37. PoliceSheet:SetSize( PoliceMenu:GetWide() - 10, PoliceMenu:GetTall() - 35 )
  38.  
  39. local PeopleListView = vgui.Create("DListView")
  40. PeopleListView:SetPos(0, 0)
  41. PeopleListView:SetSize(PoliceSheet:GetWide() - 10, PoliceSheet:GetTall() - 35)
  42. PeopleListView:SetMultiSelect(false)
  43. PeopleListView:AddColumn("Name"):SetFixedWidth(PeopleListView:GetWide())
  44. PeopleListView:AddColumn("Crime"):SetFixedWidth(0)
  45. PeopleListView:AddColumn("Stage"):SetFixedWidth(0)
  46. PeopleListView:AddColumn("ID"):SetFixedWidth(0)
  47.  
  48. for _, v in pairs(Wanted) do
  49.  
  50. PeopleListView:AddLine(v.Name, v.Crime, v.Stage, v.ID)
  51.  
  52. end
  53.  
  54. if LocalPlayer():Team() == TEAM_MAYOR or LocalPlayer():Team() == TEAM_CHIEF then
  55.  
  56. PeopleListView.OnRowRightClick = function(self, lineID, line)
  57.  
  58. local InfoDMenu = DermaMenu()
  59.  
  60. InfoDMenu:AddOption("View Information", function()
  61.  
  62. local InfoMenu = vgui.Create( "DFrame" )
  63. InfoMenu:SetPos(W - 155, H - 115)
  64. InfoMenu:SetSize(310, 330)
  65. InfoMenu:SetTitle("Police - Suspect Information")
  66. InfoMenu:SetVisible(true)
  67. InfoMenu:SetDraggable(true)
  68. InfoMenu:ShowCloseButton(true)
  69. InfoMenu:MakePopup()
  70.  
  71. local InfoPanel = vgui.Create( "DPanel", InfoMenu)
  72. InfoPanel:SetPos( 5, 25 )
  73. InfoPanel:SetSize( InfoMenu:GetWide() - 10, InfoMenu:GetTall() - 30 )
  74.  
  75. local SNameLabel = vgui.Create("DLabel", InfoPanel)
  76. SNameLabel:SetPos(5,5)
  77. SNameLabel:SetColor(Color(0,0,0,255))
  78. SNameLabel:SetText("Suspect Name: " .. line:GetColumnText(1))
  79. SNameLabel:SizeToContents()
  80.  
  81. local SIDLabel = vgui.Create("DLabel", InfoPanel)
  82. SIDLabel:SetPos(5,25)
  83. SIDLabel:SetColor(Color(0,0,0,255))
  84. SIDLabel:SetText("Suspect ID: #" .. line:GetColumnText(4))
  85. SIDLabel:SizeToContents()
  86.  
  87. local StageLabel = vgui.Create("DLabel", InfoPanel)
  88. StageLabel:SetPos(5,45)
  89. StageLabel:SetColor(Color(0,0,0,255))
  90. StageLabel:SetText("Last Known Condition: " .. line:GetColumnText(3))
  91. StageLabel:SizeToContents()
  92.  
  93. local CrimeLabel = vgui.Create("DLabel", InfoPanel)
  94. CrimeLabel:SetPos(5,70)
  95. CrimeLabel:SetColor(Color(0,0,0,255))
  96. CrimeLabel:SetText("Crime(s) Committed")
  97. CrimeLabel:SizeToContents()
  98.  
  99. local CrimeText = vgui.Create("DTextEntry", InfoPanel)
  100. CrimeText:SetPos(5,90)
  101. CrimeText:SetSize(InfoPanel:GetWide() - 10, InfoPanel:GetTall() - 95)
  102. CrimeText:SetText(line:GetColumnText(2))
  103. CrimeText:SetMultiline(true)
  104. CrimeText:SetEditable(false)
  105.  
  106. end)
  107.  
  108. InfoDMenu:AddSpacer()
  109.  
  110. InfoDMenu:AddOption("Edit Suspect", function()
  111.  
  112. local EditMenu = vgui.Create( "DFrame" )
  113. EditMenu:SetPos(W - 165, H - 140)
  114. EditMenu:SetSize(230, 280)
  115. EditMenu:SetTitle("Police - Edit Suspect Information")
  116. EditMenu:SetVisible(true)
  117. EditMenu:SetDraggable(true)
  118. EditMenu:ShowCloseButton(true)
  119. EditMenu:MakePopup()
  120.  
  121. local EditPanel = vgui.Create( "DPanel", EditMenu)
  122. EditPanel:SetPos( 5, 25 )
  123. EditPanel:SetSize( EditMenu:GetWide() - 10, EditMenu:GetTall() - 30 )
  124.  
  125. local EStageLabel = vgui.Create("DLabel", EditPanel)
  126. EStageLabel:SetPos(5,5)
  127. EStageLabel:SetColor(Color(0,0,0,255))
  128. EStageLabel:SetText("Last Known Condition:")
  129. EStageLabel:SizeToContents()
  130.  
  131. local ELastStage = vgui.Create( "DMultiChoice", EditPanel)
  132. ELastStage:SetPos(5, 25)
  133. ELastStage:SetSize( 210, 20 )
  134. ELastStage:SetEditable( false )
  135. ELastStage:AddChoice("Unknown")
  136. ELastStage:AddChoice("Armed and Dangerous")
  137. ELastStage:AddChoice("Wounded")
  138. ELastStage:SetText(line:GetColumnText(3))
  139.  
  140. local ECrimeLabel = vgui.Create("DLabel", EditPanel)
  141. ECrimeLabel:SetPos(5, 55)
  142. ECrimeLabel:SetColor(Color(0,0,0,255))
  143. ECrimeLabel:SetText("Crime(s) Committed")
  144. ECrimeLabel:SizeToContents()
  145.  
  146. local ECrimeText = vgui.Create("DTextEntry", EditPanel)
  147. ECrimeText:SetPos(5,75)
  148. ECrimeText:SetSize(210, 140)
  149. ECrimeText:SetText(line:GetColumnText(2))
  150. ECrimeText:SetMultiline(true)
  151.  
  152. local ECrimeButton = vgui.Create( "DButton", EditPanel )
  153. ECrimeButton:SetSize( 210, 25 )
  154. ECrimeButton:SetPos( 5, EditPanel:GetTall() - 30 )
  155. ECrimeButton:SetText( "Save Changes" )
  156. ECrimeButton.DoClick = function()
  157.  
  158. Wanted = { }
  159.  
  160. RunConsoleCommand("_ChangeCrime", ECrimeText:GetValue(), ELastStage.TextEntry:GetValue(), line:GetColumnText(4))
  161.  
  162. PeopleListView:AddLine(line:GetColumnText(1), ECrimeText:GetValue(), ELastStage.TextEntry:GetValue(), line:GetColumnText(4))
  163.  
  164. PeopleListView:RemoveLine(PeopleListView:GetSelectedLine())
  165.  
  166. EditMenu:Close()
  167.  
  168. end
  169.  
  170. end)
  171.  
  172. InfoDMenu:AddSpacer()
  173.  
  174. InfoDMenu:AddOption("Remove Suspect", function()
  175.  
  176. Wanted = { }
  177.  
  178. RunConsoleCommand("_DeleteWanted", line:GetColumnText(4))
  179.  
  180. PeopleListView:RemoveLine(PeopleListView:GetSelectedLine())
  181.  
  182. end)
  183.  
  184. InfoDMenu:Open()
  185.  
  186. end
  187.  
  188. end
  189.  
  190. PoliceSheet:AddSheet( "Wanted People", PeopleListView, "gui/silkicons/user", false, false, nil )
  191.  
  192. if LocalPlayer():Team() == TEAM_MAYOR or LocalPlayer():Team() == TEAM_CHIEF then
  193.  
  194. local AddPanel = vgui.Create( "DPanel")
  195. AddPanel:SetPos( 0, 0 )
  196. AddPanel:SetSize( PoliceSheet:GetWide(), PoliceSheet:GetTall() )
  197.  
  198. local SelectAddLabel = vgui.Create('DLabel', AddPanel)
  199. SelectAddLabel:SetPos(6, 5)
  200. SelectAddLabel:SetText('Select Person')
  201. SelectAddLabel:SizeToContents()
  202. SelectAddLabel:SetTextColor(Color(0, 0, 0, 255))
  203.  
  204. local SelectPAddBox = vgui.Create('DComboBox', AddPanel)
  205. SelectPAddBox:SetSize(140, 195)
  206. SelectPAddBox:SetPos(5, 25)
  207. SelectPAddBox:EnableHorizontal(false)
  208. SelectPAddBox:EnableVerticalScrollbar(true)
  209. SelectPAddBox:SetMultiple(false)
  210. SelectPAddBox:SetSelected(true)
  211.  
  212. for _, v in pairs(player.GetAll()) do
  213.  
  214. SelectPAddBox:AddItem(v:Name())
  215.  
  216. end
  217.  
  218. local SIDAddLabel = vgui.Create('DLabel', AddPanel)
  219. SIDAddLabel:SetPos(156, 5)
  220. SIDAddLabel:SetText('Suspect ID')
  221. SIDAddLabel:SizeToContents()
  222. SIDAddLabel:SetTextColor(Color(0, 0, 0, 255))
  223.  
  224. local SIDAddText = vgui.Create('DTextEntry', AddPanel)
  225. SIDAddText:SetSize(210, 20)
  226. SIDAddText:SetPos(155, 25)
  227. SIDAddText:SetEditable(false)
  228. SIDAddText:SetText(math.random(1000,9999999))
  229.  
  230.  
  231. LastStageLabel = vgui.Create('DLabel', AddPanel)
  232. LastStageLabel:SetPos(156, 50)
  233. LastStageLabel:SetText('Last Known Condition')
  234. LastStageLabel:SizeToContents()
  235. LastStageLabel:SetTextColor(Color(0, 0, 0, 255))
  236.  
  237. local LastStage = vgui.Create( "DMultiChoice", AddPanel)
  238. LastStage:SetPos(155, 70)
  239. LastStage:SetSize( 210, 20 )
  240. LastStage:SetEditable( false )
  241. LastStage:AddChoice("Unknown")
  242. LastStage:AddChoice("Armed and Dangerous")
  243. LastStage:AddChoice("Wounded")
  244.  
  245. CrimeAddLabel = vgui.Create('DLabel', AddPanel)
  246. CrimeAddLabel:SetPos(156, 95)
  247. CrimeAddLabel:SetText('Crime(s) Committed')
  248. CrimeAddLabel:SizeToContents()
  249. CrimeAddLabel:SetTextColor(Color(0, 0, 0, 255))
  250.  
  251. AddCrimeText = vgui.Create('DTextEntry', AddPanel)
  252. AddCrimeText:SetPos(155, 115)
  253. AddCrimeText:SetSize(210, 119)
  254. AddCrimeText:SetMultiline(true)
  255. AddCrimeText:SetText('')
  256.  
  257. local AddSButton = vgui.Create('DButton', AddPanel)
  258. AddSButton:SetSize(100, 25)
  259. AddSButton:SetPos(265, 240)
  260. AddSButton:SetText('Add Suspect')
  261. AddSButton.DoClick = function()
  262.  
  263. if string.len(AddCrimeText:GetValue()) < 10 or string.len(SIDAddText:GetValue()) < 4 then return end
  264.  
  265. RunConsoleCommand("_AddWanted", SelectPAddBox:GetSelectedItems()[1]:GetValue(), AddCrimeText:GetValue(), LastStage.TextEntry:GetValue(), SIDAddText:GetValue())
  266.  
  267. PeopleListView:AddLine(SelectPAddBox:GetSelectedItems()[1]:GetValue(), AddCrimeText:GetValue(), LastStage.TextEntry:GetValue(), SIDAddText:GetValue())
  268.  
  269. SIDAddText:SetText(math.random(1000,9999999))
  270.  
  271. AddCrimeText:SetText("")
  272.  
  273. end
  274.  
  275. local ClearAddButton = vgui.Create('DButton', AddPanel)
  276. ClearAddButton:SetSize(100, 25)
  277. ClearAddButton:SetPos(SelectPAddBox:GetWide() + 15, 240)
  278. ClearAddButton:SetText('Clear')
  279. ClearAddButton.DoClick = function()
  280.  
  281. SIDAddText:SetText("")
  282.  
  283. AddCrimeText:SetText("")
  284.  
  285. end
  286.  
  287. PoliceSheet:AddSheet( "Add Suspect", AddPanel, "gui/silkicons/shield", false, false, nil )
  288.  
  289. end
  290.  
  291. end
  292.  
  293. usermessage.Hook("_WantedMenu", OpenMenu)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement