--[[ Displays the inventory, for more information see /gamemode/shared/inventory.lua ]] --[[ Reserved inventory id's 1 - Equipment 2 - Prayers 3 - Skills 4 - Quests ]] local qinv = nrequire("cl_qinventory.lua") --local qpray = nrequire("cl_qprayers.lua") print("Hello from cl_inventory.lua") --debug.Trace() local prayerequiped = { false,false,false,false,false } net.Receive("equiphelpprayer",function() print("equiphelp received client side!") prayerequiped[4] = "Noob Help" end) local lastpanel = lastpanel or 1 --Wether the player is in the inventory or not local plyisininventory = false local qframe = nil --The master frame local qtabs = {} --The tabs local width = ScrW() local height = ScrH() local player_data --The data the player needs to show the q panel net.Receive("art_load_player_data",function() print("Got player data") player_data = net.ReadTable() print("It was") PrintTable(player_data) end) local function BuildInventory() print("Building inventory") if qframe then return end if not player_data then print("no player data!") return end qframe = vgui.Create("DFrame") qframe:SetPos(0,0) qframe:SetSize(width / 4, height) qframe:SetTitle("Inventory") qframe:SetDraggable(true) qframe:MakePopup() qframe.OnClose = function(self) plyisininventory = false self:Hide() return end local tabsheet = vgui.Create("DPropertySheet",qframe) tabsheet:Dock(FILL) local invsheet = qinv.CreateInventorySheet(tabsheet) --qpray.CreatePrayerSheet(tabsheet) invsheet.id = #qtabs + 1 qtabs[#qtabs + 1] = invsheet --prasheet.id = #qtabs + 1 --qtabs[#qtabs + 1] = prasheet tabsheet:AddSheet("Inventory",invsheet,"icon16/user.png") --tabsheet:AddSheet("Prayers",prasheet,"icon16/user.png") end local function ShowInventory() print("qframe is ", qframe) if not qframe then BuildInventory() else qframe:Show() end plyisininventory = true end hook.Add("OnSpawnMenuOpen","ArteryOpenInventory",ShowInventory) hook.Add("OnSpawnMenuClose","ArteryCloseInventory",function() plyisininventory = false qframe:Hide() if (not sheet) or (not sheet:GetActiveTab()) or (not sheet:GetActiveTab():GetPanel()) then return end lastpanel = sheet:GetActiveTab():GetPanel().sheetnum for k,v in pairs(LocalPlayer().invdisplays) do if not v.panel:IsValid() then continue end --PrintTable(v) v.panel:Close() LocalPlayer().invdisplays[k] = nil end end) concommand.Add("showinventory",ShowInventory) local viewdistance = 100 local rotatespeed = 65 local bone = nil local previousheadscale = Vector(1,1,1) hook.Add("CalcView","ArteryInventoryView",function(ply,pos,ang,fov,nearz,farz) if bone == nil then bone = LocalPlayer():LookupBone("ValveBiped.Bip01_Head1") end local view = {} --view.origin = LocalPlayer():GetBonePosition(bone) + LocalPlayer():GetUp() * 2 view.origin = pos if plyisininventory then local trot = math.rad(CurTime() * rotatespeed) local xoff = viewdistance * math.sin(trot) local yoff = viewdistance * math.cos(trot) view.origin = view.origin + Vector(xoff,yoff,10) ang.pitch = 20 ang.yaw = (-CurTime() * rotatespeed) - 90 end view.angles = ang view.fov = fov if not plyisininventory then LocalPlayer():ManipulateBoneScale(bone,Vector(0,0,0)) else LocalPlayer():ManipulateBoneScale(bone,previousheadscale) end view.drawviewer = plyisininventory return view end)