<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Yingzi+Xue</id>
	<title>Second Life Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Yingzi+Xue"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Yingzi_Xue"/>
	<updated>2026-06-16T20:44:53Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlMapDestination&amp;diff=586883</id>
		<title>LlMapDestination</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlMapDestination&amp;diff=586883"/>
		<updated>2009-10-10T21:26:51Z</updated>

		<summary type="html">&lt;p&gt;Yingzi Xue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Issues/SVC-1038}}{{Issues/SVC-1795}}{{Issues/VWR-2060}}{{Issues/VWR-7331}}{{LSL_Function&lt;br /&gt;
|func_id=309|func_sleep=1.0|func_energy=10.0&lt;br /&gt;
|func=llMapDestination|sort=MapDestination&lt;br /&gt;
|p1_type=string|p1_name=simname|p1_desc=Region name&lt;br /&gt;
|p2_type=vector|p2_name=pos|p2_desc=[[Viewer_coordinate_frames#Region|Region]] coordinates&lt;br /&gt;
|p3_type=vector|p3_name=look_at|p3_desc=not used&lt;br /&gt;
|func_footnote=(NOTE: &#039;&#039;&#039;look_at&#039;&#039;&#039; currently does nothing)&lt;br /&gt;
|func_desc=Opens world map centered on &#039;&#039;&#039;simname&#039;&#039;&#039; with &#039;&#039;&#039;pos&#039;&#039;&#039; highlighted.&amp;lt;br /&amp;gt;Only works for scripts [[attach]]ed to avatar, or during {{LSLGC|Touch|touch}} events.&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=&lt;br /&gt;
* if &#039;&#039;&#039;simname&#039;&#039;&#039; is {{HoverText|omitted|an empty string: {{String}}}} or invalid, the map will open centered on object, but &#039;&#039;&#039;pos&#039;&#039;&#039; 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.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;//Click the object this script is in and your map opens up in the middle of Oasis.&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
     touch_start(integer num)&lt;br /&gt;
     {&lt;br /&gt;
          llMapDestination(&amp;quot;Oasis&amp;quot;, &amp;lt;128, 128, 0&amp;gt;, ZERO_VECTOR);&lt;br /&gt;
     }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Get a teleport map, via touch_start, from the name of the first landmark in inventory.&lt;br /&gt;
// NOTE:  Requires a landmark that contains name, region and position data.&lt;br /&gt;
//        The correct format is &amp;quot;name, region (x, y, z)&amp;quot;.  If a landmark&#039;s &lt;br /&gt;
//        name is too long the position data is truncated from the end, &lt;br /&gt;
//        which will cause the position to be wrong.&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
     touch_start(integer num)&lt;br /&gt;
     {&lt;br /&gt;
          // Parse the name of the first landmark found in inventory into a list using &lt;br /&gt;
          // commas as separators.&lt;br /&gt;
          list lstTemp = llParseString2List(llGetInventoryName(&lt;br /&gt;
               INVENTORY_LANDMARK,0),[&amp;quot;,&amp;quot;],[]);&lt;br /&gt;
&lt;br /&gt;
          // Get list length and subtract 3 to get the correct element containing&lt;br /&gt;
          // the region name.  Moving backward from the end of the list keeps&lt;br /&gt;
          // commas in the landmark name from giving us grief with misaligned&lt;br /&gt;
          // and incorrect data.&lt;br /&gt;
          integer intElement = llGetListLength(lstTemp)-3;&lt;br /&gt;
&lt;br /&gt;
          // Get the region name from the list element, eliminating unneeded &lt;br /&gt;
          // characters in the string and trimming leading/trailing spaces.&lt;br /&gt;
          string strSimname = llStringTrim(llGetSubString(llList2String(lstTemp,&lt;br /&gt;
               intElement),0,llSubStringIndex(llList2String(lstTemp,intElement),&amp;quot;(&amp;quot;)-1),&lt;br /&gt;
               STRING_TRIM);    &lt;br /&gt;
&lt;br /&gt;
          // The vector is pulled from the landmark name, based on the &lt;br /&gt;
          // position of &amp;quot;(&amp;quot; in the string starting with the next &lt;br /&gt;
          // character and ending with the second to the last character.&lt;br /&gt;
          vector vecVector = (vector)(&amp;quot;&amp;lt;&amp;quot;+llGetSubString(llGetInventoryName(&lt;br /&gt;
               INVENTORY_LANDMARK,0),llSubStringIndex(llGetInventoryName(&lt;br /&gt;
               INVENTORY_LANDMARK,0),&amp;quot;(&amp;quot;)+1,-2)+&amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
          &lt;br /&gt;
          // Bring up the teleport map using the data we extracted.&lt;br /&gt;
          llMapDestination(strSimname,vecVector,ZERO_VECTOR);&lt;br /&gt;
     }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llRequestInventoryData]]|}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes=&lt;br /&gt;
* &#039;&#039;&#039;pos&#039;&#039;&#039; will work with [[Viewer_coordinate_frames#Region|Region]] coordinates not inside &#039;&#039;&#039;simname&#039;&#039;&#039;. (like those returned by [[llRequestInventoryData]])&lt;br /&gt;
* if called from non {{LSLGC|Touch|touch}} events, it only works for the {{LSLGC|Owner|owner}}.&lt;br /&gt;
* if called from touch, it may only work for the first or last touch in the event queue (example: num_touched &amp;gt; 1)&lt;br /&gt;
* if called inside an [[attachment]], it only works for the owner.&lt;br /&gt;
|permission&lt;br /&gt;
|inventory&lt;br /&gt;
|negative_index&lt;br /&gt;
|cat1=Dialog&lt;br /&gt;
|cat2=Attachment&lt;br /&gt;
|cat3=Avatar&lt;br /&gt;
|cat4=Touch&lt;br /&gt;
|issues&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Yingzi Xue</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlMapDestination&amp;diff=586873</id>
		<title>LlMapDestination</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlMapDestination&amp;diff=586873"/>
		<updated>2009-10-10T21:25:59Z</updated>

		<summary type="html">&lt;p&gt;Yingzi Xue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Issues/SVC-1038}}{{Issues/SVC-1795}}{{Issues/VWR-2060}}{{Issues/VWR-7331}}{{LSL_Function&lt;br /&gt;
|func_id=309|func_sleep=1.0|func_energy=10.0&lt;br /&gt;
|func=llMapDestination|sort=MapDestination&lt;br /&gt;
|p1_type=string|p1_name=simname|p1_desc=Region name&lt;br /&gt;
|p2_type=vector|p2_name=pos|p2_desc=[[Viewer_coordinate_frames#Region|Region]] coordinates&lt;br /&gt;
|p3_type=vector|p3_name=look_at|p3_desc=not used&lt;br /&gt;
|func_footnote=(NOTE: &#039;&#039;&#039;look_at&#039;&#039;&#039; currently does nothing)&lt;br /&gt;
|func_desc=Opens world map centered on &#039;&#039;&#039;simname&#039;&#039;&#039; with &#039;&#039;&#039;pos&#039;&#039;&#039; highlighted.&amp;lt;br /&amp;gt;Only works for scripts [[attach]]ed to avatar, or during {{LSLGC|Touch|touch}} events.&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=&lt;br /&gt;
* if &#039;&#039;&#039;simname&#039;&#039;&#039; is {{HoverText|omitted|an empty string: {{String}}}} or invalid, the map will open centered on object, but &#039;&#039;&#039;pos&#039;&#039;&#039; 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.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;//Click the object this script is in and your map opens up in the middle of Oasis.&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
     touch_start(integer num)&lt;br /&gt;
     {&lt;br /&gt;
          llMapDestination(&amp;quot;Oasis&amp;quot;, &amp;lt;128, 128, 0&amp;gt;, ZERO_VECTOR);&lt;br /&gt;
     }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Get a teleport map (on touch_start) from the name of the first landmark in inventory.&lt;br /&gt;
// NOTE:  Requires a landmark that contains name, region and position data.&lt;br /&gt;
//        The correct format is &amp;quot;name, region (x, y, z)&amp;quot;.  If a landmark&#039;s &lt;br /&gt;
//        name is too long the position data is truncated from the end, &lt;br /&gt;
//        which will cause the position to be wrong.&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
     touch_start(integer num)&lt;br /&gt;
     {&lt;br /&gt;
          // Parse the name of the first landmark found in inventory into a list using &lt;br /&gt;
          // commas as separators.&lt;br /&gt;
          list lstTemp = llParseString2List(llGetInventoryName(&lt;br /&gt;
               INVENTORY_LANDMARK,0),[&amp;quot;,&amp;quot;],[]);&lt;br /&gt;
&lt;br /&gt;
          // Get list length and subtract 3 to get the correct element containing&lt;br /&gt;
          // the region name.  Moving backward from the end of the list keeps&lt;br /&gt;
          // commas in the landmark name from giving us grief with misaligned&lt;br /&gt;
          // and incorrect data.&lt;br /&gt;
          integer intElement = llGetListLength(lstTemp)-3;&lt;br /&gt;
&lt;br /&gt;
          // Get the region name from the list element, eliminating unneeded &lt;br /&gt;
          // characters in the string and trimming leading/trailing spaces.&lt;br /&gt;
          string strSimname = llStringTrim(llGetSubString(llList2String(lstTemp,&lt;br /&gt;
               intElement),0,llSubStringIndex(llList2String(lstTemp,intElement),&amp;quot;(&amp;quot;)-1),&lt;br /&gt;
               STRING_TRIM);    &lt;br /&gt;
&lt;br /&gt;
          // The vector is pulled from the landmark name, based on the &lt;br /&gt;
          // position of &amp;quot;(&amp;quot; in the string starting with the next &lt;br /&gt;
          // character and ending with the second to the last character.&lt;br /&gt;
          vector vecVector = (vector)(&amp;quot;&amp;lt;&amp;quot;+llGetSubString(llGetInventoryName(&lt;br /&gt;
               INVENTORY_LANDMARK,0),llSubStringIndex(llGetInventoryName(&lt;br /&gt;
               INVENTORY_LANDMARK,0),&amp;quot;(&amp;quot;)+1,-2)+&amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
          &lt;br /&gt;
          // Bring up the teleport map using the data we extracted.&lt;br /&gt;
          llMapDestination(strSimname,vecVector,ZERO_VECTOR);&lt;br /&gt;
     }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llRequestInventoryData]]|}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes=&lt;br /&gt;
* &#039;&#039;&#039;pos&#039;&#039;&#039; will work with [[Viewer_coordinate_frames#Region|Region]] coordinates not inside &#039;&#039;&#039;simname&#039;&#039;&#039;. (like those returned by [[llRequestInventoryData]])&lt;br /&gt;
* if called from non {{LSLGC|Touch|touch}} events, it only works for the {{LSLGC|Owner|owner}}.&lt;br /&gt;
* if called from touch, it may only work for the first or last touch in the event queue (example: num_touched &amp;gt; 1)&lt;br /&gt;
* if called inside an [[attachment]], it only works for the owner.&lt;br /&gt;
|permission&lt;br /&gt;
|inventory&lt;br /&gt;
|negative_index&lt;br /&gt;
|cat1=Dialog&lt;br /&gt;
|cat2=Attachment&lt;br /&gt;
|cat3=Avatar&lt;br /&gt;
|cat4=Touch&lt;br /&gt;
|issues&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Yingzi Xue</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlMapDestination&amp;diff=586353</id>
		<title>LlMapDestination</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlMapDestination&amp;diff=586353"/>
		<updated>2009-10-09T15:11:34Z</updated>

		<summary type="html">&lt;p&gt;Yingzi Xue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Issues/SVC-1038}}{{Issues/SVC-1795}}{{Issues/VWR-2060}}{{Issues/VWR-7331}}{{LSL_Function&lt;br /&gt;
|func_id=309|func_sleep=1.0|func_energy=10.0&lt;br /&gt;
|func=llMapDestination|sort=MapDestination&lt;br /&gt;
|p1_type=string|p1_name=simname|p1_desc=Region name&lt;br /&gt;
|p2_type=vector|p2_name=pos|p2_desc=[[Viewer_coordinate_frames#Region|Region]] coordinates&lt;br /&gt;
|p3_type=vector|p3_name=look_at|p3_desc=not used&lt;br /&gt;
|func_footnote=(NOTE: &#039;&#039;&#039;look_at&#039;&#039;&#039; currently does nothing)&lt;br /&gt;
|func_desc=Opens world map centered on &#039;&#039;&#039;simname&#039;&#039;&#039; with &#039;&#039;&#039;pos&#039;&#039;&#039; highlighted.&amp;lt;br /&amp;gt;Only works for scripts [[attach]]ed to avatar, or during {{LSLGC|Touch|touch}} events.&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=&lt;br /&gt;
* if &#039;&#039;&#039;simname&#039;&#039;&#039; is {{HoverText|omitted|an empty string: {{String}}}} or invalid, the map will open centered on object, but &#039;&#039;&#039;pos&#039;&#039;&#039; 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.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;//Click the object this script is in and your map opens up in the middle of Oasis.&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
     touch_start(integer num)&lt;br /&gt;
     {&lt;br /&gt;
          llMapDestination(&amp;quot;Oasis&amp;quot;, &amp;lt;128, 128, 0&amp;gt;, ZERO_VECTOR);&lt;br /&gt;
     }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Get a teleport map from the name of the first landmark in inventory.&lt;br /&gt;
// NOTE:  Requires a landmark that contains name, region and position data.&lt;br /&gt;
//        The correct format is &amp;quot;name, region (x, y, z)&amp;quot;.  If a landmark&#039;s &lt;br /&gt;
//        name is too long the position data is truncated from the end, &lt;br /&gt;
//        which will cause the position to be wrong.&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
     touch_start(integer num)&lt;br /&gt;
     {&lt;br /&gt;
          // Parse the name of the first landmark found in inventory into a list using &lt;br /&gt;
          // commas as separators.&lt;br /&gt;
          list lstTemp = llParseString2List(llGetInventoryName(&lt;br /&gt;
               INVENTORY_LANDMARK,0),[&amp;quot;,&amp;quot;],[]);&lt;br /&gt;
&lt;br /&gt;
          // Get list length and subtract 3 to get the correct element containing&lt;br /&gt;
          // the region name.  Moving backward from the end of the list keeps&lt;br /&gt;
          // commas in the landmark name from giving us grief with misaligned&lt;br /&gt;
          // and incorrect data.&lt;br /&gt;
          integer intElement = llGetListLength(lstTemp)-3;&lt;br /&gt;
&lt;br /&gt;
          // Get the region name from the list element, eliminating unneeded &lt;br /&gt;
          // characters in the string and trimming leading/trailing spaces.&lt;br /&gt;
          string strSimname = llStringTrim(llGetSubString(llList2String(lstTemp,&lt;br /&gt;
               intElement),0,llSubStringIndex(llList2String(lstTemp,intElement),&amp;quot;(&amp;quot;)-1),&lt;br /&gt;
               STRING_TRIM);    &lt;br /&gt;
&lt;br /&gt;
          // The vector is pulled from the landmark name, based on the &lt;br /&gt;
          // position of &amp;quot;(&amp;quot; in the string starting with the next &lt;br /&gt;
          // character and ending with the second to the last character.&lt;br /&gt;
          vector vecVector = (vector)(&amp;quot;&amp;lt;&amp;quot;+llGetSubString(llGetInventoryName(&lt;br /&gt;
               INVENTORY_LANDMARK,0),llSubStringIndex(llGetInventoryName(&lt;br /&gt;
               INVENTORY_LANDMARK,0),&amp;quot;(&amp;quot;)+1,-2)+&amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
          &lt;br /&gt;
          // Bring up the teleport map using the data we extracted.&lt;br /&gt;
          llMapDestination(strSimname,vecVector,ZERO_VECTOR);&lt;br /&gt;
     }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llRequestInventoryData]]|}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes=&lt;br /&gt;
* &#039;&#039;&#039;pos&#039;&#039;&#039; will work with [[Viewer_coordinate_frames#Region|Region]] coordinates not inside &#039;&#039;&#039;simname&#039;&#039;&#039;. (like those returned by [[llRequestInventoryData]])&lt;br /&gt;
* if called from non {{LSLGC|Touch|touch}} events, it only works for the {{LSLGC|Owner|owner}}.&lt;br /&gt;
* if called from touch, it may only work for the first or last touch in the event queue (example: num_touched &amp;gt; 1)&lt;br /&gt;
* if called inside an [[attachment]], it only works for the owner.&lt;br /&gt;
|permission&lt;br /&gt;
|inventory&lt;br /&gt;
|negative_index&lt;br /&gt;
|cat1=Dialog&lt;br /&gt;
|cat2=Attachment&lt;br /&gt;
|cat3=Avatar&lt;br /&gt;
|cat4=Touch&lt;br /&gt;
|issues&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Yingzi Xue</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlMapDestination&amp;diff=586343</id>
		<title>LlMapDestination</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlMapDestination&amp;diff=586343"/>
		<updated>2009-10-09T15:10:13Z</updated>

		<summary type="html">&lt;p&gt;Yingzi Xue: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Issues/SVC-1038}}{{Issues/SVC-1795}}{{Issues/VWR-2060}}{{Issues/VWR-7331}}{{LSL_Function&lt;br /&gt;
|func_id=309|func_sleep=1.0|func_energy=10.0&lt;br /&gt;
|func=llMapDestination|sort=MapDestination&lt;br /&gt;
|p1_type=string|p1_name=simname|p1_desc=Region name&lt;br /&gt;
|p2_type=vector|p2_name=pos|p2_desc=[[Viewer_coordinate_frames#Region|Region]] coordinates&lt;br /&gt;
|p3_type=vector|p3_name=look_at|p3_desc=not used&lt;br /&gt;
|func_footnote=(NOTE: &#039;&#039;&#039;look_at&#039;&#039;&#039; currently does nothing)&lt;br /&gt;
|func_desc=Opens world map centered on &#039;&#039;&#039;simname&#039;&#039;&#039; with &#039;&#039;&#039;pos&#039;&#039;&#039; highlighted.&amp;lt;br /&amp;gt;Only works for scripts [[attach]]ed to avatar, or during {{LSLGC|Touch|touch}} events.&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=&lt;br /&gt;
* if &#039;&#039;&#039;simname&#039;&#039;&#039; is {{HoverText|omitted|an empty string: {{String}}}} or invalid, the map will open centered on object, but &#039;&#039;&#039;pos&#039;&#039;&#039; 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.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;//Click the object this script is in and your map opens up in the middle of Oasis.&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
     touch_start(integer num)&lt;br /&gt;
     {&lt;br /&gt;
          llMapDestination(&amp;quot;Oasis&amp;quot;, &amp;lt;128, 128, 0&amp;gt;, ZERO_VECTOR);&lt;br /&gt;
     }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Get a teleport map from the name of the first landmark in inventory.&lt;br /&gt;
// NOTE:  Requires a landmark that contains name, region and position data.&lt;br /&gt;
//        The correct format is &amp;quot;name, region (x, y, z)&amp;quot;.  If a landmark&#039;s &lt;br /&gt;
//        name is too long the position data is truncated from the end, &lt;br /&gt;
//        which will cause the position to be wrong.&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
     touch_start(integer num)&lt;br /&gt;
     {&lt;br /&gt;
          // Parse the name of the first landmark found in inventory into a list using &lt;br /&gt;
          // commas as separators.&lt;br /&gt;
          list lstTemp = llParseString2List(llGetInventoryName(&lt;br /&gt;
               INVENTORY_LANDMARK,0),[&amp;quot;,&amp;quot;],[]);&lt;br /&gt;
&lt;br /&gt;
          // Get list length and subtract 3 to get the correct element containing&lt;br /&gt;
          // the region name.  Moving backward from the end of the list keeps&lt;br /&gt;
          // commas in the landmark name from giving us grief with misaligned&lt;br /&gt;
          // and incorrect data.&lt;br /&gt;
          integer intElement = llGetListLength(lstTemp)-3;&lt;br /&gt;
&lt;br /&gt;
          // Get the region name from the list element, eliminating uneeded &lt;br /&gt;
          // characters in the string and trimming leading/trailing spaces.&lt;br /&gt;
          string strSimname = llStringTrim(llGetSubString(llList2String(lstTemp,&lt;br /&gt;
               intElement),0,llSubStringIndex(llList2String(lstTemp,intElement),&amp;quot;(&amp;quot;)-1),&lt;br /&gt;
               STRING_TRIM);    &lt;br /&gt;
&lt;br /&gt;
          // The vector is pulled from the landmark name, based on the &lt;br /&gt;
          // position of &amp;quot;(&amp;quot; in the string starting with the next &lt;br /&gt;
          // character and ending with the second to the last character.&lt;br /&gt;
          vector vecVector = (vector)(&amp;quot;&amp;lt;&amp;quot;+llGetSubString(llGetInventoryName(&lt;br /&gt;
               INVENTORY_LANDMARK,0),llSubStringIndex(llGetInventoryName(&lt;br /&gt;
               INVENTORY_LANDMARK,0),&amp;quot;(&amp;quot;)+1,-2)+&amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
          &lt;br /&gt;
          // Bring up the teleport map using the data we extracted.&lt;br /&gt;
          llMapDestination(strSimname,vecVector,ZERO_VECTOR);&lt;br /&gt;
     }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llRequestInventoryData]]|}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes=&lt;br /&gt;
* &#039;&#039;&#039;pos&#039;&#039;&#039; will work with [[Viewer_coordinate_frames#Region|Region]] coordinates not inside &#039;&#039;&#039;simname&#039;&#039;&#039;. (like those returned by [[llRequestInventoryData]])&lt;br /&gt;
* if called from non {{LSLGC|Touch|touch}} events, it only works for the {{LSLGC|Owner|owner}}.&lt;br /&gt;
* if called from touch, it may only work for the first or last touch in the event queue (example: num_touched &amp;gt; 1)&lt;br /&gt;
* if called inside an [[attachment]], it only works for the owner.&lt;br /&gt;
|permission&lt;br /&gt;
|inventory&lt;br /&gt;
|negative_index&lt;br /&gt;
|cat1=Dialog&lt;br /&gt;
|cat2=Attachment&lt;br /&gt;
|cat3=Avatar&lt;br /&gt;
|cat4=Touch&lt;br /&gt;
|issues&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Yingzi Xue</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LlMapDestination&amp;diff=586333</id>
		<title>LlMapDestination</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LlMapDestination&amp;diff=586333"/>
		<updated>2009-10-09T15:07:00Z</updated>

		<summary type="html">&lt;p&gt;Yingzi Xue: Get a teleport map from the name of the first landmark in inventory.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Issues/SVC-1038}}{{Issues/SVC-1795}}{{Issues/VWR-2060}}{{Issues/VWR-7331}}{{LSL_Function&lt;br /&gt;
|func_id=309|func_sleep=1.0|func_energy=10.0&lt;br /&gt;
|func=llMapDestination|sort=MapDestination&lt;br /&gt;
|p1_type=string|p1_name=simname|p1_desc=Region name&lt;br /&gt;
|p2_type=vector|p2_name=pos|p2_desc=[[Viewer_coordinate_frames#Region|Region]] coordinates&lt;br /&gt;
|p3_type=vector|p3_name=look_at|p3_desc=not used&lt;br /&gt;
|func_footnote=(NOTE: &#039;&#039;&#039;look_at&#039;&#039;&#039; currently does nothing)&lt;br /&gt;
|func_desc=Opens world map centered on &#039;&#039;&#039;simname&#039;&#039;&#039; with &#039;&#039;&#039;pos&#039;&#039;&#039; highlighted.&amp;lt;br /&amp;gt;Only works for scripts [[attach]]ed to avatar, or during {{LSLGC|Touch|touch}} events.&lt;br /&gt;
|return_text&lt;br /&gt;
|spec&lt;br /&gt;
|caveats=&lt;br /&gt;
* if &#039;&#039;&#039;simname&#039;&#039;&#039; is {{HoverText|omitted|an empty string: {{String}}}} or invalid, the map will open centered on object, but &#039;&#039;&#039;pos&#039;&#039;&#039; 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.&lt;br /&gt;
|constants&lt;br /&gt;
|examples=&amp;lt;lsl&amp;gt;//Click the object this script is in and your map opens up in the middle of Oasis.&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
     touch_start(integer num)&lt;br /&gt;
     {&lt;br /&gt;
          llMapDestination(&amp;quot;Oasis&amp;quot;, &amp;lt;128, 128, 0&amp;gt;, ZERO_VECTOR);&lt;br /&gt;
     }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
&amp;lt;lsl&amp;gt;&lt;br /&gt;
// Get a teleport map from the name of the first landmark in inventory.&lt;br /&gt;
// NOTE:  Requires a landmark that contains name, region and position data.&lt;br /&gt;
//        The correct format is &amp;quot;name, region (x, y, z)&amp;quot;.  If a landmark&#039;s &lt;br /&gt;
//        name is too long the position data is truncated from the end, &lt;br /&gt;
//        which will cause the position to be wrong.&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
     touch_start(integer num)&lt;br /&gt;
     {&lt;br /&gt;
          // Parse the name of the first landmark found in inventory into a list using &lt;br /&gt;
          // commas as separators.&lt;br /&gt;
          list lstTemp = llParseString2List(llGetInventoryName(&lt;br /&gt;
               INVENTORY_LANDMARK,0),[&amp;quot;,&amp;quot;],[]);&lt;br /&gt;
&lt;br /&gt;
          // Get list length and subtract 3 to get the correct element containing&lt;br /&gt;
          // the region name.  Moving backward from the end of the list keeps&lt;br /&gt;
          // commas in the landmark name from giving us grief with misaligned&lt;br /&gt;
          // and incorrect data.&lt;br /&gt;
          integer intElement = llGetListLength(lstTemp)-3;&lt;br /&gt;
&lt;br /&gt;
          // Get the region name from the list element, removing &amp;quot;(&amp;quot; and trimming &lt;br /&gt;
          // any leading and trailing spaces.&lt;br /&gt;
          string strSimname = llStringTrim(llGetSubString(llList2String(lstTemp,&lt;br /&gt;
               intElement),0,llSubStringIndex(llList2String(lstTemp,intElement),&amp;quot;(&amp;quot;)-1),&lt;br /&gt;
               STRING_TRIM);    &lt;br /&gt;
&lt;br /&gt;
          // The vector is pulled from the landmark name, based on the &lt;br /&gt;
          // position of &amp;quot;(&amp;quot; in the string starting with the next &lt;br /&gt;
          // character and ending with the second to the last character.&lt;br /&gt;
          vector vecVector = (vector)(&amp;quot;&amp;lt;&amp;quot;+llGetSubString(llGetInventoryName(&lt;br /&gt;
               INVENTORY_LANDMARK,0),llSubStringIndex(llGetInventoryName(&lt;br /&gt;
               INVENTORY_LANDMARK,0),&amp;quot;(&amp;quot;)+1,-2)+&amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
          &lt;br /&gt;
          // Bring up the teleport map using the data we extracted.&lt;br /&gt;
          llMapDestination(strSimname,vecVector,ZERO_VECTOR);&lt;br /&gt;
     }&lt;br /&gt;
}&amp;lt;/lsl&amp;gt;&lt;br /&gt;
|helpers&lt;br /&gt;
|also_functions=&lt;br /&gt;
{{LSL DefineRow||[[llRequestInventoryData]]|}}&lt;br /&gt;
|also_tests&lt;br /&gt;
|also_events&lt;br /&gt;
|also_articles&lt;br /&gt;
|notes=&lt;br /&gt;
* &#039;&#039;&#039;pos&#039;&#039;&#039; will work with [[Viewer_coordinate_frames#Region|Region]] coordinates not inside &#039;&#039;&#039;simname&#039;&#039;&#039;. (like those returned by [[llRequestInventoryData]])&lt;br /&gt;
* if called from non {{LSLGC|Touch|touch}} events, it only works for the {{LSLGC|Owner|owner}}.&lt;br /&gt;
* if called from touch, it may only work for the first or last touch in the event queue (example: num_touched &amp;gt; 1)&lt;br /&gt;
* if called inside an [[attachment]], it only works for the owner.&lt;br /&gt;
|permission&lt;br /&gt;
|inventory&lt;br /&gt;
|negative_index&lt;br /&gt;
|cat1=Dialog&lt;br /&gt;
|cat2=Attachment&lt;br /&gt;
|cat3=Avatar&lt;br /&gt;
|cat4=Touch&lt;br /&gt;
|issues&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Yingzi Xue</name></author>
	</entry>
</feed>