De DigiWiki.
//Click the object this script is in and your map opens up in the middle of Oasis.
default
{
touch_start(integer num)
{
llMapDestination("Oasis", <128, 128, 0>, ZERO_VECTOR);
}
}
// Get a teleport map, via touch_start, from the name of the first landmark in inventory.
// NOTE: Requires a landmark that contains name, region and position data.
// The correct format is "name, region (x, y, z)". If a landmark's
// name is too long the position data is truncated from the end,
// which will cause the position to be wrong.
default
{
touch_start(integer num)
{
// Parse the name of the first landmark found in inventory into a list using
// commas as separators.
list lstTemp = llParseString2List(llGetInventoryName(
INVENTORY_LANDMARK,0),[","],[]);
// Get list length and subtract 3 to get the correct element containing
// the region name. Moving backward from the end of the list keeps
// commas in the landmark name from giving us grief with misaligned
// and incorrect data.
integer intElement = llGetListLength(lstTemp)-3;
// Get the region name from the list element, eliminating unneeded
// characters in the string and trimming leading/trailing spaces.
string strSimname = llStringTrim(llGetSubString(llList2String(lstTemp,
intElement),0,llSubStringIndex(llList2String(lstTemp,intElement),"(")-1),
STRING_TRIM);
// The vector is pulled from the landmark name, based on the
// position of "(" in the string starting with the next
// character and ending with the second to the last character.
vector vecVector = (vector)("<"+llGetSubString(llGetInventoryName(
INVENTORY_LANDMARK,0),llSubStringIndex(llGetInventoryName(
INVENTORY_LANDMARK,0),"(")+1,-2)+">");
// Bring up the teleport map using the data we extracted.
llMapDestination(strSimname,vecVector,ZERO_VECTOR);
}
}