OsMessageObject
From OpenSimulator
(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> | ||
− | |||
− | + | : '''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. | ||
− | + | 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> | |
− | + | | | |
− | + | }} | |
− | Sends a message to | + | |
− | + | ||
− | + | ||
− | + | ||
− | = | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
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); } } |