diff options
Diffstat (limited to 'Northstar.CustomServers/scripts/vscripts/_networkvars.gnut')
-rw-r--r-- | Northstar.CustomServers/scripts/vscripts/_networkvars.gnut | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/Northstar.CustomServers/scripts/vscripts/_networkvars.gnut b/Northstar.CustomServers/scripts/vscripts/_networkvars.gnut deleted file mode 100644 index 14990a15..00000000 --- a/Northstar.CustomServers/scripts/vscripts/_networkvars.gnut +++ /dev/null @@ -1,169 +0,0 @@ -untyped - - -global function SetEntityVar -global function SetServerVar -global function SetNetworkVar -global function SyncServerVars -global function SyncEntityVars - - -function SetEntityVar( entity ent, varName, value ) -{ - Assert( IsServer() ) - Assert( varName in _entityClassVars[ent.GetClassName()], "Entity " + ent + " does not have remote var " + varName ) - Assert( varName in _entityClassVarsIsEnts[ent.GetClassName()] ) - Assert( varName in _entityClassVarsSyncToAllClients[ent.GetClassName()] ) - Assert( typeof value != "string" ) - - Assert( "_entityVars" in ent ) - - if ( ent._entityVars[varName] == value ) - return - - ent._entityVars[varName] = value - - if ( _entityClassVarsIsEnts[ent.GetClassName()][varName] && value != null ) - { - //printl( "SET NETWORK ENTITY VAR TO AN ENTITY. GETTING EHANDLE" ) - value = value.GetEncodedEHandle() - } - - local syncToAllPlayers = _entityClassVarsSyncToAllClients[ent.GetClassName()][varName] - - // only sync "player" variables to that player - if ( ent.IsPlayer() && !ent.IsBot() && !syncToAllPlayers ) - { - if ( !ent.p.clientScriptInitialized ) - return - - Remote_CallFunction_NonReplay( ent, "ServerCallback_SetEntityVar", ent.GetEncodedEHandle(), _entityClassVarHandles[varName], value ) - } - else - { - array<entity> players = GetPlayerArray() - foreach ( player in players ) - { - if ( player.IsBot() ) - continue - - if ( !player.p.clientScriptInitialized ) - continue - - Remote_CallFunction_NonReplay( player, "ServerCallback_SetEntityVar", ent.GetEncodedEHandle(), _entityClassVarHandles[varName], value ) - } - } -} - -function SetServerVar( varName, value ) -{ - Assert( IsServer() ) - Assert( varName in _serverVars ) - Assert( typeof value != "string" ) - expect string( varName ) - - if ( _serverVars[varName] == value ) - return - - _serverVars[varName] = value - - if ( varName in _serverEntityVars && value != null ) - { - if ( IsValid( value ) ) - value = value.GetEncodedEHandle() - else - value = null - } - - // Run server script change callback if one exists - thread ServerVarChangedCallbacks( varName ) - - // Update the var on all clients - array<entity> players = GetPlayerArray() - foreach ( player in players ) - { - if ( !player.p.clientScriptInitialized ) - continue - - Remote_CallFunction_NonReplay( player, "ServerCallback_SetServerVar", _serverVarHandles[varName], value ) - } -} - -function SetNetworkVar( obj, varName, value ) -{ - if ( obj == level ) - { - return SetServerVar( varName, value ) - } - else - { - expect entity( obj ) - return SetEntityVar( obj, varName, value ) - } -} - -function SyncServerVars( entity player ) -{ - Assert( IsServer() ) - - foreach ( varName, value in _serverVars ) - { - if ( varName in _serverEntityVars && value != null ) - { - if ( IsValid( value ) ) - value = value.GetEncodedEHandle() - else - value = null - } - - Remote_CallFunction_NonReplay( player, "ServerCallback_SetServerVar", _serverVarHandles[varName], value ) - } -} - -function SyncEntityVars( entity player ) -{ - Assert( IsServer() ) - - foreach ( className, _ in _entityClassVars ) - { - array<entity> entities - if ( className == "player" ) - entities = GetPlayerArray() - else - entities = GetNPCArrayByClass( className ) - - foreach ( ent in entities ) - { - if ( !IsValid( ent ) ) - continue - - foreach( varName, value in _entityClassVars[className] ) - { - local entValue = ent._entityVars[varName] - if ( entValue == value ) - continue - - if ( !_entityClassVarsSyncToAllClients[className][varName] && ent != player ) - { - Assert( className == "player" ) - continue - } - //if ( className == "player" && !_entityClassVarsSyncToAllClients[className][varName] ) - // continue - // - if ( _entityClassVarsIsEnts[className][varName] ) - { - if ( !IsValid( entValue ) ) - continue - // if this is an entity var, change over to e-handle - entValue = entValue.GetEncodedEHandle() - } - - Assert( player.p.clientScriptInitialized ) - - Remote_CallFunction_NonReplay( player, "ServerCallback_SetEntityVar", ent.GetEncodedEHandle(), _entityClassVarHandles[varName], entValue ) - } - } - } -} - |