Difference between revisions of "LlMapDestination"

From Second Life Wiki
Jump to navigation Jump to search
m
m (better slurl desc)
Line 33: Line 33:
         key id = llDetectedKey(0);
         key id = llDetectedKey(0);


         string old_url_prefix = "http://slurl.com/secondlife/";
         string old_slurl_prefix = "http://slurl.com/secondlife/";
         string new_url_prefix = "http://maps.secondlife.com/secondlife/";
         string new_slurl_prefix = "http://maps.secondlife.com/secondlife/";
         string url_suffix = llEscapeURL(simName) + "/" + (string)llRound(tpDest.x) + "/" + (string)llRound(tpDest.y) + "/" + (string)llRound(tpDest.z);
         string slurl_suffix = llEscapeURL(simName) + "/" + (string)llRound(tpDest.x) + "/" + (string)llRound(tpDest.y) + "/" + (string)llRound(tpDest.z);


         llInstantMessage(id, old_url_prefix + url_suffix);
         llInstantMessage(id, old_slurl_prefix + slurl_suffix);
         llInstantMessage(id, new_url_prefix + url_suffix);
         llInstantMessage(id, new_slurl_prefix + slurl_suffix);


         llMapDestination(simName, tpDest, lookAt);
         llMapDestination(simName, tpDest, lookAt);

Revision as of 13:44, 23 September 2012

Summary

Function: llMapDestination( string simname, vector pos, vector look_at );
1.0 Forced Delay
10.0 Energy

Opens world map centered on simname with pos highlighted.
Only works for scripts attached to avatar, or during touch events.

• string simname Region name
• vector pos position in region coordinates
• vector look_at position in region coordinates (not used)

(NOTE: look_at currently does nothing)

Caveats

  • This function causes the script to sleep for 1.0 seconds.
  • if simname is omitted or invalid, the map will open centered on object, but pos will not be highlighted. Since this function requests the client to perform a task, there is no way for script to know if it has failed.

Examples

<lsl> string simName = "Help Island Public"; vector tpDest = <128.0, 128.0, 24.0>; vector lookAt = ZERO_VECTOR;

default {

   state_entry()
   {
       // set white, opaque floattext with teleport destination
       llSetText("click to teleport\nto '" + simName + "'", <1.0, 1.0, 1.0>, (float)TRUE);
   }
   touch_start(integer num_detected)
   {
       key id = llDetectedKey(0);
       string old_slurl_prefix = "http://slurl.com/secondlife/";
       string new_slurl_prefix = "http://maps.secondlife.com/secondlife/";
       string slurl_suffix = llEscapeURL(simName) + "/" + (string)llRound(tpDest.x) + "/" + (string)llRound(tpDest.y) + "/" + (string)llRound(tpDest.z);
       llInstantMessage(id, old_slurl_prefix + slurl_suffix);
       llInstantMessage(id, new_slurl_prefix + slurl_suffix);
       llMapDestination(simName, tpDest, lookAt);
   }

}

</lsl>

Notes

  • pos will work with Region coordinates not inside simname. (like those returned by llRequestInventoryData)
  • if called from non touch events, it only works for the owner.
  • if called from touch, it may only work for the first or last touch in the event queue (example: num_touched > 1)
  • if called inside an attachment, it only works for the owner.

See Also

Functions

•  llRequestInventoryData

Deep Notes

Signature

function void llMapDestination( string simname, vector pos, vector look_at );