Difference between revisions of "LlMapDestination"

From Second Life Wiki
Jump to navigation Jump to search
m (Replaced <source> with <syntaxhighlight>)
m (put some monospaced type on code)
Line 56: Line 56:
* {{LSLP|pos}} will work with [[Viewer_coordinate_frames#Region|Region]] coordinates not inside {{LSLP|simname}}. (like those returned by [[llRequestInventoryData]])
* {{LSLP|pos}} will work with [[Viewer_coordinate_frames#Region|Region]] coordinates not inside {{LSLP|simname}}. (like those returned by [[llRequestInventoryData]])
* if called from non {{LSLGC|Touch|touch}} events, it only works for the {{LSLGC|Owner|owner}}.
* if called from non {{LSLGC|Touch|touch}} events, it only works for the {{LSLGC|Owner|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 from touch, it may only work for the first or last touch in the event queue (example: {{Mono|num_touched > 1}})
* if called inside an [[attachment]], it only works for the owner.
* if called inside an [[attachment]], it only works for the owner.
|permission
|permission

Revision as of 08:32, 10 February 2023

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

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 oldSlurlPrefix = "http://slurl.com/secondlife/";
        string newSlurlPrefix = "http://maps.secondlife.com/secondlife/";
        string slurlSuffix = llEscapeURL(simName)
            + "/" + (string)llRound(tpDest.x)
            + "/" + (string)llRound(tpDest.y)
            + "/" + (string)llRound(tpDest.z);

        llInstantMessage(id, oldSlurlPrefix + slurlSuffix);
        llInstantMessage(id, newSlurlPrefix + slurlSuffix);

        llMapDestination(simName, tpDest, lookAt);
    }
}

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 );