OsMessageObject
From OpenSimulator
(One intermediate revision by one user not shown) | |||
Line 48: | Line 48: | ||
<div style="background-color:#FFA500; padding:10px; padding-bottom:5px; border: 1px #FF544F solid"> | <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> | 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. A normal request may 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 | + | 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> | </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); } } |