/* TOKEN SYSTEM CREATED BY REMSCAR This system is intended as an alternative currency form for servers. It is assumed that this currency has some sort of special purpose, for example it is only gained by donating. Written June 2012 IF YOU DID NOT BUY/GET THIS FROM REMSCAR THEN YOU HAVE BEEN RIPPED OFF AND SHOULD DEMAND A REFUND */ include("sh_tokensys.lua") TSYS = {} -- fuck writing TokenSYS function TSYS:CreatePanel() local tkns = LocalPlayer():GetNWInt("Tokens",0) local panel = vgui.Create("DFrame") panel:SetSize(500,400) panel:SetTitle("Tokens: "..tkns) panel:SetVisible(true) panel:SetDraggable(true) panel:ShowCloseButton(true) panel:Center() panel:MakePopup() local PSheet = vgui.Create("DPropertySheet",panel) PSheet:SetPos(5,27) PSheet:SetSize(490,368) local Home = vgui.Create("DPanel",PSheet) Home:StretchToParent(2,2,2,2) Home.Paint = function() surface.SetDrawColor(150,150,150,255) surface.DrawRect(0,0,Home:GetWide(),Home:GetTall()) surface.SetFont("ChatFont") surface.SetTextColor(255,255,255,255) local txt = "WELCOME, YOU HAVE "..tkns.." TOKENS" surface.SetTextPos((Home:GetWide()-surface.GetTextSize(txt))/2,2) surface.DrawText(txt) end local SPanel = vgui.Create("Panel",Home) SPanel:SetSize(Home:GetWide()-8,36) SPanel:SetPos(1,35) SPanel.IsSupporter = LocalPlayer():GetNWBool("Supporter",false) SPanel.SExpire = LocalPlayer().Supporter_Exp if SPanel.SExpire == nil then SPanel.SExpire = 0 end if LocalPlayer().PermaSupporter then SPanel.SExpire = "Never" else SPanel.SExpire = math.floor(SPanel.SExpire/60/60)..":"..math.floor(60*(SPanel.SExpire/60/60-math.floor(SPanel.SExpire/60/60))) end SPanel.Paint = function() surface.SetDrawColor(100,100,100,255) surface.DrawRect(0,0,SPanel:GetWide(),SPanel:GetTall()) surface.SetFont("MenuLarge") surface.SetTextColor(255,255,255,255) local txt = "Supporter Status:" surface.SetTextPos(2,1) surface.DrawText(txt) surface.SetFont("HudHintTextLarge") local w,h = surface.GetTextSize("YOU ARE CURRENTLY A SUPPORTER") if (SPanel.IsSupporter == true) then surface.SetTextColor(50,250,50,255) surface.SetTextPos(2,36-h-1) surface.DrawText("YOU ARE CURRENTLY A SUPPORTER") surface.SetFont("MenuLarge") txt = "Expires in: ~"..SPanel.SExpire local w,h = surface.GetTextSize(txt) surface.SetTextPos((SPanel:GetWide()-w-1),36-h-1) surface.DrawText(txt) else surface.SetTextColor(250,50,50,255) surface.SetTextPos(2,36-h-1) surface.DrawText("YOUR AREN'T CURRENTLY A SUPPORTER") end end local APanel = vgui.Create("Panel",Home) APanel:SetSize(Home:GetWide()-8,36) APanel:SetPos(1,80) APanel.IsTAdmin = LocalPlayer():IsAdmin() APanel.AExpire = LocalPlayer().Admin_Exp if APanel.AExpire == nil then APanel.AExpire = 0 end if (LocalPlayer().Trusted_Admin || LocalPlayer():IsSuperAdmin()) then APanel.AExpire = "Never" else APanel.AExpire = math.floor(APanel.AExpire/60/60)..":"..math.floor(60*(APanel.AExpire/60/60-math.floor(APanel.AExpire/60/60))) end APanel.Paint = function() surface.SetDrawColor(100,100,100,255) surface.DrawRect(0,0,APanel:GetWide(),APanel:GetTall()) surface.SetFont("MenuLarge") surface.SetTextColor(255,255,255,255) local txt = "Admin Status:" surface.SetTextPos(2,1) surface.DrawText(txt) surface.SetFont("HudHintTextLarge") local w,h = surface.GetTextSize("YOU ARE CURRENTLY AN ADMIN") if (APanel.IsTAdmin == true) then surface.SetTextColor(50,250,50,255) surface.SetTextPos(2,36-h-1) surface.DrawText("YOU ARE CURRENTLY AN ADMIN") surface.SetFont("MenuLarge") txt = "Expires in: ~"..APanel.AExpire local w,h = surface.GetTextSize(txt) surface.SetTextPos((APanel:GetWide()-w-1),36-h-1) surface.DrawText(txt) else surface.SetTextColor(250,50,50,255) surface.SetTextPos(2,36-h-1) surface.DrawText("YOUR AREN'T CURRENTLY AN ADMIN") end end /* local HPanel = vgui.Create("Panel",Home) HPanel:SetSize(Home:GetWide()-8,36) HPanel:SetPos(1,125) HPanel.Paint = function() surface.SetDrawColor(100,100,100,255) surface.DrawRect(0,0,HPanel:GetWide(),HPanel:GetTall()) surface.SetFont("TabLarge") surface.SetTextColor(255,255,255,255) surface.SetTextPos(2,2) surface.DrawText("You can purchase tokens and redeem codes in the Get Token Tab!") end */ local Store = vgui.Create("DPanel",PSheet) Store:StretchToParent(2,2,2,2) Store.Paint = function() surface.SetDrawColor(150,150,150,255) surface.DrawRect(0,0,Home:GetWide(),Home:GetTall()) surface.SetFont("ChatFont") surface.SetTextColor(255,255,255,255) local txt = "WELCOME TO THE STORE" surface.SetTextPos((Home:GetWide()-surface.GetTextSize(txt))/2,1) surface.DrawText(txt) end local SList = vgui.Create("DPanelList",Store) SList:SetPos(2,25) SList:SetSize(Store:GetWide()-10,310) SList:SetSpacing(1) SList:EnableVerticalScrollbar(true) for i=1,#TokenSYSItems do local panel = vgui.Create("DPanel",SList) panel.tkns = tkns panel:SetSize(SList:GetWide(),40) if (LocalPlayer().IsTAdmin == true) then panel.Price = TokenSYSItems[i].Price * 0.85 else panel.Price = TokenSYSItems[i].Price end panel.Paint = function() surface.SetDrawColor(0,0,0,255) surface.DrawRect(0,0,panel:GetWide(),panel:GetTall()) surface.SetDrawColor(120,120,120,255) surface.DrawRect(2,2,panel:GetWide()-4,panel:GetTall()-4) surface.SetFont("HudHintTextLarge") if (panel.tkns >= TokenSYSItems[i].Price) then surface.SetTextColor(255,255,255,255) else surface.SetTextColor(255,0,0,255) end surface.SetTextPos(3,2) surface.DrawText(TokenSYSItems[i].Name) if (panel.tkns >= panel.Price) then surface.SetTextColor(0,255,0,255) else surface.SetTextColor(255,0,0,255) end local w,h = surface.GetTextSize("Costs: "..panel.Price) surface.SetTextPos(panel:GetWide()-w-4,2) surface.DrawText("Costs: "..panel.Price) surface.SetFont("TabLarge") surface.SetTextColor(255,255,255,255) local w,h = surface.GetTextSize(TokenSYSItems[i].Desc) surface.SetTextPos(3,panel:GetTall()-3-h) surface.DrawText(TokenSYSItems[i].Desc) end local btn = vgui.Create("DButton",panel) btn:SetText("Purchase") btn:SetSize(100,19) btn:SetPos(panel:GetWide()-100-19,panel:GetTall()-20-3) btn.ID = i btn.DoClick = function() if TokenSYSItems[btn.ID].Price <= LocalPlayer():GetNWInt("Tokens",0) then LocalPlayer():ConCommand("tokenstore_purchase "..btn.ID) TSYS.Panel:Remove() end end SList:AddItem(panel) end local Tokens = vgui.Create("DPanel",PSheet) Tokens:StretchToParent(2,2,2,2) Tokens.Paint = function() surface.SetDrawColor(150,150,150,255) surface.DrawRect(0,0,Tokens:GetWide(),Tokens:GetTall()) surface.SetFont("ChatFont") surface.SetTextColor(255,255,255,255) local txt = "BUY AND THEN REDEEM TOKENS" surface.SetTextPos((Tokens:GetWide()-surface.GetTextSize(txt))/2,1) surface.DrawText(txt) surface.SetFont("UiBold") txt = "For help email: support@mysite.com" surface.SetTextPos((Tokens:GetWide()-surface.GetTextSize(txt))/2,Tokens:GetTall()-12) surface.DrawText(txt) end local BBtn = vgui.Create("DButton",Tokens) BBtn:SetSize(300,50) BBtn:SetPos((Tokens:GetWide()-300)/2-2,40) BBtn:SetText("Buy Tokens (Requires Steam Browser)") BBtn.DoClick = function() gui.OpenURL("www.google.com") end local RBtn = vgui.Create("DButton",Tokens) RBtn:SetSize(300,50) RBtn:SetPos((Tokens:GetWide()-300)/2-2,110) RBtn:SetText("Reedem Codes") RBtn.DoClick = function() TSYS.Panel:Remove() RunConsoleCommand("EnterCode") end PSheet:AddSheet("Home",Home,"gui/silkicons/house", false, false, "Account Summary" ) PSheet:AddSheet("Store",Store,"gui/silkicons/cart", false, false, "Token Store" ) PSheet:AddSheet("Get Tokens",Tokens,"gui/silkicons/coins_add", false, false, "Buy and Redeem Token codes" ) TSYS.Panel = panel end concommand.Add("open_store",TSYS.CreatePanel) local function RecieveExpTimes(data) local ply = LocalPlayer() local expt = string.Explode("|",data:ReadString()) ply.Supporter_Exp = tonumber(expt[1]) ply.Admin_Exp = tonumber(expt[2]) ply.PermaSupporter = data:ReadBool() ply.TrustedAdmin = data:ReadBool() end usermessage.Hook("send_exptimes",RecieveExpTimes)