surface.CreateFont( "Header", { font = "Arial", -- Use the font-name which is shown to you by your operating system Font Viewer, not the file name size = 16, weight = 500, blursize = 0, scanlines = 0, antialias = true, underline = false, italic = false, strikeout = false, symbol = false, rotary = false, shadow = false, additive = false, outline = false, } ) surface.CreateFont( "Items", { font = "Arial", -- Use the font-name which is shown to you by your operating system Font Viewer, not the file name size = 14, weight = 0, blursize = 0, scanlines = 0, antialias = true, underline = false, italic = false, strikeout = false, symbol = false, rotary = false, shadow = false, additive = false, outline = false, } ) active = 0 local res local wep local dmFrame local function receive_message(len) res = net.ReadTable() wep = net.ReadTable() if (active == 0) then dmFrame = vgui.Create("dmFrame") active = 1 end end net.Receive('deathmenu', receive_message) local PANEL = {} width = 100 height = 100 function PANEL:Init() self:SetSize( 440, 400 ) self:Center() self:MakePopup() self:SetTitle("") local pnl = vgui.Create( "DPanel", self ) pnl:SetSize(self:GetWide()-10, self:GetTall()-25) pnl:SetPos(5,25) local DScrollPanel = vgui.Create( "DScrollPanel", pnl ) DScrollPanel:SetSize( pnl:GetWide(), pnl:GetTall() ) DScrollPanel:SetPos( 0, 0 ) // Weapons local wepPnlHeader = vgui.Create("DPanel", DScrollPanel) wepPnlHeader:SetSize( DScrollPanel:GetWide(), 25 ) wepPnlHeader:SetPos(0,0) wepPnlHeader.Paint = function() draw.RoundedBox( 0, 0, 0, wepPnlHeader:GetWide(), wepPnlHeader:GetTall(), Color( 48, 48, 48, 255 ) ) draw.SimpleText( "Weapons", "Header", 30, 12, Color(255, 255, 255), 1, 1 ) end column = 1 row = 1 XOffset = 12 for k,v in pairs(wep) do local wepPNL = vgui.Create( "DButton", DScrollPanel ) wepPNL:SetSize( width, height ) if (k/4 <= column) then wepPNL:SetPos( (row-1)*(width+2) + XOffset,(column-1)*(height+2) + 25) row=row+1 else column=column+1 row=1 wepPNL:SetPos( (row-1)*(width+2) + XOffset,(column-1)*(height+2) + 25) row=row+1 end wepPNL:SetDrawBackground( false ) wepPNL.Paint = function() draw.RoundedBox( 0, 0, 0, wepPNL:GetWide(), wepPNL:GetTall(), Color(69,69,69,125) ) surface.SetFont("Items") surface.SetTextColor( 0,0,0 ) surface.SetTextPos( (width/2)-(surface.GetTextSize(v)/2), height-20 ) surface.DrawText(v) end wepPNL.DoClick = function() if (!LocalPlayer():HasWeapon(v)) then net.Start('givePlayerWeapon') net.WriteString(v) for i,o in pairs(wep) do if (v == o) then net.WriteInt(i, 32) table.remove(wep,i) end end wepPNL:Remove() net.SendToServer() end end local img = vgui.Create("DImage", wepPNL) img:SetPos(0, 0) img:SetSize(wepPNL:GetSize()) img:SetImage("items/gms_weapon.png") end // Resources local resPnlHeader = vgui.Create("DPanel", DScrollPanel) resPnlHeader:SetSize( DScrollPanel:GetWide(), 25 ) resPnlHeader:SetPos(0,column*height + 25) resPnlHeader.Paint = function() draw.RoundedBox( 0, 0, 0, resPnlHeader:GetWide(), resPnlHeader:GetTall(), Color( 48, 48, 48, 255 ) ) draw.SimpleText( "Resources", "Header", 35, 12, Color(255, 255, 255), 1, 1 ) end row2 = 1 column2 = 1 for k,v in pairs(res) do local resPNL = vgui.Create( "DButton", DScrollPanel ) resPNL:SetSize( width, height ) resPNL:SetText("") if (k/4 <= column2) then resPNL:SetPos( (row2-1)*(width+2) + XOffset,(column2-1)*(height+2) + (column*height + 50)) row2=row2+1 else column2=column2+1 row2=1 resPNL:SetPos( (row2-1)*(width+2) + XOffset,(column2-1)*(height+2) + (column*height + 50)) row2=row2+1 end local tbl1 = string.Split(res[k], " ") local tbl2 = string.Split(tbl1[#tbl1], "x") local amount = tbl2[2] resPNL.DoClick = function() local mb = DermaMenu() addMenuButton(mb, resPNL, "Take x1", amount, 1, v) addMenuButton(mb, resPNL, "Take x5", amount, 5, v) addMenuButton(mb, resPNL, "Take x10", amount, 10, v) addMenuButton(mb, resPNL, "Take All", amount, amount, v) mb:Open() end resPNL.Paint = function() draw.RoundedBox( 0, 0, 0, resPNL:GetWide(), resPNL:GetTall(), Color( 69, 69, 69, 125 ) ) surface.SetFont("Items") surface.SetTextColor( 0,0,0 ) surface.SetTextPos( (width/2)-(surface.GetTextSize(v)/2), height-20 ) surface.DrawText(v) end local img = vgui.Create("DImage", resPNL) img:SetPos(20, 10) img:SetSize(resPNL:GetWide()-40, resPNL:GetTall()-40) if (GMS.GetResourceByName(getResName(v)).Icon != nil) then img:SetImage(GMS.GetResourceByName(getResName(v)).Icon) else img:SetImage("vgui/avatar_default") end end end function getResName(str) spl = string.Split(str, " ") table.remove(spl) return string.Implode(" ", spl) end function addMenuButton(mb, resPNL, name, amount, remove, v) mb:AddOption(name, function() if (amount - remove <= 0) then if (amount - remove == 0) then amount = 0 for i,o in pairs(res) do if (getResName(v) == getResName(o)) then giveRes(getResName(o), remove, i) table.remove(res, i) end end resPNL:Remove() else num1 = amount - remove num2 = remove + num1 amount = 0 for i,o in pairs(res) do if (getResName(v) == getResName(o)) then giveRes(getResName(o), num2, i) table.remove(res,i) end end resPNL:Remove() end else amount = amount - remove for i,o in pairs(res) do if (getResName(v) == getResName(o)) then giveRes(getResName(o), remove, i) res[i] = getResName(o) .. " x" .. amount v = res[i] end end end end) end function PANEL:Close() active = 0 self:Remove() end function giveRes(res, amount, slot) net.Start('givePlayerResource') net.WriteString(res) net.WriteInt(amount, 32) net.WriteInt(slot, 32) net.SendToServer() end function PANEL:Paint( w, h ) draw.RoundedBox( 0, 0, 0, w, h, Color( 69, 69, 69, 125 ) ) end vgui.Register( "dmFrame", PANEL, "DFrame" )