OsMessageObject

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
 
(28 intermediate revisions by 7 users not shown)
Line 1: Line 1:
= osMessageObject =
+
{{osslfunc
 +
|threat_level=Low
 +
|permissions=${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
 +
|delay=0
 +
|function_syntax= osMessageObject(key primID, string message)
 +
|ossl_example=This example consists of a sender script, and a receiver script.
 +
: '''Sender script'''
 +
<source lang = "lsl">
 +
// ----------------------------------------------------------------
 +
// Example / Sample Script to show function use.
 +
//
 +
default
 +
{
 +
    state_entry()
 +
    {
 +
        llSay(0, "Touch me to use osMessageObject to message an object");
 +
    }
 +
    touch_end(integer total_num)
 +
    {
 +
        key kTargetObj = "UUID"; //INSERT A VALID Object UUID here
 +
        string sSentence = "This message sent from a Sending object using osMessageObject";
 +
        osMessageObject(kTargetObj,sSentence);
 +
    }
 +
}
 +
</source>
  
''('''INCOMPLETE''', Requires Sample Sending.Script &amp;&nbsp;Receiving.Script)''
 
  
Syntax: osMessageObject(key objectUUID, string message)  
+
: '''Receiver script'''
 +
<source lang = "lsl">
 +
// Place this script in the Receiver prim.
 +
default
 +
{
 +
    state_entry()
 +
    {
 +
        llSay(0, "osMessageObject Receiver Ready\nPlease replace UUID in osMessageObject Script (line 31) kTargetObj = "+(string)llGetKey());
 +
    }
 +
    dataserver(key query_id, string data)
 +
    {
 +
        llSay(0, "RECEIVER: The message received.\n\t query_id = "+(string)query_id+"\n\t msg = "+data);
 +
    }
 +
}
 +
</source>
 +
|description=
 +
''primID'' = the UUID of the prim you are messaging.
 +
''message'' = The string you want to send.
  
<br>
+
Sends a message to a prim identified by the given UUID, a script in the prim must implement the dataserver event handler. the dataserver event is passed the UUID of the calling prim and a string message.  
 
+
<div style="background-color:#FFA500; padding:10px; padding-bottom:5px; border: 1px #FF544F solid">
Where objectUUID = the UUID&nbsp;of teh object you are messaging.
+
This is incompatible with the normal use of dataserver event on scripts on the receiving prim.<br>
 
+
The dataserver query_id argument should be a unique id of a request. This function just uses it as a sender id. All scripts with dataserver event will receive it with no easy to validate. A normal request may also trigger the event on several scripts of the prim. The target one can compare the query_id and validate it, other scripts can not tell if it is a normal request for other script, or a message.<br>
Where message = The String of data you want to send.
+
this unless the prims can know senders UUIDs and filter based on them
 
+
</div>
'''NOTES:'''
+
|
 
+
}}
Sends a message to to object identified by the given UUID, a script in the object must implement the dataserver function the dataserver function is passed the ID of the calling function and a string message.<br>
+
 
+
 
+
 
+
== Example Scripts ==
+
 
+
Sender Script: (needed)
+
 
+
 
+
 
+
Receiver Script: (needed)
+
 
+
 
+
 
+
== Related Links  ==
+
 
+
[[OSSL Implemented]]
+
 
+
[[OSSL Enabling Functions]]
+

Latest revision as of 12:05, 27 October 2021

osMessageObject(key primID, string message)
primID = the UUID of the prim you are messaging.

message = The string you want to send.

Sends a message to a prim identified by the given UUID, a script in the prim must implement the dataserver event handler. the dataserver event is passed the UUID of the calling prim and a string message.

This is incompatible with the normal use of dataserver event on scripts on the receiving prim.
The dataserver query_id argument should be a unique id of a request. This function just uses it as a sender id. All scripts with dataserver event will receive it with no easy to validate. A normal request may also trigger the event on several scripts of the prim. The target one can compare the query_id and validate it, other scripts can not tell if it is a normal request for other script, or a message.
this unless the prims can know senders UUIDs and filter based on them

Threat Level Low
Permissions ${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER
Extra Delay 0 seconds
Example(s)
This example consists of a sender script, and a receiver script.
Sender script
// ----------------------------------------------------------------
// Example / Sample Script to show function use.
//
default
{
    state_entry()
    {
        llSay(0, "Touch me to use osMessageObject to message an object");
    }
    touch_end(integer total_num)
    {
        key kTargetObj = "UUID"; //INSERT A VALID Object UUID here
        string sSentence = "This message sent from a Sending object using osMessageObject";
        osMessageObject(kTargetObj,sSentence);
    }
}


Receiver script
// Place this script in the Receiver prim.
default
{
    state_entry()
    {
        llSay(0, "osMessageObject Receiver Ready\nPlease replace UUID in osMessageObject Script (line 31) kTargetObj = "+(string)llGetKey());
    }
    dataserver(key query_id, string data)
    {
        llSay(0, "RECEIVER: The message received.\n\t query_id = "+(string)query_id+"\n\t msg = "+data);
    }
}
Personal tools
General
About This Wiki