Entity/NetworkVarNotify

From Garry's Mod
Jump to: navigation, search
 Entity:NetworkVarNotify( )

Contents

Description

Creates a callback that will execute when the given network variable changes - that is, when the Set<name> function is run.

NOTE

The callback is executed before the value is changed, and is called even if the new and old values are the same.

NOTE

This function does not exist on entities in which Entity:InstallDataTable has not been called. By default, this means this function only exists on SENTs (both serverside and clientside) and on players with a Player Class (serverside and clientside LocalPlayer only!). It is therefore safest to only use this in ENTITY:SetupDataTables.

WARNING

A clientside NetworkVarNotify will not be called when the network var is changed serverside! This makes the function less useful. This is a bug. [1]

Arguments

string name

Name of variable to track changes of

Arguments

function callback

The function to call when the variable changes. It is passed 4 arugments:

  • Entity entity - Entity whos variable changed (This will be variable called "self" in ENT:CallBack format.)
  • string name - Name of changed variable
  • any old - Old/current variable value
  • any new - New variable value that it was set to

Examples

Example

Example usage

function ENT:SetupDataTables()

	self:NetworkVar( "Float", 0, "Amount" )
	self:NetworkVar( "Vector", 1, "StartPos" )
	self:NetworkVar( "Vector", 2, "EndPos" )

	if ( SERVER ) then
		self:NetworkVarNotify( "EndPos", self.OnVarChanged )
	end

end

function ENT:OnVarChanged( name, old, new )
	print( name, old, new )
end

Output:

Prints variable name, old value and new value whenever SetEndPos function is called
Personal tools
Navigation