--Adds a function to to allow the player to drop this item, in quantities of 1, half, all, or X, which brings up a menu asking the player how many they would like to drop function genericMakeDroppable(tbl) if(SERVER) then return end local drop1 = function(player) genericDropResource(player,tbl.Name,1) end local dropall = function(player) PrintTable(Resources) print("Ammount:" .. Resources[tbl.Name]) genericDropResource(player,tbl.Name,Resources[tbl.Name]) end local drophalf = function(player) genericDropResource(player,tbl.Name,math.ceil(Resources[tbl.Name]/2.0)) end local dropx = function(player) if(SERVER) then return end local frame = vgui.Create( "DFrame" ) frame:SetSize( 400, 60 ) frame:Center() frame:MakePopup() local TextEntry = vgui.Create( "DTextEntry", frame ) -- create the form as a child of frame TextEntry:SetPos( 20, 30 ) TextEntry:SetSize( 360, 20 ) TextEntry:SetText( "Number to drop:" ) TextEntry.OnEnter = function( self ) if(tonumber(self:GetValue(),10) == nil) then return end genericDropResource(player,tbl.Name,self:GetValue()) frame:Close() end end if(tbl.Actions == nil) then tbl.Actions = {} end if(tbl.Actions["Drop"] == nil) then tbl.Actions["Drop"] = {} end tbl.Actions["Drop"]["Drop 1"] = drop1 tbl.Actions["Drop"]["Drop Half"] = drophalf tbl.Actions["Drop"]["Drop all"] = dropall tbl.Actions["Drop"]["Drop X"] = dropx end if(SERVER) then util.AddNetworkString( "gms_dropresources" ) end function genericDropResource(player, resource, ammount) if(CLIENT) then net.Start("gms_dropresources") net.WriteString(resource) net.WriteInt(ammount,GMS.NETINT_BITCOUNT) net.SendToServer() end if(SERVER) then if(player.Resources[resource] < ammount) then player:SendMessage("You don't have that many to drop!", 3, Color(255, 255, 255, 255)) return end local res = player.Resources[resource] if ( ammount > res ) then ammount = res end player:DropResource( resource, ammount ) player:DecResource( resource, ammount ) end end net.Receive( "gms_dropresources", function(len,pl) local resourcename = net.ReadString() local resourcenum = net.ReadInt(GMS.NETINT_BITCOUNT) genericDropResource(pl,resourcename,resourcenum) end)