rendered paste body
PlayerMenuOn = false;
if( PlayerMenuParent ) then
PlayerMenuParent:Remove();
end
if( PlayerMenuContent ) then
PlayerMenuContent:Remove();
end
if( PlayerMenuRadio ) then
PlayerMenuRadio:Remove();
end
if( PlayerShop ) then
PlayerShop:Remove();
end
if( CombineRations ) then
CombineRations:Remove();
end
PlayerMenuParent = nil;
PlayerMenuContent = nil;
PlayerMenuRadio = nil;
PlayerShop = nil;
CombineRations = nil;
function ClosePlayerMenu()
PlayerMenuOn = false;
GUIClickerCount = GUIClickerCount - 1;
GUIClickerEnabled = true;
PlayerMenuParent:SetVisible( false );
if( PlayerMenuRadio ) then
PlayerMenuRadio:SetVisible( false );
PlayerMenuRadio.FreqEntry:OnKeyCodePressed( 64 );
end
if( PlayerShop ) then
PlayerShop:SetVisible( false );
end
if( CombineRations ) then
CombineRations:SetVisible( false );
end
gui.EnableScreenClicker( false );
end
function PlayerMenuThink()
if( PlayerMenuOn and PlayerMenuParent and PlayerMenuParent:IsVisible() ) then
if( ( not LocalPlayer():IsCombineDefense() and LocalPlayer():HasItem( "radio" ) ) and not PlayerMenuRadio ) then
CreatePlayerMenuRadio();
end
if( ( LocalPlayer():IsCombineDefense() ) and PlayerMenuRadio ) then
PlayerMenuRadio:Remove();
PlayerMenuRadio = nil;
end
if( PlayerMenuRadio and LocalPlayer():HasItem( "radio" ) and not PlayerMenuRadio:IsVisible() ) then
PlayerMenuRadio:SetVisible( true );
PlayerMenuRadio.FreqEntry:SetText( math.Round( GetFloat( "radiofreq" ) * 100 ) / 100 );
end
if( not PlayerShop and string.find( LocalPlayer():GetNWString( "businessflags" ), "d" ) ) then
CreatePlayerShop();
end
if( PlayerShop and not PlayerShop:IsVisible() and string.find( LocalPlayer():GetNWString( "businessflags" ), "d" ) ) then
PlayerShop:SetVisible( true );
end
if( PlayerShop and not string.find( LocalPlayer():GetNWString( "businessflags" ), "d" ) ) then
PlayerShop:Remove();
PlayerShop = nil;
end
if( not CombineRations and LocalPlayer():IsCombineDefense() ) then
CreateCombineRations();
end
if( CombineRations and not CombineRations:IsVisible() and LocalPlayer():IsCombineDefense() ) then
CombineRations:SetVisible( true );
end
if( CombineRations and not LocalPlayer():IsCombineDefense() ) then
CombineRations:Remove();
CombineRations = nil;
end
end
end
hook.Add( "Think", "PlayerMenuThink", PlayerMenuThink );
function msgTogglePlayerMenu()
PlayerMenuOn = !PlayerMenuOn;
if( PlayerMenuOn ) then
GUIClickerEnabled = true;
GUIClickerCount = GUIClickerCount + 1;
if( not PlayerMenuParent ) then
CreatePlayerMenuVGUI();
end
PlayerMenuParent:SetVisible( true );
end
gui.EnableScreenClicker( GUIClickerEnabled );
end
usermessage.Hook( "TogglePlayerMenu", msgTogglePlayerMenu );
function ChangeMenu( but )
local id = but.MenuID;
CreatePlayerMenuContentVGUI();
CreatePlayerMenuSubContentVGUI( id );
end
surface.CreateFont( "TargetID", 16, 500, true, false, "SmallTargetID" );
function CreateCombineRations()
local function CombineRationPaint()
surface.SetFont( "DefaultSmall" );
CombineRations.RationCount:SetText( "Ration Count: " .. GetGlobalInt( "CombineRations" ) );
CombineRations.RationCount:SetSize( surface.GetTextSize( "Ration Count: " .. GetGlobalInt( "CombineRations" ) ), 25 );
end
local function DropRation()
LocalPlayer():ConCommand( "rp_dropration\n" );
end
CombineRations = vgui.Create( "TacoPanel" );
CombineRations:SetPos( 10, 10 );
CombineRations:SetSize( 220, 75 );
CombineRations:EnableTitle( false );
CombineRations:EnableCloseButton( false );
CombineRations:EnableDragging( false );
CombineRations:EnableFullWindow( true );
CombineRations:SetPaintHook( CombineRationPaint );
local spawn = vgui.Create( "SpawnIcon", CombineRations );
spawn:SetPos( 5, 5 );
spawn:SetSize( 64, 64 );
spawn:SetModel( "models/weapons/w_package.mdl" );
spawn:SetMouseInputEnabled( false );
CombineRations:AddLabel( "Rations come periodically", "DefaultSmall", 75, 5, Color( 255, 255, 255, 255 ) );
CombineRations.RationCount = CombineRations:AddLabel( "", "DefaultSmall", 75, 15, Color( 255, 255, 255, 255 ) );
local but = CombineRations:AddButton( "Drop", 75, 45, 35, 15 );
but:SetCallback( DropRation );
but:SetRoundness( 0 );
end
function CreatePlayerMenuSubContentVGUI( id )
if( id == 0 ) then
PlayerMenuParent:SetTitle( "Player Menu - Stats" );
PlayerMenuContent:SetPaintHook( RenderStatsMenu );
PlayerMenuContent:AddLabel( "Physical Stats", "TargetID", 5, 5, Color( 255, 255, 255, 255 ) );
PlayerMenuContent:AddLabel( "Strength - How strong you are", "DefaultSmall", 10, 35, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.StrengthNum = PlayerMenuContent:AddLabel( "", "DefaultSmall", 165, 55, Color( 255, 255, 255, 255 ) );
PlayerMenuContent:AddLabel( "Endurance - How much damage you can withstand, and your health amount", "DefaultSmall", 10, 75, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.EnduranceNum = PlayerMenuContent:AddLabel( "", "DefaultSmall", 165, 95, Color( 255, 255, 255, 255 ) );
PlayerMenuContent:AddLabel( "Speed - How fast you are", "DefaultSmall", 10, 115, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.SpeedNum = PlayerMenuContent:AddLabel( "", "DefaultSmall", 165, 135, Color( 255, 255, 255, 255 ) );
PlayerMenuContent:AddLabel( "Sprint - How long you can run", "DefaultSmall", 10, 155, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.SprintNum = PlayerMenuContent:AddLabel( "", "DefaultSmall", 165, 175, Color( 255, 255, 255, 255 ) );
PlayerMenuContent:AddLabel( "Skill Stats", "TargetID", 5, 200, Color( 255, 255, 255, 255 ) );
PlayerMenuContent:AddLabel( "Aim - How well you aim", "DefaultSmall", 10, 230, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.AimNum = PlayerMenuContent:AddLabel( "", "DefaultSmall", 165, 250, Color( 255, 255, 255, 255 ) );
PlayerMenuContent:AddLabel( "Medic - Your ability to heal people", "DefaultSmall", 10, 270, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.MedicNum = PlayerMenuContent:AddLabel( "", "DefaultSmall", 165, 290, Color( 255, 255, 255, 255 ) );
PlayerMenuContent:AddLabel( "Sneak/Acrobatics - How quickly and well you can move around", "DefaultSmall", 10, 310, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.SneakNum = PlayerMenuContent:AddLabel( "", "DefaultSmall", 165, 330, Color( 255, 255, 255, 255 ) );
elseif( id == 1 ) then
PlayerMenuParent:SetTitle( "Player Menu - Inventory" );
PlayerMenuContent:SetPaintHook( RenderInventory );
PlayerMenuContent:AddLabel( "Inventory", "TargetID", 5, 1, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.SpaceNum = PlayerMenuContent:AddLabel( "", "SubTitle", 5, 30, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.CrntSpaceNum = PlayerMenuContent:AddLabel( "", "SubTitle", 5, 45, Color( 255, 255, 255, 255 ) );
PlayerMenuContent:AddScrollBar();
PlayerMenuContent:SetMaxScroll( 0 );
PlayerMenuContent.InventoryNameLabel = { }
PlayerMenuContent.InventoryAmountLabel = { }
PlayerMenuContent.InventorySizeLabel = { }
PlayerMenuContent.InventoryWeightLabel = { }
PlayerMenuContent.InventoryDescLabel = { }
PlayerMenuContent.InventoryDropButton = { }
PlayerMenuContent.InventoryUseButton = { }
PlayerMenuContent.InventoryIcon = { }
elseif( id == 2 ) then
PlayerMenuParent:SetTitle( "Player Menu - Finance" );
PlayerMenuContent:SetPaintHook( RenderFinance );
PlayerMenuContent:AddLabel( "Finance", "TargetID", 5, 1, Color( 255, 255, 255, 255 ) );
PlayerMenuContent:AddLabel( "Getting loans is a good way of getting some money when you're just starting out. Remember to pay your loans back,\nor the Combine will make you pay it back.", "DefaultSmall", 5, 180, Color( 255, 255, 255, 255 ) );
function CreateLoanPayFrame()
local function PayLoan( pnl, val )
LocalPlayer():ConCommand( "rp_payloan " .. val .. "\n" );
PlayerMenuContent.PayLoanFrame:Remove();
end
PlayerMenuContent.PayLoanFrame = vgui.Create( "TacoFrame" );
PlayerMenuContent.PayLoanFrame:SetTitle( "Pay A Loan" );
PlayerMenuContent.PayLoanFrame:SetPos( ScrW() / 2 - 50, ScrH() / 2 - 45 );
PlayerMenuContent.PayLoanFrame:SetSize( 100, 90 );
PlayerMenuContent.PayLoanFrame:AddLabel( "Amount to pay:", "DefaultSmall", 5, 0, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.PayLoanFrame.Entry = PlayerMenuContent.PayLoanFrame:AddEntry( PayLoan, 5, 55, 100 );
PlayerMenuContent.PayLoanFrame:SetVisible( true );
end
function CreateLoanFrame()
local function TakeLoan( pnl, val )
LocalPlayer():ConCommand( "rp_takeloan " .. val .. "\n" );
PlayerMenuContent.LoanFrame:Remove();
end
PlayerMenuContent.LoanFrame = vgui.Create( "TacoFrame" );
PlayerMenuContent.LoanFrame:SetTitle( "Take A Loan" );
PlayerMenuContent.LoanFrame:SetPos( ScrW() / 2 - 50, ScrH() / 2 - 45 );
PlayerMenuContent.LoanFrame:SetSize( 100, 90 );
PlayerMenuContent.LoanFrame:AddLabel( "Amount of loan:", "DefaultSmall", 5, 0, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.LoanFrame.Entry = PlayerMenuContent.LoanFrame:AddEntry( TakeLoan, 5, 55, 100 );
PlayerMenuContent.LoanFrame:SetVisible( true );
end
PlayerMenuContent.LoanButton = PlayerMenuContent:AddButton( "Take Loan", 5, 110, 60, 18 );
PlayerMenuContent.LoanButton:SetRoundness( 0 );
PlayerMenuContent.LoanButton:SetCallback( CreateLoanFrame );
PlayerMenuContent.LoanButton = PlayerMenuContent:AddButton( "Pay Loan", 5, 140, 60, 18 );
PlayerMenuContent.LoanButton:SetRoundness( 0 );
PlayerMenuContent.LoanButton:SetCallback( CreateLoanPayFrame );
elseif( id == 3 ) then
PlayerMenuParent:SetTitle( "Player Menu - Biography" );
PlayerMenuContent:SetPaintHook( RenderBiography );
PlayerMenuContent.BioIcon = vgui.Create( "SpawnIcon", PlayerMenuContent );
PlayerMenuContent.BioIcon.Model = LocalPlayer():GetModel();
PlayerMenuContent.BioIcon:SetModel( LocalPlayer():GetModel() );
PlayerMenuContent.BioIcon:SetPos( 5, 1 );
PlayerMenuContent.BioIcon:SetSize( 64, 64 );
PlayerMenuContent.BioIcon:SetMouseInputEnabled( false );
PlayerMenuContent.NameLabel = PlayerMenuContent:AddLabel( LocalPlayer():Nick(), "TargetID", 70, 1, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.AgeLabel = PlayerMenuContent:AddLabel( "Age: " .. GetString( "info.Age" ), "SmallTargetID", 70, 24, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.RaceLabel = PlayerMenuContent:AddLabel( "Race: " .. GetString( "info.Race" ), "SmallTargetID", 70, 41, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.BioLabel = PlayerMenuContent:AddLabel( "Information: " .. GetString( "info.Bio" ), "SmallTargetID", 5, 68, Color( 255, 255, 255, 255 ) );
local function SetAgeFrame()
if( PlayerMenuContent.AgeFrame ) then
PlayerMenuContent.AgeFrame:Remove();
PlayerMenuContent.AgeFrame = nil;
end
local function SetAge( pnl, val )
if( tonumber( val ) and tonumber( val ) >= 16 and tonumber( val ) <= 65 ) then
surface.SetFont( "TargetID" );
PlayerMenuContent.AgeLabel:SetText( "Age: " .. val );
LocalPlayer():ConCommand( "rp_setage " .. GetString( "UniqueID" ) .. " " .. val .. "\n" );
PlayerMenuContent.AgeLabel:SetSize( surface.GetTextSize( "Age: " .. val ), 25 );
PlayerMenuContent.AgeFrame:Remove();
PlayerMenuContent.AgeFrame = nil;
else
local warn = vgui.Create( "TacoFrame" );
warn:SetTitle( "Not valid" );
warn:SetColor( Color( 30, 30, 30, 255 ) );
warn:SetPos( ScrW() / 2 - 50, ScrH() / 2 - 45 );
warn:SetSize( 160, 90 );
warn:AddLabel( "Age must be between 16 and 65", "DefaultSmall", 5, 0, Color( 255, 255, 255, 255 ) );
warn:SetVisible( true );
end
end
PlayerMenuContent.AgeFrame = vgui.Create( "TacoFrame" );
PlayerMenuContent.AgeFrame:SetTitle( "Set Character Age" );
PlayerMenuContent.AgeFrame:SetColor( Color( 30, 30, 30, 255 ) );
PlayerMenuContent.AgeFrame:SetPos( ScrW() / 2 - 50, ScrH() / 2 - 45 );
PlayerMenuContent.AgeFrame:SetSize( 160, 90 );
PlayerMenuContent.AgeFrame:AddLabel( "Age:", "DefaultSmall", 5, 0, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.AgeFrame.Entry = PlayerMenuContent.AgeFrame:AddEntry( SetAge, 5, 55, 100 );
PlayerMenuContent.AgeFrame:SetVisible( true );
end
PlayerMenuContent.AgeButton = PlayerMenuContent:AddButton( "Edit Age", 500, 24, 60, 20 );
PlayerMenuContent.AgeButton:SetRoundness( 0 );
PlayerMenuContent.AgeButton:SetCallback( SetAgeFrame );
local function SetRaceFrame()
if( PlayerMenuContent.RaceFrame ) then
PlayerMenuContent.RaceFrame:Remove();
PlayerMenuContent.RaceFrame = nil;
end
local function SetRace( pnl, val )
surface.SetFont( "TargetID" );
PlayerMenuContent.RaceLabel:SetText( "Race: " .. val );
LocalPlayer():ConCommand( "rp_setrace " .. GetString( "UniqueID" ) .. " " .. val .. "\n" );
PlayerMenuContent.RaceLabel:SetSize( surface.GetTextSize( "Race: " .. val ), 25 );
PlayerMenuContent.RaceFrame:Remove();
PlayerMenuContent.RaceFrame = nil;
end
PlayerMenuContent.RaceFrame = vgui.Create( "TacoFrame" );
PlayerMenuContent.RaceFrame:SetTitle( "Set Character Race" );
PlayerMenuContent.RaceFrame:SetColor( Color( 30, 30, 30, 255 ) );
PlayerMenuContent.RaceFrame:SetPos( ScrW() / 2 - 50, ScrH() / 2 - 45 );
PlayerMenuContent.RaceFrame:SetSize( 160, 90 );
PlayerMenuContent.RaceFrame:AddLabel( "Race:", "DefaultSmall", 5, 0, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.RaceFrame.Entry = PlayerMenuContent.RaceFrame:AddEntry( SetRace, 5, 55, 100 );
PlayerMenuContent.RaceFrame:SetVisible( true );
end
PlayerMenuContent.RaceButton = PlayerMenuContent:AddButton( "Edit Race", 500, 50, 60, 20 );
PlayerMenuContent.RaceButton:SetRoundness( 0 );
PlayerMenuContent.RaceButton:SetCallback( SetRaceFrame );
local function DescFrame()
if( PlayerMenuContent.DescFrame ) then
PlayerMenuContent.DescFrame:Remove();
PlayerMenuContent.DescFrame = nil;
end
local function SetDesc( pnl, val )
if( string.len( PlayerMenuContent.DescFrame.Entry:GetValue() ) <= 100 ) then
surface.SetFont( "TargetID" );
PlayerMenuContent:RemoveLabel( PlayerMenuContent.BioLabel );
PlayerMenuContent.BioLabel = PlayerMenuContent:AddLabel( FormatLine( string.gsub( "Information: " .. PlayerMenuContent.DescFrame.Entry:GetValue(), "\n", "" ), "TargetID", 450 ), "SmallTargetID", 5, 68, Color( 255, 255, 255, 255 ) );
LocalPlayer():ConCommand( "rp_setdesc " .. GetString( "UniqueID" ) .. " \"" .. PlayerMenuContent.DescFrame.Entry:GetValue() .. "\"\n" );
PlayerMenuContent.DescFrame:Remove();
PlayerMenuContent.DescFrame = nil;
else
local warn = vgui.Create( "TacoFrame" );
warn:SetTitle( string.len( PlayerMenuContent.DescFrame.Entry:GetValue() ) .. " characters long" );
warn:SetColor( Color( 30, 30, 30, 255 ) );
warn:SetPos( ScrW() / 2 - 50, ScrH() / 2 - 45 );
warn:SetSize( 160, 90 );
warn:AddLabel( "Description must be under 100 characters", "DefaultSmall", 5, 0, Color( 255, 255, 255, 255 ) );
warn:SetVisible( true );
end
end
PlayerMenuContent.DescFrame = vgui.Create( "TacoFrame" );
PlayerMenuContent.DescFrame:SetTitle( "Set Character Description" );
PlayerMenuContent.DescFrame:SetColor( Color( 30, 30, 30, 255 ) );
PlayerMenuContent.DescFrame:SetPos( ScrW() / 2 - 100, ScrH() / 2 - 117 );
PlayerMenuContent.DescFrame:SetSize( 200, 235 );
PlayerMenuContent.DescFrame:AddLabel( "Description (must be under 101 characters):", "DefaultSmall", 5, -70, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.DescFrame.Entry = PlayerMenuContent.DescFrame:AddMultilineEntry( SetDesc, 5, 60, 170, 130 );
PlayerMenuContent.DescFrame:SetVisible( true );
local but = vgui.Create( "TacoButton", PlayerMenuContent.DescFrame );
but:SetText( "Done" );
but:SetPos( 5, 200 );
but:SetSize( 50, 15 );
but:SetRoundness( 0 );
but:SetCallback( SetDesc );
end
PlayerMenuContent.DescButton = PlayerMenuContent:AddButton( "Edit Bio", 500, 75, 60, 20 );
PlayerMenuContent.DescButton:SetRoundness( 0 );
PlayerMenuContent.DescButton:SetCallback( DescFrame );
elseif( id == 4 ) then
PlayerMenuParent:SetTitle( "Player Menu - Workshop" );
PlayerMenuContent:SetPaintHook( RenderWorkshop );
elseif( id == 5 ) then
PlayerMenuParent:SetTitle( "Player Menu - Business" );
PlayerMenuContent:SetPaintHook( RenderBusiness );
local function CreateBusinessVGUI()
local function GiveMoneyFrame()
local function GiveMoney( pnl, var )
LocalPlayer():ConCommand( "rp_givebusinessmoney " .. var .. "\n" );
PlayerMenuContent.GiveFrame:Remove();
end
PlayerMenuContent.GiveFrame = vgui.Create( "TacoFrame" );
PlayerMenuContent.GiveFrame:SetTitle( "Give Money" );
PlayerMenuContent.GiveFrame:SetPos( ScrW() / 2 - 50, ScrH() / 2 - 45 );
PlayerMenuContent.GiveFrame:SetSize( 160, 90 );
PlayerMenuContent.GiveFrame:AddLabel( "Amount to give to business:", "DefaultSmall", 5, 0, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.GiveFrame.Entry = PlayerMenuContent.GiveFrame:AddEntry( GiveMoney, 5, 55, 100 );
PlayerMenuContent.GiveFrame:SetVisible( true );
end
local function TakeMoneyFrame( pnl, val )
local function TakeMoney( pnl, var )
LocalPlayer():ConCommand( "rp_takebusinessmoney " .. var .. "\n" );
PlayerMenuContent.TakeFrame:Remove();
end
PlayerMenuContent.TakeFrame = vgui.Create( "TacoFrame" );
PlayerMenuContent.TakeFrame:SetTitle( "Take Money" );
PlayerMenuContent.TakeFrame:SetPos( ScrW() / 2 - 50, ScrH() / 2 - 45 );
PlayerMenuContent.TakeFrame:SetSize( 160, 90 );
PlayerMenuContent.TakeFrame:AddLabel( "Amount to take from business:", "DefaultSmall", 5, 0, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.TakeFrame.Entry = PlayerMenuContent.TakeFrame:AddEntry( TakeMoney, 5, 55, 100 );
PlayerMenuContent.TakeFrame:SetVisible( true );
end
local function ChangeJobFrame( pnl, val )
local function ChangeJob( pnl, val )
LocalPlayer():ConCommand( "rp_setjobtitle \"" .. string.gsub( val, "\"", "'" ) .. "\"\n" );
PlayerMenuContent.ChangeJob:Remove();
end
PlayerMenuContent.ChangeJob = vgui.Create( "TacoFrame" );
PlayerMenuContent.ChangeJob:SetTitle( "Set Job Title" );
PlayerMenuContent.ChangeJob:SetPos( ScrW() / 2 - 50, ScrH() / 2 - 45 );
PlayerMenuContent.ChangeJob:SetSize( 140, 90 );
PlayerMenuContent.ChangeJob:AddLabel( "New Job Name:", "DefaultSmall", 5, 0, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.ChangeJob.Entry = PlayerMenuContent.ChangeJob:AddEntry( ChangeJob, 5, 55, 100 );
PlayerMenuContent.ChangeJob.Entry:SetText( LocalPlayer():GetNWString( "job" ) );
PlayerMenuContent.ChangeJob:SetVisible( true );
end
local function ChangeBusinessNameFrame( pnl, val )
local function ChangeName( pnl, val )
LocalPlayer():ConCommand( "rp_setbusinessname \"" .. string.gsub( val, "\"", "'" ) .. "\"\n" );
PlayerMenuContent.ChangeName:Remove();
end
PlayerMenuContent.ChangeName = vgui.Create( "TacoFrame" );
PlayerMenuContent.ChangeName:SetTitle( "Set Business Name" );
PlayerMenuContent.ChangeName:SetPos( ScrW() / 2 - 50, ScrH() / 2 - 45 );
PlayerMenuContent.ChangeName:SetSize( 140, 90 );
PlayerMenuContent.ChangeName:AddLabel( "New Name:", "DefaultSmall", 5, 0, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.ChangeName.Entry = PlayerMenuContent.ChangeName:AddEntry( ChangeName, 5, 55, 100 );
PlayerMenuContent.ChangeName.Entry:SetText( GetGlobalString( "business." .. GetInt( "businessid" ) .. ".businessname" ) );
PlayerMenuContent.ChangeName:SetVisible( true );
end
local function BuySuppliesWindow()
local function BuyItem( but )
local id = but.ID;
local index = but.Index;
if( GetGlobalFloat( "business." .. GetInt( "businessid" ) .. ".bankamount" ) - StoreItems[index].StockPrice < 0 ) then
local warn = vgui.Create( "TacoFrame" );
warn:SetTitle( "Not enough money" );
warn:SetPos( ScrW() / 2 - 50, ScrH() / 2 - 45 );
warn:SetSize( 160, 90 );
warn:AddLabel( "Your business does not have\nenough money to purchase this", "DefaultSmall", 5, 0, Color( 255, 255, 255, 255 ) );
warn:SetVisible( true );
return;
end
LocalPlayer():ConCommand( "rp_businesspurchase " .. id .. "\n" );
end
local function SuppliesWindowPaint()
if( PlayerMenuContent ) then
surface.SetFont( "DefaultSmall" );
PlayerMenuContent.SuppliesWindow.BankAmount:SetText( "Current Business Bank Amount: $" .. GetGlobalFloat( "business." .. GetInt( "businessid" ) .. ".bankamount" ) );
PlayerMenuContent.SuppliesWindow.BankAmount:SetSize( surface.GetTextSize( "Current Business Bank Amount: $" .. GetGlobalFloat( "business." .. GetInt( "businessid" ) .. ".bankamount" ) ), 25 );
end
for k, v in pairs( StoreItems ) do
surface.SetFont( "DefaultSmall" );
local additem = true;
if( v.BlackMarket and not LocalPlayer():HasPlayerFlag( "X" ) ) then
additem = false;
end
if( additem ) then
PlayerMenuContent.SuppliesWindowContent.CrntStockLabels[k]:SetText( TS.GetBusinessStock( GetInt( "businessid" ), v.ID ) or 0 );
PlayerMenuContent.SuppliesWindowContent.CrntStockLabels[k]:SetSize( surface.GetTextSize( TS.GetBusinessStock( GetInt( "businessid" ), v.ID ) or 0 ), 25 );
end
end
end
PlayerMenuContent.SuppliesWindow = vgui.Create( "TacoPanel" );
PlayerMenuContent.SuppliesWindow:SetSize( 600, 500 );
PlayerMenuContent.SuppliesWindow:SetPos( ScrW() / 2 - 300, ScrH() / 2 - 250 );
PlayerMenuContent.SuppliesWindow:SetTitle( "Buy Supplies" );
PlayerMenuContent.SuppliesWindow:SetPaintHook( SuppliesWindowPaint );
PlayerMenuContent.SuppliesWindow.BankAmount = PlayerMenuContent.SuppliesWindow:AddLabel( "", "DefaultSmall", 5, 5, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.SuppliesWindow:MakePopup();
PlayerMenuContent.SuppliesWindowContent = vgui.Create( "TacoPanel", PlayerMenuContent.SuppliesWindow );
PlayerMenuContent.SuppliesWindowContent:SetPos( 5, 60 );
PlayerMenuContent.SuppliesWindowContent:SetSize( 590, 430 );
PlayerMenuContent.SuppliesWindowContent:EnableTitle( false );
PlayerMenuContent.SuppliesWindowContent:EnableCloseButton( false );
PlayerMenuContent.SuppliesWindowContent:EnableDragging( false );
PlayerMenuContent.SuppliesWindowContent:EnableFullWindow( true );
PlayerMenuContent.SuppliesWindowContent:SetColor( Color( 50, 50, 50, 255 ) );
PlayerMenuContent.SuppliesWindowContent:AddScrollBar();
PlayerMenuContent.SuppliesWindowContent:SetMaxScroll( 0 );
PlayerMenuContent.SuppliesWindowContent.NameLabel = PlayerMenuContent.SuppliesWindowContent:AddLabel( "Name", "DefaultSmall", 70, 1, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.SuppliesWindowContent.PriceLabel = PlayerMenuContent.SuppliesWindowContent:AddLabel( "Price per Stock", "DefaultSmall", 235, 1, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.SuppliesWindowContent.StockLabel = PlayerMenuContent.SuppliesWindowContent:AddLabel( "Number of Items per Stock", "DefaultSmall", 335, 1, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.SuppliesWindowContent.CrntStockLabel = PlayerMenuContent.SuppliesWindowContent:AddLabel( "Current Amount", "DefaultSmall", 465, 1, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.SuppliesWindowContent.SpawnIcons = { }
PlayerMenuContent.SuppliesWindowContent.NameLabels = { }
PlayerMenuContent.SuppliesWindowContent.DescLabels = { }
PlayerMenuContent.SuppliesWindowContent.PriceLabels = { }
PlayerMenuContent.SuppliesWindowContent.StockLabels = { }
PlayerMenuContent.SuppliesWindowContent.CrntStockLabels = { }
local n = 1;
for k, v in pairs( StoreItems ) do
local additem = true;
if( v.BlackMarket and not LocalPlayer():HasPlayerFlag( "X" ) ) then
additem = false;
end
if( additem ) then
local x = 5;
local y = 85 * ( n - 1 ) + 15;
PlayerMenuContent.SuppliesWindowContent.SpawnIcons[k] = vgui.Create( "SpawnIcon", PlayerMenuContent.SuppliesWindowContent );
PlayerMenuContent.SuppliesWindowContent.SpawnIcons[k]:SetPos( x, y );
PlayerMenuContent.SuppliesWindowContent.SpawnIcons[k]:SetSize( 64, 64 );
PlayerMenuContent.SuppliesWindowContent.SpawnIcons[k]:SetModel( v.Model );
PlayerMenuContent.SuppliesWindowContent.SpawnIcons[k]:SetMouseInputEnabled( false );
PlayerMenuContent.SuppliesWindowContent.SpawnIcons[k] = PlayerMenuContent.SuppliesWindowContent:AddObject( PlayerMenuContent.SuppliesWindowContent.SpawnIcons[k], x, y );
PlayerMenuContent.SuppliesWindowContent.NameLabels[k] = PlayerMenuContent.SuppliesWindowContent:AddLabel( v.Name, "DefaultSmall", 71, y, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.SuppliesWindowContent.NameLabels[k]:SetSize( 150, 25 );
PlayerMenuContent.SuppliesWindowContent.DescLabels[k] = PlayerMenuContent.SuppliesWindowContent:AddLabel( v.Desc, "DefaultSmall", 71, y + 17, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.SuppliesWindowContent.PriceLabels[k] = PlayerMenuContent.SuppliesWindowContent:AddLabel( "$" .. v.StockPrice, "DefaultSmall", 235, y, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.SuppliesWindowContent.StockLabels[k] = PlayerMenuContent.SuppliesWindowContent:AddLabel( v.StockCount, "DefaultSmall", 335, y, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.SuppliesWindowContent.CrntStockLabels[k] = PlayerMenuContent.SuppliesWindowContent:AddLabel( TS.GetBusinessStock( GetInt( "businessid" ), v.ID ), "DefaultSmall", 465, y - 7, Color( 255, 255, 255, 255 ) );
local but = PlayerMenuContent.SuppliesWindowContent:AddButton( "Buy", x, y + 66, 30, 15 );
but.ID = v.ID;
but.Index = k;
but:SetRoundness( 0 );
but:SetCallback( BuyItem );
n = n + 1;
end
end
if( n > 4 ) then
PlayerMenuContent.SuppliesWindowContent:SetMaxScroll( 82 * n - 328 );
end
end
local function PurchaseLicense()
if( GetFloat( "money" ) < 500 ) then
PlayerMenuContent.BusinessFrame = vgui.Create( "TacoFrame" );
PlayerMenuContent.BusinessFrame:SetTitle( "Cannot create business" );
PlayerMenuContent.BusinessFrame:SetPos( ScrW() / 2 - 50, ScrH() / 2 - 45 );
PlayerMenuContent.BusinessFrame:SetSize( 160, 50 );
PlayerMenuContent.BusinessFrame:AddLabel( "Need atleast 500 tokens", "DefaultSmall", 20, 10, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.BusinessFrame:SetVisible( true );
return;
end
LocalPlayer():ConCommand( "rp_purchasesupplylicense\n" );
PlayerMenuContent.SuppliesBut:SetText( "Buy Supplies" );
PlayerMenuContent.SuppliesBut:SetSize( 100, 25 );
PlayerMenuContent.SuppliesBut:SetCallback( BuySuppliesWindow );
end
PlayerMenuContent.NameLabel = PlayerMenuContent:AddLabel( "", "TargetID", 5, 3, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.ProfitLabel = PlayerMenuContent:AddLabel( "Current Bank Amount: $0", "DefaultSmall", 5, 35, Color( 255, 255, 255, 255 ) );
surface.SetFont( "DefaultSmall" );
PlayerMenuContent.ChangeNameBut = PlayerMenuContent:AddButton( "Change Name", surface.GetTextSize( PlayerMenuContent.NameLabel:GetValue() ), 2, 80, 25 );
PlayerMenuContent.ChangeNameBut:SetRoundness( 0 );
PlayerMenuContent.ChangeNameBut:SetCallback( ChangeBusinessNameFrame );
PlayerMenuContent.GiveBankBut = PlayerMenuContent:AddButton( "Give Money", 5, 60, 70, 25 );
PlayerMenuContent.GiveBankBut:SetRoundness( 0 );
PlayerMenuContent.GiveBankBut:SetCallback( GiveMoneyFrame );
PlayerMenuContent.TakeBankBut = PlayerMenuContent:AddButton( "Take Money", 80, 60, 70, 25 );
PlayerMenuContent.TakeBankBut:SetRoundness( 0 );
PlayerMenuContent.TakeBankBut:SetCallback( TakeMoneyFrame );
PlayerMenuContent.ChangeJobBut = PlayerMenuContent:AddButton( "Change Job Title", 5, 100, 100, 25 );
PlayerMenuContent.ChangeJobBut:SetRoundness( 0 );
PlayerMenuContent.ChangeJobBut:SetCallback( ChangeJobFrame );
PlayerMenuContent.SuppliesBut = PlayerMenuContent:AddButton( "Purchase Supply License ($500)", 5, 135, 205, 25 );
PlayerMenuContent.SuppliesBut:SetRoundness( 0 );
if( TS.GetBusinessInt( GetInt( "businessid" ), "supplylicense" ) == 1 ) then
PlayerMenuContent.SuppliesBut:SetText( "Buy Supplies" );
PlayerMenuContent.SuppliesBut:SetSize( 100, 25 );
PlayerMenuContent.SuppliesBut:SetCallback( BuySuppliesWindow );
else
PlayerMenuContent.SuppliesBut:SetCallback( PurchaseLicense );
end
end
if( GetInt( "ownsbusiness" ) == 0 ) then
local function CreateBusiness( pnl, val )
LocalPlayer():ConCommand( "rp_createbusiness \"" .. string.gsub( val, "\"", "'" ) .. "\"\n" );
PlayerMenuContent.BusinessFrame:Remove();
PlayerMenuContent:RemoveButton( PlayerMenuContent.CreateBusinessBut );
PlayerMenuContent:RemoveLabel( PlayerMenuContent.BusinessExpense );
CreateBusinessVGUI();
end
local function CreateBusinessForm()
PlayerMenuContent.BusinessFrame = vgui.Create( "TacoFrame" );
PlayerMenuContent.BusinessFrame:SetTitle( "Create Business" );
PlayerMenuContent.BusinessFrame:SetPos( ScrW() / 2 - 50, ScrH() / 2 - 45 );
PlayerMenuContent.BusinessFrame:SetSize( 100, 90 );
PlayerMenuContent.BusinessFrame:AddLabel( "Name of business:", "DefaultSmall", 5, 0, Color( 255, 255, 255, 255 ) );
PlayerMenuContent.BusinessFrame.Entry = PlayerMenuContent.BusinessFrame:AddEntry( CreateBusiness, 5, 55, 100 );
PlayerMenuContent.BusinessFrame:SetVisible( true );
end
PlayerMenuContent.CreateBusinessBut = PlayerMenuContent:AddButton( "Create Business", 5, 40, 100, 24 );
PlayerMenuContent.CreateBusinessBut:SetRoundness( 0 );
PlayerMenuContent.CreateBusinessBut:SetCallback( CreateBusinessForm );
else
CreateBusinessVGUI();
end
end
end
function CreatePlayerMenuContentVGUI()
if( PlayerMenuContent ) then
PlayerMenuContent:Remove();
PlayerMenuContent = nil;
end
PlayerMenuContent = vgui.Create( "TacoPanel", PlayerMenuParent );
PlayerMenuContent:SetPos( 5, 65 );
PlayerMenuContent:SetSize( PlayerMenuParent:GetWide() - 10, PlayerMenuParent:GetTall() - 70 );
PlayerMenuContent:EnableTitle( false );
PlayerMenuContent:EnableCloseButton( false );
PlayerMenuContent:EnableDragging( false );
PlayerMenuContent:EnableFullWindow( true );
PlayerMenuContent:SetColor( Color( 50, 50, 50, 255 ) );
end
local function DropBusinessItem( but )
local itemid = but.ID;
LocalPlayer():ConCommand( "rp_dropbusinessitem " .. itemid .. "\n" );
end
local function MoveItemList()
local n = 1;
for k, v in pairs( PlayerShop.Items ) do
local index = 1;
for l, m in pairs( StoreItems ) do
if( m.ID == v ) then
index = l;
break;
end
end
local data = StoreItems[index];
local x = 5;
local y = 85 * ( n - 1 ) + 15;
PlayerShop.SpawnIcons[k]:SetPos( x, y + 20 );
PlayerShop.NameLabels[k]:SetPos( 71, y );
PlayerShop.DropButton[k]:SetPos( x, y + 66 );
PlayerShop.CrntStockLabels[k]:SetPos( 200, y - 7 );
n = n + 1;
end
if( n > 5 ) then
PlayerShop:SetMaxScroll( 85 * ( n + 1 ) - 500 );
end
end
local function msgGiveStoreItem( msg )
local item = msg:ReadString();
local index = 1;
local n = 1;
for k, v in pairs( PlayerShop.Items ) do
n = n + 1;
end
for l, m in pairs( StoreItems ) do
if( m.ID == item ) then
index = l;
break;
end
end
local data = StoreItems[index];
local k = #PlayerShop.Items + 1;
PlayerShop.Items[k] = data.ID;
local x = 5;
local y = 85 * ( n - 1 ) + 15;
PlayerShop.SpawnIcons[k] = vgui.Create( "SpawnIcon", PlayerShop );
PlayerShop.SpawnIcons[k]:SetPos( x, y + 20 );
PlayerShop.SpawnIcons[k]:SetSize( 64, 64 );
PlayerShop.SpawnIcons[k]:SetModel( data.Model );
PlayerShop.SpawnIcons[k]:SetMouseInputEnabled( false );
PlayerShop.SpawnIcons[k] = PlayerShop:AddObject( PlayerShop.SpawnIcons[k], x, y + 20 );
PlayerShop.NameLabels[k] = PlayerShop:AddLabel( data.Name, "DefaultSmall", 71, y, Color( 255, 255, 255, 255 ) );
PlayerShop.NameLabels[k]:SetSize( 150, 25 );
PlayerShop.CrntStockLabels[k] = PlayerShop:AddLabel( TS.GetBusinessStock( GetInt( "businessid" ), data.ID ) or 0, "DefaultSmall", 200, y - 7, Color( 255, 255, 255, 255 ) );
PlayerShop.DropButton[k] = PlayerShop:AddButton( "Drop", x, y + 66, 35, 15 );
PlayerShop.DropButton[k].ID = data.ID;
PlayerShop.DropButton[k].Index = index;
PlayerShop.DropButton[k]:SetRoundness( 0 );
PlayerShop.DropButton[k]:SetCallback( DropBusinessItem );
if( n > 5 ) then
PlayerShop:SetMaxScroll( 85 * ( n + 1 ) - 500 );
end
end
usermessage.Hook( "GiveStoreItem", msgGiveStoreItem );
local function msgTakeStoreItem( msg )
local name = msg:ReadString();
local id = 1;
for k, v in pairs( PlayerShop.Items ) do
if( v == name ) then
id = k;
break;
end
end
PlayerShop:RemoveObject( PlayerShop.SpawnIcons[id] );
PlayerShop.SpawnIcons[id] = nil;
PlayerShop:RemoveLabel( PlayerShop.NameLabels[id] );
PlayerShop.NameLabels[id] = nil;
PlayerShop:RemoveButton( PlayerShop.DropButton[id] );
PlayerShop.DropButton[id] = nil;
PlayerShop:RemoveLabel( PlayerShop.CrntStockLabels[id] );
PlayerShop.CrntStockLabels[id] = nil;
PlayerShop.Items[id] = nil;
MoveItemList();
end
usermessage.Hook( "TakeStoreItem", msgTakeStoreItem );
function CreatePlayerShop()
local function ShopWindowPaint()
PlayerShop:EnableCloseButton( false );
for k, v in pairs( PlayerShop.Items ) do
PlayerShop.CrntStockLabels[k]:SetText( TS.GetBusinessStock( GetInt( "businessid" ), v ) or 0 );
surface.SetFont( "DefaultSmall" );
PlayerShop.CrntStockLabels[k]:SetSize( surface.GetTextSize( TS.GetBusinessStock( GetInt( "businessid" ), v ) or 0 ), 25 );
end
end
local function CreateItemList()
PlayerShop.Items = { }
PlayerShop.SpawnIcons = { }
PlayerShop.NameLabels = { }
PlayerShop.DropButton = { }
PlayerShop.CrntStockLabels = { }
local items = TS.GetBusinessItemTable( GetInt( "businessid" ) );
local n = 1;
for k, v in pairs( items ) do
local index = 1;
for l, m in pairs( StoreItems ) do
if( m.ID == v ) then
index = l;
break;
end
end
local data = StoreItems[index];
local additem = true;
if( additem ) then
PlayerShop.Items[k] = data.ID;
local x = 5;
local y = 85 * ( n - 1 ) + 15;
PlayerShop.SpawnIcons[k] = vgui.Create( "SpawnIcon", PlayerShop );
PlayerShop.SpawnIcons[k]:SetPos( x, y + 20 );
PlayerShop.SpawnIcons[k]:SetSize( 64, 64 );
PlayerShop.SpawnIcons[k]:SetModel( data.Model );
PlayerShop.SpawnIcons[k]:SetMouseInputEnabled( false );
PlayerShop.SpawnIcons[k] = PlayerShop:AddObject( PlayerShop.SpawnIcons[k], x, y + 20 );
PlayerShop.NameLabels[k] = PlayerShop:AddLabel( data.Name, "DefaultSmall", 71, y, Color( 255, 255, 255, 255 ) );
PlayerShop.NameLabels[k]:SetSize( 150, 25 );
PlayerShop.CrntStockLabels[k] = PlayerShop:AddLabel( TS.GetBusinessStock( GetInt( "businessid" ), data.ID ), "DefaultSmall", 200, y - 7, Color( 255, 255, 255, 255 ) );
PlayerShop.DropButton[k] = PlayerShop:AddButton( "Drop", x, y + 66, 30, 15 );
PlayerShop.DropButton[k].ID = data.ID;
PlayerShop.DropButton[k].Index = index;
PlayerShop.DropButton[k]:SetRoundness( 0 );
PlayerShop.DropButton[k]:SetCallback( DropBusinessItem );
n = n + 1;
end
end
if( n > 5 ) then
PlayerShop:SetMaxScroll( 85 * ( n + 1 ) - 500 );
end
end
if( PlayerShop ) then
PlayerShop:Remove();
PlayerShop = nil;
end
PlayerShop = vgui.Create( "TacoPanel" );
PlayerShop:SetSize( 300, 500 );
PlayerShop:SetPos( ScrW() * .2 + 610, ScrH() / 2 - 250 );
PlayerShop:SetTitle( "Business Inventory" );
PlayerShop:SetPaintHook( ShopWindowPaint );
PlayerShop:EnableCloseButton( false );
PlayerShop:AddScrollBar();
PlayerShop:MakePopup();
PlayerShop.NameLabel = PlayerShop:AddLabel( "Name", "DefaultSmall", 70, 1, Color( 255, 255, 255, 255 ) );
PlayerShop.CrntStockLabel = PlayerShop:AddLabel( "Current Amount", "DefaultSmall", 200, 1, Color( 255, 255, 255, 255 ) );
CreateItemList();
end
function CreatePlayerMenuRadio()
PlayerMenuRadio = vgui.Create( "TacoFrame" );
PlayerMenuRadio:SetPos( 10, ScrH() * .2 );
PlayerMenuRadio:SetSize( 100, 85 );
PlayerMenuRadio:SetTitle( "Radio" );
PlayerMenuRadio:SetVisible( true );
PlayerMenuRadio.FreqLabel = PlayerMenuRadio:AddLabel( "Frequency", "DefaultSmall", 5, 0, Color( 255, 255, 255, 255 ) );
local function ChangeFreq( pnl, val )
local val = tonumber( val );
if( not val or val < 0 or val > 9999.9 ) then
return;
end
LocalPlayer():ConCommand( "rp_changefrequency " .. val .. "\n" );
PlayerMenuRadio.FreqEntry:SetText( math.Round( val * 100 ) / 100 );
end
PlayerMenuRadio.FreqEntry = PlayerMenuRadio:AddEntry( ChangeFreq, 5, 55, 100 );
PlayerMenuRadio.FreqEntry:SetText( GetFloat( "radiofreq" ) );
end
function CreatePlayerMenuVGUI()
PlayerMenuParent = vgui.Create( "TacoPanel" );
PlayerMenuParent:SetPos( ScrW() * .2, ScrH() * .2 );
PlayerMenuParent:SetSize( 600, 440 );
PlayerMenuParent:SetTitle( "Player Menu" );
PlayerMenuParent:SetCloseEvent( ClosePlayerMenu );
PlayerMenuParent:SetKeyboardInputEnabled( true );
CreatePlayerMenuContentVGUI();
CreatePlayerMenuSubContentVGUI( 0 );
local tab = PlayerMenuParent:AddButton( "Biography", 5, 5, 90, 30 );
tab:SetRoundness( 0 );
tab.MenuID = 3;
tab:SetCallback( ChangeMenu );
local tab = PlayerMenuParent:AddButton( "Stats", 100, 5, 90, 30 );
tab:SetRoundness( 0 );
tab.MenuID = 0;
tab:SetCallback( ChangeMenu );
local tab = PlayerMenuParent:AddButton( "Business", 195, 5, 90, 30 );
tab:SetRoundness( 0 );
tab.MenuID = 5;
tab:SetCallback( ChangeMenu );
local tab = PlayerMenuParent:AddButton( "Finance", 290, 5, 90, 30 );
tab:SetRoundness( 0 );
tab.MenuID = 2;
tab:SetCallback( ChangeMenu );
local tab = PlayerMenuParent:AddButton( "Inventory", 385, 5, 90, 30 );
tab:SetRoundness( 0 );
tab.MenuID = 1;
tab:SetCallback( ChangeMenu );
local tab = PlayerMenuParent:AddButton( "Workshop", 480, 5, 90, 30 );
tab:SetRoundness( 0 );
tab.MenuID = 4;
tab:SetCallback( ChangeMenu );
end
surface.CreateFont( "TargetID", 14, 500, true, false, "SubTitle" );
--FINANCE
function RenderFinance()
draw.DrawText( "Economic Value: ", "DefaultSmall", 5, 35, Color( 255, 255, 255, 255 ) );
draw.DrawText( "Your borrowed total: ", "DefaultSmall", 5, 50, Color( 255, 255, 255, 255 ) );
draw.DrawText( "How much you owe: ", "DefaultSmall", 5, 65, Color( 255, 255, 255, 255 ) );
draw.DrawText( "Current amount of money: ", "DefaultSmall", 5, 80, Color( 255, 255, 255, 255 ) );
local econcolor = Color( 10, 200, 10, 255 );
if( GetGlobalFloat( "EconomyMoney" ) < 0 ) then
econcolor = Color( 200, 10, 10, 255 );
end
draw.DrawText( "$" .. GetGlobalFloat( "EconomyMoney" ), "DefaultSmall", 150, 35, econcolor );
draw.DrawText( "$" .. GetFloat( "borrowamount" ), "DefaultSmall", 150, 50, Color( 255, 255, 255, 255 ) );
local owecolor = Color( 255, 255, 255, 255 );
if( GetFloat( "oweamount" ) > 0 ) then
owecolor = Color( 200, 10, 10, 255 );
end
draw.DrawText( "$" .. GetFloat( "oweamount" ), "DefaultSmall", 150, 65, owecolor );
draw.DrawText( "$" .. GetFloat( "money" ), "DefaultSmall", 150, 80, Color( 255, 255, 255, 255 ) );
end
--BUSINESS
function RenderBusiness()
if( GetInt( "ownsbusiness" ) == 1 ) then
local id = GetInt( "businessid" );
surface.SetFont( "TargetID" );
PlayerMenuContent.NameLabel:SetSize( surface.GetTextSize( GetGlobalString( "business." .. id .. ".businessname" ) ), 23 );
PlayerMenuContent.NameLabel:SetText( GetGlobalString( "business." .. id .. ".businessname" ) );
PlayerMenuContent.ChangeNameBut:SetPos( surface.GetTextSize( PlayerMenuContent.NameLabel:GetValue() ) + 30, 2 );
surface.SetFont( "DefaultSmall" );
PlayerMenuContent.ProfitLabel:SetSize( surface.GetTextSize( "Current Bank Amount: $" .. GetGlobalFloat( "business." .. id .. ".bankamount" ) ), 23 );
PlayerMenuContent.ProfitLabel:SetText( "Current Bank Amount: $" .. GetGlobalFloat( "business." .. id .. ".bankamount" ) );
end
end
--BIOGRAPHY
function RenderBiography()
if( PlayerMenuContent.BioIcon ) then
if( PlayerMenuContent.BioIcon.Model ~= LocalPlayer():GetModel() ) then
PlayerMenuContent.BioIcon = vgui.Create( "SpawnIcon", PlayerMenuContent );
PlayerMenuContent.BioIcon.Model = LocalPlayer():GetModel();
PlayerMenuContent.BioIcon:SetModel( LocalPlayer():GetModel() );
PlayerMenuContent.BioIcon:SetPos( 5, 1 );
PlayerMenuContent.BioIcon:SetSize( 64, 64 );
PlayerMenuContent.BioIcon:SetMouseInputEnabled( false );
end
end
end
--INVENTORY
function RenderInventory()
PlayerMenuContent.SpaceNum:SetText( "Max Carrying Space: " .. math.Round( GetFloat( "inventory.MaxSize" ) * 100 ) / 100 );
PlayerMenuContent.SpaceNum:SizeToContents();
PlayerMenuContent.CrntSpaceNum:SetText( "Currently Used Space: " .. math.Round( GetFloat( "inventory.CrntSize" ) * 100 ) / 100 );
PlayerMenuContent.CrntSpaceNum:SizeToContents();
local num = 0;
local scroll = PlayerMenuContent:GetScrollAmount();
for k, v in pairs( Inventory ) do
local x = 5;
local y = num * 94 + 92;
draw.RoundedBox( 2, x, y, PlayerMenuContent:GetWide() - 10, 25, Color( 60, 60, 60, 255 ) );
if( not PlayerMenuContent.InventoryIcon[k] ) then
PlayerMenuContent.InventoryIcon[k] = vgui.Create( "SpawnIcon", PlayerMenuContent );
PlayerMenuContent.InventoryIcon[k]:SetModel( v.Model );
PlayerMenuContent.InventoryIcon[k]:SetPos( x + 5, y + scroll );
PlayerMenuContent.InventoryIcon[k]:SetSize( 64, 64 );
PlayerMenuContent.InventoryIcon[k]:SetMouseInputEnabled( false );
end
if( not PlayerMenuContent.InventoryDropButton[k] ) then
PlayerMenuContent.InventoryDropButton[k] = PlayerMenuContent:AddButton( "Drop", x + 444, y + 5 + scroll, 40, 15 );
PlayerMenuContent.InventoryDropButton[k]:SetRoundness( 0 );
PlayerMenuContent.InventoryDropButton[k]:SetOutlineColor( Color( 0, 0, 0, 100 ) );
PlayerMenuContent.InventoryDropButton[k].ID = k;
local function DropItem( but )
LocalPlayer():ConCommand( "rp_dropitem " .. but.ID .. "\n" );
end
PlayerMenuContent.InventoryDropButton[k]:SetCallback( DropItem );
end
if( v.Usable and not PlayerMenuContent.InventoryUseButton[k] ) then
PlayerMenuContent.InventoryUseButton[k] = PlayerMenuContent:AddButton( "Use", x + 494, y + 5 + scroll, 30, 15 );
PlayerMenuContent.InventoryUseButton[k]:SetRoundness( 0 );
PlayerMenuContent.InventoryUseButton[k]:SetOutlineColor( Color( 0, 0, 0, 100 ) );
PlayerMenuContent.InventoryUseButton[k].ID = k;
local function UseItem( but )
LocalPlayer():ConCommand( "rp_useitem " .. but.ID .. "\n" );
end
PlayerMenuContent.InventoryUseButton[k]:SetCallback( UseItem );
end
if( not PlayerMenuContent.InventoryNameLabel[k] ) then
PlayerMenuContent.InventoryNameLabel[k] = PlayerMenuContent:AddLabel( v.Name, "DefaultSmall", x + 69, y + 6 + scroll, Color( 255, 255, 255, 255 ) );
elseif( PlayerMenuContent.InventoryNameLabel[k]:GetValue() ~= v.Name ) then
PlayerMenuContent.InventoryNameLabel[k]:SetText( v.Name );
PlayerMenuContent.InventoryNameLabel[k]:SetSize( 250, 30 );
end
if( not PlayerMenuContent.InventoryAmountLabel[k] ) then
PlayerMenuContent.InventoryAmountLabel[k] = PlayerMenuContent:AddLabel( v.Amt, "DefaultSmall", x + 270, y + 7 + scroll, Color( 255, 255, 255, 255 ) );
elseif( PlayerMenuContent.InventoryAmountLabel[k]:GetValue() ~= v.Amt ) then
PlayerMenuContent.InventoryAmountLabel[k]:SetText( v.Amt );
end
if( not PlayerMenuContent.InventoryWeightLabel[k] ) then
PlayerMenuContent.InventoryWeightLabel[k] = PlayerMenuContent:AddLabel( v.Weight, "DefaultSmall", x + 310, y + 7 + scroll, Color( 255, 255, 255, 255 ) );
elseif( PlayerMenuContent.InventoryWeightLabel[k]:GetValue() ~= math.Round( v.Weight * 100 ) / 100 ) then
PlayerMenuContent.InventoryWeightLabel[k]:SetText( math.Round( v.Weight * 100 ) / 100 );
end
if( not PlayerMenuContent.InventorySizeLabel[k] ) then
PlayerMenuContent.InventorySizeLabel[k] = PlayerMenuContent:AddLabel( v.Size, "DefaultSmall", x + 347, y + 7 + scroll, Color( 255, 255, 255, 255 ) );
elseif( PlayerMenuContent.InventorySizeLabel[k]:GetValue() ~= math.Round( v.Size * 100 ) / 100 ) then
PlayerMenuContent.InventorySizeLabel[k]:SetText( math.Round( v.Size * 100 ) / 100 );
end
if( not PlayerMenuContent.InventoryDescLabel[k] ) then
PlayerMenuContent.InventoryDescLabel[k] = PlayerMenuContent:AddLabel( v.Desc, "DefaultSmall", x + 69, y + 30 + scroll, Color( 255, 255, 255, 255 ) );
elseif( PlayerMenuContent.InventoryDescLabel[k]:GetValue() ~= v.Desc ) then
PlayerMenuContent.InventoryDescLabel[k]:SetText( v.Desc );
end
num = num + 1;
end
if( num > 0 ) then
if( not PlayerMenuContent.NameLabel ) then
PlayerMenuContent.NameLabel = PlayerMenuContent:AddLabel( "Name", "DefaultSmall", 73, 78 + scroll, Color( 255, 255, 255, 255 ) );
end
if( not PlayerMenuContent.AmountLabel ) then
PlayerMenuContent.AmountLabel = PlayerMenuContent:AddLabel( "Amount", "DefaultSmall", 265, 75 + scroll, Color( 255, 255, 255, 255 ) );
end
if( not PlayerMenuContent.WeightLabel ) then
PlayerMenuContent.WeightLabel = PlayerMenuContent:AddLabel( "Weight", "DefaultSmall", 308, 75 + scroll, Color( 255, 255, 255, 255 ) );
end
if( not PlayerMenuContent.SizeLabel ) then
PlayerMenuContent.SizeLabel = PlayerMenuContent:AddLabel( "Size", "DefaultSmall", 345, 75 + scroll, Color( 255, 255, 255, 255 ) );
end
end
if( num >= 4 ) then
PlayerMenuContent:SetMaxScroll( math.Clamp( ( num - 3 ) * 94 + 2, 0, 1500 ) );
end
UpdateInventory();
end
--STATS MENU
function RenderStatsMenu()
draw.RoundedBox( 2, 10, 50, 150, 20, Color( 0, 0, 0, 255 ) );
draw.RoundedBox( 2, 11, 51, math.Clamp( 148 * ( GetFloat( "stat.Strength" ) / 100 ), 2, 148 ), 18, Color( 0, 200, 0, 255 ) );
draw.RoundedBox( 2, 10, 90, 150, 20, Color( 0, 0, 0, 255 ) );
draw.RoundedBox( 2, 11, 91, math.Clamp( 148 * ( GetFloat( "stat.Endurance" ) / 100 ), 2, 148 ), 18, Color( 0, 200, 0, 255 ) );
draw.RoundedBox( 2, 10, 130, 150, 20, Color( 0, 0, 0, 255 ) );
draw.RoundedBox( 2, 11, 131, math.Clamp( 148 * ( GetFloat( "stat.Speed" ) / 100 ), 2, 148 ), 18, Color( 0, 200, 0, 255 ) );
draw.RoundedBox( 2, 10, 170, 150, 20, Color( 0, 0, 0, 255 ) );
draw.RoundedBox( 2, 11, 171, math.Clamp( 148 * ( GetFloat( "stat.Sprint" ) / 100 ), 2, 148 ), 18, Color( 0, 200, 0, 255 ) );
draw.RoundedBox( 2, 10, 245, 150, 20, Color( 0, 0, 0, 255 ) );
draw.RoundedBox( 2, 11, 246, math.Clamp( 148 * ( GetFloat( "stat.Aim" ) / 100 ), 2, 148 ), 18, Color( 0, 0, 180, 255 ) );
draw.RoundedBox( 2, 10, 285, 150, 20, Color( 0, 0, 0, 255 ) );
draw.RoundedBox( 2, 11, 286, math.Clamp( 148 * ( GetFloat( "stat.Medic" ) / 100 ), 2, 148 ), 18, Color( 0, 0, 180, 255 ) );
draw.RoundedBox( 2, 10, 325, 150, 20, Color( 0, 0, 0, 255 ) );
draw.RoundedBox( 2, 11, 326, math.Clamp( 148 * ( GetFloat( "stat.Sneak" ) / 100 ), 2, 148 ), 18, Color( 0, 0, 180, 255 ) );
PlayerMenuContent.StrengthNum:SetText( math.floor( GetFloat( "stat.Strength" ) ) );
PlayerMenuContent.StrengthNum:SizeToContents();
PlayerMenuContent.EnduranceNum:SetText( math.floor( GetFloat( "stat.Endurance" ) ) );
PlayerMenuContent.EnduranceNum:SizeToContents();
PlayerMenuContent.SpeedNum:SetText( math.floor( GetFloat( "stat.Speed" ) ) );
PlayerMenuContent.SpeedNum:SizeToContents();
PlayerMenuContent.SprintNum:SetText( math.floor( GetFloat( "stat.Sprint" ) ) );
PlayerMenuContent.SprintNum:SizeToContents();
PlayerMenuContent.AimNum:SetText( math.floor( GetFloat( "stat.Aim" ) ) );
PlayerMenuContent.AimNum:SizeToContents();
PlayerMenuContent.MedicNum:SetText( math.floor( GetFloat( "stat.Medic" ) ) );
PlayerMenuContent.MedicNum:SizeToContents();
PlayerMenuContent.SneakNum:SetText( math.floor( GetFloat( "stat.Sneak" ) ) );
PlayerMenuContent.SneakNum:SizeToContents();
end