OsMessageObject
From OpenSimulator
(9 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
|permissions=${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER | |permissions=${OSSL|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER | ||
|delay=0 | |delay=0 | ||
− | |function_syntax= osMessageObject(key | + | |function_syntax= osMessageObject(key primID, string message) |
− | |ossl_example=This example consists of a sender script, and a | + | |ossl_example=This example consists of a sender script, and a receiver script. |
: '''Sender script''' | : '''Sender script''' | ||
<source lang = "lsl"> | <source lang = "lsl"> | ||
// ---------------------------------------------------------------- | // ---------------------------------------------------------------- | ||
// Example / Sample Script to show function use. | // Example / Sample Script to show function use. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
// | // | ||
default | default | ||
Line 47: | Line 26: | ||
− | : ''' | + | : '''Receiver script''' |
<source lang = "lsl"> | <source lang = "lsl"> | ||
// Place this script in the Receiver prim. | // Place this script in the Receiver prim. | ||
Line 63: | Line 42: | ||
</source> | </source> | ||
|description= | |description= | ||
− | + | ''primID'' = the UUID of the prim you are messaging. | |
− | + | ''message'' = The string you want to send. | |
− | + | ||
− | Sends a message to | + | 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"> | ||
+ | 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> | ||
+ | this unless the prims can know senders UUIDs and filter based on them | ||
+ | </div> | ||
| | | | ||
}} | }} |
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. | |
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.
// ---------------------------------------------------------------- // 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); } }
// 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); } } |