Advertisement
CzarnyCwel

Untitled

Sep 20th, 2018
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 16.50 KB | None | 0 0
  1.  
  2. local LangTbl = TBFY_CCTVConfig.Language[TBFY_CCTVConfig.LanguageToUse]
  3.  
  4. //Notify support for non-darkrp
  5. net.Receive("tbfy_notify", function()
  6.     local txt = net.ReadString()
  7.     GAMEMODE:AddNotify(txt, net.ReadFloat(), net.ReadFloat())
  8.     surface.PlaySound("buttons/lightswitch2.wav")
  9.  
  10.     MsgC(Color(255, 20, 20, 255), "[TBFY] ", Color(200, 200, 200, 255), txt, "\n")
  11. end)
  12.  
  13. net.Receive("cctv_EditCameraMenu", function()
  14.     local Screen = net.ReadEntity()
  15.     local CamEdit = vgui.Create("cctv_camera_edit")
  16.     CamEdit:UpdateSettings(Screen, Screen:GetCamera())
  17. end)
  18.  
  19. local AllowMenu = true
  20. hook.Add("PhysgunPickup", "cctv_phys_menu", function(Player)
  21.     AllowMenu = false
  22. end)
  23. hook.Add("PhysgunDrop", "cctv_phys_dropmenu", function(Player)
  24.     AllowMenu = true
  25. end)
  26.  
  27. local Cconfig = TBFY_CCTVConfig
  28. hook.Add("KeyPress", "CCTV_UseCCTV", function(Player, Key)
  29.     if Key == IN_USE then
  30.         if !Player:InVehicle() and AllowMenu and (Player:CanCCTVEdit() or (Cconfig.OwnerCanInstall or Cconfig.OwnerCanRepair)) then
  31.             local Trace = {}
  32.             Trace.start = Player:GetShootPos();
  33.             Trace.endpos = Trace.start + Player:GetAimVector() * 100;
  34.             Trace.filter = Player;
  35.      
  36.             local Tr = util.TraceLine(Trace);
  37.             local TEnt = Tr.Entity
  38.             if IsValid(TEnt) then
  39.                 if TEnt:GetClass() == "tbfy_cctv_camera" then
  40.                     local IsOwner = TEnt:GetCamOwner() == Player
  41.                     if IsOwner or TEnt:GetMarkedService() then
  42.                         local CameraM = vgui.Create("DMenu")
  43.                         if !TEnt:GetInstalled() then
  44.                             local Text = LangTbl.CameraInstall
  45.                             if Cconfig.InstallCost > 0 then
  46.                                 Text = Text .. " ($" .. Cconfig.InstallCost .. ")"
  47.                             end
  48.                             CameraM:AddOption(Text, function() net.Start("cctv_toggle_install") net.WriteEntity(TEnt) net.WriteBool(true) net.SendToServer() end)
  49.                         else
  50.                             CameraM:AddOption(LangTbl.CameraUninstall, function() net.Start("cctv_toggle_install") net.WriteEntity(TEnt) net.WriteBool(false) net.SendToServer() end)
  51.                         end
  52.                         if TEnt:GetBroken() then
  53.                             local Text = LangTbl.CameraRepair
  54.                             if Cconfig.RepairCost > 0 then
  55.                                 Text = Text .. " ($" .. Cconfig.RepairCost .. ")"
  56.                             end
  57.                             CameraM:AddOption(Text, function() net.Start("cctv_repair") net.WriteEntity(TEnt) net.SendToServer() end)
  58.                         end
  59.                         if IsOwner then
  60.                             local SetOwner = CameraM:AddSubMenu(LangTbl.CameraSetOwner)
  61.                             for k,v in pairs(player.GetAll()) do
  62.                                 if v != Player then
  63.                                     SetOwner:AddOption(v:Nick(), function() net.Start("cctv_setowner") net.WriteEntity(TEnt) net.WriteEntity(v) net.SendToServer() end)
  64.                                 end
  65.                             end
  66.                         end
  67.                         CameraM:Open()
  68.  
  69.                         CameraM:SetPos(ScrW()/2,ScrH()/2)          
  70.                     end
  71.                 end
  72.             end
  73.         end
  74.     end
  75. end)
  76.  
  77. surface.CreateFont( "cctv_buttontext", {
  78.     font = "Verdana",
  79.     size = 11,
  80.     weight = 1000,
  81.     antialias = true,
  82. })
  83.  
  84. surface.CreateFont( "cctv_paneltext", {
  85.     font = "Verdana",
  86.     size = 17,
  87.     weight = 1000,
  88.     antialias = true,
  89. })
  90.  
  91. local MainPanelColor = Color(255,255,255,200)
  92. local HeaderColor = Color(50,50,50,255)
  93. local TabListColors = Color(215,215,220,255)
  94. local ButtonColor = Color(50,50,50,255)
  95. local ButtonColorHovering = Color(75,75,75,200)
  96. local ButtonColorPressed = Color(150,150,150,200)
  97. local ButtonOutline = Color(0,0,0,200)
  98. local HeaderH = 25
  99.  
  100. local PANEL = {}
  101.  
  102. function PANEL:Init()
  103.     self.ButtonText = ""
  104.     self.BColor = ButtonColor
  105.     self:SetText("")
  106.     self.Font = "cctv_buttontext"
  107.     self.DClickC = ButtonColorPressed
  108.     self.DHoverC = ButtonColorHovering
  109.     self.DButtonC = ButtonColor
  110. end
  111.  
  112. function PANEL:UpdateColours()
  113.  
  114.     if self:IsDown() or self.m_bSelected then self.BColor = self.DClickC return end
  115.     if self.Hovered and !self:GetDisabled() then self.BColor = self.DHoverC return end
  116.  
  117.     self.BColor = self.DButtonC
  118.     return
  119. end
  120.  
  121. function PANEL:SetBText(Text)
  122.     self.ButtonText = Text
  123. end
  124.  
  125. function PANEL:SetBFont(Font)
  126.     self.Font = Font
  127. end
  128.  
  129. function PANEL:SetBColors(Press,Hover,Normal)
  130.     self.DClickC = Press
  131.     self.DHoverC = Hover
  132.     self.DButtonC = Normal
  133. end
  134.  
  135. function PANEL:Paint(W,H)
  136.     draw.RoundedBox(4, 0, 0, W, H, self.BColor)
  137.     draw.SimpleText(self.ButtonText, self.Font, W/2, H/2, Color(255,255,255,255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )  
  138. end
  139. vgui.Register( "cctv_button", PANEL, "DButton")
  140.  
  141. local PANEL = {}
  142.  
  143. local PanTypes = {
  144. [1] = "Pan",
  145. [2] = "PanLeftMiddleLeft",
  146. [3] = "PanRightMiddleRight",
  147. }
  148. local IdleTypes = {
  149. [1] = "Idle",
  150. [2] = "IdleLeft",
  151. [3] = "IdleRight",
  152. }
  153. local ScreenModels = {
  154. [1] = {N = "Small Screen", M = "models/props_c17/tv_monitor01.mdl", CamPos = Vector(25,0,0), CamLookAt = Vector(0,0,-3), FOV = 90},
  155. [2] = {N = "Small Monitor", M = "models/props_lab/monitor01b.mdl", CamPos = Vector(25,0,0), CamLookAt = Vector(0,0,0), FOV = 75},
  156. [3] = {N = "Computer Screen", M = "models/props/cs_office/computer_monitor.mdl", CamPos = Vector(15,0,10), CamLookAt = Vector(0,0,10), FOV = 120},
  157. [4] = {N = "TV", M = "models/props/cs_office/tv_plasma.mdl", CamPos = Vector(25,0,10), CamLookAt = Vector(0,0,10), FOV = 130},
  158. [5] = {N = "Old Monitor", M = "models/props_lab/monitor01a.mdl", CamPos = Vector(25,0,-5), CamLookAt = Vector(0,0,-5), FOV = 125},
  159. [6] = {N = "Hanging Monitor", M = "models/props_wasteland/controlroom_monitor001b.mdl", CamPos = Vector(30,0,0), CamLookAt = Vector(0,0,-10), FOV = 125},
  160. }
  161.  
  162. local CameraTypes = {
  163. [1] = {N = "Default", M = "models/tobadforyou/surveillance_camera.mdl", CamPos = Vector(25,0,0), CamLookAt = Vector(0,0,0), FOV = 65, BID = {1,2}},
  164. [2] = {N = "Fisheye", M = "models/freeman/cctv_camera_fisheye.mdl", CamPos = Vector(15,0,10), CamLookAt = Vector(0,0,0), FOV = 65, BID = {0,0}},
  165. }
  166.  
  167. function PANEL:Init()
  168.     self:ShowCloseButton(false)
  169.     self:SetTitle("")  
  170.     self:MakePopup()
  171.    
  172.     self.UpDownAng = 0
  173.     self.LeftRightAng = 0
  174.     self.TypeSelected = 1
  175.     self.ScreenModelID = 1
  176.     self.CTypeSelected = 1
  177.  
  178.     self.TopDPanel = vgui.Create("DPanel", self)
  179.     self.TopDPanel.Paint = function(selfp, W,H)
  180.         draw.RoundedBoxEx(8, 0, 0, W, H, HeaderColor, true, true, false, false)
  181.         draw.SimpleText(LangTbl.CameraSettingsMenu, "cctv_paneltext", W/2, H/2, Color( 255, 255, 255, 255 ), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER )    
  182.     end    
  183.    
  184.     self.CameraList = vgui.Create("DScrollPanel", self)
  185.     self.CameraList.Paint = function(selfp, W, H)
  186.         draw.RoundedBox(4, 0, 0, W-15, H, TabListColors)
  187.     end
  188.    
  189.     self.CameraList.VBar.Paint = function() end
  190.     self.CameraList.VBar.btnUp.Paint = function() end
  191.     self.CameraList.VBar.btnDown.Paint = function() end
  192.     self.CameraList.VBar.btnGrip.Paint = function() end    
  193.    
  194.     self.Camera = vgui.Create( "DModelPanel", self.CameraList)
  195.     self.Camera:SetModel("models/tobadforyou/surveillance_camera.mdl")
  196.     self.Camera:SetFOV(65)
  197.     self.Camera:SetLookAt(Vector(0,0,0))
  198.     self.Camera:SetCamPos(Vector(25,0,0))
  199.     local CameraEnt = self.Camera:GetEntity()
  200.     CameraEnt:SetSequence("Idle")
  201.     self.Camera:SetAnimated(true)
  202.     self.Camera.LayoutEntity = function(selfp, Ent)
  203.         if selfp.ShouldPan then
  204.             if CameraEnt:GetCycle() >= 1 then
  205.                 CameraEnt:SetCycle(0)
  206.             end
  207.             selfp:RunAnimation()
  208.         else
  209.             return
  210.         end
  211.     end
  212.    
  213.     local OldPaint = self.Camera.Paint
  214.     self.Camera.Paint = function(selfp,W,H) draw.RoundedBox(8, 0, 0, W, H, Color(150,150,150,200)) OldPaint(selfp,W,H) end 
  215.    
  216.     self.Screen = vgui.Create( "DModelPanel", self.CameraList)
  217.     self.Screen.LayoutEntity = function(selfp, Ent) end
  218.     local OldPaint = self.Screen.Paint
  219.     self.Screen.Paint = function(selfp,W,H) draw.RoundedBox(8, 0, 0, W, H, Color(150,150,150,200)) OldPaint(selfp,W,H) end     
  220.    
  221.     self.UpDown = vgui.Create("DNumSlider", self.CameraList)
  222.     self.UpDown:SetText(LangTbl.CamUpDown)
  223.     self.UpDown:SetMin(-50)
  224.     self.UpDown:SetMax(50)
  225.     self.UpDown:SetDecimals(0)
  226.     self.UpDown.Label:SetTextColor(Color(0,0,0,255))
  227.     self.UpDown.OnValueChanged = function(selfp, NewValue)
  228.         self.UpDownAng = NewValue
  229.         if IsValid(CameraEnt) and self.CTypeSelected == 1 then
  230.             CameraEnt:ManipulateBoneAngles(2, Angle(0, self.UpDownAng, 0))
  231.         end
  232.     end
  233.    
  234.     self.LeftRight = vgui.Create("DNumSlider", self.CameraList)
  235.     self.LeftRight:SetText(LangTbl.CamLeftRight)
  236.     self.LeftRight:SetMin(-45)
  237.     self.LeftRight:SetMax(45)
  238.     self.LeftRight:SetDecimals(0)
  239.     self.LeftRight.Label:SetTextColor(Color(0,0,0,255))
  240.     self.LeftRight.OnValueChanged = function(selfp, NewValue)
  241.         if self.Camera.ShouldPan then
  242.             self.LeftRightAng = 0
  243.         else
  244.             self.LeftRightAng = NewValue
  245.         end
  246.         if IsValid(CameraEnt) and self.CTypeSelected == 1 then
  247.             CameraEnt:ManipulateBoneAngles(1, Angle(0, 0, self.LeftRightAng))
  248.         end
  249.     end
  250.    
  251.     self.CamType = vgui.Create("DComboBox", self)
  252.     self.CamType:SetValue("Select Idle Type")
  253.     self.CamType:AddChoice("Middle")
  254.     self.CamType:AddChoice("Left")
  255.     self.CamType:AddChoice("Right")
  256.     self.CamType.OnSelect = function(selfp, index, value)
  257.         self.TypeSelected = index
  258.         if self.Camera.ShouldPan then
  259.             local Seq = CameraEnt:LookupSequence(PanTypes[self.TypeSelected])
  260.             if Seq then
  261.                 CameraEnt:SetSequence(CameraEnt:LookupSequence(PanTypes[self.TypeSelected]))
  262.             end
  263.         else
  264.             local Seq = CameraEnt:LookupSequence(IdleTypes[self.TypeSelected])
  265.             if Seq then
  266.                 CameraEnt:SetSequence(CameraEnt:LookupSequence(IdleTypes[self.TypeSelected]))
  267.             end
  268.         end
  269.     end
  270.     self.CamType.DoClick = function(selfp)
  271.         if ( selfp:IsMenuOpen() ) then
  272.             return selfp:CloseMenu()
  273.         end
  274.         if self.CTypeSelected == 1 then
  275.             selfp:OpenMenu()
  276.         end
  277.     end
  278.    
  279.     self.Pan = vgui.Create("DCheckBoxLabel", self.CameraList)
  280.     self.Pan:SetText(LangTbl.CamPan)
  281.     self.Pan:SetValue(0)
  282.     self.Pan.Label:SetTextColor(Color(0,0,0,255))
  283.     self.Pan.Button.DoClick = function() if self.CTypeSelected == 1 then self.Pan:Toggle() end end
  284.     self.Pan.OnChange = function(selfp, val)
  285.         if val then
  286.             self.CamType:Clear()
  287.             self.CamType:SetValue("Select Pan Type")
  288.             self.CamType:AddChoice("Pan Left to Right")
  289.             self.CamType:AddChoice("Pan Left to Middle")
  290.             self.CamType:AddChoice("Pan Right to Middle")
  291.             self.LeftRightAng = 0
  292.             CameraEnt:ManipulateBoneAngles(1, Angle(0, 0, 0))
  293.             CameraEnt:ManipulateBoneAngles(2, Angle(0, self.UpDownAng, 0))
  294.             local Seq = CameraEnt:LookupSequence(PanTypes[self.TypeSelected])
  295.             if Seq then
  296.                 CameraEnt:SetSequence(CameraEnt:LookupSequence(PanTypes[self.TypeSelected]))
  297.             end
  298.             self.Camera.ShouldPan = true
  299.         else
  300.             self.CamType:Clear()
  301.             self.CamType:SetValue("Select Idle Type")
  302.             self.CamType:AddChoice("Middle")
  303.             self.CamType:AddChoice("Left")
  304.             self.CamType:AddChoice("Right")
  305.             local Seq = CameraEnt:LookupSequence(IdleTypes[self.TypeSelected])
  306.             if Seq then
  307.                 CameraEnt:SetSequence(CameraEnt:LookupSequence(IdleTypes[self.TypeSelected]))
  308.             end
  309.             self.Camera.ShouldPan = false
  310.         end
  311.     end
  312.    
  313.     self.CType = vgui.Create("DComboBox", self)
  314.     self.CType:SetValue("Select Camera Type")
  315.     for k,v in ipairs(CameraTypes) do
  316.         self.CType:AddChoice(v.N)
  317.     end
  318.     self.CType.OnSelect = function(selfp, index, value)
  319.         local CTbl = CameraTypes[index]
  320.         self.Camera:SetModel(CTbl.M)
  321.         self.Camera:SetCamPos(CTbl.CamPos)
  322.         self.Camera:SetLookAt(CTbl.CamLookAt)
  323.         self.Camera:SetFOV(CTbl.FOV)
  324.         CameraEnt = self.Camera:GetEntity()
  325.        
  326.         self.CTypeSelected = index
  327.     end
  328.    
  329.     self.UpdateCType = vgui.Create("cctv_button", self.CameraList)
  330.     self.UpdateCType:SetBText("Update Type($" .. Cconfig.ChangeCTypeCost .. ")")
  331.     self.UpdateCType.DoClick = function()
  332.         net.Start("cctv_update_ctype")
  333.             net.WriteFloat(self.CTypeSelected)
  334.         net.SendToServer()
  335.     end    
  336.    
  337.     self.UName = vgui.Create( "DTextEntry", self.CameraList)
  338.     self.UName:SetText("TV Identifier Name")
  339.  
  340.     self.UpdateUName = vgui.Create("cctv_button", self.CameraList)
  341.     self.UpdateUName:SetBText("Update Text")
  342.     self.UpdateUName.DoClick = function()
  343.         local Name = self.UName:GetValue()
  344.         net.Start("cctv_update_uname")
  345.             net.WriteString(Name)
  346.         net.SendToServer()
  347.     end
  348.    
  349.     self.Mixer = vgui.Create("DColorMixer", self.CameraList)
  350.     self.Mixer:SetColor(Color(255,255,255,255))
  351.     self.Mixer:SetAlphaBar(false)
  352.     self.Mixer.ValueChanged = function(selfp, C)
  353.         if IsValid(self.Camera) then
  354.             self.Camera:SetColor(Color(C.r,C.g,C.b,C.a))
  355.         end
  356.     end
  357.    
  358.     self.MarkService = vgui.Create("DCheckBoxLabel", self.CameraList)
  359.     self.MarkService:SetText(LangTbl.CamMarkForService)
  360.     self.MarkService.Label:SetTextColor(Color(0,0,0,255))      
  361.    
  362.     self.UpdateCam = vgui.Create("cctv_button", self.CameraList)
  363.     self.UpdateCam:SetBText(LangTbl.CameraUpdateSettings)
  364.     self.UpdateCam.DoClick = function()
  365.         local CTbl = self.Mixer:GetColor()
  366.         net.Start("cctv_update_camerasettings")
  367.             net.WriteFloat(self.UpDownAng)
  368.             net.WriteFloat(self.LeftRightAng)
  369.             net.WriteBool(self.Camera.ShouldPan)
  370.             net.WriteFloat(self.TypeSelected)
  371.             net.WriteFloat(CTbl.r)
  372.             net.WriteFloat(CTbl.g)
  373.             net.WriteFloat(CTbl.b)
  374.         net.SendToServer()
  375.     end    
  376.    
  377.     self.ScreenModel = vgui.Create("DComboBox", self)
  378.     self.ScreenModel:SetValue("Select Screen Model")
  379.     for k,v in ipairs(ScreenModels) do
  380.         self.ScreenModel:AddChoice(v.N)
  381.     end
  382.     self.ScreenModel.OnSelect = function(selfp, index, value)
  383.         local STbl = ScreenModels[index]
  384.         self.Screen:SetModel(STbl.M)
  385.         self.Screen:SetCamPos(STbl.CamPos)
  386.         self.Screen:SetLookAt(STbl.CamLookAt)
  387.         self.Screen:SetFOV(STbl.FOV)
  388.        
  389.         self.ScreenModelID = index
  390.     end
  391.    
  392.     self.UpdateScreen = vgui.Create("cctv_button", self.CameraList)
  393.     local Text = LangTbl.ScreenUpdateModel
  394.     if Cconfig.ChangeScreenCost > 0 then
  395.         Text = LangTbl.ScreenUpdateModel .. "($" .. Cconfig.ChangeScreenCost .. ")"
  396.     end
  397.     self.UpdateScreen:SetBText(Text)
  398.     self.UpdateScreen.DoClick = function()
  399.         net.Start("cctv_updatescreen")
  400.             net.WriteFloat(self.ScreenModelID)
  401.         net.SendToServer()
  402.     end
  403.    
  404.     self.CloseButton = vgui.Create("cctv_button", self)
  405.     self.CloseButton:SetBText("X")
  406.     self.CloseButton.DoClick = function() self:Remove() end
  407. end
  408.  
  409. function PANEL:UpdateSettings(Screen, Cam)
  410.     local Marked = Cam:GetMarkedService()
  411.     if Marked then
  412.         self.MarkService:SetValue(1)
  413.     else
  414.         self.MarkService:SetValue(0)
  415.     end
  416.     self.MarkService.OnChange = function(selfp, val)
  417.         net.Start("cctv_markforservice")
  418.             net.WriteBool(val)
  419.         net.SendToServer()
  420.     end
  421.     if IsValid(Screen) then
  422.         local M = Screen:GetModel()
  423.         local STbl = ScreenModels[1]
  424.         for k,v in ipairs(ScreenModels) do
  425.             if v.M == M then
  426.                 STbl = v
  427.                 break
  428.             end
  429.         end
  430.         self.Screen:SetModel(M)
  431.         self.Screen:SetFOV(STbl.FOV)
  432.         self.Screen:SetLookAt(STbl.CamLookAt)
  433.         self.Screen:SetCamPos(STbl.CamPos) 
  434.     end
  435.     local Name = Screen:GetUName()
  436.     if Name then
  437.         self.UName:SetText(Name)
  438.     end
  439.    
  440.     self.Mixer:SetColor(Cam:GetColor())
  441.    
  442.     local CType = Cam:GetCType()
  443.     local CTbl = CameraTypes[CType]
  444.     if CTbl then
  445.         local VCam = self.Camera:GetEntity()
  446.         VCam:SetModel(CTbl.M)
  447.         self.CTypeSelected = CType
  448.        
  449.         local BoneAng = Cam:GetManiB()
  450.        
  451.         self.LeftRightAng = BoneAng.r
  452.         self.UpDownAng = BoneAng.y
  453.        
  454.         VCam:ManipulateBoneAngles(CTbl.BID[1], Angle(0, 0, self.LeftRightAng))
  455.         VCam:ManipulateBoneAngles(CTbl.BID[2], Angle(0, self.UpDownAng, 0))
  456.     end
  457. end
  458.  
  459. function PANEL:Paint(W,H)
  460.     draw.RoundedBoxEx(8, 0, HeaderH, W, H-HeaderH, MainPanelColor,false,false,true,true)   
  461. end
  462.  
  463. local Width, Height = 425, 395
  464. function PANEL:PerformLayout() 
  465.     self:SetPos(ScrW()/2-Width/2, ScrH()/2-Height/2)
  466.     self:SetSize(Width, Height)
  467.    
  468.     self.TopDPanel:SetPos(0,0)
  469.     self.TopDPanel:SetSize(Width,HeaderH)  
  470.    
  471.     local HStart = HeaderH+5
  472.     self.CameraList:SetPos(5,HStart)
  473.     self.CameraList:SetSize(Width+5, Height-35)
  474.    
  475.     self.Camera:SetPos(Width-165, 5)
  476.     self.Camera:SetSize(150,160)
  477.    
  478.     self.UpdateCam:SetPos(Width-165,135)
  479.     self.UpdateCam:SetSize(150,30) 
  480.    
  481.     self.Screen:SetPos(Width-165, 170)
  482.     self.Screen:SetSize(150,160)
  483.    
  484.     self.UpdateScreen:SetPos(Width-165,300)
  485.     self.UpdateScreen:SetSize(150,30)
  486.    
  487.     local MiddleW = (Width-25-self.Camera:GetWide())/2
  488.     self.UpDown:SetPos(MiddleW-100,5)
  489.     self.UpDown:SetSize(200,25)
  490.  
  491.     self.LeftRight:SetPos(MiddleW-100,40)
  492.     self.LeftRight:SetSize(200,25)
  493.    
  494.     self.CamType:SetPos(10,105)
  495.     self.CamType:SetSize(125,20)   
  496.    
  497.     self.UpdateCType:SetPos(135, 100)
  498.     self.UpdateCType:SetSize(110,20)   
  499.    
  500.     self.Pan:SetPos(140,75)
  501.     self.Pan:SetSize(50,20)
  502.    
  503.     self.CType:SetPos(10,130)
  504.     self.CType:SetSize(125,20)
  505.    
  506.     self.ScreenModel:SetPos(10, 155)
  507.     self.ScreenModel:SetSize(125,20)
  508.    
  509.     self.MarkService:SetPos(140,125)
  510.     self.MarkService:SetSize(150,20)       
  511.    
  512.     self.UName:SetPos(5,150)
  513.     self.UName:SetSize(125, 20)
  514.    
  515.     self.UpdateUName:SetPos(135, 150)
  516.     self.UpdateUName:SetSize(110,20)
  517.    
  518.     self.Mixer:SetPos(5, 175)
  519.     self.Mixer:SetSize(240,180)
  520.    
  521.     self.CloseButton:SetPos(Width-HeaderH,HeaderH/2-9)
  522.     self.CloseButton:SetSize(20, 20)   
  523. end
  524. vgui.Register("cctv_camera_edit", PANEL, "DFrame")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement