Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Inv = { }
- Inv.Items = { }
- Inv.Space = 30
- Inv.UsedSpace = 0
- local SelectedItem = nil
- local DermaList
- function OpenInventory()
- SelectedItem = nil
- local DermaPanel = vgui.Create( "DFrame" )
- DermaPanel:SetPos( 50,50 )
- DermaPanel:SetSize( 600, 500 )
- DermaPanel:SetTitle( "Your Inventory" )
- DermaPanel:SetVisible( true )
- DermaPanel:SetDraggable( true )
- DermaPanel:ShowCloseButton( true )
- DermaPanel:MakePopup()
- DermaPanel.PaintOver = function()
- draw.SimpleText("Space: "..Inv.UsedSpace.."/"..Inv.Space,"Trebuchet19",500,460,Color(255,255,255,255))
- draw.SimpleText("Selected:","Trebuchet19",230,460,Color(255,255,255,255))
- if SelectedItem then
- draw.SimpleText("\""..string.upper(SelectedItem.name).."\"","Trebuchet19",295,460,Color(255,255,255,255))
- end
- end
- DermaList = vgui.Create( "DPanelList", DermaPanel )
- DermaList:SetPos( 5,25 )
- DermaList:SetSize( 590, 420 )
- DermaList:SetSpacing( 2 )
- DermaList:SetPadding( 4 )
- DermaList:EnableHorizontal( true )
- DermaList:EnableVerticalScrollbar( true )
- local UseButton = vgui.Create( "DButton" )
- UseButton:SetParent( DermaPanel )
- UseButton:SetText( "Use" )
- UseButton:SetPos( 10, 460 )
- UseButton:SetSize( 100, 25 )
- UseButton.DoClick = function ()
- surface.PlaySound( "ui/buttonclickrelease.wav" )
- RefreshList()
- end
- local DropButton = vgui.Create( "DButton" )
- DropButton:SetParent( DermaPanel )
- DropButton:SetText( "Drop" )
- DropButton:SetPos( 120, 460 )
- DropButton:SetSize( 100, 25 )
- DropButton.DoClick = function ()
- surface.PlaySound( "ui/buttonclickrelease.wav" )
- RefreshList()
- end
- RefreshList()
- end
- concommand.Add("OpenInventory", OpenInventory)
- function AddItem(data)
- local item = data:ReadString()
- local mdl = data:ReadString()
- local amount = data:ReadLong()
- if amount == nil then amount = 0 end
- table.insert(Inv.Items,{item = item, mdl = mdl, amount = amount})
- end
- function RefreshSpace()
- local a = 0
- for k, v in pairs(Inv.Items) do
- a = a + v.amount
- end
- Inv.UsedSpace = a
- end
- function RefreshList()
- for k, v in pairs(DermaList:GetItems()) do
- DermaList:RemoveItem(v)
- end
- for k, v in pairs(Inv.Items) do
- local icon = vgui.Create( "SpawnIcon", IconList )
- icon.item = v.item
- icon.name = FixName(v.item)
- icon.amount = v.amount
- icon:SetModel( v.mdl )
- icon:SetToolTip( icon.name )
- DermaList:AddItem( icon )
- icon.DoClick = function( icon )
- surface.PlaySound( "ui/buttonclickrelease.wav" )
- SelectedItem = icon
- end
- icon.PaintOver = function( icon )
- draw.SimpleText(icon.amount,"Trebuchet18",48,2,Color(255,255,255,255))
- end
- end
- DermaList:Rebuild()
- RefreshSpace()
- end
- function FixName(name)
- local name = string.Explode("_", name)
- return string.Implode(" ", name)
- end
- table.insert(Inv.Items,{item = "money_printer", mdl = "models/props_c17/consolebox03a.mdl", amount = 30})
Add Comment
Please, Sign In to add comment