Advertisement
Guest User

Untitled

a guest
May 11th, 2015
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 9.62 KB | None | 0 0
  1.     //MjcMOTD
  2.     //By Sir Mjctechguy
  3.  
  4.     //Fonts
  5.     surface.CreateFont("MjcMOTD_Font_CloseButton", {
  6.     font = "Roboto",
  7.     size = 60,
  8.     weight = 0,
  9.     blursize = 0,
  10.     scanlines = 0,
  11.     antialias = true,
  12.     underline = false,
  13.     italic = false,
  14.     strikeout = false,
  15.     symbol = false,
  16.     rotary = false,
  17.     shadow = false,
  18.     additive = false,
  19.     outline = false,
  20.         })
  21.  
  22.     surface.CreateFont("MjcMOTD_Font_TopServerName", {
  23.     font = "Roboto",
  24.     size = 30,
  25.     weight = 500,
  26.     blursize = 0,
  27.     scanlines = 0,
  28.     antialias = true,
  29.     underline = false,
  30.     italic = false,
  31.     strikeout = false,
  32.     symbol = false,
  33.     rotary = false,
  34.     shadow = false,
  35.     additive = false,
  36.     outline = false,
  37.         })
  38.  
  39.     surface.CreateFont("MjcMOTD_Font_MaiinLinkButtons", {
  40.     font = "Roboto",
  41.     size = 40,
  42.     weight = 5,
  43.     blursize = 0,
  44.     scanlines = 0,
  45.     antialias = true,
  46.     underline = false,
  47.     italic = false,
  48.     strikeout = false,
  49.     symbol = false,
  50.     rotary = false,
  51.     shadow = false,
  52.     additive = false,
  53.     outline = false,
  54.         })
  55.  surface.CreateFont("MjcMOTD_Font_ServerInfo", {
  56.   font = "Roboto",
  57.   size = 20,
  58.   weight = 5,
  59.   blursize = 0,
  60.   scanlines = 0,
  61.   antialias = true,
  62.   underline = false,
  63.   italic = false,
  64.   strikeout = false,
  65.   symbol = false,
  66.   rotary = false,
  67.   shadow = false,
  68.   additive = false,
  69.   outline = false,
  70.     })
  71.  
  72. function MjcMOTD()
  73.   local MjcMOTDPanel_Backframe = vgui.Create("DPanel")
  74.               MjcMOTDPanel_Backframe:SetSize(ScrW()-50, ScrH()-50)
  75.               MjcMOTDPanel_Backframe:Center()
  76.               MjcMOTDPanel_Backframe.Paint = function( self, w, h )
  77.                 Derma_DrawBackgroundBlur( self, self.startTime )
  78.             end
  79.   local MjcMOTDPanel_Mainframe = vgui.Create("DPanel", MjcMOTDPanel_Backframe)
  80.               MjcMOTDPanel_Mainframe:SetSize(ScrW()-50, ScrH()-50)
  81.               MjcMOTDPanel_Mainframe:SetPos(100,100)
  82.               MjcMOTDPanel_Mainframe:Dock(FILL)
  83.               MjcMOTDPanel_Mainframe.Paint = function( self, w, h )
  84.                 draw.RoundedBox( 0, 0, 0, w, h, color_white )
  85.             end
  86.  
  87. //Left Frame
  88.   local MjcMOTDPanel_LeftFrame = vgui.Create("DPanel", MjcMOTDPanel_Mainframe)
  89.               MjcMOTDPanel_LeftFrame:SetSize(300, ScrH()-50)
  90.               MjcMOTDPanel_LeftFrame:Dock(LEFT)
  91.               MjcMOTDPanel_LeftFrame.Paint = function( self, w, h )
  92.                 draw.RoundedBox( 0, 0, 0, w, h, MjcMOTDPanel_LeftFramColour )
  93.             end
  94.  
  95.  
  96.   local MjcMOTDPanel_LeftTopFrame = vgui.Create("DPanel", MjcMOTDPanel_LeftFrame)
  97.               MjcMOTDPanel_LeftTopFrame:SetSize(300, 84)
  98.               MjcMOTDPanel_LeftTopFrame:Dock(TOP)
  99.               MjcMOTDPanel_LeftTopFrame.Paint = function( self, w, h )
  100.                 draw.RoundedBox( 0, 0, 0, w, h, MjcMOTDPanel_LeftFrameTopColour )
  101.             end
  102.   //Avatar
  103.   local MjcMOTDPanel_LeftTopFrame_Avatar = vgui.Create("AvatarImage", MjcMOTDPanel_LeftTopFrame)
  104.         MjcMOTDPanel_LeftTopFrame_Avatar:SetPlayer(LocalPlayer(), 84)
  105.         MjcMOTDPanel_LeftTopFrame_Avatar:SetSize(84,84)
  106.         MjcMOTDPanel_LeftTopFrame_Avatar:Dock(LEFT)
  107.   //Steam Name
  108.   local MjcMOTDPanel_LeftTopFrame_UserName = vgui.Create("DLabel", MjcMOTDPanel_LeftTopFrame)
  109.         MjcMOTDPanel_LeftTopFrame_UserName:SetText(LocalPlayer():GetName())
  110.         MjcMOTDPanel_LeftTopFrame_UserName:SetFont("MjcMOTD_Font_TopServerName")
  111.         MjcMOTDPanel_LeftTopFrame_UserName:SetSize(300,300)
  112.         MjcMOTDPanel_LeftTopFrame_UserName:Dock(LEFT)
  113.         MjcMOTDPanel_LeftTopFrame_UserName:DockMargin(10,0,0,0)
  114.  
  115.   //Server Info Title Frame
  116.   local MjcMOTDPanel_LeftFrameST = vgui.Create("DPanel", MjcMOTDPanel_LeftFrame)
  117.         MjcMOTDPanel_LeftFrameST:SetSize(250, MjcMOTDPanel_LeftFrame:GetTall()/30)
  118.         MjcMOTDPanel_LeftFrameST:Dock(TOP)
  119.         MjcMOTDPanel_LeftFrameST.Paint = function( self, w, h )
  120.           draw.RoundedBox( 0, 0, 0, w, h, MjcMOTDPanel_LeftFrameSTColour )
  121.         end
  122.   //Server Info Title
  123.   local MjcMOTDPanel_LeftFrameSTT = vgui.Create("DLabel", MjcMOTDPanel_LeftFrameST)
  124.         MjcMOTDPanel_LeftFrameSTT:SetSize(250, MjcMOTDPanel_LeftFrame:GetTall()/30)
  125.         MjcMOTDPanel_LeftFrameSTT:Dock(TOP)
  126.         MjcMOTDPanel_LeftFrameSTT:SetText("Server Info")
  127.         MjcMOTDPanel_LeftFrameSTT:SetFont("MjcMOTD_Font_TopServerName")
  128.         MjcMOTDPanel_LeftFrameSTT:SetContentAlignment( 5 )
  129.   //Server Current Map
  130.   local MjcMOTDPanel_LeftFrameSM = vgui.Create("DLabel", MjcMOTDPanel_LeftFrame)
  131.         MjcMOTDPanel_LeftFrameSM:SetSize(250, MjcMOTDPanel_LeftFrame:GetTall()/30)
  132.         MjcMOTDPanel_LeftFrameSM:Dock(TOP)
  133.         MjcMOTDPanel_LeftFrameSM:SetContentAlignment( 5 )
  134.         MjcMOTDPanel_LeftFrameSM:SetText("Current Map: "..game.GetMap())
  135.         MjcMOTDPanel_LeftFrameSM:SetFont("MjcMOTD_Font_ServerInfo")
  136.   //Server Current Players
  137.   local MjcMOTDPanel_LeftFramePC = vgui.Create("DLabel", MjcMOTDPanel_LeftFrame)
  138.         MjcMOTDPanel_LeftFramePC:SetSize(250, MjcMOTDPanel_LeftFrame:GetTall()/30)
  139.         MjcMOTDPanel_LeftFramePC:Dock(TOP)
  140.         MjcMOTDPanel_LeftFramePC:SetContentAlignment( 5 )
  141.         MjcMOTDPanel_LeftFramePC:SetText("Player Count: "..#player.GetAll().."/"..game.MaxPlayers())
  142.         MjcMOTDPanel_LeftFramePC:SetFont("MjcMOTD_Font_ServerInfo")
  143.    //Left Frame
  144.   local MjcMOTDPanel_LeftFrameButtons = vgui.Create("DScrollPanel", MjcMOTDPanel_LeftFrame)
  145.         MjcMOTDPanel_LeftFrameButtons:Dock(FILL)
  146.         MjcMOTDPanel_LeftFrameButtons.Paint = function( self, w, h )
  147.           draw.RoundedBox( 0, 0, 0, w, h, MjcMOTDPanel_LeftFrameButtonsColour )
  148.         end
  149.   local sbar = MjcMOTDPanel_LeftFrameButtons:GetVBar()
  150. function sbar:Paint( w, h )
  151.   draw.RoundedBox( 0, 0, 0, w, h, MjcmOTDPanel_ScrollbarBackground )
  152. end
  153. function sbar.btnUp:Paint( w, h )
  154.   draw.RoundedBox( 0, 0, 0, w, h, MjcMOTDPanel_ScrollbarbtnUp )
  155. end
  156. function sbar.btnDown:Paint( w, h )
  157.   draw.RoundedBox( 0, 0, 0, w, h, MjcMOTDPanel_ScrollbarbtnDown )
  158. end
  159. function sbar.btnGrip:Paint( w, h )
  160.   draw.RoundedBox( 0, 0, 0, w, h, MjcMOTDPanel_ScrollbarGrip )
  161. end
  162. local MjcMOTDPanel_HTMLDefault = vgui.Create("HTML", MjcMOTDPanel_Mainframe)
  163.           MjcMOTDPanel_HTMLDefault:Dock(FILL)
  164.           MjcMOTDPanel_HTMLDefault:OpenURL(MjcMOTDPanel_DefaultURL)
  165.  
  166.  for k, v in pairs(MMOTDButtonTable) do
  167.   local MjcMOTDPanel_MainButton = vgui.Create("DButton", MjcMOTDPanel_LeftFrameButtons)
  168.           MjcMOTDPanel_MainButton:SetSize(250, MjcMOTDPanel_LeftFrame:GetTall()/9)
  169.           MjcMOTDPanel_MainButton:Dock(TOP)
  170.           MjcMOTDPanel_MainButton:DockMargin(0,0,0,5)
  171.           MjcMOTDPanel_MainButton:SetText(k)
  172.           MjcMOTDPanel_MainButton:SetColor(v.textcolor)
  173.           MjcMOTDPanel_MainButton:SetFont("MjcMOTD_Font_MaiinLinkButtons")
  174.           MjcMOTDPanel_MainButton.Paint = function( self, w, h )
  175.           draw.RoundedBox(0, 0, 0, w, h, v.buttoncolor)
  176.         end
  177.         if MjcMOTDPanel_HoverMainButtons then
  178.           function MjcMOTDPanel_MainButton:OnCursorEntered()
  179.             MjcMOTDPanel_MainButton.Paint = function(self, w, h)
  180.             draw.RoundedBox(0,0,0,w,h,v.buttoncolorhover)
  181.           end
  182.         end
  183.           function MjcMOTDPanel_MainButton:OnCursorExited()
  184.             MjcMOTDPanel_MainButton.Paint = function(self, w, h)
  185.             draw.RoundedBox(0,0,0,w,h,v.buttoncolor)
  186.           end
  187.         end
  188.       end
  189.           MjcMOTDPanel_MainButton.DoClick = function()
  190.             if type(v.func) == "string" then    
  191.               MjcMOTDPanel_HTMLDefault:OpenURL(v.func)
  192.             else
  193.               v.func()
  194.           end
  195.       end
  196.  end
  197. local MjcMOTDPanel_CloseButton = vgui.Create("DButton", MjcMOTDPanel_Mainframe)
  198.         MjcMOTDPanel_CloseButton:Dock(RIGHT)
  199.             MjcMOTDPanel_CloseButton:SetSize(80, 100)
  200.             MjcMOTDPanel_CloseButton:SetText("X")
  201.             MjcMOTDPanel_CloseButton:SetTextColor(color_white)
  202.             MjcMOTDPanel_CloseButton:SetFont("MjcMOTD_Font_CloseButton")
  203.             MjcMOTDPanel_CloseButton.DoClick = function() MjcMOTD_CloseMenu() end
  204.             MjcMOTDPanel_CloseButton.Paint = function( self, w, h )
  205.                 draw.RoundedBox( 0, 0, 0, w, h, MjcMOTDPanel_CloseButtonColour )
  206.             end
  207.       if MjcMOTDPanel_CloseHoverButton then
  208.       function MjcMOTDPanel_CloseButton:OnCursorEntered()
  209.           MjcMOTDPanel_CloseButton.Paint = function( self, w, h )
  210.           draw.RoundedBox( 0, 0, 0, w, h, MjcMOTDPanel_CloseButtonHoverColour )
  211.         end
  212.       end
  213.       function MjcMOTDPanel_CloseButton:OnCursorExited()
  214.           MjcMOTDPanel_CloseButton.Paint = function( self, w, h )
  215.           draw.RoundedBox( 0, 0, 0, w, h, MjcMOTDPanel_CloseButtonColour )
  216.         end
  217.       end
  218.     end
  219.      local MjcMOTDPanel_TopBar = vgui.Create("DPanel", MjcMOTDPanel_Mainframe)
  220.               MjcMOTDPanel_TopBar:Dock(TOP)
  221.               MjcMOTDPanel_TopBar:SetSize(ScrW()-50, 40)
  222.               MjcMOTDPanel_TopBar.Paint = function( self, w, h )
  223.                 draw.RoundedBox( 0, 0, 0, w, h, MjcMOTDPanel_TopBarBackgroundColour )
  224.             end
  225.     local MjcMOTDText_ServerName = vgui.Create("DLabel", MjcMOTDPanel_TopBar)
  226.             MjcMOTDText_ServerName:SetText(MjcMOTDPanel_ServerNameText)
  227.         MjcMOTDText_ServerName:SetColor(MjcMOTDPanel_ServerNameTextColour)
  228.             MjcMOTDText_ServerName:Dock(LEFT)
  229.             MjcMOTDText_ServerName:DockMargin(10,0,0,0)
  230.             MjcMOTDText_ServerName:SetSize(ScrW()-60,40)
  231.             MjcMOTDText_ServerName:SetFont("MjcMOTD_Font_TopServerName")
  232.  
  233.    
  234.     function MjcMOTD_CloseMenu()
  235.         MjcMOTDPanel_Backframe:Remove()
  236.         gui.EnableScreenClicker(false)
  237.     end
  238. end
  239.  
  240.   function MjcMOTD_InitialSpawn()
  241.       MjcMOTD()
  242.       gui.EnableScreenClicker(true)
  243.   end
  244. hook.Add("InitPostEntity", "MjcMotd_OOS", MjcMOTD_InitialSpawn)
  245.  
  246. function MjcMotd_OpenChatCommand( ply, text )
  247.   if text == MjcMOTD_MotdChatCommand then
  248.     MjcMOTD()
  249.     gui.EnableScreenClicker(true)
  250.   else
  251.   end
  252. end
  253. hook.Add("OnPlayerChat", "MjcMotd_OCC", MjcMotd_OpenChatCommand)
  254.  
  255. concommand.Add( "MjcMOTD_ConOpenMenu", function( ply )
  256.       MjcMOTD()
  257.       gui.EnableScreenClicker(true)
  258. end )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement