• Writing two things about an weapon to a table.
    1 replies, posted
Hi there, I am trying to resume my work on this gun chest addon however I am currently having an issue whereby I need to write the weapon name and the model to the table. The player will be able to get the weapon back afterwards however I am unsure of how to write multiple things to tables or how to do it in the correct layout/syntax. Here is my code so far. init.lua [lua] function ENT:StartTouch(entity) print(entity:GetClass()) if entity:GetClass() == "spawned_weapon" then table.insert(weaponsInsideChest, entity:GetWeaponClass()) entity:Remove() PrintTable(weaponsInsideChest) end end net.Receive("WeaponRetrieval",function(len,ply) local chosengun = net.ReadString() if table.HasValue(weaponsInsideChest, chosengun) then --Here is where I need to give the player the weapon table.remove(weaponsInsideChest, chosengun) end end) [/lua] cl_init.lua [lua] include('shared.lua') function ENT:Draw() self:DrawModel() end function WeaponsInsideDerma() local frame = vgui.Create("DFrame") frame:SetSize(500,500) frame:Center() frame:SetDraggable(false) frame:MakePopup() frame:SetSizable(false) frame:ShowCloseButton(false) function frame.Paint(s,w,h) draw.RoundedBox(5,0,0,w,h,Color(20,20,20,240)) end local scroll = vgui.Create( "DScrollPanel",frame) scroll:SetSize( 35, 420 ) scroll:Dock(FILL) for k,v in pairs(weaponsInsideChest) do local panel = vgui.Create("DPanel",scroll) panel:Dock(TOP) panel:DockMargin(0,3,0,0) panel:SetSize(0,75) function panel.Paint(s,w,h) draw.RoundedBox(5,0,0,w,h,Color(210,60,70)) end local buttonClose = vgui.Create("DButton", frame) buttonClose:SetSize(50,20) buttonClose:SetPos(445,5) buttonClose:SetText("Close") buttonClose:SetFont("bebas18") buttonClose:SetTextColor(color_white) function buttonClose.Paint(s,w,h) draw.RoundedBox(4,0,0,w,h,Color(255,0,0)) end buttonClose.DoClick = function(self) frame:Close() end local model = vgui.Create("DModelPanel",panel) model:Dock(LEFT) model:SetSize(64, 64) model:SetModel(v.Mdl) local mn, mx = model.Entity:GetRenderBounds() local size = 0 size = math.max( size, math.abs( mn.x ) + math.abs( mx.x ) ) size = math.max( size, math.abs( mn.y ) + math.abs( mx.y ) ) size = math.max( size, math.abs( mn.z ) + math.abs( mx.z ) ) model:SetFOV( 45 ) model:SetCamPos( Vector( size, size, size ) ) model:SetLookAt( ( mn + mx ) * 0.5 ) function model:LayoutEntity( Entity ) return end local button = vgui.Create("DButton",panel) button:Dock(RIGHT) button:DockMargin(0,10,10,10) button:SetSize(60,60) button:SetText("Retrieve") button.DoClick = function(self) net.Start("WeaponRetrieval") net.WriteString(k) net.SendToServer() end end end net.Receive("OpenWeaponsInsideMenu", function() WeaponsInsideDerma() end) [/lua]
Sorry, you need to Log In to post a reply to this thread.