Creating a changing var & Button do click custom job check!

So I am trying to create a bank robbery system. However, I want to create a variable called BankBalance that changes every 2 minutes by $3500. I have created an entity called Bank_ent. The code is :

Init.lua:


AddCSLuaFile( "cl_init.lua" )
AddCSLuaFile( "shared.lua" )

include( "shared.lua" )

function ENT:Initialize()

	self:SetModel( "models/props/cs_assault/MoneyPallet.mdl" )
	self:PhysicsInit(SOLID_VPHYSICS)
	self:SetMoveType(MOVETYPE_VPHYSICS)
	self:SetSolid(SOLID_VPHYSICS)

	local phys = self:GetPhysicsObject()

	if phys:IsValid() then

		phys:Wake()

	end

end

util.AddNetworkString( "OpenBankMenu" )
function ENT:AcceptInput( name, activator, caller )

	if name == "Use" and caller:IsPlayer() then
		net.Start( "OpenBankMenu" )
		net.Send( caller )
	end

end

Cl_init.lua


function ENT:Draw()

	self:DrawModel()

end

local BankBalance = 1000

net.Receive( "OpenBankMenu", function()

	local Background = vgui.Create( "DFrame" )
	Background:SetTitle( "Bank Menu" )
	Background:Center()
	Background:SetSize( 300, 300 )
	Background:SetDraggable( false )
	Background:MakePopup( true )
	Background:ShowCloseButton( true )

end)

	local BalanceBut = vgui.Create( "DButton", Frame )
	BalanceBut:SetText( "Bank Balance" )
	BalanceBut:SetTextColor( Color( 255, 255, 255 ) )
	BalanceBut:SetPos( 100, 100 )
	BalanceBut:SetSize( 100, 30 )
	BalanceBut.Paint = function( self, w, h )
		draw.RoundedBox( 0, 0, 0, w, h, Color( 41, 128, 185, 250 ) )
	end
	BalanceBut.DoClick = function()
		print("The Bank Balance is : $"..BankBalance)
	end

shared.lua


ENT.Type = "anim"
ENT.Base = "base_gmodentity"

ENT.PrintName = "Metro Bank"

ENT.Spawnable = true

So I am wanting the var BankBalance to change. I also want the var BankBalance to be used in a entity later be still always be the same as the one in here if that makes sense. Another thing I would like is to make it so there is a job check when the Button BalanceBut is clicked would I just do this like a ULX rank custom check but change where the ranks would go with jobs :


customCheck = function(ply) return 
   table.HasValue({"TEAM_POLICE"}, ply:GetNWString("usergroup"))
end,
CustomCheckFailMsg = "You are not the correct job for this action!",

use timer.Create(). create a table with all the allowed jobs then do if ( not table[ ply:Team() ] ) then return end

Just do

[lua]
if not ply:Team() == TEAM_WHATEVER then return end
[/lua]

and you would want to network the variable if you want to make it serverside.

How would I make a variable that updates every so often. Would I have to make something in lua\autorun then make the bank entity in lua\entities then do something like


include("lua\autorun\sv_bankent")

[editline]28th March 2016[/editline]

local var = 0

timer.Create( “changevar”, 1, 0, function()

var = var + 1

end )

will add one to var every second, forever.

Thank you for that,

So would I just create it like a normal entity or would I have to create something in lua autorun ?

bump

Not sure what you mean by “something in lua autorun” but the way you have it now should work.