OsMessageObject

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
Line 69: Line 69:
 
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 UUID of the calling prim and a string message.  
 
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 UUID of the calling prim and a string message.  
 
<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 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, making it impossible to valdidate.
+
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
 
</div>
 
</div>
 
|
 
|
 
}}
 
}}

Revision as of 12:44, 27 October 2021

osMessageObject(key objectID, string message)
Where objectID = the UUID of the object you are messaging.

Where message = The String of data you want to send.

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 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. 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

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 reciever script.
Sender script
// ----------------------------------------------------------------
// Example / Sample Script to show function use.
//
// Script Title:    osMessageObject.lsl
// Script Author:
// Threat Level:    Low
// Script Source:   SUPPLEMENTAL http://opensimulator.org/wiki/osMessageObject
//
// Notes: See Script Source reference for more detailed information
// This sample is full opensource and available to use as you see fit and desire.
// Threat Levels only apply to OSSL & AA Functions
// See http://opensimulator.org/wiki/Threat_level
// ================================================================
// Inworld Script Line:    osMessageObject(key objectUUID, string message);
//
// Example of osMessageObject
//
// SPECIAL NOTE
// send a message to to object identified by the given UUID,
// a script in the Receiving object must implement the dataserver function
// the dataserver function is passed the UUID of the calling prim and a string message
// Dataserver event is only raised in the root prim of the linkset
// 
//
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);
    }
}


Reciever 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