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")
|