LlMapDestination

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);
     }
}
Outils personnels
  • Cette page a été consultée 736 fois.
donate
Google Ads