Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- surface.CreateFont( "DefaultBold", {
- font = "Tahoma",
- size = 16,
- weight = 1000,
- antialias = true,
- additive = false
- } )
- surface.CreateFont( "GMSUnlockDescription", {
- font = "Tahoma",
- size = 14,
- weight = 500,
- antialias = true,
- additive = false
- } )
- /*---------------------------------------------------------
- Tribe Menu
- ---------------------------------------------------------*/
- local PANEL = {}
- function PANEL:Init()
- self:SetTitle( "Gang Creation Menu" )
- self:SetSize( 275, 305 )
- self:MakePopup()
- self:Center()
- local gnamelabel = vgui.Create( "DLabel", self )
- gnamelabel:SetPos( 5, 21 )
- gnamelabel:SetText( "Gang title" )
- local gname = vgui.Create( "DTextEntry", self )
- gname:SetSize( self:GetWide() - 10, 20 )
- gname:SetPos( 5, 40 )
- local gpwlabel = vgui.Create( "DLabel", self )
- gpwlabel:SetPos( 5, 65 )
- gpwlabel:SetText( "Password ( Optional )" )
- gpwlabel:SizeToContents()
- local gpw = vgui.Create( "DTextEntry", self )
- gpw:SetSize( self:GetWide() - 10, 20 )
- gpw:SetPos( 5, 80 )
- local gcollabel = vgui.Create( "DLabel", self )
- gcollabel:SetPos( 5, 105 )
- gcollabel:SetText( "Tribe color" )
- local gcolor = vgui.Create( "DColorMixer", self )
- gcolor:SetSize( self:GetWide() - 15, 150 )
- gcolor:SetPos( 5, 125 )
- local button = vgui.Create( "DButton", self )
- button:SetSize( self:GetWide() - 10, 20 )
- button:SetPos( 5, 280 )
- button:SetText( "Create this GANG!" )
- button.DoClick = function()
- RunConsoleCommand( "bw_creategang", gname:GetValue(), gcolor:GetColor().r, gcolor:GetColor().g, gcolor:GetColor().b, gpw:GetValue() )
- self:SetVisible( false )
- end
- end
- vgui.Register( "BW_GangMenu", PANEL, "DFrame" )
- --- Testmenu
- local function MyMenu()
- local Menu = vgui.Create("DFrame")
- --Menu:SetPos(ScrW() / 2 - 400, ScrH() / 2 - 200)
- Menu:SetSize(ScrW()/1.5, ScrH()/1.5)
- Menu:SetText("My Menu")
- Menu:SetDraggable(true)
- Menu:ShowCloseButton(true)
- Menu:SetKeyboardInputEnabled( true )
- Menu:SetMouseInputEnabled( true )
- Menu:MakePopup()
- local Text = vgui.Create("DLabel",Menu)
- //You can leave out the parentheses if there is a single string as an argument.
- Text:SetText "You opened the F1 menu ;D"
- Text:SizeToContents()
- Text:Center()
- end
- net.Receive("MyMenu", MyMenu)
- local function Spawnmenu()
- vgui.Create("BW_SpawnMenu")
- end
- --net.Receive("Spawnmenu", Spawnmenu)
- /*---------------------------------------------------------
- Spawn Menu
- ---------------------------------------------------------*/
- local PANEL = {}
- function PANEL:Init()
- -- Request Data from server and set clientside
- BW_request_data( LocalPlayer(), LocalPlayer() )
- -- Position of the spawn menu
- local width = ScrW()/1.8
- local height = ScrH()/1.5
- local pos1 = (ScrW()-width)-130
- local pos2 = (ScrH()-height)/2
- self:SetSize(width, height)
- self:SetPos(pos1, pos2)
- --self:Center()
- --self:SetDraggable( true )
- --self:ShowCloseButton( true )
- self:MakePopup()
- self:SetVisible( true )
- self:SetKeyboardInputEnabled( false )
- self:SetMouseInputEnabled( true )
- self:SetAlpha( 255 )
- self.PSheet = vgui.Create( "DPropertySheet", self )
- --self.PSheet:SetSize(self:GetWide()-305, self:GetTall())
- self.PSheet:Dock( FILL )
- self.SItemWelc = vgui.Create( "BW_SpawnMenu_welcome" )
- self.PSheet:AddSheet( " Welcome ", self.SItemWelc, "icon16/world.png", false, false, "Welcome to Basewars" )
- self.SItemProps = vgui.Create( "BW_SpawnMenu_props" )
- self.PSheet:AddSheet( " Props ", self.SItemProps, "icon16/box.png", false, false, "Get your props here" )
- self.SItemBW = vgui.Create("BW_SpawnMenu_basewars")
- self.PSheet:AddSheet( " BaseWars ", self.SItemBW, "icon16/money.png", false, false, "Get your basewars stuff here" )
- --self.SItemFPP = vgui.Create("Base War Settings")
- --self.PSheet:AddSheet( " FPP ", self.SItemFPP, "icon16/serer.png", false, false, "FPP Settings" )
- --self.SItemBWold = vgui.Create("BW_SpawnMenu_basewars_old")
- --self.PSheet:AddSheet( " BaseWars(old) ", self.SItemBWold, "icon16/money.png", false, false, "BW Menu from fundk - lol" )
- //self.SItemTools = vgui.Create("ToolMenu")
- self.SItemTools = vgui.Create("BW_SpawnMenu_tools")
- self.PSheet:AddSheet( " Tools ", self.SItemTools, "icon16/wrench.png", false, false, "Tools here" )
- if(LocalPlayer():IsAdmin()) then
- self.SItemAdmin = vgui.Create("BW_SpawnMenu_admin")
- self.PSheet:AddSheet( " Admin ", self.SItemAdmin, "icon16/shield.png", false, false, "Get your hats here" )
- -- PropSpawnDebugMenu
- self.SItemDebug = vgui.Create("BW_SpawnMenu_debug")
- self.PSheet:AddSheet( " Debug ", self.SItemAdmin, "icon16/report.png", false, false, "Debug and Testing Menu" )
- end
- -- Model View
- --local icon = vgui.Create( "FBW_SpawnMenu_Preview", self)
- --icon:SetPos( self:GetWide()-305, 200)
- --icon:SetSize(250, 250)
- end
- vgui.Register( "BW_SpawnMenu", PANEL, "Panel" )
- local spawnmenudebug = false
- function GM:OnSpawnMenuOpen()
- if(spawnmenudebug) then
- //Debug
- if BW_SpawnMenu then
- BW_SpawnMenu:Remove()
- BW_SpawnMenu = nil
- end
- BW_SpawnMenu = vgui.Create( "BW_SpawnMenu" )
- else
- //Live
- if BW_SpawnMenu == nil then
- BW_SpawnMenu = vgui.Create( "BW_SpawnMenu" )
- end
- end
- BW_SpawnMenu:Show( )
- end
- function GM:OnSpawnMenuClose()
- if(spawnmenudebug) then
- //Debug
- BW_SpawnMenu:Remove()
- else
- //Live
- BW_SpawnMenu:Hide()
- end
- gui.EnableScreenClicker( false )
- end
- ------------------------------------------------------
- ----
- ---- Spawnmenu model
- ----
- ------------------------------------------------------
- local PANEL = {}
- function PANEL:Init()
- self:SetModel(LocalPlayer():GetModel())
- end
- function PANEL:Paint()
- if ( !IsValid( self.Entity ) ) then return end
- local x, y = self:LocalToScreen( 0, 0 )
- self:LayoutEntity( self.Entity )
- local ang = self.aLookAngle
- if ( !ang ) then
- ang = (self.vLookatPos-self.vCamPos):Angle()
- end
- local w, h = self:GetSize()
- cam.Start3D( self.vCamPos, ang, self.fFOV, x, y, w, h, 10, 4096 )
- cam.IgnoreZ( true )
- render.SuppressEngineLighting( true )
- render.SetLightingOrigin( self.Entity:GetPos() )
- render.ResetModelLighting( self.colAmbientLight.r/255, self.colAmbientLight.g/255, self.colAmbientLight.b/255 )
- render.SetColorModulation( self.colColor.r/255, self.colColor.g/255, self.colColor.b/255 )
- render.SetBlend( self.colColor.a/255 )
- for i=0, 6 do
- local col = self.DirectionalLight[ i ]
- if ( col ) then
- render.SetModelLighting( i, col.r/255, col.g/255, col.b/255 )
- end
- end
- self.Entity:DrawModel()
- render.SuppressEngineLighting( false )
- cam.IgnoreZ( false )
- cam.End3D()
- //self.LastPaint = RealTime()
- end
- vgui.Register('BW_SpawnMenu_Model', PANEL, 'DModelPanel')
- ------------------------------------------------------
- ----
- ---- Spawnmenu welcome
- ----
- ------------------------------------------------------
- local PANEL = {}
- function PANEL:Init()
- local Content = vgui.Create("DPanel", self)
- Content:Dock(TOP)
- Content:DockMargin(10,10,10,10)
- Content:SetSize(self:GetWide()-200,self:GetTall()+100)
- --Content.Paint = function(self) end
- local DLabel1 = vgui.Create('DLabel')
- DLabel1:SetParent(Content)
- DLabel1:SetPos(10, 10)
- DLabel1:SetTextColor( Color(0, 0, 0, 255) )
- DLabel1:SetText('Welcome to Basewars \n\nThe best gamemode on the world ;)')
- DLabel1:SizeToContents()
- end
- vgui.Register( "BW_SpawnMenu_welcome", PANEL, "Panel" )
- ------------------------------------------------------
- ----
- ---- Spawnmenu props
- ----
- ------------------------------------------------------
- /* DPropSpawnMenu */
- local PANEL = {}
- function PANEL:Init()
- --self:SetSpacing( 5 )
- --self:SetPadding( 10 )
- --self:SetBGColor(176,196,222)
- self:EnableHorizontal( false )
- self:EnableVerticalScrollbar( true )
- function self:Paint()
- draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 176,196,222 ) )
- end
- -----
- local catarr = {}
- local SpawnableEntities = props
- if ( SpawnableEntities ) then
- for k, v in pairs( SpawnableEntities ) do
- v.cat = v.cat or "Other"
- catarr[ v.cat ] = catarr[ v.cat ] or {}
- table.insert( catarr[ v.cat ], v )
- end
- end
- -----
- for k, v in SortedPairs( catarr ) do
- local cat = vgui.Create( "DCollapsibleCategory", self )
- cat:SetExpanded( 1 )
- cat:SetLabel( k )
- cat:SetFGColor(112,128,144)
- local IconList = vgui.Create( "DPanelList", cat )
- IconList:EnableVerticalScrollbar( true )
- IconList:EnableHorizontal( true )
- IconList:SetAutoSize( true )
- IconList:SetSpacing( 5 )
- IconList:SetPadding( 5 )
- cat:SetContents( IconList )
- self:AddItem( cat )
- wide_max = self:GetWide()-50
- local icon_size = 66
- local ix = 0
- local iy = 0
- for key, ent in SortedPairsByMemberValue( v, "order" ) do
- --local Icon = vgui.Create( "SpawnIcon", IconList )
- if(wide_max < (ix*icon_size)+icon_size) then
- ix = 0
- iy = iy + 1
- end
- --ItemIconAdd(ent.name, ent.hp, ent.price, ent.model, ent.id, icon_size*ix, icon_size*iy, IconList)
- local size = 64
- local Icon = vgui.Create( "SpawnIcon", IconList)
- --Icon:SetPos( pos1, pos2 )
- Icon:SetSize(size,size)
- //Icon:SetIconSize(size)
- Icon:SetModel(ent.model)
- Icon:SetToolTip("HP: "..ent.hp.."\n\nPrice:"..ent.price)
- /*
- Icon.PaintOver = function() -- The paint function
- local DrawDisable = false
- local DrawLevel = false
- local DrawVip = false
- //Name
- draw.RoundedBox(2, 2, size-15, size-4, 15,Color(0,0,0,150))
- draw.DrawText(Name, "font_12", size/2, size-15, Color(255,255,255,255),TEXT_ALIGN_CENTER)
- end
- */
- Icon.DoClick = function()
- --RunConsoleCommand("bw_buy", ent.id)
- net.Start("BW_Buy")
- net.WriteString(ent.id)
- net.SendToServer()
- end
- IconList:AddItem( Icon )
- ix = ix + 1
- --Icon:SetModel( value )
- --Icon.DoClick = function( Icon ) RunConsoleCommand( "gm_spawn", value, 0 ) end
- --Icon:SetIconSize( 64 )
- --Icon:InvalidateLayout( true )
- --Icon:SetToolTip( Format( "%s", value ) )
- end
- end
- end
- function PANEL:Think()
- end
- vgui.Register( "BW_SpawnMenu_props", PANEL, "DPanelList" )
- ------------------------------------------------------
- ----
- ---- Spawnmenu Basewars
- ----
- ------------------------------------------------------
- local PANEL = {}
- function PANEL:Init()
- /*
- local Info = vgui.Create("DPanel", self)
- Info:Dock(TOP)
- --Info:DockMargin(10,10,10,10)
- Info:SetHeight( 150 )
- --Info:SetSize(self:GetWide()-200,self:GetTall()+100)
- --Info.Paint = function(self) end
- local DLabel1 = vgui.Create('DLabel')
- DLabel1:SetParent(Info)
- DLabel1:SetPos(10, 10)
- DLabel1:SetTextColor( Color(0, 0, 0, 255) )
- DLabel1:SetText("The Basewars Structure & Item Store \n\nAll of this is still under heavy developement!\n\n\nCurrent Money: ")
- DLabel1:SizeToContents()
- local DLabel2 = vgui.Create('DLabel')
- DLabel2:SetParent(Info)
- DLabel2:SetPos(90, 75)
- DLabel2:SetTextColor( Color(0, 235, 0, 255) )
- DLabel2:SetText(LocalPlayer().Money.." $")
- DLabel2:SizeToContents()
- */
- self.BWSheet = vgui.Create( "DPropertySheet", self )
- --self.BWSheet:SetSize(self:GetWide()-305, self:GetTall())
- self.BWSheet:Dock( FILL )
- self.BWSheet:DockMargin(10,10,10,10)
- --self.BWSheet:SetSize(self:GetWide()/5, self:GetTall() - 22)
- self.SItemPowerup = vgui.Create( "BW_SpawnMenu_powerup" )
- self.BWSheet:AddSheet( " Powerups ", self.SItemPowerup, "icon16/ruby.png", false, false, "Powerups" )
- self.SItemWeapon = vgui.Create( "BW_SpawnMenu_weapon" )
- self.BWSheet:AddSheet( " Weapons ", self.SItemWeapon, "icon16/gun.png", false, false, "Weapons" )
- self.SItemStructure = vgui.Create( "BW_SpawnMenu_structure" )
- self.BWSheet:AddSheet( " Structures ", self.SItemStructure, "icon16/building.png", false, false, "Structures" )
- self.SItemStructure:SetSize(self:GetWide()/5, self:GetTall() - 22)
- self.SItemPrinter = vgui.Create( "BW_SpawnMenu_printer" )
- self.BWSheet:AddSheet( " Printer ", self.SItemPrinter, "icon16/printer.png", false, false, "Printer" )
- end
- vgui.Register( "BW_SpawnMenu_basewars", PANEL, "Panel" )
- function AddSpawnIcon(Name, Limit, Level, Vip, Price, Hint, Model, cmd, cmdval, pos1, pos2, Menu)
- --local size = 90
- local size = 90
- //local Icon = vgui.Create( "SpawnIcon", Menu)
- local Icon = vgui.Create( "DModelPanel", Menu)
- Icon:SetModel(Model)
- Icon:SetPos( pos1, pos2 )
- Icon:SetSize(size,size)
- local PrevMins, PrevMaxs = Icon:GetEntity():GetRenderBounds()
- if string.match(cmdval,"bw_mp_") then
- -- nice render function for the icons
- Icon:SetCamPos(PrevMins:Distance(PrevMaxs)*Vector(0.5, 0.75, 0.5))
- Icon:SetLookAt((PrevMaxs + PrevMins)/2)
- --Icon:SetAnimated(false)
- Icon:SetAnimSpeed(0.1) --Slows down the animation.
- Icon:SetColor(printer[cmdval].color)
- --Icon:SetColor(Icon:GetEntity():GetColor())
- --Icon:SetCamPos(Vector(15,70,100))
- --Icon:SetLookAt( Vector( 0, 0, 0 ) )
- --Icon:SetAmbientLight( Vector( 255, 255, 255 ) )
- Icon:SetDirectionalLight( BOX_TOP, Color( 255, 255, 255, 255 ) )
- elseif string.match(cmdval,"bw_item_") then
- Icon:SetCamPos(PrevMins:Distance(PrevMaxs)*Vector(0.5, 0.75, 0.5))
- Icon:SetLookAt((PrevMaxs + PrevMins)/2)
- if items[cmdval].color then Icon:SetColor(items[cmdval].color) end
- elseif string.match(cmdval,"m9k_") then
- Icon:SetCamPos(PrevMins:Distance(PrevMaxs)*Vector(0.5, 0.8, 0.5))
- --Icon:SetCamPos(Vector(65, 65, 65))
- Icon:SetLookAt((PrevMaxs + PrevMins)/2)
- --Icon:SetLookAt(Vector(60,0,0))
- elseif string.match(cmdval,"bw_struc") then
- Icon:SetCamPos(PrevMins:Distance(PrevMaxs)*Vector(0.5, 0.75, 0.5))
- Icon:SetLookAt((PrevMaxs + PrevMins)/2)
- if structures[cmdval].color then Icon:SetColor(structures[cmdval].color) end
- end
- --if string.match(cmdval,"bw_mp_") then
- -- Icon:SetCamPos(Vector(0,20,0))
- -- Icon:SetLookAt(Vector(0,7,0))
- --end
- //Icon:SetIconSize(size)
- //local ent = Icon:GetEntity()
- //ent:SetColor(Color(255,255,255))
- //ent:SetMaterial("models/shiny")
- if Limit != nil then
- Icon:SetToolTip(Hint.."\nLimit: "..Limit.."\n\nPrice:"..Price)
- else
- Icon:SetToolTip(Hint.."\n\nPrice:"..Price)
- end
- Icon.PaintOver = function() -- The paint function
- local DrawDisable = false
- local DrawLevel = false
- local DrawVip = false
- //Name
- draw.RoundedBox(2, 2, size-17, size-4, 15,Color(0,0,0,150))
- draw.DrawText(Name, "font_12", size/2, size-15, Color(0,0,0,255),TEXT_ALIGN_CENTER)
- if(Level != nil) then
- if(tostring(Level) > tostring(LocalPlayer().Level)) then
- DrawDisable = true
- DrawLevel = true
- end
- end
- if(Vip != nil) then
- if(!LocalPlayer().Vip) then
- DrawDisable = true
- DrawVip = true
- end
- draw.DrawText("Vip", "font_12", size/2, 2, Color(212,175,55),TEXT_ALIGN_CENTER)
- end
- surface.DrawOutlinedRect(1,1,size-2,size-2)
- if(DrawDisable) then draw.RoundedBox(2, 0, 0, size, size, Color(0,0,0,200)) end
- if(DrawLevel) then draw.DrawText("Level: "..Level, "font_12", size/2, size/2-10, Color(255,0,0,255),TEXT_ALIGN_CENTER) end
- if(DrawVip) then draw.DrawText("Vip Only", "font_12", size/2, size/2-22, Color(255,0,0,255),TEXT_ALIGN_CENTER) end
- end
- Icon.DoClick = function()
- --RunConsoleCommand("bw_buy", cmdval)
- net.Start("BW_Buy")
- net.WriteString(cmdval)
- net.SendToServer()
- end
- end
- --- Powerups Panel
- local PANEL = {}
- function PANEL:Init()
- local Content = vgui.Create("DPanel", self)
- Content:Dock(FILL)
- Content:DockMargin(10,10,10,10)
- /*
- local DLabel1 = vgui.Create('DLabel')
- DLabel1:SetParent(Content)
- DLabel1:SetPos(10, 10)
- DLabel1:SetTextColor( Color(0, 0, 0, 255) )
- DLabel1:SetText('Printer Menu')
- DLabel1:SetTall(20)
- --DLabel1:SizeToContents()
- */
- --if(Content:GetWide() != 64) then
- wide_max = Content:GetWide()
- --end
- wide_max = wide_max
- local icon_size = 92
- local iy = 0
- local ix = 0
- for k, ent in SortedPairsByMemberValue( items, "order" ) do
- --print("VALUES: "..k.." - "..ent.name)
- --for key, ent in SortedPairsByMemberValue( v, "order", false ) do
- --if(wide_max < (ix*icon_size)+icon_size) then
- -- ix = 0
- -- iy = iy + 1
- --end
- AddSpawnIcon(ent.name, ent.limit, ent.lvlrq, ent.vip, ent.price, ent.hint, ent.model, ent.cmd, k, icon_size*ix, icon_size*iy, Content)
- ix = ix + 1
- --end
- end
- end
- vgui.Register( "BW_SpawnMenu_powerup", PANEL, "Panel" )
- --- Weapons Panel
- local PANEL = {}
- function PANEL:Init()
- --self:SetSpacing( 5 )
- --self:SetPadding( 10 )
- --self:SetBGColor(176,196,222)
- self:EnableHorizontal( false )
- self:EnableVerticalScrollbar( true )
- self:Dock(FILL)
- self:DockMargin(20,10,20,20)
- function self:Paint()
- draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 192,192,192 ) )
- end
- -----
- local catarr = {}
- local SpawnableEntities = weapon
- if ( SpawnableEntities ) then
- for k, v in pairs( SpawnableEntities ) do
- v.cat = v.cat or "Other"
- catarr[ v.cat ] = catarr[ v.cat ] or {}
- table.insert( catarr[ v.cat ], v )
- end
- end
- -----
- for k, v in SortedPairs( catarr ) do
- local cat = vgui.Create( "DCollapsibleCategory", self )
- cat:SetExpanded( 1 )
- cat:SetLabel( k )
- cat.Paint = function() -- The paint function
- surface.SetDrawColor( 24, 37, 49, 255 ) -- What color ( R, B, G, A )
- surface.DrawRect( 0, 0, self:GetWide(), 20 ) -- How big is it (cords)
- surface.SetDrawColor( 245, 245, 245, 255 )
- surface.DrawRect( 0, 21, self:GetWide(), self:GetTall()-20 )
- end
- local IconList = vgui.Create( "DPanelList", cat )
- IconList:EnableVerticalScrollbar( false )
- IconList:EnableHorizontal( true )
- IconList:SetAutoSize( true )
- IconList:SetSpacing( 5 )
- IconList:SetPadding( 5 )
- --IconList:SetWide()
- cat:SetContents( IconList )
- self:AddItem( cat )
- --wide_max = self:GetWide()-50
- --local icon_size = 92
- --local ix = 0
- --local iy = 0
- for key, ent in SortedPairsByMemberValue( v, "order" ) do
- --local Icon = vgui.Create( "SpawnIcon", IconList )
- --if(wide_max < (ix*icon_size)+icon_size) then
- -- ix = 0
- -- iy = iy + 1
- --end
- -- wide/(count+1offset)
- --local wide_max0 = IconList:GetWide()
- --local ipr = 6
- --local size = wide_max0/ipr+ipr*2
- --ItemIconAdd(ent.name, ent.hp, ent.price, ent.model, ent.id, icon_size*ix, icon_size*iy, IconList)
- local size = 124
- local Icon = vgui.Create( "DModelPanel", IconList)
- Icon:SetSize(size,size)
- Icon:SetModel(ent.model)
- Icon:SetToolTip("Name: "..ent.name.."\n\nPrice:"..ent.price)
- local PrevMins, PrevMaxs = Icon:GetEntity():GetRenderBounds()
- Icon:SetCamPos(PrevMins:Distance(PrevMaxs)*Vector(0.5, 0.75, 0.5))
- Icon:SetLookAt((PrevMaxs + PrevMins)/2)
- if ent.limit != nil then
- Icon:SetToolTip(ent.hint.."\nLimit: "..ent.limit.."\n\nPrice:"..ent.price)
- else
- Icon:SetToolTip(ent.hint.."\n\nPrice:"..ent.price)
- end
- Icon.PaintOver = function() -- The paint function
- local DrawDisable = false
- local DrawLevel = false
- local DrawVip = false
- //Price
- draw.RoundedBox(4, 2, 2, size-4, 15,Color(0,0,0,150))
- draw.DrawText(ent.price, "font_12", size/2, 2, Color(255,69,0,255),TEXT_ALIGN_CENTER)
- //Name
- draw.RoundedBox(2, 2, size-17, size-4, 15,Color(0,0,0,150))
- draw.DrawText(ent.name, "font_12", size/2, size-15, Color(255,255,255,255),TEXT_ALIGN_CENTER)
- if(ent.level != nil) then
- if(tostring(Level) > tostring(LocalPlayer().Level)) then
- DrawDisable = true
- DrawLevel = true
- end
- end
- if(ent.vip != nil) then
- if(!LocalPlayer().Vip) then
- DrawDisable = true
- DrawVip = true
- end
- draw.DrawText("Vip", "font_12", size/2, 2, Color(212,175,55),TEXT_ALIGN_CENTER)
- end
- surface.DrawOutlinedRect(1,1,size-2,size-2)
- if(DrawDisable) then draw.RoundedBox(2, 0, 0, size, size, Color(0,0,0,200)) end
- if(DrawLevel) then draw.DrawText("Level: "..ent.level, "font_12", size/2, size/2-10, Color(255,0,0,255),TEXT_ALIGN_CENTER) end
- if(DrawVip) then draw.DrawText("Vip Only", "font_12", size/2, size/2-22, Color(255,0,0,255),TEXT_ALIGN_CENTER) end
- end
- Icon.DoClick = function()
- --RunConsoleCommand("bw_buy", ent.ent)
- net.Start("BW_Buy")
- net.WriteString(ent.ent)
- net.SendToServer()
- end
- IconList:AddItem( Icon )
- --ix = ix + 1
- end
- end
- end
- vgui.Register( "BW_SpawnMenu_weapon", PANEL, "DPanelList" )
- --- Structures Panel
- local PANEL = {}
- function PANEL:Init()
- local Content = vgui.Create("DPanel", self)
- Content:Dock(FILL)
- Content:DockMargin(10,10,10,10)
- /*
- local DLabel1 = vgui.Create('DLabel')
- DLabel1:SetParent(Content)
- DLabel1:SetPos(10, 10)
- DLabel1:SetTextColor( Color(0, 0, 0, 255) )
- DLabel1:SetText('Printer Menu')
- DLabel1:SetTall(20)
- --DLabel1:SizeToContents()
- */
- --if(Content:GetWide() != 64) then
- local wide_max = Content:GetWide()
- local wide_max = 600
- --end
- --wide_max = wide_max
- local icon_size = 92
- local iy = 0
- local ix = 0
- for k, ent in SortedPairsByMemberValue( structures, "order" ) do
- print("VALUES: "..k.." - "..ent.name)
- --for key, ent in SortedPairsByMemberValue( v, "order", false ) do
- --if(wide_max < (ix*icon_size)+icon_size) then
- -- ix = 0
- -- iy = iy + 1
- --end
- if((ix*icon_size)+icon_size > wide_max ) then
- ix = 0
- iy = iy + 1
- end
- AddSpawnIcon(ent.name, ent.limit, ent.lvlrq, ent.vip, ent.price, ent.hint, ent.model, ent.cmd, k, icon_size*ix, icon_size*iy, Content)
- ix = ix + 1
- --end
- end
- end
- vgui.Register( "BW_SpawnMenu_structure", PANEL, "Panel" )
- --- Printer Panel
- local PANEL = {}
- function PANEL:Init()
- local Content = vgui.Create("DPanel", self)
- Content:Dock(FILL)
- Content:DockMargin(10,10,10,10)
- /*
- local DLabel1 = vgui.Create('DLabel')
- DLabel1:SetParent(Content)
- DLabel1:SetPos(10, 10)
- DLabel1:SetTextColor( Color(0, 0, 0, 255) )
- DLabel1:SetText('Printer Menu')
- DLabel1:SetTall(20)
- --DLabel1:SizeToContents()
- */
- --if(Content:GetWide() != 64) then
- wide_max = Content:GetWide()
- --end
- wide_max = wide_max
- local icon_size = 92
- local iy = 0
- local ix = 0
- for k, ent in SortedPairsByMemberValue( printer, "order" ) do
- print("VALUES: "..k.." - "..ent.name)
- --for key, ent in SortedPairsByMemberValue( v, "order", false ) do
- --if(wide_max < (ix*icon_size)+icon_size) then
- -- ix = 0
- -- iy = iy + 1
- --end
- AddSpawnIcon(ent.name, ent.limit, ent.lvlrq, ent.vip, ent.price, ent.hint, ent.model, ent.cmd, k, icon_size*ix, icon_size*iy, Content)
- ix = ix + 1
- --end
- end
- end
- vgui.Register( "BW_SpawnMenu_printer", PANEL, "Panel" )
- ------------------------------------------------------
- ----
- ---- Spawnmenu tools
- ----
- ------------------------------------------------------
- local PANEL = {}
- --[[---------------------------------------------------------
- Name: Paint
- -----------------------------------------------------------]]
- function PANEL:Init()
- self.selftest = self
- self.List = vgui.Create( "DCategoryList", self )
- self.List:Dock( LEFT )
- self.List:SetWidth( 170 )
- self.Content = vgui.Create( "DCategoryList", self )
- self.Content:Dock( FILL )
- self.Content:DockMargin( 6, 0, 0, 0 )
- self.Settings = vgui.Create( "DCategoryList", self )
- self.Settings:Dock( RIGHT )
- --self.Settings:DockMargin( 6, 0, 0, 0 )
- --self.Settings:SetSize( 50, 200 )
- self.Settings:SetWidth( 210 )
- self.Settings:Add("Basewars Settings")
- self:LoadTools()
- end
- --[[---------------------------------------------------------
- LoadTools
- -----------------------------------------------------------]]
- function PANEL:LoadTools()
- local tools = spawnmenu.GetTools()
- --spawnmenu.AddToolCategory( "Main" )
- --spawnmenu.AddToolMenuOption( "Main", "TEST", "#tool.weld.name", "Weld Tool" )
- print("TOOLS-Count: "..table.Count( tools ))
- --print("TOOLS: "..table.concat( spawnmenu.GetTools(), " " ))
- for strName, pTable in pairs( tools ) do
- if strName == 1 then
- for k, v in pairs( pTable.Items ) do
- local cat = self.List:Add(v.ItemName)
- for itemk, itemv in pairs( v ) do
- if ( istable( itemv ) ) then
- //PrintTable(itemv)
- local item = cat:Add(itemv.Text)
- item.DoClick = function( button )
- //print(button)
- if ( button.Command ) then
- LocalPlayer():ConCommand( button.Command )
- end
- if self.ToolCon != nil then
- self.ToolCon:Remove()
- end
- self.ToolCon = nil
- local cp = controlpanel.Get( button.Name )
- if ( !cp:GetInitialized() ) then
- cp:FillViaTable( button )
- end
- //Hide stuff
- local kids = self.Content:GetCanvas():GetChildren()
- for k, v in pairs( kids ) do
- v:SetVisible( false )
- end
- self.Content:AddItem( cp )
- cp:SetVisible( true )
- cp:Dock( TOP )
- g_ActiveControlPanel = cp
- end
- item.ControlPanelBuildFunction = itemv.CPanelFunction
- item.Command = itemv.Command
- item.Name = itemv.ItemName
- item.Controls = itemv.Controls
- item.Text = itemv.Text
- end
- end
- end
- end
- //self:AddToolPanel( strName, pTable )
- //self:AddCategory( Name, Label, v )
- end
- end
- function PANEL:EnableControlPanel( button )
- if ( self.LastSelected ) then
- self.LastSelected:SetSelected( false )
- end
- button:SetSelected( true )
- self.LastSelected = button
- local cp = controlpanel.Get( button.Name )
- if ( !cp:GetInitialized() ) then
- cp:FillViaTable( button )
- end
- self.ContextPanel:Clear()
- self.ContextPanel:AddItem( cp )
- self.ContextPanel:Rebuild()
- g_ActiveControlPanel = cp
- if ( button.Command ) then
- LocalPlayer():ConCommand( button.Command )
- end
- end
- vgui.Register( "BW_SpawnMenu_tools", PANEL, "Panel" )
- /* DToolMenu */
- local PANEL = {}
- function PANEL:Init()
- self.Tools = vgui.Create( "DPanelList", self )
- self.Tools:EnableVerticalScrollbar( true )
- self.Tools:SetAutoSize( false )
- self.Tools:SetSpacing( 5 )
- self.Tools:SetPadding( 5 )
- function self.Tools:Paint()
- draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 75, 75, 75 ) )
- end
- self.ContextPanel = vgui.Create( "DPanelList", self )
- self.ContextPanel:EnableVerticalScrollbar( false )
- self.ContextPanel:SetSpacing( 0 )
- self.ContextPanel:SetPadding( 5 )
- function self.ContextPanel:Paint()
- draw.RoundedBox( 4, 0, 0, self:GetWide(), self:GetTall(), Color( 255, 255, 255, 150 ) )
- end
- if ( ToolsLoad == false || ToolsLoad == nil || ToolsLoad == NULL || ToolsLoad == "" ) then
- AllTools = spawnmenu.GetTools()
- local ToolsLoad = true
- end
- local ToolTables = AllTools
- if ( !ToolTables ) then LocalPlayer():ChatPrint( "ERROR: Tools List could not be loaded." ) return end
- for k, v in pairs( ToolTables[1].Items ) do
- if ( type( v ) == "table" ) then
- local Name = v.ItemName
- local Label = v.Text
- v.ItemName = nil
- v.Text = nil
- self:AddCategory( Name, Label, v )
- end
- end
- end
- function PANEL:AddCategory( Name, Label, ToolItems )
- self.Category = vgui.Create( "DCollapsibleCategory" )
- self.Tools:AddItem( self.Category )
- self.Category:SetLabel( Label )
- self.Category:SetCookieName( "ToolMenu." .. tostring( Name ) )
- self.CategoryContent = vgui.Create( "DPanelList" )
- self.CategoryContent:SetAutoSize( true )
- self.CategoryContent:SetDrawBackground( false )
- self.CategoryContent:SetSpacing( 0 )
- self.CategoryContent:SetPadding( 0 )
- self.Category:SetContents( self.CategoryContent )
- local bAlt = true
- local NumTools = 0
- for k, v in pairs( ToolItems ) do
- if ( table.HasValue( GMS.ProhibitedStools, v.ItemName ) && !LocalPlayer():IsAdmin() ) then continue end
- NumTools = NumTools + 1
- local Item = vgui.Create( "ToolMenuButton", self )
- Item:SetText( v.Text )
- Item.OnSelect = function( button ) self:EnableControlPanel( button ) end
- concommand.Add( Format( "tool_%s", v.ItemName ), function() Item:OnSelect() end )
- if ( v.SwitchConVar ) then
- Item:AddCheckBox( v.SwitchConVar )
- end
- Item.ControlPanelBuildFunction = v.CPanelFunction
- Item.Command = v.Command
- Item.Name = v.ItemName
- Item.Controls = v.Controls
- Item.Text = v.Text
- Item:SetAlt( bAlt )
- bAlt = !bAlt
- self.CategoryContent:AddItem( Item )
- end
- if ( NumTools <= 0 ) then
- self.Category:Remove()
- self.CategoryContent:Remove()
- end
- end
- function PANEL:EnableControlPanel( button )
- if ( self.LastSelected ) then
- self.LastSelected:SetSelected( false )
- end
- button:SetSelected( true )
- self.LastSelected = button
- local cp = controlpanel.Get( button.Name )
- if ( !cp:GetInitialized() ) then
- cp:FillViaTable( button )
- end
- self.ContextPanel:Clear()
- self.ContextPanel:AddItem( cp )
- self.ContextPanel:Rebuild()
- g_ActiveControlPanel = cp
- if ( button.Command ) then
- LocalPlayer():ConCommand( button.Command )
- end
- end
- function PANEL:Paint()
- end
- function PANEL:PerformLayout()
- self:StretchToParent( 0, 21, 0, 5 )
- self.Tools:SetPos( 5, 5 )
- self.Tools:SetSize( self:GetWide() * 0.35, self:GetTall() - 5 )
- self.ContextPanel:SetPos( self:GetWide() * 0.35 + 10, 5 )
- self.ContextPanel:SetSize( self:GetWide() - ( self:GetWide() * 0.35 ) - 14, self:GetTall() - 5 )
- end
- vgui.Register( "BW_SpawnMenu_tools_old", PANEL, "DPanel" )
- /* ToolMenuButton */
- local PANEL = {}
- AccessorFunc( PANEL, "m_bAlt", "Alt" )
- AccessorFunc( PANEL, "m_bSelected", "Selected" )
- function PANEL:Init()
- self:SetContentAlignment( 4 )
- self:SetTextInset( 5, 0 )
- self:SetTall( 15 )
- end
- function PANEL:Paint()
- if ( !self.m_bSelected ) then
- if ( !self.m_bAlt ) then
- surface.SetDrawColor( Color( 255, 255, 255, 200 ) )
- else
- surface.SetDrawColor( Color( 255, 255, 255, 150 ) )
- end
- else
- surface.SetDrawColor( Color( 50, 150, 255, 250 ) )
- end
- self:DrawFilledRect()
- end
- function PANEL:OnMousePressed( mcode )
- if ( mcode == MOUSE_LEFT ) then
- self:OnSelect()
- end
- end
- function PANEL:OnCursorMoved( x, y )
- if ( input.IsMouseDown( MOUSE_LEFT ) ) then
- self:OnSelect()
- end
- end
- function PANEL:OnSelect()
- end
- function PANEL:PerformLayout()
- if ( self.Checkbox ) then
- self.Checkbox:AlignRight( 4 )
- self.Checkbox:CenterVertical()
- end
- end
- function PANEL:AddCheckBox( strConVar )
- if ( !self.Checkbox ) then
- self.Checkbox = vgui.Create( "DCheckBox", self )
- end
- self.Checkbox:SetConVar( strConVar )
- self:InvalidateLayout()
- end
- vgui.Register( "ToolMenuButton", PANEL, "DButton" )
- ------------------------------------------------------
- ----
- ---- Spawnmenu admin
- ----
- ------------------------------------------------------
- local PANEL = {}
- local ELog = {}
- local ELog_Update = false
- net.Receive("ELog", function(len, pl)
- ELog = net.ReadTable()
- ELog_Update = true
- end)
- function PANEL:Init()
- self.NextT = 0
- self.Content = vgui.Create("DScrollPanel", self)
- self.Content:Dock(FILL)
- self.Content:DockMargin(175,0,0,0)
- self.Tree = vgui.Create("DTree",self)
- self.Tree:SetTall(210)
- self.Tree:SetWide(170)
- local ELog_Menu = self.Tree:AddNode("Kill Log [ELog]","icon16/user.png")
- ELog_Menu.DoClick = function()
- LocalPlayer():ConCommand("ELog_Get")
- end
- end
- function PANEL:ELog_Show()
- local ELog_List = vgui.Create("DListView", self.Content)
- ELog_List:Dock(TOP)
- ELog_List:SetTall(self.Content:GetTall())
- ELog_List:SetMultiSelect( false )
- ELog_List:AddColumn( "Attacker" )
- ELog_List:AddColumn( "Target" )
- ELog_List:AddColumn( "Weapon" )
- ELog_List:AddColumn( "Type" )
- ELog_List:AddColumn( "Entity" )
- ELog_List:AddColumn( "Date" )
- for k,v in pairs(ELog) do
- local AttackerName = v.Name_A
- local TargetName = v.Name_T
- local Weapon = v.Weapon
- local Type = v.Type
- local Entity = v.Target
- local Date = v.Date
- if(AttackerName == nil) then AttackerName = v.SteamID_A end
- if(TargetName == nil) then TargetName = v.SteamID_T end
- ELog_List:AddLine(AttackerName, TargetName, Weapon, Type, Entity, Date)
- end
- end
- function PANEL:Think()
- if(self.NextT < CurTime()) then
- if(ELog_Update) then
- self.Content:Clear()
- self:ELog_Show()
- ELog_Update = false
- end
- self.NextT = CurTime() + 1
- end
- end
- /*
- function PANEL:ELog_Show()
- for k,v in pairs(ELog) do
- //Line
- local ELog_line = vgui.Create( "DPanel", self.Content)
- ELog_line:SetTall(20)
- ELog_line:Dock(TOP)
- ELog_line:DockMargin(5,5,5,0)
- ELog_line:DockPadding(5,0,5,0)
- ELog_line.Paint = function(self) draw.RoundedBox(4,0,0, self:GetWide(), self:GetTall(), Color(255, 255, 255,255)) end
- //Date
- local Date = vgui.Create( "DLabel", ELog_line)
- Date:Dock(LEFT)
- Date:SetText(v.Date)
- Date:SetTextColor(Color(0,0,0,255))
- Date:SizeToContents()
- Date:DockMargin(0,0,5,0)
- //Attacker Name
- local IconAttacker = vgui.Create( "DImage", ELog_line)
- IconAttacker:Dock(LEFT)
- IconAttacker:SetImage("icon16/user_red.png")
- IconAttacker:SetTall(16)
- IconAttacker:SetWide(16)
- IconAttacker:DockMargin(0,0,5,0)
- local NameAttacker = vgui.Create( "DLabel", ELog_line)
- NameAttacker:Dock(LEFT)
- if(v.Name_A != nil) then NameAttacker:SetText(v.Name_A) else NameAttacker:SetText(v.SteamID_A) end
- NameAttacker:SetTextColor(Color(0,0,0,255))
- NameAttacker:SetWide(170)
- //Target Name
- local IconTarget = vgui.Create( "DImage", ELog_line)
- IconTarget:Dock(LEFT)
- IconTarget:SetImage("icon16/user_green.png")
- IconTarget:SetTall(16)
- IconTarget:SetWide(16)
- IconTarget:DockMargin(0,0,5,0)
- local NameTarget = vgui.Create( "DLabel", ELog_line)
- NameTarget:Dock(LEFT)
- if(v.Name_T != nil) then NameTarget:SetText(v.Name_T) else NameTarget:SetText(v.SteamID_T) end
- NameTarget:SetTextColor(Color(0,0,0,255))
- NameTarget:SetWide(170)
- //Weapon
- local Weapon = vgui.Create( "DLabel", ELog_line)
- Weapon:Dock(LEFT)
- Weapon:SetText(v.Weapon)
- Weapon:SetTextColor(Color(0,0,0,255))
- Weapon:SetWide(120)
- //Type
- local TypeIcon = "icon16/error.png"
- if(v.Type == "kill_player") then
- TypeIcon = "icon16/user.png"
- elseif(v.Type == "kill_ent") then
- TypeIcon = "icon16/box.png"
- end
- local Type = vgui.Create( "DImage", ELog_line)
- Type:Dock(LEFT)
- Type:SetImage(TypeIcon)
- Type:SetTall(16)
- Type:SetWide(16)
- Type:DockMargin(0,0,5,0)
- //Target (Player/Ent)
- local Target = vgui.Create( "DLabel", ELog_line)
- Target:Dock(LEFT)
- Target:SetText(v.Target)
- Target:SetTextColor(Color(0,0,0,255))
- Target:SetWide(250)
- end
- end
- */
- vgui.Register("BW_SpawnMenu_admin", PANEL, "Panel")
Advertisement
Add Comment
Please, Sign In to add comment