Line 3: | Line 3: | ||
=Members= | =Members= | ||
{{ScriptFunction|void|SetGlobal|(string namespace, string key, DynValue value);|Sets a global key to a value. The value can be any object type.|5= | {{ScriptFunction|void|SetGlobal|(string namespace, string key, DynValue value);|Sets a global key to a value. The value can be any object type.|5= | ||
− | '''Space.Shared.SetGlobal'''("com.someNameHere.world", "version", "1.02");}} | + | '''Space.Shared.SetGlobal'''("com.someNameHere.world", "version", "1.02"); |6=<pre>-- This one script placed on a multiple number of objects will track the number |
+ | -- of clicks user has made using a Global Variable | ||
+ | -- note: the GetGlobal/SetGlobal functions are client side | ||
+ | |||
+ | thisObject = Space.Host.ExecutingObject | ||
+ | namespace = "com.example.shared" | ||
+ | key = "clicktracker" | ||
+ | |||
+ | |||
+ | OnClick = function() | ||
+ | |||
+ | local currentClicks = Space.Shared.GetGlobal(namespace, key) | ||
+ | |||
+ | if currentClicks == nil then | ||
+ | currentClicks = 1 | ||
+ | else | ||
+ | currentClicks = currentClicks + 1 | ||
+ | end | ||
+ | |||
+ | Space.Shared.SetGlobal(namespace, key, currentClicks) | ||
+ | Space.Log("Total Clicks = " .. currentClicks) | ||
+ | |||
+ | end | ||
+ | |||
+ | |||
+ | thisObject.AddClickable() | ||
+ | thisObject.Clickable.OnClick(OnClick)</pre>}} | ||
{{ScriptFunction|DynValue|GetGlobal|(string namespace, string key);|Retrieves a previously set global variable, or returns nil.|5= | {{ScriptFunction|DynValue|GetGlobal|(string namespace, string key);|Retrieves a previously set global variable, or returns nil.|5= | ||
− | local versionValue = '''Space.Shared.GetGlobal'''("com.someNameHere.world", "version") | + | local versionValue = '''Space.Shared.GetGlobal'''("com.someNameHere.world", "version")|6=<pre>-- This one script placed on a multiple number of objects will track the number |
+ | -- of clicks user has made using a Global Variable | ||
+ | -- note: the GetGlobal/SetGlobal functions are client side | ||
+ | |||
+ | thisObject = Space.Host.ExecutingObject | ||
+ | namespace = "com.example.shared" | ||
+ | key = "clicktracker" | ||
+ | |||
+ | |||
+ | OnClick = function() | ||
+ | |||
+ | local currentClicks = Space.Shared.GetGlobal(namespace, key) | ||
+ | |||
+ | if currentClicks == nil then | ||
+ | currentClicks = 1 | ||
+ | else | ||
+ | currentClicks = currentClicks + 1 | ||
+ | end | ||
+ | |||
+ | Space.Shared.SetGlobal(namespace, key, currentClicks) | ||
+ | Space.Log("Total Clicks = " .. currentClicks) | ||
+ | |||
+ | end | ||
+ | |||
+ | |||
+ | thisObject.AddClickable() | ||
+ | thisObject.Clickable.OnClick(OnClick)</pre>}} | ||
{{ScriptFunction|void|RegisterFunction|(string ns, string func, Closure reference);|Makes func into a global function that can be accessed anywhere.|5= | {{ScriptFunction|void|RegisterFunction|(string ns, string func, Closure reference);|Makes func into a global function that can be accessed anywhere.|5= |
The SShared class is for communication between scripts and objects within a client. For communication needed between different clients/players please use Scripting/SNetwork.
Sets a global key to a value. The value can be any object type.
-- This one script placed on a multiple number of objects will track the number -- of clicks user has made using a Global Variable -- note: the GetGlobal/SetGlobal functions are client side thisObject = Space.Host.ExecutingObject namespace = "com.example.shared" key = "clicktracker" OnClick = function() local currentClicks = Space.Shared.GetGlobal(namespace, key) if currentClicks == nil then currentClicks = 1 else currentClicks = currentClicks + 1 end Space.Shared.SetGlobal(namespace, key, currentClicks) Space.Log("Total Clicks = " .. currentClicks) end thisObject.AddClickable() thisObject.Clickable.OnClick(OnClick)
Retrieves a previously set global variable, or returns nil.
-- This one script placed on a multiple number of objects will track the number -- of clicks user has made using a Global Variable -- note: the GetGlobal/SetGlobal functions are client side thisObject = Space.Host.ExecutingObject namespace = "com.example.shared" key = "clicktracker" OnClick = function() local currentClicks = Space.Shared.GetGlobal(namespace, key) if currentClicks == nil then currentClicks = 1 else currentClicks = currentClicks + 1 end Space.Shared.SetGlobal(namespace, key, currentClicks) Space.Log("Total Clicks = " .. currentClicks) end thisObject.AddClickable() thisObject.Clickable.OnClick(OnClick)
Makes func into a global function that can be accessed anywhere.
Space.Log("Hello " .. name);
end
Calls the registered function with the specified arguments.
Makes func into a global function that can be accessed anywhere.
Space.Log("Hello " .. name);
end
Calls every registered broadcast function with the specified arguments, and returns the number of calls queued.
function someFunction(status)
if status == "start"
then Space.Log("Do receiver 1 procedures.")
end
end
Space.Shared.RegisterBroadcastFunction("com.someNameHere.world", "func", someFunction);
-- Script B: Another Receiver
function someFunction(status)
if status == "start"
then Space.Log("Do receiver 2 procedures.")
end
end
Space.Shared.RegisterBroadcastFunction("com.someNameHere.world", "func", someFunction);
--Script C: Sender
local ball = Space.Host.ExecutingObject;
ball.SubscribeToEvents();
function onDown()
local queue = Space.Shared.CallBroadcastFunction("com.someNameHere.world", "func", {"start"});
Space.Log("number in queue: " .. queue);
end
Unregister Broadcast Function.
function someFunction(status)
if status == "start"
then Space.Log("Do receiver 1 procedures.")
end
end
Space.Shared.RegisterBroadcastFunction("com.someNameHere.world", "func", someFunction);
-- Script B: Another Receiver
function someFunction(status)
if status == "start"
then Space.Log("Do receiver 2 procedures.")
end
end
Space.Shared.RegisterBroadcastFunction("com.someNameHere.world", "func", someFunction);
--Script C: Sender
local ball = Space.Host.ExecutingObject;
ball.SubscribeToEvents();
function onDown()
local queue = Space.Shared.CallBroadcastFunction("com.someNameHere.world", "func", {"start"});
Space.Log("number in queue: " .. queue);
Space.Shared.UnregisterBroadcastFunction("com.someNameHere.world", "func", someFunction);
Space.Log("UnregisterBroadcastFunction");
end
Unregister Broadcast Function.
function someFunction(status)
if status == "start"
then Space.Log("Do receiver 1 procedures.")
end
end
Space.Shared.RegisterBroadcastFunction("com.someNameHere.world", "func", someFunction);
-- Script B: Another Receiver
function someFunction(status)
if status == "start"
then Space.Log("Do receiver 2 procedures.")
end
end
Space.Shared.RegisterBroadcastFunction("com.someNameHere.world", "func", someFunction);
--Script C: Sender
local ball = Space.Host.ExecutingObject;
ball.SubscribeToEvents();
function onDown()
local queue = Space.Shared.CallBroadcastFunction("com.someNameHere.world", "func", {"start"});
Space.Log("number in queue: " .. queue);
Space.Shared.UnregisterBroadcastFunction("com.someNameHere.world", "func");
Space.Log("UnregisterBroadcastFunction");
end
Sets a Super global key to a value. The value can be any object type.
--these two scripts are in two different regions but script B will know that you came from A --REGION A script username = Space.Scene.PlayerAvatar.Username region = Space.Scene.Name Space.Shared.SetSuperGlobal (username, "Last Location", region) --REGION B script username = Space.Scene.PlayerAvatar.Username region = Space.Shared.GetSuperGlobal (username, "Last Location") Space.Dialogues.SendLocalChat ("You have arrived from ".. region, "Last Location")
Retrieves a previously set super global variable, or returns nil.
--these two scripts are in two different regions but script B will know that you came from A --REGION A script username = Space.Scene.PlayerAvatar.Username region = Space.Scene.Name Space.Shared.SetSuperGlobal (username, "Last Location", region) --REGION B script username = Space.Scene.PlayerAvatar.Username region = Space.Shared.GetSuperGlobal (username, "Last Location") Space.Dialogues.SendLocalChat ("You have arrived from ".. region, "Last Location")
|