diff options
Diffstat (limited to 'indra')
32 files changed, 19476 insertions, 1148 deletions
diff --git a/indra/cmake/GStreamer010Plugin.cmake b/indra/cmake/GStreamer010Plugin.cmake index d2d0699bcd..d1c99d5409 100755 --- a/indra/cmake/GStreamer010Plugin.cmake +++ b/indra/cmake/GStreamer010Plugin.cmake @@ -8,8 +8,8 @@ if (STANDALONE) pkg_check_modules(GSTREAMER010_PLUGINS_BASE REQUIRED gstreamer-plugins-base-0.10) elseif (LINUX) use_prebuilt_binary(gstreamer) - # possible libxml should have its own .cmake file instead - use_prebuilt_binary(libxml) + # possible libxml2 should have its own .cmake file instead + use_prebuilt_binary(libxml2) set(GSTREAMER010_FOUND ON FORCE BOOL) set(GSTREAMER010_PLUGINS_BASE_FOUND ON FORCE BOOL) set(GSTREAMER010_INCLUDE_DIRS diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake index 0d87ff579a..67c2115237 100755 --- a/indra/cmake/LLPrimitive.cmake +++ b/indra/cmake/LLPrimitive.cmake @@ -6,21 +6,30 @@ include(Boost) use_prebuilt_binary(colladadom) use_prebuilt_binary(pcre) -use_prebuilt_binary(libxml) set(LLPRIMITIVE_INCLUDE_DIRS ${LIBS_OPEN_DIR}/llprimitive ) if (WINDOWS) - set(LLPRIMITIVE_LIBRARIES + set(LLPRIMITIVE_LIBRARIES debug llprimitive optimized llprimitive debug libcollada14dom22-d optimized libcollada14dom22 ${BOOST_SYSTEM_LIBRARIES} ) +elseif (LINUX) + use_prebuilt_binary(libxml2) + set(LLPRIMITIVE_LIBRARIES + llprimitive + collada14dom + minizip + xml2 + pcrecpp + pcre + ) else (WINDOWS) - set(LLPRIMITIVE_LIBRARIES + set(LLPRIMITIVE_LIBRARIES llprimitive collada14dom minizip diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp index 26d27d1f34..b7de4d5224 100755 --- a/indra/llui/llkeywords.cpp +++ b/indra/llui/llkeywords.cpp @@ -1,25 +1,25 @@ -/** +/** * @file llkeywords.cpp * @brief Keyword list for LSL * * $LicenseInfo:firstyear=2000&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, Linden Research, Inc. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * + * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ @@ -30,16 +30,14 @@ #include <fstream> #include "llkeywords.h" +#include "llsdserialize.h" #include "lltexteditor.h" #include "llstl.h" -#include <boost/tokenizer.hpp> - -const U32 KEYWORD_FILE_CURRENT_VERSION = 2; -inline BOOL LLKeywordToken::isHead(const llwchar* s) const +inline bool LLKeywordToken::isHead(const llwchar* s) const { // strncmp is much faster than string compare - BOOL res = TRUE; + bool res = TRUE; const llwchar* t = mToken.c_str(); S32 len = mToken.size(); for (S32 i=0; i<len; i++) @@ -53,13 +51,9 @@ inline BOOL LLKeywordToken::isHead(const llwchar* s) const return res; } -LLKeywords::LLKeywords() : mLoaded(FALSE) +inline bool LLKeywordToken::isTail(const llwchar* s) const { -} - -inline BOOL LLKeywordToken::isTail(const llwchar* s) const -{ - BOOL res = TRUE; + bool res = TRUE; const llwchar* t = mDelimiter.c_str(); S32 len = mDelimiter.size(); for (S32 i=0; i<len; i++) @@ -73,6 +67,8 @@ inline BOOL LLKeywordToken::isTail(const llwchar* s) const return res; } +LLKeywords::LLKeywords() { } + LLKeywords::~LLKeywords() { std::for_each(mWordTokenMap.begin(), mWordTokenMap.end(), DeletePairedPointer()); @@ -80,180 +76,301 @@ LLKeywords::~LLKeywords() std::for_each(mDelimiterTokenList.begin(), mDelimiterTokenList.end(), DeletePointer()); } -BOOL LLKeywords::loadFromFile( const std::string& filename ) -{ - mLoaded = FALSE; - //////////////////////////////////////////////////////////// - // File header - const S32 BUFFER_SIZE = 1024; - char buffer[BUFFER_SIZE]; /* Flawfinder: ignore */ +void LLKeywords::addColorGroup(const std::string key_in, const LLColor4 color) +{ + WStringMapIndex key ( utf8str_to_wstring(key_in) ); + mColorGroupMap[key] = color; +} - llifstream file; - file.open(filename); /* Flawfinder: ignore */ - if( file.fail() ) +// Add the token as described +void LLKeywords::addToken(LLKeywordToken::TOKEN_TYPE type, + const std::string& key_in, + const LLColor4& color, + const std::string& tool_tip_in, + const std::string& delimiter_in) +{ + std::string tip_text = tool_tip_in; + LLStringUtil::replaceString(tip_text, "\\n", "\n" ); + LLStringUtil::replaceString(tip_text, "\t", " " ); + if (tip_text =="") { - llinfos << "LLKeywords::loadFromFile() Unable to open file: " << filename << llendl; - return mLoaded; + tip_text = "[no info]"; } + LLWString tool_tip = utf8str_to_wstring(tip_text); - // Identifying string - file >> buffer; - if( strcmp( buffer, "llkeywords" ) ) + LLWString key = utf8str_to_wstring(key_in); + LLWString delimiter = utf8str_to_wstring(delimiter_in); + switch(type) { - llinfos << filename << " does not appear to be a keyword file" << llendl; - return mLoaded; - } + case LLKeywordToken::TT_CONSTANT: + case LLKeywordToken::TT_CONTROL: + case LLKeywordToken::TT_EVENT: + case LLKeywordToken::TT_FUNCTION: + case LLKeywordToken::TT_LABEL: + case LLKeywordToken::TT_SECTION: + case LLKeywordToken::TT_TYPE: + case LLKeywordToken::TT_WORD: + mWordTokenMap[key] = new LLKeywordToken(type, color, key, tool_tip, LLWStringUtil::null); + break; - // Check file version - file >> buffer; - U32 version_num; - file >> version_num; - if( strcmp(buffer, "version") || version_num != (U32)KEYWORD_FILE_CURRENT_VERSION ) - { - llinfos << filename << " does not appear to be a version " << KEYWORD_FILE_CURRENT_VERSION << " keyword file" << llendl; - return mLoaded; - } + case LLKeywordToken::TT_LINE: + mLineTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip, LLWStringUtil::null)); + break; - // start of line (SOL) - std::string SOL_COMMENT("#"); - std::string SOL_WORD("[word "); - std::string SOL_LINE("[line "); - std::string SOL_ONE_SIDED_DELIMITER("[one_sided_delimiter "); - std::string SOL_TWO_SIDED_DELIMITER("[two_sided_delimiter "); - std::string SOL_DOUBLE_QUOTATION_MARKS("[double_quotation_marks "); + case LLKeywordToken::TT_TWO_SIDED_DELIMITER: + case LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS: + case LLKeywordToken::TT_ONE_SIDED_DELIMITER: + mDelimiterTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip, delimiter)); + break; - LLColor3 cur_color( 1, 0, 0 ); - LLKeywordToken::TOKEN_TYPE cur_type = LLKeywordToken::WORD; + default: + llassert(0); + } +} - while (!file.eof()) +std::string LLKeywords::getArguments(LLSD& arguments) +{ + std::string argString = ""; + + if (arguments.isArray()) { - buffer[0] = 0; - file.getline( buffer, BUFFER_SIZE ); - std::string line(buffer); - if( line.find(SOL_COMMENT) == 0 ) - { - continue; - } - else if( line.find(SOL_WORD) == 0 ) - { - cur_color = readColor( line.substr(SOL_WORD.size()) ); - cur_type = LLKeywordToken::WORD; - continue; - } - else if( line.find(SOL_LINE) == 0 ) - { - cur_color = readColor( line.substr(SOL_LINE.size()) ); - cur_type = LLKeywordToken::LINE; - continue; - } - else if( line.find(SOL_TWO_SIDED_DELIMITER) == 0 ) + int argsCount = arguments.size(); + LLSD::array_iterator arrayIt = arguments.beginArray(); + for ( ; arrayIt != arguments.endArray(); ++arrayIt) { - cur_color = readColor( line.substr(SOL_TWO_SIDED_DELIMITER.size()) ); - cur_type = LLKeywordToken::TWO_SIDED_DELIMITER; - continue; - } - else if( line.find(SOL_DOUBLE_QUOTATION_MARKS) == 0 ) - { - cur_color = readColor( line.substr(SOL_DOUBLE_QUOTATION_MARKS.size()) ); - cur_type = LLKeywordToken::DOUBLE_QUOTATION_MARKS; - continue; - } - else if( line.find(SOL_ONE_SIDED_DELIMITER) == 0 ) - { - cur_color = readColor( line.substr(SOL_ONE_SIDED_DELIMITER.size()) ); - cur_type = LLKeywordToken::ONE_SIDED_DELIMITER; - continue; + LLSD& args = (*arrayIt); + if (args.isMap()) + { + LLSD::map_iterator argsIt = args.beginMap(); + for ( ; argsIt != args.endMap(); ++argsIt) + { + argString += argsIt->second.get("type").asString() + " " + argsIt->first; + if (argsCount-- > 1) + { + argString += ", "; + } + } + } + else + { + LL_INFOS("SyntaxLSL") + << "Argument array does not comtain a map element!" << LL_ENDL; + } } + } + else if (!arguments.isUndefined()) + { + LL_WARNS("SyntaxLSL") + << "Not an array! Invalid arguments LLSD passed to function." << arguments << LL_ENDL; + } + return argString == "" ? " void " : argString; +} - std::string token_buffer( line ); - LLStringUtil::trim(token_buffer); - - typedef boost::tokenizer<boost::char_separator<char> > tokenizer; - boost::char_separator<char> sep_word("", " \t"); - tokenizer word_tokens(token_buffer, sep_word); - tokenizer::iterator token_word_iter = word_tokens.begin(); +std::string LLKeywords::getAttribute(const std::string& key) +{ + attribute_iterator_t it = mAttributes.find(key); + return (it != mAttributes.end()) ? it->second : ""; +} - if( !token_buffer.empty() && token_word_iter != word_tokens.end() ) - { - // first word is the keyword or a left delimiter - std::string keyword = (*token_word_iter); - LLStringUtil::trim(keyword); +LLColor4 LLKeywords::getColorGroup(const std::string key_in) +{ + std::string ColourGroup = "Black"; + if (key_in == "constants-float") { + ColourGroup = "SyntaxLslConstantFloat"; + } else if (key_in == "constants-integer") { + ColourGroup = "SyntaxLslConstantInteger"; + } else if (key_in == "constants-key") { + ColourGroup = "SyntaxLslConstantKey"; + } else if (key_in == "constants-string") { + ColourGroup = "SyntaxLslConstantRotation"; + } else if (key_in == "constants-string") { + ColourGroup = "SyntaxLslConstantString"; + } else if (key_in == "constants-vector") { + ColourGroup = "SyntaxLslConstantVector"; + } else if (key_in == "controls") { + ColourGroup = "SyntaxLslControlFlow"; + } else if (key_in == "events") { + ColourGroup = "SyntaxLslEvent"; + } else if (key_in == "functions") { + ColourGroup = "SyntaxLslFunction"; + } else if (key_in == "types") { + ColourGroup = "SyntaxLslDataType"; + } else if (key_in == "sections") { + ColourGroup = "SyntaxLslSection"; + } else if (key_in == "misc-double_quotation_marks") { + ColourGroup = "SyntaxLslStringLiteral"; + } else if (key_in == "misc-comments_1_sided") { + ColourGroup = "SyntaxLslComment1Sided"; + } else if (key_in == "misc-comments_2_sided") { + ColourGroup = "SyntaxLslComment2Sided"; + } + + return LLUIColorTable::instance().getColor(ColourGroup); +} + +void LLKeywords::initialise(LLSD SyntaxXML) +{ + mSyntax = SyntaxXML; + mLoaded = TRUE; +} - // second word may be a right delimiter - std::string delimiter; - if (cur_type == LLKeywordToken::TWO_SIDED_DELIMITER) +void LLKeywords::processTokens() +{ + // Add 'standard' stuff: Quotes, Comments, Strings, Labels, etc. before processing the LLSD + std::string delimiter; + addToken(LLKeywordToken::TT_LABEL, "@", getColorGroup("misc-flow-label"), "Label\nTarget for jump statement", delimiter ); + addToken(LLKeywordToken::TT_ONE_SIDED_DELIMITER, "//", getColorGroup("misc-comments_1_sided"), "Comment (single-line)\nNon-functional commentary or disabled code", delimiter ); + addToken(LLKeywordToken::TT_TWO_SIDED_DELIMITER, "/*", getColorGroup("misc-comments_2_sided"), "Comment (multi-line)\nNon-functional commentary or disabled code", "*/" ); + addToken(LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS, "\"", getColorGroup("misc-double_quotation_marks"), "String literal", "\"" ); + + LLSD::map_iterator outerIt = mSyntax.beginMap(); + for ( ; outerIt != mSyntax.endMap(); ++outerIt) + { + if (outerIt->first == "misc") + { + if (outerIt->second.isMap()) { - while (delimiter.length() == 0 && ++token_word_iter != word_tokens.end()) + LLSD::map_iterator innerIt = outerIt->second.beginMap(); + for ( ; innerIt != outerIt->second.endMap(); ++innerIt) { - delimiter = *token_word_iter; - LLStringUtil::trim(delimiter); + processTokensGroup(innerIt->second, "misc-" + innerIt->first); } } - else if (cur_type == LLKeywordToken::DOUBLE_QUOTATION_MARKS) - { - // Closing delimiter is identical to the opening one. - delimiter = keyword; - } - - // following words are tooltip - std::string tool_tip; - while (++token_word_iter != word_tokens.end()) + else { - tool_tip += (*token_word_iter); + LL_ERRS("LSL-Tokens-Processing") << "Map for misc entries is missing! Ignoring." << LL_ENDL; } - LLStringUtil::trim(tool_tip); - - if( !tool_tip.empty() ) + } + else + { + if (outerIt->second.isMap()) { - // Replace : with \n for multi-line tool tips. - LLStringUtil::replaceChar( tool_tip, ':', '\n' ); - addToken(cur_type, keyword, cur_color, tool_tip, delimiter ); + processTokensGroup(outerIt->second, outerIt->first); } else { - addToken(cur_type, keyword, cur_color, LLStringUtil::null, delimiter ); + LL_ERRS("LSL-Tokens-Processing") << "Map for " + outerIt->first + " entries is missing! Ignoring." << LL_ENDL; } } } - - file.close(); - - mLoaded = TRUE; - return mLoaded; + LL_INFOS("") << LL_ENDL; } -// Add the token as described -void LLKeywords::addToken(LLKeywordToken::TOKEN_TYPE type, - const std::string& key_in, - const LLColor3& color, - const std::string& tool_tip_in, - const std::string& delimiter_in) +void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group) { - LLWString key = utf8str_to_wstring(key_in); - LLWString tool_tip = utf8str_to_wstring(tool_tip_in); - LLWString delimiter = utf8str_to_wstring(delimiter_in); - switch(type) + LLColor4 Color; + + LLKeywordToken::TOKEN_TYPE token_type = LLKeywordToken::TT_UNKNOWN; + // If a new token type is added here, it must also be added to the 'addToken' method + if (Group == "constants") { - case LLKeywordToken::WORD: - mWordTokenMap[key] = new LLKeywordToken(type, color, key, tool_tip, LLWStringUtil::null); - break; + token_type = LLKeywordToken::TT_CONSTANT; + } + else if (Group == "controls") + { + token_type = LLKeywordToken::TT_CONTROL; + } + else if (Group == "events") + { + token_type = LLKeywordToken::TT_EVENT; + } + else if (Group == "functions") + { + token_type = LLKeywordToken::TT_FUNCTION; + } + else if (Group == "label") + { + token_type = LLKeywordToken::TT_LABEL; + } + else if (Group == "types") + { + token_type = LLKeywordToken::TT_TYPE; + } - case LLKeywordToken::LINE: - mLineTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip, LLWStringUtil::null)); - break; + Color = getColorGroup(Group); + LL_INFOS("Tokens") << "Group: '" << Group << "', using colour: '" << Color << "'" << LL_ENDL; - case LLKeywordToken::TWO_SIDED_DELIMITER: - case LLKeywordToken::DOUBLE_QUOTATION_MARKS: - case LLKeywordToken::ONE_SIDED_DELIMITER: - mDelimiterTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip, delimiter)); - break; + if (Tokens.isMap()) + { + LLSD::map_iterator outerIt = Tokens.beginMap(); + for ( ; outerIt != Tokens.endMap(); ++outerIt) + { + if (outerIt->second.isMap()) + { + mAttributes.clear(); + bool deprecated = false; + LLSD arguments = LLSD (); + LLSD::map_iterator innerIt = outerIt->second.beginMap(); + for ( ; innerIt != outerIt->second.endMap(); ++innerIt) + { + if (innerIt->first == "arguments") + { + if (innerIt->second.isArray()) + { + arguments = innerIt->second; + } + } + else + { + mAttributes[innerIt->first] = innerIt->second.asString(); + } + } - default: - llassert(0); + std::string tooltip = ""; + if (token_type == LLKeywordToken::TT_CONSTANT) + { + Color = getColorGroup(Group + "-" + getAttribute("type")); + tooltip = "Type: " + getAttribute("type") + ", Value: " + getAttribute("value"); + } + else if (token_type == LLKeywordToken::TT_EVENT) + { + tooltip = outerIt->first + "(" + getArguments(arguments) + ")"; + } + else if (token_type == LLKeywordToken::TT_FUNCTION) + { + tooltip = getAttribute("return") + " " + outerIt->first + "(" + getArguments(arguments) + ");"; + tooltip += "\nEnergy: "; + tooltip += getAttribute("energy") == "" ? "0.0" : getAttribute("energy"); + if (getAttribute("sleep") != "") + { + tooltip += ", Sleep: " + getAttribute("sleep"); + } + } + + if (getAttribute("tooltip") != "") + { + if (tooltip != "") + { + tooltip += "\n"; + } + tooltip += getAttribute("tooltip"); + } + + deprecated = getAttribute("deprecated") == "true" ? true : false; + if (deprecated) + { + Color = getColorGroup("deprecated"); + } + addToken(token_type, outerIt->first, Color, tooltip); + } + } + } + else if (Tokens.isArray()) // Currently nothing should need this, but it's here for completeness + { + LL_INFOS("SyntaxLSL") << "Curious, shouldn't be an array here" << LL_ENDL; + for (int count = 0; count < Tokens.size(); ++count) + { + addToken(token_type, Tokens[count], Color, ""); + } + } + else + { + LL_INFOS("Tokens") << "Invalid map/array passed: '" << Tokens << "'" << LL_ENDL; } } + LLKeywords::WStringMapIndex::WStringMapIndex(const WStringMapIndex& other) { if(other.mOwner) @@ -298,13 +415,13 @@ bool LLKeywords::WStringMapIndex::operator<(const LLKeywords::WStringMapIndex &o { // NOTE: Since this is only used to organize a std::map, it doesn't matter if it uses correct collate order or not. // The comparison only needs to strictly order all possible strings, and be stable. - + bool result = false; const llwchar* self_iter = mData; const llwchar* self_end = mData + mLength; const llwchar* other_iter = other.mData; const llwchar* other_end = other.mData + other.mLength; - + while(true) { if(other_iter >= other_end) @@ -319,7 +436,7 @@ bool LLKeywords::WStringMapIndex::operator<(const LLKeywords::WStringMapIndex &o { // self is shorter than other. result = true; - break; + break; } else if(*self_iter != *other_iter) { @@ -331,11 +448,11 @@ bool LLKeywords::WStringMapIndex::operator<(const LLKeywords::WStringMapIndex &o self_iter++; other_iter++; } - + return result; } -LLColor3 LLKeywords::readColor( const std::string& s ) +LLColor4 LLKeywords::readColor( const std::string& s ) { F32 r, g, b; r = g = b = 0.0f; @@ -344,7 +461,23 @@ LLColor3 LLKeywords::readColor( const std::string& s ) { llinfos << " poorly formed color in keyword file" << llendl; } - return LLColor3( r, g, b ); + return LLColor4( r, g, b, 1.f); +} + +LLColor4 LLKeywords::readColor(LLSD& sd) +{ + if (sd.isArray()) + { + return LLColor4 (sd, 1.f); + } + else if (sd.isMap()) + { + return LLColor4 ( sd.get("x").asReal(), sd.get("y").asReal(), sd.get("z").asReal(), 1.f ); + } + else + { + return LLColor4::black; + } } LLFastTimer::DeclareTimer FTM_SYNTAX_COLORING("Syntax Coloring"); @@ -360,10 +493,10 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW { return; } - + S32 text_len = wtext.size() + 1; - seg_list->push_back( new LLNormalTextSegment( defaultColor, 0, text_len, editor ) ); + seg_list->push_back( new LLNormalTextSegment( defaultColor, 0, text_len, editor ) ); const llwchar* base = wtext.c_str(); const llwchar* cur = base; @@ -393,7 +526,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW continue; } - // cur is now at the first non-whitespace character of a new line + // cur is now at the first non-whitespace character of a new line // Line start tokens { @@ -411,7 +544,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW cur++; } S32 seg_end = cur - base; - + //create segments from seg_start to seg_end insertSegments(wtext, *seg_list,cur_token, text_len, seg_start, seg_end, defaultColor, editor); line_done = TRUE; // to break out of second loop. @@ -456,14 +589,14 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW seg_start = cur - base; cur += cur_delimiter->getLengthHead(); - + LLKeywordToken::TOKEN_TYPE type = cur_delimiter->getType(); - if( type == LLKeywordToken::TWO_SIDED_DELIMITER || type == LLKeywordToken::DOUBLE_QUOTATION_MARKS ) + if( type == LLKeywordToken::TT_TWO_SIDED_DELIMITER || type == LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS ) { while( *cur && !cur_delimiter->isTail(cur)) { // Check for an escape sequence. - if (type == LLKeywordToken::DOUBLE_QUOTATION_MARKS && *cur == '\\') + if (type == LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS && *cur == '\\') { // Count the number of backslashes. S32 num_backslashes = 0; @@ -510,7 +643,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW } else { - llassert( cur_delimiter->getType() == LLKeywordToken::ONE_SIDED_DELIMITER ); + llassert( cur_delimiter->getType() == LLKeywordToken::TT_ONE_SIDED_DELIMITER ); // Left side is the delimiter. Right side is eol or eof. while( *cur && ('\n' != *cur) ) { @@ -556,7 +689,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW insertSegments(wtext, *seg_list,cur_token, text_len, seg_start, seg_end, defaultColor, editor); } - cur += seg_len; + cur += seg_len; continue; } } @@ -572,7 +705,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW void LLKeywords::insertSegments(const LLWString& wtext, std::vector<LLTextSegmentPtr>& seg_list, LLKeywordToken* cur_token, S32 text_len, S32 seg_start, S32 seg_end, const LLColor4 &defaultColor, LLTextEditor& editor ) { std::string::size_type pos = wtext.find('\n',seg_start); - + while (pos!=-1 && pos < (std::string::size_type)seg_end) { if (pos!=seg_start) @@ -651,7 +784,7 @@ void LLKeywords::dump() void LLKeywordToken::dump() { - llinfos << "[" << + llinfos << "[" << mColor.mV[VX] << ", " << mColor.mV[VY] << ", " << mColor.mV[VZ] << "] [" << diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h index ac34015393..689fd75bcd 100755 --- a/indra/llui/llkeywords.h +++ b/indra/llui/llkeywords.h @@ -1,25 +1,25 @@ -/** +/** * @file llkeywords.h * @brief Keyword list for LSL * * $LicenseInfo:firstyear=2001&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, Linden Research, Inc. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * + * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ @@ -28,8 +28,10 @@ #define LL_LLKEYWORDS_H +#include "lldir.h" #include "llstring.h" #include "v3color.h" +#include "v4color.h" #include <map> #include <list> #include <deque> @@ -41,26 +43,35 @@ typedef LLPointer<LLTextSegment> LLTextSegmentPtr; class LLKeywordToken { public: - /** + /** * @brief Types of tokens/delimters being parsed. * * @desc Tokens/delimiters that need to be identified/highlighted. All are terminated if an EOF is encountered. - * - WORD are keywords in the normal sense, i.e. constants, events, etc. - * - LINE are for entire lines (currently only flow control labels use this). - * - ONE_SIDED_DELIMITER are for open-ended delimiters which are terminated by EOL. - * - TWO_SIDED_DELIMITER are for delimiters that end with a different delimiter than they open with. - * - DOUBLE_QUOTATION_MARKS are for delimiting areas using the same delimiter to open and close. + * - TT_WORD are keywords in the normal sense, i.e. constants, events, etc. + * - TT_LINE are for entire lines (currently only flow control labels use this). + * - TT_ONE_SIDED_DELIMITER are for open-ended delimiters which are terminated by EOL. + * - TT_TWO_SIDED_DELIMITER are for delimiters that end with a different delimiter than they open with. + * - TT_DOUBLE_QUOTATION_MARKS are for delimiting areas using the same delimiter to open and close. */ enum TOKEN_TYPE { - WORD, - LINE, - TWO_SIDED_DELIMITER, - ONE_SIDED_DELIMITER, - DOUBLE_QUOTATION_MARKS + TT_UNKNOWN, + TT_WORD, + TT_LINE, + TT_TWO_SIDED_DELIMITER, + TT_ONE_SIDED_DELIMITER, + TT_DOUBLE_QUOTATION_MARKS, + // Following constants are more specific versions of the preceding ones + TT_CONSTANT, // WORD + TT_CONTROL, // WORD + TT_EVENT, // WORD + TT_FUNCTION, // WORD + TT_LABEL, // LINE + TT_SECTION, // WORD + TT_TYPE // WORD }; - LLKeywordToken( TOKEN_TYPE type, const LLColor3& color, const LLWString& token, const LLWString& tool_tip, const LLWString& delimiter ) + LLKeywordToken( TOKEN_TYPE type, const LLColor4& color, const LLWString& token, const LLWString& tool_tip, const LLWString& delimiter ) : mType( type ), mToken( token ), @@ -72,10 +83,10 @@ public: S32 getLengthHead() const { return mToken.size(); } S32 getLengthTail() const { return mDelimiter.size(); } - BOOL isHead(const llwchar* s) const; - BOOL isTail(const llwchar* s) const; + bool isHead(const llwchar* s) const; + bool isTail(const llwchar* s) const; const LLWString& getToken() const { return mToken; } - const LLColor3& getColor() const { return mColor; } + const LLColor4& getColor() const { return mColor; } TOKEN_TYPE getType() const { return mType; } const LLWString& getToolTip() const { return mToolTip; } const LLWString& getDelimiter() const { return mDelimiter; } @@ -87,7 +98,7 @@ public: private: TOKEN_TYPE mType; LLWString mToken; - LLColor3 mColor; + LLColor4 mColor; LLWString mToolTip; LLWString mDelimiter; }; @@ -98,18 +109,22 @@ public: LLKeywords(); ~LLKeywords(); - BOOL loadFromFile(const std::string& filename); - BOOL isLoaded() const { return mLoaded; } + void addColorGroup(const std::string key_in, const LLColor4 color); + void clearLoaded() { mLoaded = false; } + LLColor4 getColorGroup(const std::string key_in); + bool isLoaded() const { return mLoaded; } void findSegments(std::vector<LLTextSegmentPtr> *seg_list, const LLWString& text, const LLColor4 &defaultColor, class LLTextEditor& editor ); + void initialise(LLSD SyntaxXML); + void processTokens(); // Add the token as described void addToken(LLKeywordToken::TOKEN_TYPE type, const std::string& key, - const LLColor3& color, + const LLColor4& color, const std::string& tool_tip = LLStringUtil::null, const std::string& delimiter = LLStringUtil::null); - + // This class is here as a performance optimization. // The word token map used to be defined as std::map<LLWString, LLKeywordToken*>. // This worked, but caused a performance bottleneck due to memory allocation and string copies @@ -133,6 +148,9 @@ public: const llwchar *mData; size_t mLength; bool mOwner; + + + LLColor4 mColor; }; typedef std::map<WStringMapIndex, LLKeywordToken*> word_token_map_t; @@ -140,20 +158,38 @@ public: keyword_iterator_t begin() const { return mWordTokenMap.begin(); } keyword_iterator_t end() const { return mWordTokenMap.end(); } + typedef std::map<WStringMapIndex, LLColor4> group_color_map_t; + typedef group_color_map_t::const_iterator color_iterator_t; + group_color_map_t mColorGroupMap; + #ifdef _DEBUG void dump(); #endif -private: - LLColor3 readColor(const std::string& s); +protected: + void processTokensGroup(LLSD& Tokens, const std::string Group); + LLColor4 readColor(const std::string& s); + LLColor4 readColor(LLSD& sd); void insertSegment(std::vector<LLTextSegmentPtr>& seg_list, LLTextSegmentPtr new_segment, S32 text_len, const LLColor4 &defaultColor, class LLTextEditor& editor); void insertSegments(const LLWString& wtext, std::vector<LLTextSegmentPtr>& seg_list, LLKeywordToken* token, S32 text_len, S32 seg_start, S32 seg_end, const LLColor4 &defaultColor, LLTextEditor& editor); + BOOL loadIntoLLSD( const std::string& filename, LLSD& data ); - BOOL mLoaded; + LLSD mColors; + bool mLoaded; + LLSD mSyntax; word_token_map_t mWordTokenMap; typedef std::deque<LLKeywordToken*> token_list_t; token_list_t mLineTokenList; token_list_t mDelimiterTokenList; + + typedef std::map<std::string, std::string> element_attributes_t; + typedef element_attributes_t::const_iterator attribute_iterator_t; + element_attributes_t mAttributes; + std::string getAttribute(const std::string& key); + + std::string getArguments(LLSD& args); + +private: }; #endif // LL_LLKEYWORDS_H diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index 62140dd9d6..303bc48933 100755 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -2513,29 +2513,19 @@ BOOL LLTextEditor::tryToRevertToPristineState() static LLFastTimer::DeclareTimer FTM_SYNTAX_HIGHLIGHTING("Syntax Highlighting"); -void LLTextEditor::loadKeywords(const std::string& filename, - const std::vector<std::string>& funcs, - const std::vector<std::string>& tooltips, - const LLColor3& color) +void LLTextEditor::loadKeywords() { LLFastTimer ft(FTM_SYNTAX_HIGHLIGHTING); - if(mKeywords.loadFromFile(filename)) - { - S32 count = llmin(funcs.size(), tooltips.size()); - for(S32 i = 0; i < count; i++) - { - std::string name = utf8str_trim(funcs[i]); - mKeywords.addToken(LLKeywordToken::WORD, name, color, tooltips[i] ); - } - segment_vec_t segment_list; - mKeywords.findSegments(&segment_list, getWText(), mDefaultColor.get(), *this); + mKeywords.processTokens(); - mSegments.clear(); - segment_set_t::iterator insert_it = mSegments.begin(); - for (segment_vec_t::iterator list_it = segment_list.begin(); list_it != segment_list.end(); ++list_it) - { - insert_it = mSegments.insert(insert_it, *list_it); - } + segment_vec_t segment_list; + mKeywords.findSegments(&segment_list, getWText(), mDefaultColor.get(), *this); + + mSegments.clear(); + segment_set_t::iterator insert_it = mSegments.begin(); + for (segment_vec_t::iterator list_it = segment_list.begin(); list_it != segment_list.end(); ++list_it) + { + insert_it = mSegments.insert(insert_it, *list_it); } } diff --git a/indra/llui/lltexteditor.h b/indra/llui/lltexteditor.h index d3b7bc0eb7..d7f6c7f643 100755 --- a/indra/llui/lltexteditor.h +++ b/indra/llui/lltexteditor.h @@ -1,25 +1,25 @@ -/** +/** * @file lltexteditor.h * @brief LLTextEditor base class * * $LicenseInfo:firstyear=2001&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, Linden Research, Inc. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * + * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ @@ -133,7 +133,7 @@ public: virtual BOOL canCopy() const; virtual void paste(); virtual BOOL canPaste() const; - + virtual void updatePrimary(); virtual void copyPrimary(); virtual void pastePrimary(); @@ -151,7 +151,7 @@ public: void selectNext(const std::string& search_text_in, BOOL case_insensitive, BOOL wrap = TRUE); BOOL replaceText(const std::string& search_text, const std::string& replace_text, BOOL case_insensitive, BOOL wrap = TRUE); void replaceTextAll(const std::string& search_text, const std::string& replace_text, BOOL case_insensitive); - + // Undo/redo stack void blockUndo(); @@ -188,13 +188,14 @@ public: void getCurrentLineAndColumn( S32* line, S32* col, BOOL include_wordwrap ); - void loadKeywords(const std::string& filename, - const std::vector<std::string>& funcs, - const std::vector<std::string>& tooltips, - const LLColor3& func_color); + LLKeywords mKeywords; + void loadKeywords(); LLKeywords::keyword_iterator_t keywordsBegin() { return mKeywords.begin(); } LLKeywords::keyword_iterator_t keywordsEnd() { return mKeywords.end(); } + void loadKeywords(const std::string& filename_keywords, + const std::string& filename_colors); + // Hacky methods to make it into a word-wrapping, potentially scrolling, // read-only text box. void setCommitOnFocusLost(BOOL b) { mCommitOnFocusLost = b; } @@ -218,7 +219,7 @@ protected: void drawPreeditMarker(); void assignEmbedded(const std::string &s); - + void removeCharOrTab(); void indentSelectedLines( S32 spaces ); @@ -237,12 +238,12 @@ protected: S32 nextWordPos(S32 cursorPos) const; void autoIndent(); - + void findEmbeddedItemSegments(S32 start, S32 end); void getSegmentsInRange(segment_vec_t& segments, S32 start, S32 end, bool include_partial) const; virtual llwchar pasteEmbeddedItem(llwchar ext_char) { return ext_char; } - + // Here's the method that takes and applies text commands. S32 execute(TextCmd* cmd); @@ -256,7 +257,7 @@ protected: S32 removeChar(S32 pos); S32 insert(S32 pos, const LLWString &wstr, bool group_with_next_op, LLTextSegmentPtr segment); S32 remove(S32 pos, S32 length, bool group_with_next_op); - + void focusLostHelper(); void updateAllowingLanguageInput(); BOOL hasPreeditString() const; @@ -274,14 +275,14 @@ protected: // // Protected data // - // Probably deserves serious thought to hiding as many of these + // Probably deserves serious thought to hiding as many of these // as possible behind protected accessor methods. // // Use these to determine if a click on an embedded item is a drag or not. S32 mMouseDownX; S32 mMouseDownY; - + LLWString mPreeditWString; LLWString mPreeditOverwrittenWString; std::vector<S32> mPreeditPositions; @@ -308,11 +309,6 @@ private: void onKeyStroke(); - // - // Data - // - LLKeywords mKeywords; - // Concrete TextCmd sub-classes used by the LLTextEditor base class class TextCmdInsert; class TextCmdAddChar; diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index c5e1cde4e6..78c581b12e 100755 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -522,6 +522,7 @@ set(viewer_SOURCE_FILES llstylemap.cpp llsurface.cpp llsurfacepatch.cpp + llsyntaxid.cpp llsyswellitem.cpp llsyswellwindow.cpp llteleporthistory.cpp @@ -1099,6 +1100,7 @@ set(viewer_HEADER_FILES llstylemap.h llsurface.h llsurfacepatch.h + llsyntaxid.h llsyswellitem.h llsyswellwindow.h lltable.h @@ -1530,7 +1532,7 @@ set(viewer_APPSETTINGS_FILES app_settings/high_graphics.xml app_settings/ignorable_dialogs.xml app_settings/keys.xml - app_settings/keywords.ini + app_settings/keywords_lsl_default.xml app_settings/logcontrol.xml app_settings/low_graphics.xml app_settings/mid_graphics.xml @@ -1850,7 +1852,7 @@ elseif (DARWIN) LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Xlinker -dead_strip -Xlinker -map -Xlinker ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_BINARY_NAME}.MAP" ) else (WINDOWS) - # Linux + # Linux set_target_properties(${VIEWER_BINARY_NAME} PROPERTIES LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Wl,--Map=${VIEWER_BINARY_NAME}.MAP" @@ -2035,7 +2037,7 @@ if (DARWIN) ) add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit mac-crash-logger) - + if (ENABLE_SIGNING) set(SIGNING_SETTING "--signature=${SIGNING_IDENTITY}") else (ENABLE_SIGNING) diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini deleted file mode 100755 index ad843bca14..0000000000 --- a/indra/newview/app_settings/keywords.ini +++ /dev/null @@ -1,755 +0,0 @@ -llkeywords version 2 - -# sections -[word .5, .1, .3] -default Name of default state that all scripts must have -state Keyword to indicate state block or state transition - -# data types -[word .1, .3, .1] -integer Integer type -float Floating-point type -string String type -key Key type. Use NULL_KEY to test for empty keys -vector Vector type of 3 floats. Used to represent 3D motion, Euler angles, and color.:Access components by .x, .y. or .z -rotation Rotation type of 4 floats. Used to represent rotation.:Access components by .x, .y., .z, or .w -list List of various data types - -# events -[word 0, .3, .5] -state_entry state_entry():Triggered on any state transition and startup -state_exit state_exit():Triggered on any state transition -touch_start touch_start(integer num_detected):Triggered by the start of agent clicking on task -touch touch(integer num_detected):Triggered while agent is clicking on task -touch_end touch_end(integer num_detected):Triggered when agent stops clicking on task -collision_start collision_start(integer num_detected):Triggered when task starts colliding with another task -collision collision(integer num_detected):Triggered while task is colliding with another task -collision_end collision_end(integer num_detected):Triggered when task stops colliding with another task -land_collision_start land_collision_start(vector pos):Triggered when task starts colliding with land -land_collision land_collision(vector pos):Triggered when task is colliding with land -land_collision_end land_collision_end(vector pos):Triggered when task stops colliding with land -timer timer():Result of the llSetTimerEvent library function call -listen listen(integer channel, string name, key id, string message):Result of the llListen library function call -sensor sensor(integer num_detected):Result of the llSensor library function call -no_sensor no_sensor():Result of the llSensor library function call -control control(key id, integer level, integer edge):Result of llTakeControls library function call -at_target at_target(integer tnum, vector targetpos, vector ourpos):Result of llTarget library function call -not_at_target not_at_target():Result of llTarget library function call -at_rot_target at_rot_target(integer tnum, rotation targetrot, rotation ourrot):Result of LLRotTarget library function call -not_at_rot_target not_at_rot_target():Result of LLRotTarget library function call -money money(key id, integer amount):Triggered when L$ is given to task -email email(string time, string address, string subj, string message, integer num_left):Triggered when task receives email -run_time_permissions run_time_permissions(integer perm):Triggered when an agent grants run time permissions to task -attach attach(key id):Triggered when task attaches or detaches from agent -dataserver dataserver(key queryid, string data):Triggered when task receives asynchronous data -moving_start moving_start():Triggered when task begins moving -moving_end moving_end():Triggered when task stops moving -on_rez on_rez(integer start_param):Triggered when task is rezzed in from inventory or another task -object_rez object_rez(key id):Triggered when task rezzes in another task -link_message link_message(integer sender_num, integer num, string str, key id):Triggered when task receives a link message via LLMessageLinked library function call -changed changed( integer change ):Triggered various event change the task:(test change with CHANGED_INVENTORY, CHANGED_COLOR, CHANGED_SHAPE, CHANGED_SCALE, CHANGED_TEXTURE, CHANGED_LINK, CHANGED_ALLOWED_DROP, CHANGED_OWNER, CHANGED_REGION, CHANGED_TELEPORT, CHANGED_REGION_START, CHANGED_MEDIA) -remote_data remote_data(integer event_type, key channel, key message_id, string sender,integer idata, string sdata):Triggered by various XML-RPC calls (event_type will be one of REMOTE_DATA_CHANNEL, REMOTE_DATA_REQUEST, REMOTE_DATA_REPLY) -http_response http_response(key request_id, integer status, list metadata, string body):Triggered when task receives a response to one of its llHTTPRequests -http_request http_request(key id, string method, string body):Triggered when task receives an http request against a public URL - -# integer constants -[word .1, .1, .5] -TRUE Integer constant for Boolean operations -FALSE Integer constant for Boolean operations -STATUS_PHYSICS Passed in the llSetStatus library function. If TRUE, object moves physically -STATUS_PHANTOM Passed in the llSetStatus library function. If TRUE, object doesn't collide with other objects -STATUS_ROTATE_X Passed in the llSetStatus library function. If FALSE, object doesn't rotate around local X axis -STATUS_ROTATE_Y Passed in the llSetStatus library function. If FALSE, object doesn't rotate around local Y axis -STATUS_ROTATE_Z Passed in the llSetStatus library function. If FALSE, object doesn't rotate around local Z axis -STATUS_SANDBOX Passed in the llSetStatus library function. If TRUE, object can't cross region boundaries or move more than 10 meters from its start location -STATUS_BLOCK_GRAB Passed in the llSetStatus library function. If TRUE, root prim of linkset (or unlinked prim) can't be grabbed and physically dragged -STATUS_DIE_AT_EDGE Passed in the llSetStatus library function. If TRUE, objects that reach the edge of the world just die:rather than teleporting back to the owner -STATUS_RETURN_AT_EDGE Passed in the llSetStatus library function. If TRUE, script rezzed objects that reach the edge of the world:are returned rather than killed:STATUS_RETURN_AT_EDGE trumps STATUS_DIE_AT_EDGE if both are set -STATUS_CAST_SHADOWS Passed in the llSetStatus library function. If TRUE, object casts shadows on other objects -STATUS_BLOCK_GRAB_OBJECT Passed in the llSetStatus library function. If TRUE, no prims in linkset can be grabbed or physically dragged - -AGENT Passed in llSensor library function to look for other Agents -ACTIVE Passed in llSensor library function to look for moving objects -PASSIVE Passed in llSensor library function to look for objects that aren't moving -SCRIPTED Passed in llSensor library function to look for scripted objects -CONTROL_FWD Passed to llTakeControls library function and used control event handler to test for agent forward control -CONTROL_BACK Passed to llTakeControls library function and used control event handler to test for agent back control -CONTROL_LEFT Passed to llTakeControls library function and used control event handler to test for agent left control -CONTROL_RIGHT Passed to llTakeControls library function and used control event handler to test for agent right control -CONTROL_ROT_LEFT Passed to llTakeControls library function and used control event handler to test for agent rotate left control -CONTROL_ROT_RIGHT Passed to llTakeControls library function and used control event handler to test for agent rotate right control -CONTROL_UP Passed to llTakeControls library function and used control event handler to test for agent up control -CONTROL_DOWN Passed to llTakeControls library function and used control event handler to test for agent down control -CONTROL_LBUTTON Passed to llTakeControls library function and used control event handler to test for agent left button control -CONTROL_ML_LBUTTON Passed to llTakeControls library function and used control event handler to test for agent left button control with the agent in mouse look -PERMISSION_DEBIT Passed to llRequestPermissions library function to request permission to take L$ from agent's account -PERMISSION_TAKE_CONTROLS Passed to llRequestPermissions library function to request permission to take agent's controls -# PERMISSION_REMAP_CONTROLS Passed to llRequestPermissions library function to request permission to remap agent's controls (not implemented yet) -PERMISSION_TRIGGER_ANIMATION Passed to llRequestPermissions library function to request permission to trigger animation on agent -PERMISSION_ATTACH Passed to llRequestPermissions library function to request permission to attach/detach from agent -# PERMISSION_RELEASE_OWNERSHIP Passed to llRequestPermissions library function to request permission to release ownership (not implemented) -PERMISSION_CHANGE_LINKS Passed to llRequestPermissions library function to request permission to change links -# PERMISSION_CHANGE_JOINTS Passed to llRequestPermissions library function to request permission to change joints (not implemented) -# PERMISSION_CHANGE_PERMISSIONS Passed to llRequestPermissions library function to request permission to change permissions -PERMISSION_TRACK_CAMERA Passed to llRequestPermissions library function to request permission to track agent's camera -PERMISSION_CONTROL_CAMERA Passed to llRequestPermissions library function to request permission to change agent's camera -PERMISSION_TELEPORT Passed to llRequestPermissions library function to request permission to teleport agent -PERMISSION_SILENT_ESTATE_MANAGEMENT Passed to llRequestPermissions library function to request permission to silently modify estate access lists -PERMISSION_OVERRIDE_ANIMATIONS Passed to llRequestPermissions library function to request permission to override animations on agent -PERMISSION_RETURN_OBJECTS Passed to llRequestPermissions library function to request permission to return objects - -DEBUG_CHANNEL Chat channel reserved for debug and error messages from scripts -PUBLIC_CHANNEL Chat channel that broadcasts to all nearby users - -AGENT_FLYING Returned by llGetAgentInfo if the Agent is flying -AGENT_ATTACHMENTS Returned by llGetAgentInfo if the Agent has attachments -AGENT_SCRIPTED Returned by llGetAgentInfo if the Agent has scripted attachments -AGENT_SITTING Returned by llGetAgentInfo if the Agent is sitting -AGENT_ON_OBJECT Returned by llGetAgentInfo if the Agent is sitting on an object -AGENT_MOUSELOOK Returned by llGetAgentInfo if the Agent is in mouselook -AGENT_AWAY Returned by llGetAgentInfo if the Agent is in away mode -AGENT_WALKING Returned by llGetAgentInfo if the Agent is walking -AGENT_IN_AIR Returned by llGetAgentInfo if the Agent is in the air -AGENT_TYPING Returned by llGetAgentInfo if the Agent is typing -AGENT_CROUCHING Returned by llGetAgentInfo if the Agent is crouching -AGENT_BUSY Returned by llGetAgentInfo if the Agent is busy -AGENT_ALWAYS_RUN Returned by llGetAgentInfo if the Agent has 'Always Run' enabled -AGENT_AUTOPILOT Returned by llGetAgentInfo if the Agent is under autopilot control - -PSYS_PART_FLAGS -PSYS_PART_START_COLOR -PSYS_PART_START_ALPHA -PSYS_PART_START_SCALE -PSYS_PART_END_COLOR -PSYS_PART_END_ALPHA -PSYS_PART_END_SCALE -PSYS_PART_MAX_AGE - -PSYS_PART_BOUNCE_MASK -PSYS_PART_WIND_MASK -PSYS_PART_INTERP_COLOR_MASK -PSYS_PART_INTERP_SCALE_MASK -PSYS_PART_FOLLOW_SRC_MASK -PSYS_PART_FOLLOW_VELOCITY_MASK -PSYS_PART_TARGET_POS_MASK -PSYS_PART_EMISSIVE_MASK -PSYS_PART_TARGET_LINEAR_MASK -PSYS_PART_RIBBON_MASK - -PSYS_SRC_PATTERN -PSYS_SRC_INNERANGLE Deprecated -- Use PSYS_SRC_ANGLE_BEGIN -PSYS_SRC_OUTERANGLE Deprecated -- Use PSYS_SRC_ANGLE_END -PSYS_SRC_ANGLE_BEGIN -PSYS_SRC_ANGLE_END -PSYS_SRC_BURST_RATE -PSYS_SRC_BURST_PART_COUNT -PSYS_SRC_BURST_RADIUS -PSYS_SRC_BURST_SPEED_MIN -PSYS_SRC_BURST_SPEED_MAX -PSYS_SRC_MAX_AGE -PSYS_SRC_ACCEL -PSYS_SRC_TEXTURE -PSYS_SRC_TARGET_KEY -PSYS_SRC_OMEGA -PSYS_PART_BLEND_FUNC_SOURCE -PSYS_PART_BLEND_FUNC_DEST -PSYS_PART_START_GLOW -PSYS_PART_END_GLOW - -PSYS_SRC_PATTERN_DROP -PSYS_SRC_PATTERN_EXPLODE -PSYS_SRC_PATTERN_ANGLE -PSYS_SRC_PATTERN_ANGLE_CONE -PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY -PSYS_PART_BF_ONE -PSYS_PART_BF_ZERO -PSYS_PART_BF_DEST_COLOR -PSYS_PART_BF_SOURCE_COLOR -PSYS_PART_BF_ONE_MINUS_DEST_COLOR -PSYS_PART_BF_ONE_MINUS_SOURCE_COLOR -PSYS_PART_BF_SOURCE_ALPHA -PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA - -OBJECT_UNKNOWN_DETAIL Returned by llGetObjectDetails when passed an invalid object parameter type -OBJECT_NAME Used with llGetObjectDetails to get an object's name -OBJECT_DESC Used with llGetObjectDetails to get an object's description -OBJECT_POS Used with llGetObjectDetails to get an object's position -OBJECT_ROT Used with llGetObjectDetails to get an object's rotation -OBJECT_VELOCITY Used with llGetObjectDetails to get an object's velocity -OBJECT_OWNER Used with llGetObjectDetails to get an object's owner's key. Will be NULL_KEY if group owned -OBJECT_GROUP Used with llGetObjectDetails to get an object's group's key -OBJECT_CREATOR Used with llGetObjectDetails to get an object's creator's key -OBJECT_RUNNING_SCRIPT_COUNT Used with llGetObjectDetails to get the number of running scripts in an object -OBJECT_TOTAL_SCRIPT_COUNT Used with llGetObjectDetails to get the total number of scripts in an object -OBJECT_SCRIPT_MEMORY Used with llGetObjectDetails to get the total amount of script memory in an object -OBJECT_SCRIPT_TIME Used with llGetObjectDetails to get the average script time used by an object -OBJECT_PRIM_EQUIVALENCE Used with llGetObjectDetails to get the prim equivalence of an object -OBJECT_SERVER_COST Used with llGetObjectDetails to get the server cost of an object -OBJECT_STREAMING_COST Used with llGetObjectDetails to get the streaming (download) cost of an object -OBJECT_PHYSICS_COST Used with llGetObjectDetails to get the physics cost of an object -OBJECT_CHARACTER_TIME Used with llGetObjectDetails to get the pathfinding time (seconds) for an object -OBJECT_ROOT Used with llGetObjectDetails to get root ID of an object -OBJECT_ATTACHED_POINT Used with llGetObjectDetails to get attachent point where an object is attached -OBJECT_PATHFINDING_TYPE Used with llGetObjectDetails to get the pathfinding setting of an object -OBJECT_PHYSICS Used with llGetObjectDetails to determine if the object is physical or not -OBJECT_PHANTOM Used with llGetObjectDetails to determine if the object is phantom or not -OBJECT_TEMP_ON_REZ Used with llGetObjectDetails to determine if the object is temporary or not -OBJECT_RENDER_WEIGHT Used with llGetObjectDetails to return an avatar's rendering weight - - -# some vehicle params -VEHICLE_TYPE_NONE -VEHICLE_TYPE_SLED -VEHICLE_TYPE_CAR -VEHICLE_TYPE_BOAT -VEHICLE_TYPE_AIRPLANE -VEHICLE_TYPE_BALLOON - -VEHICLE_REFERENCE_FRAME Rotation of vehicle axes relative to local frame - -VEHICLE_LINEAR_FRICTION_TIMESCALE A vector of timescales for exponential decay of linear velocity along the three vehicle axes -VEHICLE_ANGULAR_FRICTION_TIMESCALE A vector of timescales for exponential decay of angular velocity about the three vehicle axes -VEHICLE_LINEAR_MOTOR_DIRECTION The linear velocity that the vehicle will try to achieve -VEHICLE_LINEAR_MOTOR_OFFSET An offset from the center of mass of the vehicle where the linear motor is applied -VEHICLE_ANGULAR_MOTOR_DIRECTION The angular velocity that the vehicle will try to achieve - -VEHICLE_HOVER_HEIGHT The height the vehicle will try to hover -VEHICLE_HOVER_EFFICIENCY A slider between 0 (bouncy) and 1 (critically damped) hover behavior -VEHICLE_HOVER_TIMESCALE The period of time for the vehicle to achieve its hover height -VEHICLE_BUOYANCY A slider between 0 (no anti-gravity) and 1 (full anti-gravity) - -VEHICLE_LINEAR_DEFLECTION_EFFICIENCY A slider between 0 (no deflection) and 1 (maximum strength) -VEHICLE_LINEAR_DEFLECTION_TIMESCALE The exponential timescale for the vehicle to redirect its velocity to be along its x-axis - -VEHICLE_LINEAR_MOTOR_TIMESCALE The exponential timescale for the vehicle to achive its full linear motor velocity -VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE The exponential timescale for the linear motor's effectiveness to decay toward zero - -VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY A slider between 0 (no deflection) and 1 (maximum strength) -VEHICLE_ANGULAR_DEFLECTION_TIMESCALE The exponential timescale for the vehicle to achieve full angular deflection - -VEHICLE_ANGULAR_MOTOR_TIMESCALE The exponential timescale for the vehicle to achive its full angular motor velocity -VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE The exponential timescale for the angular motor's effectiveness to decay toward zero - -VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY A slider between 0 (bouncy) and 1 (critically damped) attraction of vehicle z-axis to world z-axis (vertical) -VEHICLE_VERTICAL_ATTRACTION_TIMESCALE The exponential timescale for the vehicle to align its z-axis to the world z-axis (vertical) - -VEHICLE_BANKING_EFFICIENCY A slider between -1 (leans out of turns), 0 (no banking), and +1 (leans into turns) -VEHICLE_BANKING_MIX A slider between 0 (static banking) and 1 (dynamic banking) -VEHICLE_BANKING_TIMESCALE The exponential timescale for the banking behavior to take full effect - -VEHICLE_FLAG_NO_DEFLECTION_UP Prevents linear deflection along world-z axis -VEHICLE_FLAG_LIMIT_ROLL_ONLY Removes vertical attraction for changes in vehicle pitch -VEHICLE_FLAG_HOVER_WATER_ONLY Hover only pays attention to water level -VEHICLE_FLAG_HOVER_TERRAIN_ONLY Hover only pays attention to terrain height -VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT Hover only pays attention to global height -VEHICLE_FLAG_HOVER_UP_ONLY Hover only pushes up -VEHICLE_FLAG_LIMIT_MOTOR_UP Prevents ground vehicles from motoring into the sky -VEHICLE_FLAG_MOUSELOOK_STEER Makes vehicle try to turn toward mouselook direction -VEHICLE_FLAG_MOUSELOOK_BANK Makes vehicle try to turn toward mouselook direction assuming banking is enabled -VEHICLE_FLAG_CAMERA_DECOUPLED Causes the camera look-at axis to NOT move when the vehicle rotates - -CAMERA_PITCH (-45 to 80) (Adjusts the angular amount that the camera aims straight ahead vs. straight down, maintaining the same distance. Analogous to 'incidence'.") -CAMERA_FOCUS_OFFSET (-10 to 10) A vector that adjusts the position of the camera focus position relative to the subject -CAMERA_POSITION_LAG (0.0 to 3.0) How much the camera lags as it tries to move towards its 'ideal' position -CAMERA_FOCUS_LAG (0.0 to 3.0) How much the camera lags as it tries to aim towards the subject -CAMERA_DISTANCE (0.5 to 10) Sets how far away the camera wants to be from its subject -CAMERA_BEHINDNESS_ANGLE (0 to 180) Sets the angle in degrees within which the camera is not constrained by changes in subject rotation -CAMERA_BEHINDNESS_LAG (0.0 to 3.0) Sets how strongly the camera is forced to stay behind the target if outside of behindness angle -CAMERA_POSITION_THRESHOLD (0.0 to 4.0) Sets the radius of a sphere around the camera's ideal position within which it is not affected by subject motion -CAMERA_FOCUS_THRESHOLD (0.0 to 4.0) Sets the radius of a sphere around the camera's subject position within which its focus is not affected by subject motion -CAMERA_ACTIVE (0 or 1) Turns on or off scripted control of the camera -CAMERA_POSITION Sets the position of the camera -CAMERA_FOCUS Sets the focus (target position) of the camera -CAMERA_POSITION_LOCKED (0 or 1) Locks the camera position so it will not move -CAMERA_FOCUS_LOCKED (0 or 1) Locks the camera focus so it will not move - -INVENTORY_TEXTURE Passed to task inventory library functions to reference textures -INVENTORY_SOUND Passed to task inventory library functions to reference sounds -INVENTORY_OBJECT Passed to task inventory library functions to reference objects -INVENTORY_SCRIPT Passed to task inventory library functions to reference scripts -INVENTORY_LANDMARK Passed to task inventory library functions to reference landmarks -INVENTORY_CLOTHING Passed to task inventory library functions to reference clothing -INVENTORY_NOTECARD Passed to task inventory library functions to reference notecards -INVENTORY_BODYPART Passed to task inventory library functions to reference body parts -INVENTORY_ANIMATION Passed to task inventory library functions to reference animations -INVENTORY_GESTURE Passed to task inventory library functions to reference gestures -INVENTORY_ALL Passed to task inventory library functions to reference all inventory items -INVENTORY_NONE Returned by llGetInventoryType when no item is found - -ATTACH_CHEST Passed to llAttachToAvatar to attach task to chest -ATTACH_HEAD Passed to llAttachToAvatar to attach task to head -ATTACH_LSHOULDER Passed to llAttachToAvatar to attach task to left shoulder -ATTACH_RSHOULDER Passed to llAttachToAvatar to attach task to right shoulder -ATTACH_LHAND Passed to llAttachToAvatar to attach task to left hand -ATTACH_RHAND Passed to llAttachToAvatar to attach task to right hand -ATTACH_LFOOT Passed to llAttachToAvatar to attach task to left foot -ATTACH_RFOOT Passed to llAttachToAvatar to attach task to right foot -ATTACH_BACK Passed to llAttachToAvatar to attach task to back -ATTACH_PELVIS Passed to llAttachToAvatar to attach task to pelvis -ATTACH_MOUTH Passed to llAttachToAvatar to attach task to mouth -ATTACH_CHIN Passed to llAttachToAvatar to attach task to chin -ATTACH_LEAR Passed to llAttachToAvatar to attach task to left ear -ATTACH_REAR Passed to llAttachToAvatar to attach task to right ear -ATTACH_LEYE Passed to llAttachToAvatar to attach task to left eye -ATTACH_REYE Passed to llAttachToAvatar to attach task to right eye -ATTACH_NOSE Passed to llAttachToAvatar to attach task to nose -ATTACH_RUARM Passed to llAttachToAvatar to attach task to right upper arm -ATTACH_RLARM Passed to llAttachToAvatar to attach task to right lower arm -ATTACH_LUARM Passed to llAttachToAvatar to attach task to left upper arm -ATTACH_LLARM Passed to llAttachToAvatar to attach task to left lower arm -ATTACH_RHIP Passed to llAttachToAvatar to attach task to right hip -ATTACH_RULEG Passed to llAttachToAvatar to attach task to right upper leg -ATTACH_RLLEG Passed to llAttachToAvatar to attach task to right lower leg -ATTACH_LHIP Passed to llAttachToAvatar to attach task to left hip -ATTACH_LULEG Passed to llAttachToAvatar to attach task to left upper leg -ATTACH_LLLEG Passed to llAttachToAvatar to attach task to left lower leg -ATTACH_BELLY Passed to llAttachToAvatar to attach task to belly -ATTACH_LEFT_PEC Passed to llAttachToAvatar to attach task to left pectoral -ATTACH_RIGHT_PEC Passed to llAttachToAvatar to attach task to right pectoral -ATTACH_NECK Passed to llAttachToAvatar to attach task to neck -ATTACH_AVATAR_CENTER Passed to llAttachToAvatar to attach task to avatar center -LAND_LEVEL Passed to llModifyLand to level terrain -LAND_RAISE Passed to llModifyLand to raise terrain -LAND_LOWER Passed to llModifyLand to lower terrain -LAND_SMOOTH Passed to llModifyLand to smooth terrain -LAND_NOISE Passed to llModifyLand to randomize terrain -LAND_REVERT Passed to llModifyLand to revert terrain toward original state -LAND_SMALL_BRUSH Passed to llModifyLand to modify small land areas -LAND_MEDIUM_BRUSH Passed to llModifyLand to modify medium land areas -LAND_LARGE_BRUSH Passed to llModifyLand to modify large land areas - -DATA_PAYINFO Passed to llRequestAgentData to get payment status of an agent -DATA_ONLINE Passed to llRequestAgentData to determine if agent is online -DATA_NAME Passed to llRequestAgentData to get full agent name -DATA_BORN Passed to llRequestAgentData to get born on date as a string -DATA_RATING Passed to llRequestAgentData to get a comma separated sting of integer ratings -DATA_SIM_POS Passed to llRequestSimulatorData to get a string (cast to vector) of a simulator's global position -DATA_SIM_STATUS Passed to llRequestSimulatorData to get the status of a simulator -DATA_SIM_RATING Passed to llRequestSimulatorData to get the rating of a simulator - -PAYMENT_INFO_ON_FILE Used with llRequestAgentData to tell if Agent is of "Payment Info On File" status -PAYMENT_INFO_USED Used with llRequestAgentData to tell if Agent is of "Payment Info Used" status - -ANIM_ON Enable texture animation -LOOP Loop when animating textures -REVERSE Animate in the reverse direction -PING_PONG Animate forward, then reverse -SMOOTH Textures slides, instead of stepping -ROTATE Rotates the texture, instead of using frames -SCALE Scales the texture, instead of using frames - -ALL_SIDES Passed to various texture and color library functions to modify all sides - -LINK_SET Passed to various link functions to modify all blocks in the object -LINK_ROOT Passed to various link functions to modify only the root block (no effect on single block objects) -LINK_ALL_OTHERS Passed to various link functions to modify all other blocks in the object -LINK_ALL_CHILDREN Passed to various link functions to modify all child blocks in the object -LINK_THIS Passed to various link functions to modify only the calling block - -CHANGED_INVENTORY Parameter of changed event handler used to indicate change to task's inventory -CHANGED_COLOR Parameter of changed event handler used to indicate change to task's color -CHANGED_SHAPE Parameter of changed event handler used to indicate change to task's shape parameters -CHANGED_SCALE Parameter of changed event handler used to indicate change to task's scale -CHANGED_TEXTURE Parameter of changed event handler used to indicate change to task's texture -CHANGED_LINK Parameter of changed event handler used to indicate change to task's link status -CHANGED_ALLOWED_DROP Parameter of changed event handler used to indicate a user dropped an inventory item:onto task that was allowed only by llAllowInventoryDrop function call -CHANGED_OWNER Parameter of changed event handler used to indicate change to task's owner ONLY when an object is sold as original or deeded to group -CHANGED_REGION Parameter of changed event handler used to indicate the region has changed -CHANGED_TELEPORT Parameter of changed event handler used to indicate teleport has completed -CHANGED_REGION_START Parameter of changed event handler used to indicate the region has been restarted -CHANGED_MEDIA Parameter of changed event handler used to indicate that media has changed on a face of the task - -TYPE_INTEGER Indicates that the list entry is holding an integer -TYPE_FLOAT Indicates that the list entry is holding an float -TYPE_STRING Indicates that the list entry is holding an string -TYPE_KEY Indicates that the list entry is holding an key -TYPE_VECTOR Indicates that the list entry is holding an vector -TYPE_ROTATION Indicates that the list entry is holding an rotation -TYPE_INVALID Indicates that this wasn't a valid list entry - - -REMOTE_DATA_CHANNEL Value of event_type in remote_event after successful llOpenRemoteDataChannel -REMOTE_DATA_REQUEST Value of event_type in remote_event if XML-RPC request is received -REMOTE_DATA_REPLY Value of event_type in remote_event if XML-RPC reply is received - - -PRIM_TYPE Followed by PRIM_TYPE_BOX, PRIM_TYPE_CYLINDER, PRIM_TYPE_PRISM, PRIM_TYPE_SPHERE, PRIM_TYPE_TORUS, PRIM_TYPE_TUBE, or PRIM_TYPE_SCULPT and their arguments -PRIM_MATERIAL Followed by PRIM_MATERIAL_STONE, PRIM_MATERIAL_METAL, PRIM_MATERIAL_GLASS, PRIM_MATERIAL_WOOD, PRIM_MATERIAL_FLESH, PRIM_MATERIAL_PLASTIC, or PRIM_MATERIAL_RUBBER -PRIM_PHYSICS Sets physics to TRUE or FALSE -PRIM_FLEXIBLE Followed by TRUE or FALSE, integer softness, float gravity, float friction, float wind, float tension, and vector force -PRIM_POINT_LIGHT Followed by TRUE or FALSE, vector color, float intensity, float radius, float falloff -PRIM_TEMP_ON_REZ Sets temporary on rez to TRUE or FALSE -PRIM_PHANTOM Sets phantom to TRUE or FALSE -PRIM_CAST_SHADOWS DEPRECATED. Takes 1 parameter, an integer, but has no effect when set and always returns 0 if used in llGetPrimitiveParams -PRIM_POSITION Sets primitive position to a vector position -PRIM_SIZE Sets primitive size to a vector size -PRIM_ROTATION Sets primitive rotation -PRIM_TEXTURE Followed by an integer face, key id, vector repeats, vector offsets,:and float rotation in radians -PRIM_COLOR Followed by an integer face, vector color, and float alpha -PRIM_BUMP_SHINY Followed by an integer face, one of PRIM_SHINY_NONE, PRIM_SHINY_LOW,:PRIM_SHINY_MEDIUM, or PRIM_SHINY_HIGH,:and one of PRIM_BUMP_NONE, PRIM_BUMP_BRIGHT, PRIM_BUMP_DARK, etc -PRIM_FULLBRIGHT Followed by an integer face, and TRUE or FALSE -PRIM_TEXGEN Followed by an integer face, and one of PRIM_TEXGEN_DEFAULT or PRIM_TEXGEN_PLANAR -PRIM_GLOW Followed by an integer face, and a float from 0.0 to 1.0 specifying glow amount -PRIM_TEXT Followed by string text, vector color, and float alpha -PRIM_NAME Followed by string name -PRIM_DESC Followed by string description -PRIM_ROT_LOCAL Followed by rotation rot -PRIM_PHYSICS_SHAPE_TYPE Followed by PRIM_PHYSICS_SHAPE_PRIM, PRIM_PHYSICS_SHAPE_NONE, or PRIM_PHYSICS_SHAPE_CONVEX -PRIM_OMEGA Followed by vector axis, float spinrate, and float gain -PRIM_POS_LOCAL Followed by vector position -PRIM_LINK_TARGET Followed by integer link_target, then additional prim parameter flags -PRIM_SLICE Followed by vector slice - -PRIM_PHYSICS_SHAPE_PRIM Use the default physics shape -PRIM_PHYSICS_SHAPE_CONVEX Use the convex hull of the prim shape for physics -PRIM_PHYSICS_SHAPE_NONE Ignore this prim in the physics shape - -PRIM_TYPE_BOX Followed by integer hole shape, vector cut, float hollow, vector twist,:vector top size, and vector top shear -PRIM_TYPE_CYLINDER Followed by integer hole shape, vector cut, float hollow, vector twist,:vector top size, and vector top shear -PRIM_TYPE_PRISM Followed by integer hole shape, vector cut, float hollow, vector twist,:vector top size, and vector top shear -PRIM_TYPE_SPHERE Followed by integer hole shape, vector cut, float hollow, vector twist,:and vector dimple -PRIM_TYPE_TORUS Followed by integer hole shape, vector cut, float hollow, vector twist,:vector hole size, vector top shear, vector advanced cut, vector taper,:float revolutions, float radius offset, and float skew -PRIM_TYPE_TUBE Followed by integer hole shape, vector cut, float hollow, vector twist,:vector hole size, vector top shear, vector advanced cut, vector taper,:float revolutions, float radius offset, and float skew -PRIM_TYPE_RING Followed by integer hole shape, vector cut, float hollow, vector twist,:vector hole size, vector top shear, vector advanced cut, vector taper,:float revolutions, float radius offset, and float skew -PRIM_TYPE_SCULPT Followed by a key/string texture uuid, and one of PRIM_SCULPT_TYPE_SPHERE, PRIM_SCULPT_TYPE_TORUS, PRIM_SCULPT_TYPE_PLANE, or PRIM_SCULPT_TYPE_CYLINDER - -PRIM_HOLE_DEFAULT Sets hole type to match the prim type -PRIM_HOLE_SQUARE Sets hole type to square -PRIM_HOLE_CIRCLE Sets hole type to circle -PRIM_HOLE_TRIANGLE Sets hole type to triangle - -PRIM_MATERIAL_STONE Sets material to stone -PRIM_MATERIAL_METAL Sets material to metal -PRIM_MATERIAL_GLASS Sets material to glass -PRIM_MATERIAL_WOOD Sets material to wood -PRIM_MATERIAL_FLESH Sets material to flesh -PRIM_MATERIAL_PLASTIC Sets material to plastic -PRIM_MATERIAL_RUBBER Sets material to rubber -PRIM_MATERIAL_LIGHT Sets material to light - -PRIM_SHINY_NONE No shininess -PRIM_SHINY_LOW Low shininess -PRIM_SHINY_MEDIUM Medium shininess -PRIM_SHINY_HIGH High shininess - -PRIM_BUMP_NONE No bump map -PRIM_BUMP_BRIGHT Generate bump map from highlights -PRIM_BUMP_DARK Generate bump map from lowlights -PRIM_BUMP_WOOD Wood bump map -PRIM_BUMP_BARK Bark bump map -PRIM_BUMP_BRICKS Brick bump map -PRIM_BUMP_CHECKER Checker bump map -PRIM_BUMP_CONCRETE Concrete bump map -PRIM_BUMP_TILE Tile bump map -PRIM_BUMP_STONE Stone bump map -PRIM_BUMP_DISKS Disk bump map -PRIM_BUMP_GRAVEL Gravel bump map -PRIM_BUMP_BLOBS Blob bump map -PRIM_BUMP_SIDING Siding bump map -PRIM_BUMP_LARGETILE Large tile bump map -PRIM_BUMP_STUCCO Stucco bump map -PRIM_BUMP_SUCTION Suction cup bump map -PRIM_BUMP_WEAVE Weave bump map - -PRIM_TEXGEN_DEFAULT Default texture mapping -PRIM_TEXGEN_PLANAR Planar texture mapping - -PRIM_SCULPT_TYPE_SPHERE Stitch edges in a sphere-like way -PRIM_SCULPT_TYPE_TORUS Stitch edges in a torus-like way -PRIM_SCULPT_TYPE_PLANE Do not stitch edges -PRIM_SCULPT_TYPE_CYLINDER Stitch edges in a cylinder-like way -PRIM_SCULPT_TYPE_MASK Mask used to determine stitching type -PRIM_SCULPT_FLAG_INVERT Flag to specify that the surface normals should be inverted -PRIM_SCULPT_FLAG_MIRROR Flag to specify that the prim should be reflected along X axis - -MASK_BASE Base permissions -MASK_OWNER Owner permissions -MASK_GROUP Group permissions -MASK_EVERYONE Everyone permissions -MASK_NEXT Next owner permissions - -PERM_TRANSFER Transfer permission -PERM_MODIFY Modify permission -PERM_COPY Copy permission -PERM_MOVE Move permission -PERM_ALL Move/Modify/Copy/Transfer permissions - -PARCEL_MEDIA_COMMAND_STOP Stop media stream -PARCEL_MEDIA_COMMAND_PAUSE Pause media stream -PARCEL_MEDIA_COMMAND_PLAY Play media stream -PARCEL_MEDIA_COMMAND_LOOP Loop media stream -PARCEL_MEDIA_COMMAND_TEXTURE Get or set the parcel's media texture -PARCEL_MEDIA_COMMAND_URL Get or set the parcel's media url -PARCEL_MEDIA_COMMAND_TYPE Get or set the parcel's media mimetype -PARCEL_MEDIA_COMMAND_DESC Get or set the parcel's media description -PARCEL_MEDIA_COMMAND_TIME Set media stream to specific time -PARCEL_MEDIA_COMMAND_SIZE Get or set the parcel's media pixel resolution -PARCEL_MEDIA_COMMAND_AGENT Allows media stream commands to apply to only one agent -PARCEL_MEDIA_COMMAND_UNLOAD Unloads the media stream -PARCEL_MEDIA_COMMAND_AUTO_ALIGN Auto aligns the media stream to the texture size. May cause a performance hit and loss of some visual quality - -PAY_HIDE Used with llSetPayPrice to hide a button -PAY_DEFAULT Used with llSetPayPrice to use the default price for a button - -LIST_STAT_MAX Used with llListStatistics to find the largest number in a list -LIST_STAT_MIN Used with llListStatistics to find the smallest number in a list -LIST_STAT_MEAN Used with llListStatistics to find the mean of the numbers in a list -LIST_STAT_MEDIAN Used with llListStatistics to find the median of the numbers in a list -LIST_STAT_STD_DEV Used with llListStatistics to find the standard deviation of the numbers in a list -LIST_STAT_SUM Used with llListStatistics to find the sum of the numbers in a list -LIST_STAT_SUM_SQUARES Used with llListStatistics to find the sum of the squares of the numbers in a list -LIST_STAT_NUM_COUNT Used with llListStatistics to find how many numbers are in a list -LIST_STAT_GEOMETRIC_MEAN Used with llListStatistics to find the geometric mean of the numbers in a list (all numbers must be > 0) -LIST_STAT_RANGE Used with llListStatistics to find the range of the numbers in a list - -PARCEL_FLAG_ALLOW_FLY Used with llGetParcelFlags to find if a parcel allows flying -PARCEL_FLAG_ALLOW_GROUP_SCRIPTS Used with llGetParcelFlags to find if a parcel allows group scripts -PARCEL_FLAG_ALLOW_SCRIPTS Used with llGetParcelFlags to find if a parcel allows outside scripts -PARCEL_FLAG_ALLOW_LANDMARK Used with llGetParcelFlags to find if a parcel allows landmarks to be created -PARCEL_FLAG_ALLOW_TERRAFORM Used with llGetParcelFlags to find if a parcel allows anyone to terraform the land -PARCEL_FLAG_ALLOW_DAMAGE Used with llGetParcelFlags to find if a parcel allows damage -PARCEL_FLAG_ALLOW_CREATE_OBJECTS Used with llGetParcelFlags to find if a parcel allows anyone to create objects -PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS Used with llGetParcelFlags to find if a parcel allows group members or objects to create objects -PARCEL_FLAG_USE_ACCESS_GROUP Used with llGetParcelFlags to find if a parcel limits access to a group -PARCEL_FLAG_USE_ACCESS_LIST Used with llGetParcelFlags to find if a parcel limits access to a list of residents -PARCEL_FLAG_USE_BAN_LIST Used with llGetParcelFlags to find if a parcel uses a ban list -PARCEL_FLAG_USE_LAND_PASS_LIST Used with llGetParcelFlags to find if a parcel allows passes to be purchased -PARCEL_FLAG_LOCAL_SOUND_ONLY Used with llGetParcelFlags to find if a parcel restricts spacialized sound to the parcel -PARCEL_FLAG_RESTRICT_PUSHOBJECT Used with llGetParcelFlags to find if a parcel restricts llPushObject() calls -PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY Used with llGetParcelFlags to find if a parcel allows all objects to enter -PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY Used with llGetParcelFlags to find if a parcel only allows group (and owner) objects to enter - -REGION_FLAG_ALLOW_DAMAGE Used with llGetRegionFlags to find if a region is entirely damage enabled -REGION_FLAG_FIXED_SUN Used with llGetRegionFlags to find if a region has a fixed sun position -REGION_FLAG_BLOCK_TERRAFORM Used with llGetRegionFlags to find if a region terraforming disabled -REGION_FLAG_SANDBOX Used with llGetRegionFlags to find if a region is a sandbox -REGION_FLAG_DISABLE_COLLISIONS Used with llGetRegionFlags to find if a region has disabled collisions -REGION_FLAG_DISABLE_PHYSICS Used with llGetRegionFlags to find if a region has disabled physics -REGION_FLAG_BLOCK_FLY Used with llGetRegionFlags to find if a region blocks flying -REGION_FLAG_ALLOW_DIRECT_TELEPORT Used with llGetRegionFlags to find if a region allows direct teleports -REGION_FLAG_RESTRICT_PUSHOBJECT Used with llGetRegionFlags to find if a region restricts llPushObject() calls - -HTTP_METHOD Used with llHTTPRequest to specify the method, such as "GET" or "POST" -HTTP_MIMETYPE Used with llHTTPRequest to specify the MIME type, defaults to "text/plain" -HTTP_BODY_MAXLENGTH Used with llHTTPRequest to specify the maximum response body to return -HTTP_VERIFY_CERT Used with llHTTPRequest to specify SSL certificate verification -HTTP_BODY_TRUNCATED Used with http_response to indicate truncation point in bytes - -PARCEL_COUNT_TOTAL Used with llGetParcelPrimCount to get the total number of prims on the parcel -PARCEL_COUNT_OWNER Used with llGetParcelPrimCount to get the number of prims on the parcel owned by the owner -PARCEL_COUNT_GROUP Used with llGetParcelPrimCount to get the number of prims on the parcel owned by the group -PARCEL_COUNT_OTHER Used with llGetParcelPrimCount to get the number of prims on the parcel owned by others -PARCEL_COUNT_SELECTED Used with llGetParcelPrimCount to get the number of prims on the parcel currently selected or sat upon -PARCEL_COUNT_TEMP Used with llGetParcelPrimCount to get the number of prims on the parcel that are temp on rez - -PARCEL_DETAILS_NAME Used with llGetParcelDetails to get the parcel name -PARCEL_DETAILS_DESC Used with llGetParcelDetails to get the parcel description -PARCEL_DETAILS_OWNER Used with llGetParcelDetails to get the parcel owner id -PARCEL_DETAILS_GROUP Used with llGetParcelDetails to get the parcel group id -PARCEL_DETAILS_AREA Used with llGetParcelDetails to get the parcel area in square meters -PARCEL_DETAILS_ID Used with llGetParcelDetails to get the parcel id -PARCEL_DETAILS_SEE_AVATARS Used with llGetParcelDetails to get the avatars visibility setting - -STRING_TRIM_HEAD Used with llStringTrim to trim leading spaces from a string -STRING_TRIM_TAIL Used with llStringTrim to trim trailing spaces from a string -STRING_TRIM Used with llStringTrim to trim both leading and trailing spaces from a string - -CLICK_ACTION_NONE Used with llSetClickAction to disable the click action -CLICK_ACTION_TOUCH Used with llSetClickAction to set touch as the default action when object is clicked -CLICK_ACTION_SIT Used with llSetClickAction to set sit as the default action when object is clicked -CLICK_ACTION_BUY Used with llSetClickAction to set buy as the default action when object is clicked -CLICK_ACTION_PAY Used with llSetClickAction to set pay as the default action when object is clicked -CLICK_ACTION_OPEN Used with llSetClickAction to set open as the default action when object is clicked -CLICK_ACTION_PLAY Used with llSetClickAction to set play as the default action when object is clicked -CLICK_ACTION_OPEN_MEDIA Used with llSetClickAction to set open-media as the default action when object is clicked -CLICK_ACTION_ZOOM Used with llSetClickAction to set zoom in as the default action when object is clicked - -TOUCH_INVALID_TEXCOORD Value returned by llDetectedTouchUV() and llDetectedTouchST() when the touch position is not valid -TOUCH_INVALID_VECTOR Value returned by llDetectedTouchPos(), llDetectedTouchNormal(), and llDetectedTouchBinormal() when the touch position is not valid -TOUCH_INVALID_FACE Value returned by llDetectedTouchFace() when the touch position is not valid - -PRIM_MEDIA_ALT_IMAGE_ENABLE Used with ll{Get,Set}PrimMediaParams to enable the default alt image for media -PRIM_MEDIA_CONTROLS Used with ll{Get,Set}PrimMediaParams to determine the controls shown for media -PRIM_MEDIA_CURRENT_URL Used with ll{Get,Set}PrimMediaParams to navigate/access the current URL -PRIM_MEDIA_HOME_URL Used with ll{Get,Set}PrimMediaParams to access the home URL -PRIM_MEDIA_AUTO_LOOP Used with ll{Get,Set}PrimMediaParams to determine if media should auto-loop (if applicable) -PRIM_MEDIA_AUTO_PLAY Used with ll{Get,Set}PrimMediaParams to determine if media should start playing as soon as it is created -PRIM_MEDIA_AUTO_SCALE Used with ll{Get,Set}PrimMediaParams to determine if media should scale to fit the face it is on -PRIM_MEDIA_AUTO_ZOOM Used with ll{Get,Set}PrimMediaParams to determine if the user would zoom in when viewing media -PRIM_MEDIA_FIRST_CLICK_INTERACT Used with ll{Get,Set}PrimMediaParams to determine whether the user interacts with media or not when she first clicks it (versus selection) -PRIM_MEDIA_WIDTH_PIXELS Used with ll{Get,Set}PrimMediaParams to access the media's width in pixels -PRIM_MEDIA_HEIGHT_PIXELS Used with ll{Get,Set}PrimMediaParams to access the media's height in pixels -PRIM_MEDIA_WHITELIST_ENABLE Used with ll{Get,Set}PrimMediaParams to determine if the domain whitelist is enabled -PRIM_MEDIA_WHITELIST Used with ll{Get,Set}PrimMediaParams to access the media's list of allowable URL prefixes to navigate to -PRIM_MEDIA_PERMS_INTERACT Used with ll{Get,Set}PrimMediaParams to determine the permissions for who can interact with the media -PRIM_MEDIA_PERMS_CONTROL Used with ll{Get,Set}PrimMediaParams to determine the permissions for who has controls -PRIM_MEDIA_PARAM_MAX The value of the largest media param - -PRIM_MEDIA_CONTROLS_STANDARD Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_CONTROLS value meaning "standard controls" -PRIM_MEDIA_CONTROLS_MINI Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_CONTROLS value meaning "mini controls" - -PRIM_MEDIA_PERM_NONE Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_PERMS_INTERACT or PRIM_MEDIA_PERMS_CONTROL bit, no permissions -PRIM_MEDIA_PERM_OWNER Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_PERMS_INTERACT or PRIM_MEDIA_PERMS_CONTROL bit, owner permissions -PRIM_MEDIA_PERM_GROUP Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_PERMS_INTERACT or PRIM_MEDIA_PERMS_CONTROL bit, group permissions -PRIM_MEDIA_PERM_ANYONE Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_PERMS_INTERACT or PRIM_MEDIA_PERMS_CONTROL bit, anyone has permissions - -PRIM_MEDIA_MAX_URL_LENGTH Used with ll{Get,Set}PrimMediaParams, the maximum length of PRIM_MEDIA_CURRENT_URL or PRIM_MEDIA_HOME_URL -PRIM_MEDIA_MAX_WHITELIST_SIZE Used with ll{Get,Set}PrimMediaParams, the maximum length, in bytes, of PRIM_MEDIA_WHITELIST -PRIM_MEDIA_MAX_WHITELIST_COUNT Used with ll{Get,Set}PrimMediaParams, the maximum number of items allowed in PRIM_MEDIA_WHITELIST -PRIM_MEDIA_MAX_WIDTH_PIXELS Used with ll{Get,Set}PrimMediaParams, the maximum width allowed in PRIM_MEDIA_WIDTH_PIXELS -PRIM_MEDIA_MAX_HEIGHT_PIXELS Used with ll{Get,Set}PrimMediaParams, the maximum width allowed in PRIM_MEDIA_HEIGHT_PIXELS - -STATUS_OK Result of function call was success -STATUS_MALFORMED_PARAMS Function was called with malformed params -STATUS_TYPE_MISMATCH Argument(s) passed to function had a type mismatch -STATUS_BOUNDS_ERROR Argument(s) passed to function had a bounds error -STATUS_NOT_FOUND Object or other item was not found -STATUS_NOT_SUPPORTED Feature not supported -STATUS_INTERNAL_ERROR An internal error occurred -STATUS_WHITELIST_FAILED URL failed to pass whitelist - -PROFILE_NONE Disables profiling -PROFILE_SCRIPT_MEMORY Enables memory profiling - -RC_DATA_FLAGS TODO: add documentation -RC_DETECT_PHANTOM TODO: add documentation -RC_GET_LINK_NUM TODO: add documentation -RC_GET_NORMAL TODO: add documentation -RC_GET_ROOT_KEY TODO: add documentation -RC_MAX_HITS TODO: add documentation -RC_REJECT_TYPES Optional parameter set in llCastRay() to reject hit against certain object types. -RC_REJECT_AGENTS Bit mask for RC_REJECT_TYPES, rejects hits against avatars. -RC_REJECT_PHYSICAL Bit mask for RC_REJECT_TYPES, rejects hits against moving objects. -RC_REJECT_NONPHYSICAL Bit mask for RC_REJECT_TYPES, rejects hits against non-moving objects. -RC_REJECT_LAND Bit mask for RC_REJECT_TYPES, rejects hits against the terrian. - -RCERR_CAST_TIME_EXCEEDED TODO: add documentation -RCERR_SIM_PERF_LOW TODO: add documentation -RCERR_UNKNOWN TODO: add documentation - -ESTATE_ACCESS_ALLOWED_AGENT_ADD TODO: add documentation -ESTATE_ACCESS_ALLOWED_AGENT_REMOVE TODO: add documentation -ESTATE_ACCESS_ALLOWED_GROUP_ADD TODO: add documentation -ESTATE_ACCESS_ALLOWED_GROUP_REMOVE TODO: add documentation -ESTATE_ACCESS_BANNED_AGENT_ADD TODO: add documentation -ESTATE_ACCESS_BANNED_AGENT_REMOVE TODO: add documentation - -DENSITY TODO: add documentation -FRICTION TODO: add documentation -RESTITUTION TODO: add documentation -GRAVITY_MULTIPLIER TODO: add documentation - -KFM_COMMAND TODO: add documentation -KFM_CMD_PLAY TODO: add documentation -KFM_CMD_STOP TODO: add documentation -KFM_CMD_PAUSE TODO: add documentation -KFM_CMD_SET_MODE TODO: add documentation -KFM_MODE TODO: add documentation -KFM_FORWARD TODO: add documentation -KFM_LOOP TODO: add documentation -KFM_PING_PONG TODO: add documentation -KFM_REVERSE TODO: add documentation -KFM_DATA TODO: add documentation -KFM_ROTATION TODO: add documentation -KFM_TRANSLATION TODO: add documentation - -CHARACTER_CMD_STOP TODO: add documentation -CHARACTER_CMD_JUMP TODO: add documentation - -CHARACTER_DESIRED_SPEED TODO: add documentation -CHARACTER_RADIUS TODO: add documentation -CHARACTER_LENGTH TODO: add documentation -CHARACTER_ORIENTATION TODO: add documentation -CHARACTER_AVOIDANCE_MODE TODO: add documentation -PURSUIT_OFFSET TODO: add documentation -REQUIRE_LINE_OF_SIGHT TODO: add documentation -PURSUIT_FUZZ_FACTOR TODO: add documentation -PURSUIT_INTERCEPT TODO: add documentation -FORCE_DIRECT_PATH TODO: add documentation -VERTICAL TODO: add documentation -HORIZONTAL TODO: add documentation -AVOID_CHARACTERS TODO: add documentation -AVOID_DYNAMIC_OBSTACLES TODO: add documentation - -PU_EVADE_HIDDEN Triggered when an llEvade character thinks it has hidden from its pursuer. -PU_EVADE_SPOTTED Triggered when an llEvade character switches from hiding to running -PU_FAILURE_INVALID_GOAL Goal is not on the navigation-mesh and cannot be reached. -PU_FAILURE_INVALID_START Character cannot navigate from the current location - e.g., the character is off the navmesh or too high above it. -PU_FAILURE_NO_VALID_DESTINATION There's no good place for the character to go - e.g., it is patrolling and all the patrol points are now unreachable. -PU_FAILURE_OTHER Unknown failure -PU_FAILURE_TARGET_GONE Target (for llPursue or llEvade) can no longer be tracked - e.g., it left the region or is an avatar that is now more than about 30m outside the region. -PU_FAILURE_UNREACHABLE Goal is no longer reachable for some reason - e.g., an obstacle blocks the path. -PU_GOAL_REACHED Character has reached the goal and will stop or choose a new goal (if wandering). -PU_SLOWDOWN_DISTANCE_REACHED Character is near current goal. - -CHARACTER_TYPE TODO: add documentation -CHARACTER_TYPE_A TODO: add documentation -CHARACTER_TYPE_B TODO: add documentation -CHARACTER_TYPE_C TODO: add documentation -CHARACTER_TYPE_D TODO: add documentation -CHARACTER_TYPE_NONE TODO: add documentation - -TRAVERSAL_TYPE TODO: add documentation -TRAVERSAL_TYPE_SLOW TODO: add documentation -TRAVERSAL_TYPE_FAST TODO: add documentation -TRAVERSAL_TYPE_NONE TODO: add documentation - -CHARACTER_MAX_ACCEL TODO: add documentation -CHARACTER_MAX_DECEL TODO: add documentation -CHARACTER_MAX_ANGULAR_SPEED TODO: add documentation -CHARACTER_MAX_ANGULAR_ACCEL TODO: add documentation -CHARACTER_TURN_SPEED_MULTIPLIER TODO: add documentation - -# string constants -[word .1, .3, .5] -NULL_KEY Indicates an empty key -EOF Indicates the last line of a notecard was read -TEXTURE_BLANK UUID for the "Blank" texture -TEXTURE_DEFAULT Alias for TEXTURE_PLYWOOD -TEXTURE_MEDIA UUID for the "Default Media" texture -TEXTURE_PLYWOOD UUID for the default "Plywood" texture -TEXTURE_TRANSPARENT UUID for the "White - Transparent" texture - -URL_REQUEST_GRANTED Used with http_request when a public URL is successfully granted -URL_REQUEST_DENIED Used with http_request when a public URL is not available - -# float constants -[word .3, .1, .5] -PI 3.1415926535897932384626433832795 -TWO_PI 6.283185307179586476925286766559 -PI_BY_TWO 1.5707963267948966192313216916398 -DEG_TO_RAD To convert from degrees to radians -RAD_TO_DEG To convert from radians to degrees -SQRT2 1.4142135623730950488016887242097 - -# compound constants -[word .4, .2, .4] -ZERO_VECTOR <0.0, 0.0, 0.0> -ZERO_ROTATION <0.0, 0.0, 0.0, 1.0> - - -# flow control keywords -[word 0, 0, .8] -for for loop:for (initializer; test; iteration):{: statements:} -do do loop:do:{: statements:} while (test); -while while loop:while (test):{ statements:} -if if statement:if (test):{ statements:} -else else clause:if (test):{ statements:}:else:{ statements:} -jump jump statement:jump label;: -return Leave current function or event handler - -# flow control label -[line 0, 0, .8] -@ Label:Target for jump statement - -# Comment -[one_sided_delimiter .8, .3, .15] -// Comment:Non-functional commentary or disabled code -[two_sided_delimiter .8, .3, .15] -/* */ Comment:Non-functional commentary or disabled code - -# String literals -[double_quotation_marks 0, .2, 0] -" String literal - -#functions are supplied by the program now diff --git a/indra/newview/app_settings/keywords_lsl_default.xml b/indra/newview/app_settings/keywords_lsl_default.xml new file mode 100755 index 0000000000..f02a2136c0 --- /dev/null +++ b/indra/newview/app_settings/keywords_lsl_default.xml @@ -0,0 +1,18420 @@ +<?xml version="1.0" encoding="utf-8"?><?xml-model href="llsd-lsl-syntax.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> +<llsd> + <map> + <key>controls</key> + <map> + <key>default</key> + <map> + <key>tooltip</key> + <string>All scripts must have a default state, which is the first state entered when the script starts.\nIf another state is defined before the default state, the compiler will report a syntax error.</string> + </map> + <key>do</key> + <map> + <key>tooltip</key> + <string>do / while loop\ndo {\n...\n} while (<condition>);</string> + </map> + <key>else</key> + <map> + <key>tooltip</key> + <string>if / else block\nif (<condition>) {\n...\n[} else [if (<condition>) {\n...]]\n}</string> + </map> + <key>for</key> + <map> + <key>tooltip</key> + <string>for loop\nfor (<initialiser>; <condition>; <post-iteration-statement>)\n{ ...\n}</string> + </map> + <key>if</key> + <map> + <key>tooltip</key> + <string>if / else block\nif (<condition>) {\n...\n[} else [if (<condition>) {\n...]]\n}</string> + </map> + <key>jump</key> + <map> + <key>tooltip</key> + <string>jump statement\njump <label></string> + </map> + <key>return</key> + <map> + <key>tooltip</key> + <string>Leave current event or function.\nreturn [<variable>];\nOptionally pass back a variable's value, from a function.</string> + </map> + <key>state</key> + <map> + <key>tooltip</key> + <string>state <target>\nIf the target state is not the same as the current one, change to the target state.</string> + </map> + <key>while</key> + <map> + <key>tooltip</key> + <string>while loop\nwhile (<condition>) {\n,,,\n}</string> + </map> + </map> + <key>types</key> + <map> + <key>float</key> + <map> + <key>tooltip</key> + <string>32 bit floating point value.\nThe range is 1.175494351E-38 to 3.402823466E+38.</string> + </map> + <key>integer</key> + <map> + <key>tooltip</key> + <string>32 bit integer value.\n−2,147,483,648 and +2,147,483,647 (that is 0x80000000 to 0x7FFFFFFF in hex).</string> + </map> + <key>key</key> + <map> + <key>tooltip</key> + <string>A 128 bit unique identifier (UUID).\nThe key is represented as hexidecimal characters (A-F and 0-9), grouped into sections (8,4,4,4,12 characters) and separated by hyphens (for a total of 36 characters). e.g. "A822FF2B-FF02-461D-B45D-DCD10A2DE0C2".</string> + </map> + <key>list</key> + <map> + <key>tooltip</key> + <string>A collection of other data types.\nLists are signified by square brackets surrounding their elements; the elements inside are separated by commas. e.g. [0, 1, 2, 3, 4] or ["Yes", "No", "Perhaps"].</string> + </map> + <key>quaternion</key> + <map> + <key>tooltip</key> + <string>The quaternion type is a left over from way back when LSL was created. It was later renamed to <rotation> to make it more user friendly, but it appears someone forgot to remove it ;-)</string> + </map> + <key>rotation</key> + <map> + <key>tooltip</key> + <string>The rotation type is one of several ways to represent an orientation in 3D.\nIt is a mathematical object called a quaternion. You can think of a quaternion as four numbers (x, y, z, w), three of which represent the direction an object is facing and a fourth that represents the object's banking left or right around that direction.</string> + </map> + <key>string</key> + <map> + <key>tooltip</key> + <string>Text data.\nThe editor accepts UTF-8 encoded text.</string> + </map> + <key>vector</key> + <map> + <key>tooltip</key> + <string>A vector is a data type that contains a set of three float values.\nVectors are used to represent colours (RGB), positions, and directions/velocities.</string> + </map> + </map> + <key>constants</key> + <map> + <key>ACTIVE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x2</integer> + <key>tooltip</key> + <string>Objects in world that are running a script or currently physically moving.</string> + </map> + <key>AGENT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x1</integer> + <key>tooltip</key> + <string>Objects in world that are agents.</string> + </map> + <key>AGENT_ALWAYS_RUN</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x1000</integer> + <key>tooltip</key> + <string/> + </map> + <key>AGENT_ATTACHMENTS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x2</integer> + <key>tooltip</key> + <string>The agent has attachments.</string> + </map> + <key>AGENT_AUTOPILOT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x2000</integer> + <key>tooltip</key> + <string/> + </map> + <key>AGENT_AWAY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x40</integer> + <key>tooltip</key> + <string/> + </map> + <key>AGENT_BUSY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x800</integer> + <key>tooltip</key> + <string/> + </map> + <key>AGENT_BY_LEGACY_NAME</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x1</integer> + <key>tooltip</key> + <string/> + </map> + <key>AGENT_BY_USERNAME</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x10</integer> + <key>tooltip</key> + <string/> + </map> + <key>AGENT_CROUCHING</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x400</integer> + <key>tooltip</key> + <string/> + </map> + <key>AGENT_FLYING</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x1</integer> + <key>tooltip</key> + <string>The agent is flying.</string> + </map> + <key>AGENT_IN_AIR</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x100</integer> + <key>tooltip</key> + <string/> + </map> + <key>AGENT_LIST_PARCEL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>Agents on the same parcel where the script is running.</string> + </map> + <key>AGENT_LIST_PARCEL_OWNER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>Agents on any parcel in the region where the parcel owner is the same as the owner of the parcel under the scripted object.</string> + </map> + <key>AGENT_LIST_REGION</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string>All agents in the region.</string> + </map> + <key>AGENT_MOUSELOOK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x8</integer> + <key>tooltip</key> + <string/> + </map> + <key>AGENT_ON_OBJECT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x20</integer> + <key>tooltip</key> + <string/> + </map> + <key>AGENT_SCRIPTED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x4</integer> + <key>tooltip</key> + <string>The agent has scripted attachments.</string> + </map> + <key>AGENT_SITTING</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x10</integer> + <key>tooltip</key> + <string/> + </map> + <key>AGENT_TYPING</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x200</integer> + <key>tooltip</key> + <string/> + </map> + <key>AGENT_WALKING</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x80</integer> + <key>tooltip</key> + <string/> + </map> + <key>ALL_SIDES</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-1</integer> + <key>tooltip</key> + <string/> + </map> + <key>ANIM_ON</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x1</integer> + <key>tooltip</key> + <string>Texture animation is on.</string> + </map> + <key>ATTACH_AVATAR_CENTER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>40</integer> + <key>tooltip</key> + <string>Attach to the avatar's geometric centre.</string> + </map> + <key>ATTACH_BACK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>9</integer> + <key>tooltip</key> + <string>Attach to the avatar's back.</string> + </map> + <key>ATTACH_BELLY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>28</integer> + <key>tooltip</key> + <string>Attach to the avatar's belly.</string> + </map> + <key>ATTACH_CHEST</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>Attach to the avatar's chest.</string> + </map> + <key>ATTACH_CHIN</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>12</integer> + <key>tooltip</key> + <string>Attach to the avatar's chin.</string> + </map> + <key>ATTACH_HEAD</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>Attach to the avatar's head.</string> + </map> + <key>ATTACH_HUD_BOTTOM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>37</integer> + <key>tooltip</key> + <string/> + </map> + <key>ATTACH_HUD_BOTTOM_LEFT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>36</integer> + <key>tooltip</key> + <string/> + </map> + <key>ATTACH_HUD_BOTTOM_RIGHT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>38</integer> + <key>tooltip</key> + <string/> + </map> + <key>ATTACH_HUD_CENTER_1</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>35</integer> + <key>tooltip</key> + <string/> + </map> + <key>ATTACH_HUD_CENTER_2</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>31</integer> + <key>tooltip</key> + <string/> + </map> + <key>ATTACH_HUD_TOP_CENTER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>33</integer> + <key>tooltip</key> + <string/> + </map> + <key>ATTACH_HUD_TOP_LEFT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>34</integer> + <key>tooltip</key> + <string/> + </map> + <key>ATTACH_HUD_TOP_RIGHT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>32</integer> + <key>tooltip</key> + <string/> + </map> + <key>ATTACH_LEAR</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>13</integer> + <key>tooltip</key> + <string>Attach to the avatar's left ear.</string> + </map> + <key>ATTACH_LEFT_PEC</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>29</integer> + <key>tooltip</key> + <string>Attach to the avatar's left pectoral.</string> + </map> + <key>ATTACH_LEYE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>15</integer> + <key>tooltip</key> + <string>Attach to the avatar's left eye.</string> + </map> + <key>ATTACH_LFOOT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>7</integer> + <key>tooltip</key> + <string>Attach to the avatar's left foot.</string> + </map> + <key>ATTACH_LHAND</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string>Attach to the avatar's left hand.</string> + </map> + <key>ATTACH_LHIP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>25</integer> + <key>tooltip</key> + <string>Attach to the avatar's left hip.</string> + </map> + <key>ATTACH_LLARM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>21</integer> + <key>tooltip</key> + <string>Attach to the avatar's left lower arm.</string> + </map> + <key>ATTACH_LLLEG</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>27</integer> + <key>tooltip</key> + <string>Attach to the avatar's lower left leg.</string> + </map> + <key>ATTACH_LPEC</key> + <map> + <key>deprecated</key> + <boolean>true</boolean> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>30</integer> + <key>tooltip</key> + <string>Attach to the avatar's right pectoral. (Deprecated, use ATTACH_RIGHT_PEC)</string> + </map> + <key>ATTACH_LSHOULDER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string>Attach to the avatar's left shoulder.</string> + </map> + <key>ATTACH_LUARM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>20</integer> + <key>tooltip</key> + <string>Attach to the avatar's left upper arm.</string> + </map> + <key>ATTACH_LULEG</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>27</integer> + <key>tooltip</key> + <string>Attach to the avatar's lower upper leg.</string> + </map> + <key>ATTACH_MOUTH</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>11</integer> + <key>tooltip</key> + <string>Attach to the avatar's mouth.</string> + </map> + <key>ATTACH_NECK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>39</integer> + <key>tooltip</key> + <string>Attach to the avatar's neck.</string> + </map> + <key>ATTACH_NOSE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>17</integer> + <key>tooltip</key> + <string>Attach to the avatar's nose.</string> + </map> + <key>ATTACH_PELVIS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>10</integer> + <key>tooltip</key> + <string>Attach to the avatar's pelvis.</string> + </map> + <key>ATTACH_REAR</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>14</integer> + <key>tooltip</key> + <string>Attach to the avatar's right ear.</string> + </map> + <key>ATTACH_REYE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>16</integer> + <key>tooltip</key> + <string>Attach to the avatar's right eye.</string> + </map> + <key>ATTACH_RFOOT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>8</integer> + <key>tooltip</key> + <string>Attach to the avatar's right foot.</string> + </map> + <key>ATTACH_RHAND</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string>Attach to the avatar's right hand.</string> + </map> + <key>ATTACH_RHIP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>22</integer> + <key>tooltip</key> + <string>Attach to the avatar's right hip.</string> + </map> + <key>ATTACH_RIGHT_PEC</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>30</integer> + <key>tooltip</key> + <string>Attach to the avatar's right pectoral.</string> + </map> + <key>ATTACH_RLARM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>19</integer> + <key>tooltip</key> + <string>Attach to the avatar's right lower arm.</string> + </map> + <key>ATTACH_RLLEG</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>24</integer> + <key>tooltip</key> + <string>Attach to the avatar's right lower leg.</string> + </map> + <key>ATTACH_RPEC</key> + <map> + <key>deprecated</key> + <boolean>true</boolean> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>29</integer> + <key>tooltip</key> + <string>Attach to the avatar's left pectoral. (deprecated, use ATTACH_LEFT_PEC)</string> + </map> + <key>ATTACH_RSHOULDER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string>Attach to the avatar's right shoulder.</string> + </map> + <key>ATTACH_RUARM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>18</integer> + <key>tooltip</key> + <string>Attach to the avatar's right upper arm.</string> + </map> + <key>ATTACH_RULEG</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>23</integer> + <key>tooltip</key> + <string>Attach to the avatar's right upper leg.</string> + </map> + <key>AVOID_CHARACTERS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>AVOID_DYNAMIC_OBSTACLES</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>AVOID_NONE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>CAMERA_ACTIVE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>12</integer> + <key>tooltip</key> + <string/> + </map> + <key>CAMERA_BEHINDNESS_ANGLE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>8</integer> + <key>tooltip</key> + <string/> + </map> + <key>CAMERA_BEHINDNESS_LAG</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>9</integer> + <key>tooltip</key> + <string/> + </map> + <key>CAMERA_DISTANCE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>7</integer> + <key>tooltip</key> + <string/> + </map> + <key>CAMERA_FOCUS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>17</integer> + <key>tooltip</key> + <string/> + </map> + <key>CAMERA_FOCUS_LAG</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string/> + </map> + <key>CAMERA_FOCUS_LOCKED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>22</integer> + <key>tooltip</key> + <string/> + </map> + <key>CAMERA_FOCUS_OFFSET</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>CAMERA_FOCUS_THRESHOLD</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>11</integer> + <key>tooltip</key> + <string/> + </map> + <key>CAMERA_PITCH</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>CAMERA_POSITION</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>13</integer> + <key>tooltip</key> + <string/> + </map> + <key>CAMERA_POSITION_LAG</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string/> + </map> + <key>CAMERA_POSITION_LOCKED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>22</integer> + <key>tooltip</key> + <string/> + </map> + <key>CAMERA_POSITION_THRESHOLD</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>10</integer> + <key>tooltip</key> + <string/> + </map> + <key>CHANGED_ALLOWED_DROP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x40</integer> + <key>tooltip</key> + <string>The object inventory has changed because an item was added through the llAllowInventoryDrop interface.</string> + </map> + <key>CHANGED_COLOR</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x2</integer> + <key>tooltip</key> + <string>The object colour has changed.</string> + </map> + <key>CHANGED_INVENTORY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x1</integer> + <key>tooltip</key> + <string>The object inventory has changed.</string> + </map> + <key>CHANGED_LINK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x20</integer> + <key>tooltip</key> + <string>The object has linked or its links were broken.</string> + </map> + <key>CHANGED_MEDIA</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2048</integer> + <key>tooltip</key> + <string/> + </map> + <key>CHANGED_OWNER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x80</integer> + <key>tooltip</key> + <string/> + </map> + <key>CHANGED_REGION</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x100</integer> + <key>tooltip</key> + <string/> + </map> + <key>CHANGED_REGION_START</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x400</integer> + <key>tooltip</key> + <string/> + </map> + <key>CHANGED_SCALE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x8</integer> + <key>tooltip</key> + <string>The object scale (size) has changed.</string> + </map> + <key>CHANGED_SHAPE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x4</integer> + <key>tooltip</key> + <string>The object base shape has changed, e.g., a box to a cylinder.</string> + </map> + <key>CHANGED_TELEPORT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x200</integer> + <key>tooltip</key> + <string/> + </map> + <key>CHANGED_TEXTURE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x10</integer> + <key>tooltip</key> + <string>The texture offset, scale rotation, or simply the object texture has changed.</string> + </map> + <key>CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>14</integer> + <key>tooltip</key> + <string>If set to false, character will not attempt to catch up on lost time when pathfinding performance is low, potentially providing more reliable movement (albeit while potentially appearing to be more stuttery). Default is true to match pre-existing behavior.</string> + </map> + <key>CHARACTER_AVOIDANCE_MODE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string>Allows you to specify that a character should not try to avoid other characters, should not try to avoid dynamic obstacles (relatively fast moving objects and avatars), or both.</string> + </map> + <key>CHARACTER_CMD_JUMP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x01</integer> + <key>tooltip</key> + <string>Makes the character jump. Requires an additional parameter, the height to jump, between 0.1m and 2.0m. This must be provided as the first element of the llExecCharacterCmd option list.</string> + </map> + <key>CHARACTER_CMD_SMOOTH_STOP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>CHARACTER_CMD_STOP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x00</integer> + <key>tooltip</key> + <string>Stops any current pathfinding operation.</string> + </map> + <key>CHARACTER_DESIRED_SPEED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>Speed of pursuit in meters per second.</string> + </map> + <key>CHARACTER_DESIRED_TURN_SPEED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>12</integer> + <key>tooltip</key> + <string>The character's maximum speed while turning about the Z axis. - Note that this is only loosely enforced.</string> + </map> + <key>CHARACTER_LENGTH</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string>Set collision capsule length - cannot be less than two times the radius.</string> + </map> + <key>CHARACTER_MAX_ACCEL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>8</integer> + <key>tooltip</key> + <string>The character's maximum acceleration rate.</string> + </map> + <key>CHARACTER_MAX_DECEL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>9</integer> + <key>tooltip</key> + <string>The character's maximum deceleration rate.</string> + </map> + <key>CHARACTER_MAX_SPEED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>13</integer> + <key>tooltip</key> + <string>The character's maximum speed.</string> + </map> + <key>CHARACTER_MAX_TURN_RADIUS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>10</integer> + <key>tooltip</key> + <string>The character's turn radius when travelling at CHARACTER_MAX_TURN_SPEED.</string> + </map> + <key>CHARACTER_ORIENTATION</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string>Valid options are: VERTICAL, HORIZONTAL.</string> + </map> + <key>CHARACTER_RADIUS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>Set collision capsule radius.</string> + </map> + <key>CHARACTER_STAY_WITHIN_PARCEL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>15</integer> + <key>tooltip</key> + <string>Determines whether a character can leave its starting parcel.\nTakes a boolean parameter. If TRUE, the character cannot voluntarilly leave the parcel, but can return to it.</string> + </map> + <key>CHARACTER_TYPE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string>Specifies which walk-ability coefficient will be used by this character.</string> + </map> + <key>CHARACTER_TYPE_A</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>CHARACTER_TYPE_B</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>CHARACTER_TYPE_C</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>CHARACTER_TYPE_D</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string/> + </map> + <key>CHARACTER_TYPE_NONE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string/> + </map> + <key>CLICK_ACTION_BUY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>When the prim is clicked, the buy dialog is opened.</string> + </map> + <key>CLICK_ACTION_NONE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string>Performs the default action: when the prim is clicked, touch events are triggered".</string> + </map> + <key>CLICK_ACTION_OPEN</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string>When the prim is clicked, the object inventory dialog is opened.</string> + </map> + <key>CLICK_ACTION_OPEN_MEDIA</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string>When the prim is touched, the web media dialog is opened".</string> + </map> + <key>CLICK_ACTION_PAY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string>When the prim is clicked, the pay dialog is opened.</string> + </map> + <key>CLICK_ACTION_PLAY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string>When the prim is clicked, html-on-a-prim is enabled?</string> + </map> + <key>CLICK_ACTION_SIT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>When the prim is clicked, the avatar sits upon it.</string> + </map> + <key>CLICK_ACTION_TOUCH</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string>When the prim is clicked, touch events are triggered".</string> + </map> + <key>CONTENT_TYPE_ATOM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string>"application/atom+xml"</string> + </map> + <key>CONTENT_TYPE_FORM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>7</integer> + <key>tooltip</key> + <string>"application/x-www-form-urlencoded"</string> + </map> + <key>CONTENT_TYPE_HTML</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>"text/html", only valid for embedded browsers on content owned by the person viewing. Falls back to "text/plain" otherwise.</string> + </map> + <key>CONTENT_TYPE_JSON</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string>"application/json"</string> + </map> + <key>CONTENT_TYPE_LLSD</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string>"application/llsd+xml"</string> + </map> + <key>CONTENT_TYPE_RSS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>8</integer> + <key>tooltip</key> + <string>"application/rss+xml"</string> + </map> + <key>CONTENT_TYPE_TEXT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string>"text/plain"</string> + </map> + <key>CONTENT_TYPE_XHTML</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string>"application/xhtml+xml"</string> + </map> + <key>CONTENT_TYPE_XML</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>"application/xml"</string> + </map> + <key>CONTROL_BACK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x2</integer> + <key>tooltip</key> + <string>Test for the avatar move back control.</string> + </map> + <key>CONTROL_DOWN</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x20</integer> + <key>tooltip</key> + <string>Test for the avatar move down control.</string> + </map> + <key>CONTROL_FWD</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x1</integer> + <key>tooltip</key> + <string>Test for the avatar move forward control.</string> + </map> + <key>CONTROL_LBUTTON</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x10000000</integer> + <key>tooltip</key> + <string>Test for the avatar left button control.</string> + </map> + <key>CONTROL_LEFT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x4</integer> + <key>tooltip</key> + <string>Test for the avatar move left control.</string> + </map> + <key>CONTROL_ML_LBUTTON</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x40000000</integer> + <key>tooltip</key> + <string>Test for the avatar left button control while in mouse look.</string> + </map> + <key>CONTROL_RIGHT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x8</integer> + <key>tooltip</key> + <string>Test for the avatar move right control.</string> + </map> + <key>CONTROL_ROT_LEFT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x100</integer> + <key>tooltip</key> + <string>Test for the avatar rotate left control.</string> + </map> + <key>CONTROL_ROT_RIGHT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x200</integer> + <key>tooltip</key> + <string>Test for the avatar rotate right control.</string> + </map> + <key>CONTROL_UP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x10</integer> + <key>tooltip</key> + <string>Test for the avatar move up control.</string> + </map> + <key>DATA_BORN</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string>The date the agent was born, returned in ISO 8601 format of YYYY-MM-DD.</string> + </map> + <key>DATA_NAME</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>The name of the agent.</string> + </map> + <key>DATA_ONLINE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>TRUE for online, FALSE for offline.</string> + </map> + <key>DATA_PAYINFO</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>8</integer> + <key>tooltip</key> + <string/> + </map> + <key>DATA_RATING</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string>Returns the agent ratings as a comma separated string of six integers. They are: + 1) Positive rated behaviour + 2) Negative rated behaviour + 3) Positive rated appearance + 4) Negative rated appearance + 5) Positive rated building + 6) Negative rated building</string> + </map> + <key>DATA_SIM_POS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string/> + </map> + <key>DATA_SIM_RATING</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>7</integer> + <key>tooltip</key> + <string/> + </map> + <key>DATA_SIM_STATUS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string/> + </map> + <key>DEBUG_CHANNEL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2147483647</integer> + <key>tooltip</key> + <string>DEBUG_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the Script Warning/Error Window.</string> + </map> + <key>DEG_TO_RAD</key> + <map> + <key>type</key> + <string>float</string> + <key>value</key> + <real>0.01745329</real> + <key>tooltip</key> + <string>0.01745329 - Number of radians per degree. + You can use this to convert degrees to radians by multiplying the degrees by this number.</string> + </map> + <key>DENSITY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 1.0 and 22587.0 (in Kg/m^3 -- see if you can figure out what 22587 represents)</string> + </map> + <key>EOF</key> + <map> + <key>type</key> + <string>string</string> + <key>value</key> + <string>\n\n\n</string> + <key>tooltip</key> + <string/> + </map> + <key>ERR_GENERIC</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-1</integer> + <key>tooltip</key> + <string/> + </map> + <key>ERR_MALFORMED_PARAMS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-3</integer> + <key>tooltip</key> + <string/> + </map> + <key>ERR_PARCEL_PERMISSIONS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-2</integer> + <key>tooltip</key> + <string/> + </map> + <key>ERR_RUNTIME_PERMISSIONS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-4</integer> + <key>tooltip</key> + <string/> + </map> + <key>ERR_THROTTLED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-5</integer> + <key>tooltip</key> + <string/> + </map> + <key>ESTATE_ACCESS_ALLOWED_AGENT_ADD</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string>Add the agent to this estate's Allowed Residents list.</string> + </map> + <key>ESTATE_ACCESS_ALLOWED_AGENT_REMOVE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>8</integer> + <key>tooltip</key> + <string>Remove the agent from this estate's Allowed Residents list.</string> + </map> + <key>ESTATE_ACCESS_ALLOWED_GROUP_ADD</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>16</integer> + <key>tooltip</key> + <string>Add the group to this estate's Allowed groups list.</string> + </map> + <key>ESTATE_ACCESS_ALLOWED_GROUP_REMOVE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>32</integer> + <key>tooltip</key> + <string>Remove the group from this estate's Allowed groups list.</string> + </map> + <key>ESTATE_ACCESS_BANNED_AGENT_ADD</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>64</integer> + <key>tooltip</key> + <string>Add the agent to this estate's Banned residents list.</string> + </map> + <key>ESTATE_ACCESS_BANNED_AGENT_REMOVE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>128</integer> + <key>tooltip</key> + <string>Remove the agent from this estate's Banned residents list.</string> + </map> + <key>FALSE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string>An integer constant for boolean comparisons. Has the value '0'.</string> + </map> + <key>FORCE_DIRECT_PATH</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>Makes character navigate in a straight line toward position. May be set to TRUE or FALSE.</string> + </map> + <key>FRICTION</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>Used with llSetPhysicsMaterial to enable the friction value. Must be between 0.0 and 255.0</string> + </map> + <key>GRAVITY_MULTIPLIER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>8</integer> + <key>tooltip</key> + <string>Used with llSetPhysicsMaterial to enable the gravity multiplier value. Must be between -1.0 and +28.0</string> + </map> + <key>HORIZONTAL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>HTTP_BODY_MAXLENGTH</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>HTTP_BODY_TRUNCATED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>HTTP_CUSTOM_HEADER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string>Add an extra custom HTTP header to the request. The first string is the name of the parameter to change, e.g. "Pragma", and the second string is the value, e.g. "no-cache". Up to 8 custom headers may be configured per request. Note that certain headers, such as the default headers, are blocked for security reasons.</string> + </map> + <key>HTTP_METHOD</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>HTTP_MIMETYPE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>HTTP_PRAGMA_NO_CACHE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string>Allows enabling/disbling of the "Pragma: no-cache" header.\nUsage: [HTTP_PRAGMA_NO_CACHE, integer SendHeader]. When SendHeader is TRUE, the "Pragma: no-cache" header is sent by the script. This matches the default behavior. When SendHeader is FALSE, no "Pragma" header is sent by the script.</string> + </map> + <key>HTTP_VERBOSE_THROTTLE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string/> + </map> + <key>HTTP_VERIFY_CERT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string/> + </map> + <key>INVENTORY_ALL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-1</integer> + <key>tooltip</key> + <string/> + </map> + <key>INVENTORY_ANIMATION</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>20</integer> + <key>tooltip</key> + <string/> + </map> + <key>INVENTORY_BODYPART</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>13</integer> + <key>tooltip</key> + <string/> + </map> + <key>INVENTORY_CLOTHING</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string/> + </map> + <key>INVENTORY_GESTURE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>21</integer> + <key>tooltip</key> + <string/> + </map> + <key>INVENTORY_LANDMARK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string/> + </map> + <key>INVENTORY_NONE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-1</integer> + <key>tooltip</key> + <string/> + </map> + <key>INVENTORY_NOTECARD</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>7</integer> + <key>tooltip</key> + <string/> + </map> + <key>INVENTORY_OBJECT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string/> + </map> + <key>INVENTORY_SCRIPT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>10</integer> + <key>tooltip</key> + <string/> + </map> + <key>INVENTORY_SOUND</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>INVENTORY_TEXTURE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>JSON_APPEND</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-1</integer> + <key>tooltip</key> + <string/> + </map> + <key>JSON_ARRAY</key> + <map> + <key>type</key> + <string>string</string> + <key>value</key> + <string>U+FDD2</string> + <key>tooltip</key> + <string/> + </map> + <key>JSON_DELETE</key> + <map> + <key>type</key> + <string>string</string> + <key>value</key> + <string>U+FDD8</string> + <key>tooltip</key> + <string/> + </map> + <key>JSON_FALSE</key> + <map> + <key>type</key> + <string>string</string> + <key>value</key> + <string>U+FDD7</string> + <key>tooltip</key> + <string/> + </map> + <key>JSON_INVALID</key> + <map> + <key>type</key> + <string>string</string> + <key>value</key> + <string>U+FDD0</string> + <key>tooltip</key> + <string/> + </map> + <key>JSON_NULL</key> + <map> + <key>type</key> + <string>string</string> + <key>value</key> + <string>U+FDD5</string> + <key>tooltip</key> + <string/> + </map> + <key>JSON_NUMBER</key> + <map> + <key>type</key> + <string>string</string> + <key>value</key> + <string>U+FDD3</string> + <key>tooltip</key> + <string/> + </map> + <key>JSON_OBJECT</key> + <map> + <key>type</key> + <string>string</string> + <key>value</key> + <string>U+FDD1</string> + <key>tooltip</key> + <string/> + </map> + <key>JSON_STRING</key> + <map> + <key>type</key> + <string>string</string> + <key>value</key> + <string>U+FDD4</string> + <key>tooltip</key> + <string/> + </map> + <key>JSON_TRUE</key> + <map> + <key>type</key> + <string>string</string> + <key>value</key> + <string>U+FDD6</string> + <key>tooltip</key> + <string/> + </map> + <key>KFM_CMD_PAUSE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>For use with KFM_COMMAND.</string> + </map> + <key>KFM_CMD_PLAY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string>For use with KFM_COMMAND.</string> + </map> + <key>KFM_CMD_STOP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>For use with KFM_COMMAND.</string> + </map> + <key>KFM_COMMAND</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>KFM_DATA</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>KFM_FORWARD</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string>For use with KFM_MODE.</string> + </map> + <key>KFM_LOOP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>For use with KFM_MODE.</string> + </map> + <key>KFM_MODE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>KFM_PING_PONG</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>For use with KFM_MODE.</string> + </map> + <key>KFM_REVERSE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>For use with KFM_MODE.</string> + </map> + <key>KFM_ROTATION</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>For use with KFM_DATA.</string> + </map> + <key>KFM_TRANSLATION</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>For use with KFM_DATA.</string> + </map> + <key>LAND_LARGE_BRUSH</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string>Use a large brush size.</string> + </map> + <key>LAND_LEVEL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string>Action to level the land.</string> + </map> + <key>LAND_LOWER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>Action to lower the land.</string> + </map> + <key>LAND_MEDIUM_BRUSH</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>Use a medium brush size.</string> + </map> + <key>LAND_NOISE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string/> + </map> + <key>LAND_RAISE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>Action to raise the land.</string> + </map> + <key>LAND_REVERT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string/> + </map> + <key>LAND_SMALL_BRUSH</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>Use a small brush size.</string> + </map> + <key>LAND_SMOOTH</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string/> + </map> + <key>LINK_ALL_CHILDREN</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-3</integer> + <key>tooltip</key> + <string>This targets every object except the root in the linked set.</string> + </map> + <key>LINK_ALL_OTHERS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-2</integer> + <key>tooltip</key> + <string>This targets every object in the linked set except the object with the script.</string> + </map> + <key>LINK_ROOT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string>This targets the root of the linked set.</string> + </map> + <key>LINK_SET</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-1</integer> + <key>tooltip</key> + <string>This targets every object in the linked set.</string> + </map> + <key>LINK_THIS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-4</integer> + <key>tooltip</key> + <string>The link number of the prim containing the script.</string> + </map> + <key>LIST_STAT_GEOMETRIC_MEAN</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>9</integer> + <key>tooltip</key> + <string/> + </map> + <key>LIST_STAT_MAX</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>LIST_STAT_MEAN</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string/> + </map> + <key>LIST_STAT_MEDIAN</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string/> + </map> + <key>LIST_STAT_MIN</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>LIST_STAT_NUM_COUNT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>8</integer> + <key>tooltip</key> + <string/> + </map> + <key>LIST_STAT_RANGE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>LIST_STAT_STD_DEV</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string/> + </map> + <key>LIST_STAT_SUM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string/> + </map> + <key>LIST_STAT_SUM_SQUARES</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>7</integer> + <key>tooltip</key> + <string/> + </map> + <key>LOOP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x2</integer> + <key>tooltip</key> + <string>Loop the texture animation.</string> + </map> + <key>MASK_BASE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>MASK_EVERYONE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string/> + </map> + <key>MASK_GROUP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>MASK_NEXT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string/> + </map> + <key>MASK_OWNER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>NULL_KEY</key> + <map> + <key>type</key> + <string>key</string> + <key>value</key> + <uuid>00000000-0000-0000-0000-000000000000</uuid> + <key>tooltip</key> + <string/> + </map> + <key>OBJECT_ATTACHED_POINT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>19</integer> + <key>tooltip</key> + <string>Gets the attachment point to which the object is attached.\nReturns 0 if the object is not an attachment (or is an avatar, etc).</string> + </map> + <key>OBJECT_CHARACTER_TIME</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>17</integer> + <key>tooltip</key> + <string>Units in seconds</string> + </map> + <key>OBJECT_CREATOR</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>8</integer> + <key>tooltip</key> + <string>Gets the object's creator key. If id is an avatar, a NULL_KEY is returned.</string> + </map> + <key>OBJECT_DESC</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>Gets the object's description. If id is an avatar, an empty string is returned.</string> + </map> + <key>OBJECT_GROUP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>7</integer> + <key>tooltip</key> + <string>Gets the prims's group key. If id is an avatar, a NULL_KEY is returned.</string> + </map> + <key>OBJECT_NAME</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>Gets the object's name.</string> + </map> + <key>OBJECT_OWNER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string>Gets an object's owner's key. If id is group owned, a NULL_KEY is returned.</string> + </map> + <key>OBJECT_PATHFINDING_TYPE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>20</integer> + <key>tooltip</key> + <string>Returns the pathfinding setting of any object in the region. It returns an integer matching one of the OPT_* constants.</string> + </map> + <key>OBJECT_PHANTOM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>22</integer> + <key>tooltip</key> + <string>Returns boolean, detailing if phantom is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string> + </map> + <key>OBJECT_PHYSICS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>21</integer> + <key>tooltip</key> + <string>Returns boolean, detailing if physics is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string> + </map> + <key>OBJECT_PHYSICS_COST</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>16</integer> + <key>tooltip</key> + <string/> + </map> + <key>OBJECT_POS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string>Gets the object's position in region coordinates.</string> + </map> + <key>OBJECT_PRIM_EQUIVALENCE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>13</integer> + <key>tooltip</key> + <string/> + </map> + <key>OBJECT_RETURN_PARCEL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>OBJECT_RETURN_PARCEL_OWNER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>OBJECT_RETURN_REGION</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string/> + </map> + <key>OBJECT_ROOT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>18</integer> + <key>tooltip</key> + <string>Gets the id of the root prim of the object requested.\nIf id is an avatar, return the id of the root prim of the linkset the avatar is sitting on (or the avatar's own id if the avatar is not sitting on an object within the region).</string> + </map> + <key>OBJECT_ROT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string>Gets the object's rotation.</string> + </map> + <key>OBJECT_RUNNING_SCRIPT_COUNT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>9</integer> + <key>tooltip</key> + <string/> + </map> + <key>OBJECT_SCRIPT_MEMORY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>11</integer> + <key>tooltip</key> + <string/> + </map> + <key>OBJECT_SCRIPT_TIME</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>12</integer> + <key>tooltip</key> + <string/> + </map> + <key>OBJECT_SERVER_COST</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>14</integer> + <key>tooltip</key> + <string/> + </map> + <key>OBJECT_STREAMING_COST</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>15</integer> + <key>tooltip</key> + <string/> + </map> + <key>OBJECT_TEMP_ON_REZ</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>23</integer> + <key>tooltip</key> + <string>Returns boolean, detailing if temporary is enabled or disabled on the object.</string> + </map> + <key>OBJECT_TOTAL_SCRIPT_COUNT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>10</integer> + <key>tooltip</key> + <string/> + </map> + <key>OBJECT_UNKNOWN_DETAIL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-1</integer> + <key>tooltip</key> + <string/> + </map> + <key>OBJECT_VELOCITY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string>Gets the object's velocity.</string> + </map> + <key>OPT_AVATAR</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>Returned for avatars.</string> + </map> + <key>OPT_CHARACTER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>Returned for pathfinding characters.</string> + </map> + <key>OPT_EXCLUSION_VOLUME</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string>Returned for exclusion volumes.</string> + </map> + <key>OPT_LEGACY_LINKSET</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string>Returned for movable obstacles, movable phantoms, physical, and volumedetect objects.</string> + </map> + <key>OPT_MATERIAL_VOLUME</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string>Returned for material volumes.</string> + </map> + <key>OPT_OTHER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-1</integer> + <key>tooltip</key> + <string>Returned for attachments, Linden trees, and grass.</string> + </map> + <key>OPT_STATIC_OBSTACLE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string>Returned for static obstacles.</string> + </map> + <key>OPT_WALKABLE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string>Returned for walkable objects.</string> + </map> + <key>PARCEL_COUNT_GROUP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_COUNT_OTHER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_COUNT_OWNER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_COUNT_SELECTED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_COUNT_TEMP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_COUNT_TOTAL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_DETAILS_AREA</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string>The parcel's area, in square meters. (5 chars.).</string> + </map> + <key>PARCEL_DETAILS_DESC</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>The description of the parcel. (127 chars).</string> + </map> + <key>PARCEL_DETAILS_GROUP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string>The parcel group's key. (36 chars.).</string> + </map> + <key>PARCEL_DETAILS_ID</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string>The parcel's key. (36 chars.).</string> + </map> + <key>PARCEL_DETAILS_NAME</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string>The name of the parcel. (63 chars.).</string> + </map> + <key>PARCEL_DETAILS_OWNER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>The parcel owner's key. (36 chars.).</string> + </map> + <key>PARCEL_DETAILS_SEE_AVATARS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string>The parcel's avatar visibility setting. (1 char.).</string> + </map> + <key>PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x08000000</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x4000000</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_FLAG_ALLOW_CREATE_OBJECTS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x40</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_FLAG_ALLOW_DAMAGE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x20</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_FLAG_ALLOW_FLY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x1</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x10000000</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_FLAG_ALLOW_GROUP_SCRIPTS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x2000000</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_FLAG_ALLOW_LANDMARK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x8</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_FLAG_ALLOW_SCRIPTS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x2</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_FLAG_ALLOW_TERRAFORM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x10</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_FLAG_LOCAL_SOUND_ONLY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x8000</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_FLAG_RESTRICT_PUSHOBJECT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x200000</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_FLAG_USE_ACCESS_GROUP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x100</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_FLAG_USE_ACCESS_LIST</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x200</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_FLAG_USE_BAN_LIST</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x400</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_FLAG_USE_LAND_PASS_LIST</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x800</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_MEDIA_COMMAND_AGENT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>7</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_MEDIA_COMMAND_AUTO_ALIGN</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>9</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_MEDIA_COMMAND_DESC</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>12</integer> + <key>tooltip</key> + <string>Use this to get or set the parcel media description.</string> + </map> + <key>PARCEL_MEDIA_COMMAND_LOOP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_MEDIA_COMMAND_LOOP_SET</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>13</integer> + <key>tooltip</key> + <string>Used to get or set the parcel's media looping variable.</string> + </map> + <key>PARCEL_MEDIA_COMMAND_PAUSE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_MEDIA_COMMAND_PLAY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_MEDIA_COMMAND_SIZE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>11</integer> + <key>tooltip</key> + <string>Use this to get or set the parcel media pixel resolution.</string> + </map> + <key>PARCEL_MEDIA_COMMAND_STOP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_MEDIA_COMMAND_TEXTURE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_MEDIA_COMMAND_TIME</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_MEDIA_COMMAND_TYPE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>10</integer> + <key>tooltip</key> + <string>Use this to get or set the parcel media MIME type (e.g. "text/html").</string> + </map> + <key>PARCEL_MEDIA_COMMAND_UNLOAD</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>8</integer> + <key>tooltip</key> + <string/> + </map> + <key>PARCEL_MEDIA_COMMAND_URL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string/> + </map> + <key>PASSIVE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x4</integer> + <key>tooltip</key> + <string>Static in-world objects.</string> + </map> + <key>PATROL_PAUSE_AT_WAYPOINTS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>PAY_DEFAULT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-2</integer> + <key>tooltip</key> + <string/> + </map> + <key>PAY_HIDE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-1</integer> + <key>tooltip</key> + <string/> + </map> + <key>PAYMENT_INFO_ON_FILE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>PAYMENT_INFO_USED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>PERM_ALL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x7FFFFFFF</integer> + <key>tooltip</key> + <string/> + </map> + <key>PERM_COPY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x8000</integer> + <key>tooltip</key> + <string/> + </map> + <key>PERM_MODIFY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x4000</integer> + <key>tooltip</key> + <string/> + </map> + <key>PERM_MOVE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x80000</integer> + <key>tooltip</key> + <string/> + </map> + <key>PERM_TRANSFER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x2000</integer> + <key>tooltip</key> + <string/> + </map> + <key>PERMISSION_ATTACH</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x20</integer> + <key>tooltip</key> + <string>If this permission is enabled, the object can successfully call llAttachToAvatar to attach to the given avatar.</string> + </map> + <key>PERMISSION_CHANGE_JOINTS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x100</integer> + <key>tooltip</key> + <string>(not yet implemented)</string> + </map> + <key>PERMISSION_CHANGE_LINKS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x80</integer> + <key>tooltip</key> + <string>If this permission is enabled, the object can successfully call llCreateLink, llBreakLink, and llBreakAllLinks to change links to other objects.</string> + </map> + <key>PERMISSION_CHANGE_PERMISSIONS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x200</integer> + <key>tooltip</key> + <string>(not yet implemented)</string> + </map> + <key>PERMISSION_CONTROL_CAMERA</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x800</integer> + <key>tooltip</key> + <string/> + </map> + <key>PERMISSION_DEBIT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x2</integer> + <key>tooltip</key> + <string>If this permission is enabled, the object can successfully call llGiveMoney or llTransferLindenDollars to debit the owners account.</string> + </map> + <key>PERMISSION_OVERRIDE_ANIMATIONS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x8000</integer> + <key>tooltip</key> + <string>Permission to override default animations.</string> + </map> + <key>PERMISSION_RELEASE_OWNERSHIP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x40</integer> + <key>tooltip</key> + <string>(not yet implemented)</string> + </map> + <key>PERMISSION_REMAP_CONTROLS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x8</integer> + <key>tooltip</key> + <string>(not yet implemented)</string> + </map> + <key>PERMISSION_RETURN_OBJECTS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>65536</integer> + <key>tooltip</key> + <string/> + </map> + <key>PERMISSION_TAKE_CONTROLS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x4</integer> + <key>tooltip</key> + <string>If this permission enabled, the object can successfully call the llTakeControls libray call.</string> + </map> + <key>PERMISSION_TELEPORT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x1000</integer> + <key>tooltip</key> + <string/> + </map> + <key>PERMISSION_TRACK_CAMERA</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x400</integer> + <key>tooltip</key> + <string/> + </map> + <key>PERMISSION_TRIGGER_ANIMATION</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x10</integer> + <key>tooltip</key> + <string>If this permission is enabled, the object can successfully call llStartAnimation for the avatar that owns this.</string> + </map> + <key>PI</key> + <map> + <key>type</key> + <string>float</string> + <key>value</key> + <real>3.14159265</real> + <key>tooltip</key> + <string>3.14159265 - The number of radians in a semi-circle.</string> + </map> + <key>PI_BY_TWO</key> + <map> + <key>type</key> + <string>float</string> + <key>value</key> + <real>1.57079633</real> + <key>tooltip</key> + <string>1.57079633 - The number of radians in a quarter circle.</string> + </map> + <key>PING_PONG</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x8</integer> + <key>tooltip</key> + <string>Play animation going forwards, then backwards.</string> + </map> + <key>PRIM_BUMP_BARK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_BUMP_BLOBS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>12</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_BUMP_BRICKS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_BUMP_BRIGHT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_BUMP_CHECKER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_BUMP_CONCRETE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>7</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_BUMP_DARK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_BUMP_DISKS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>10</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_BUMP_GRAVEL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>11</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_BUMP_LARGETILE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>14</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_BUMP_NONE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_BUMP_SHINY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>19</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_BUMP_SIDING</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>13</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_BUMP_STONE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>9</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_BUMP_STUCCO</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>15</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_BUMP_SUCTION</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>16</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_BUMP_TILE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>8</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_BUMP_WEAVE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>17</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_BUMP_WOOD</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_CAST_SHADOWS</key> + <map> + <key>deprecated</key> + <boolean>true</boolean> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>24</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_COLOR</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>18</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_DESC</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>28</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_FLEXIBLE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>21</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_FULLBRIGHT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>20</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_GLOW</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>25</integer> + <key>tooltip</key> + <string>PRIM_GLOW is used to get or set the glow status of the face.</string> + </map> + <key>PRIM_HOLE_CIRCLE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x10</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_HOLE_DEFAULT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x00</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_HOLE_SQUARE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x20</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_HOLE_TRIANGLE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x30</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_LINK_TARGET</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>34</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_MATERIAL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_MATERIAL_FLESH</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_MATERIAL_GLASS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_MATERIAL_LIGHT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>7</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_MATERIAL_METAL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_MATERIAL_PLASTIC</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_MATERIAL_RUBBER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_MATERIAL_STONE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_MATERIAL_WOOD</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_MEDIA_ALT_IMAGE_ENABLE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string>Boolean. Gets/Sets the default image state (the image that the user sees before a piece of media is active) for the chosen face. The default image is specified by Second Life's server for that media type.</string> + </map> + <key>PRIM_MEDIA_AUTO_LOOP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string>Boolean. Gets/Sets whether auto-looping is enabled.</string> + </map> + <key>PRIM_MEDIA_AUTO_PLAY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string>Boolean. Gets/Sets whether the media auto-plays when a Resident can view it.</string> + </map> + <key>PRIM_MEDIA_AUTO_SCALE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string>Boolean. Gets/Sets whether auto-scaling is enabled. Auto-scaling forces the media to the full size of the texture.</string> + </map> + <key>PRIM_MEDIA_AUTO_ZOOM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>7</integer> + <key>tooltip</key> + <string>Boolean. Gets/Sets whether clicking the media triggers auto-zoom and auto-focus on the media.</string> + </map> + <key>PRIM_MEDIA_CONTROLS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>Integer. Gets/Sets the style of controls. Can be either PRIM_MEDIA_CONTROLS_STANDARD or PRIM_MEDIA_CONTROLS_MINI.</string> + </map> + <key>PRIM_MEDIA_CONTROLS_MINI</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>Mini web navigation controls; does not include an address bar.</string> + </map> + <key>PRIM_MEDIA_CONTROLS_STANDARD</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string>Standard web navigation controls.</string> + </map> + <key>PRIM_MEDIA_CURRENT_URL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>String. Gets/Sets the current url displayed on the chosen face. Changing this URL causes navigation. 1024 characters Maximum.</string> + </map> + <key>PRIM_MEDIA_FIRST_CLICK_INTERACT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>8</integer> + <key>tooltip</key> + <string>Boolean. Gets/Sets whether the first click interaction is enabled.</string> + </map> + <key>PRIM_MEDIA_HEIGHT_PIXELS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>10</integer> + <key>tooltip</key> + <string>Integer. Gets/Sets the height of the media in pixels.</string> + </map> + <key>PRIM_MEDIA_HOME_URL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string>String. Gets/Sets the home URL for the chosen face. 1024 characters maximum.</string> + </map> + <key>PRIM_MEDIA_PERM_ANYONE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_MEDIA_PERM_GROUP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_MEDIA_PERM_NONE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_MEDIA_PERM_OWNER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_MEDIA_PERMS_CONTROL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>14</integer> + <key>tooltip</key> + <string>Integer. Gets/Sets the permissions mask that control who can see the media control bar above the object:: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string> + </map> + <key>PRIM_MEDIA_PERMS_INTERACT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>13</integer> + <key>tooltip</key> + <string>Integer. Gets/Sets the permissions mask that control who can interact with the object: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string> + </map> + <key>PRIM_MEDIA_WHITELIST</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>12</integer> + <key>tooltip</key> + <string>String. Gets/Sets the white-list as a string of escaped, comma-separated URLs. This string can hold up to 64 URLs or 1024 characters, whichever comes first.</string> + </map> + <key>PRIM_MEDIA_WHITELIST_ENABLE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>11</integer> + <key>tooltip</key> + <string>Boolean. Gets/Sets whether navigation is restricted to URLs in PRIM_MEDIA_WHITELIST.</string> + </map> + <key>PRIM_MEDIA_WIDTH_PIXELS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>9</integer> + <key>tooltip</key> + <string>Integer. Gets/Sets the width of the media in pixels.</string> + </map> + <key>PRIM_NAME</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>27</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_OMEGA</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>32</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_PHANTOM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_PHYSICS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_PHYSICS_SHAPE_CONVEX</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>Use the convex hull of the prim shape for physics (this is the default for mesh objects).</string> + </map> + <key>PRIM_PHYSICS_SHAPE_NONE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>Ignore this prim in the physics shape. NB: This cannot be applied to the root prim.</string> + </map> + <key>PRIM_PHYSICS_SHAPE_PRIM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string>Use the normal prim shape for physics (this is the default for all non-mesh objects).</string> + </map> + <key>PRIM_PHYSICS_SHAPE_TYPE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>30</integer> + <key>tooltip</key> + <string>Allows you to set the physics shape type of a prim via lsl. Permitted values are: + PRIM_PHYSICS_SHAPE_NONE, PRIM_PHYSICS_SHAPE_PRIM, PRIM_PHYSICS_SHAPE_CONVEX</string> + </map> + <key>PRIM_POINT_LIGHT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>23</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_POS_LOCAL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>33</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_POSITION</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_ROT_LOCAL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>29</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_ROTATION</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>8</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_SCULPT_FLAG_INVERT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>64</integer> + <key>tooltip</key> + <string>Render inside out (inverts the normals).</string> + </map> + <key>PRIM_SCULPT_FLAG_MIRROR</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>128</integer> + <key>tooltip</key> + <string>Render an X axis mirror of the sculpty.</string> + </map> + <key>PRIM_SCULPT_TYPE_CYLINDER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_SCULPT_TYPE_MASK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>7</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_SCULPT_TYPE_PLANE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_SCULPT_TYPE_SPHERE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_SCULPT_TYPE_TORUS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_SHINY_HIGH</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_SHINY_LOW</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_SHINY_MEDIUM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_SHINY_NONE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_SIZE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>7</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_SLICE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>35</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_TEMP_ON_REZ</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_TEXGEN</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>22</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_TEXGEN_DEFAULT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_TEXGEN_PLANAR</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_TEXT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>26</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_TEXTURE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>17</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_TYPE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>9</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_TYPE_BOX</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_TYPE_CYLINDER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_TYPE_PRISM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_TYPE_RING</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_TYPE_SCULPT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>7</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_TYPE_SPHERE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_TYPE_TORUS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string/> + </map> + <key>PRIM_TYPE_TUBE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string/> + </map> + <key>PROFILE_NONE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string>Disables profiling</string> + </map> + <key>PROFILE_SCRIPT_MEMORY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>Enables memory profiling</string> + </map> + <key>PSYS_PART_BOUNCE_MASK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x4</integer> + <key>tooltip</key> + <string>Particles bounce off of a plane at the objects Z height.</string> + </map> + <key>PSYS_PART_EMISSIVE_MASK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x100</integer> + <key>tooltip</key> + <string>The particle glows.</string> + </map> + <key>PSYS_PART_END_ALPHA</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string>A float which determines the ending alpha of the object.</string> + </map> + <key>PSYS_PART_END_COLOR</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string>A vector <r, g, b> which determines the ending colour of the object.</string> + </map> + <key>PSYS_PART_END_SCALE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string>A vector <sx, sy, z>, which is the ending size of the particle billboard in meters (z is ignored).</string> + </map> + <key>PSYS_PART_FLAGS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string>Each particle that is emitted by the particle system is simulated based on the following flags. To use multiple flags, bitwise or (|) them together.</string> + </map> + <key>PSYS_PART_FOLLOW_SRC_MASK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x10</integer> + <key>tooltip</key> + <string>The particle position is relative to the source objects position.</string> + </map> + <key>PSYS_PART_FOLLOW_VELOCITY_MASK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x20</integer> + <key>tooltip</key> + <string>The particle orientation is rotated so the vertical axis faces towards the particle velocity.</string> + </map> + <key>PSYS_PART_INTERP_COLOR_MASK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x1</integer> + <key>tooltip</key> + <string>Interpolate both the colour and alpha from the start value to the end value.</string> + </map> + <key>PSYS_PART_INTERP_SCALE_MASK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x2</integer> + <key>tooltip</key> + <string>Interpolate the particle scale from the start value to the end value.</string> + </map> + <key>PSYS_PART_MAX_AGE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>19</integer> + <key>tooltip</key> + <string>Age in seconds of a particle at which it dies.</string> + </map> + <key>PSYS_PART_START_ALPHA</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>A float which determines the starting alpha of the object.</string> + </map> + <key>PSYS_PART_START_COLOR</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>A vector <r.r, g.g, b.b> which determines the starting colour of the object.</string> + </map> + <key>PSYS_PART_START_SCALE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string>A vector <sx, sy, z>, which is the starting size of the particle billboard in meters (z is ignored).</string> + </map> + <key>PSYS_PART_TARGET_LINEAR_MASK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x80</integer> + <key>tooltip</key> + <string/> + </map> + <key>PSYS_PART_TARGET_POS_MASK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x40</integer> + <key>tooltip</key> + <string>The particle heads towards the location of the target object as defined by PSYS_SRC_TARGET_KEY.</string> + </map> + <key>PSYS_PART_WIND_MASK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x8</integer> + <key>tooltip</key> + <string>Particles have their velocity damped towards the wind velocity.</string> + </map> + <key>PSYS_SRC_ACCEL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>8</integer> + <key>tooltip</key> + <string>A vector <x, y, z> which is the acceleration to apply on particles.</string> + </map> + <key>PSYS_SRC_ANGLE_BEGIN</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>22</integer> + <key>tooltip</key> + <string>Area in radians specifying where particles will NOT be created (for ANGLE patterns)</string> + </map> + <key>PSYS_SRC_ANGLE_END</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>23</integer> + <key>tooltip</key> + <string>Area in radians filled with particles (for ANGLE patterns) (if lower than PSYS_SRC_ANGLE_BEGIN, acts as PSYS_SRC_ANGLE_BEGIN itself, and PSYS_SRC_ANGLE_BEGIN acts as PSYS_SRC_ANGLE_END).</string> + </map> + <key>PSYS_SRC_BURST_PART_COUNT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>15</integer> + <key>tooltip</key> + <string>How many particles to release in a burst.</string> + </map> + <key>PSYS_SRC_BURST_RADIUS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>16</integer> + <key>tooltip</key> + <string>What distance from the center of the object to create the particles.</string> + </map> + <key>PSYS_SRC_BURST_RATE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>13</integer> + <key>tooltip</key> + <string>How often to release a particle burst (float seconds).</string> + </map> + <key>PSYS_SRC_BURST_SPEED_MAX</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>18</integer> + <key>tooltip</key> + <string>Maximum speed that a particle should be moving.</string> + </map> + <key>PSYS_SRC_BURST_SPEED_MIN</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>17</integer> + <key>tooltip</key> + <string>Minimum speed that a particle should be moving.</string> + </map> + <key>PSYS_SRC_INNERANGLE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>10</integer> + <key>tooltip</key> + <string>Specifies the inner angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern. + The area specified will NOT have particles in it.</string> + </map> + <key>PSYS_SRC_MAX_AGE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>19</integer> + <key>tooltip</key> + <string>How long this particle system should last, 0.0 means forever.</string> + </map> + <key>PSYS_SRC_OMEGA</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>21</integer> + <key>tooltip</key> + <string>Sets the angular velocity to rotate the axis that SRC_PATTERN_ANGLE and SRC_PATTERN_ANGLE_CONE use.</string> + </map> + <key>PSYS_SRC_OUTERANGLE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>11</integer> + <key>tooltip</key> + <string>Specifies the outer angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern. + The area between the outer and inner angle will be filled with particles.</string> + </map> + <key>PSYS_SRC_PATTERN</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>9</integer> + <key>tooltip</key> + <string>The pattern which is used to generate particles. + Use one of the following values: PSYS_SRC_PATTERN Values.</string> + </map> + <key>PSYS_SRC_PATTERN_ANGLE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x04</integer> + <key>tooltip</key> + <string>Shoot particles across a 2 dimensional area defined by the arc created from PSYS_SRC_OUTERANGLE. There will be an open area defined by PSYS_SRC_INNERANGLE within the larger arc.</string> + </map> + <key>PSYS_SRC_PATTERN_ANGLE_CONE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x08</integer> + <key>tooltip</key> + <string>Shoot particles out in a 3 dimensional cone with an outer arc of PSYS_SRC_OUTERANGLE and an inner open area defined by PSYS_SRC_INNERANGLE.</string> + </map> + <key>PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x10</integer> + <key>tooltip</key> + <string/> + </map> + <key>PSYS_SRC_PATTERN_DROP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x01</integer> + <key>tooltip</key> + <string>Drop particles at the source position.</string> + </map> + <key>PSYS_SRC_PATTERN_EXPLODE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x02</integer> + <key>tooltip</key> + <string>Shoot particles out in all directions, using the burst parameters.</string> + </map> + <key>PSYS_SRC_TARGET_KEY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>20</integer> + <key>tooltip</key> + <string>The key of a target object to move towards if PSYS_PART_TARGET_POS_MASK is enabled.</string> + </map> + <key>PSYS_SRC_TEXTURE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>12</integer> + <key>tooltip</key> + <string>An asset name for the texture to use for the particles.</string> + </map> + <key>PU_EVADE_HIDDEN</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x07</integer> + <key>tooltip</key> + <string>Triggered when an llEvade character thinks it has hidden from its pursuer.</string> + </map> + <key>PU_EVADE_SPOTTED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x08</integer> + <key>tooltip</key> + <string>Triggered when an llEvade character switches from hiding to running</string> + </map> + <key>PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>10</integer> + <key>tooltip</key> + <string/> + </map> + <key>PU_FAILURE_INVALID_GOAL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x03</integer> + <key>tooltip</key> + <string>Goal is not on the navigation-mesh and cannot be reached.</string> + </map> + <key>PU_FAILURE_INVALID_START</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x02</integer> + <key>tooltip</key> + <string>Character cannot navigate from the current location - e.g., the character is off the navmesh or too high above it.</string> + </map> + <key>PU_FAILURE_NO_NAVMESH</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x09</integer> + <key>tooltip</key> + <string>This is a fatal error reported to a character when there is no navmesh for the region. This usually indicates a server failure and users should file a bug report and include the time and region in which they received this message.</string> + </map> + <key>PU_FAILURE_NO_VALID_DESTINATION</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x06</integer> + <key>tooltip</key> + <string>There is no good place for the character to go - e.g., it is patrolling and all the patrol points are now unreachable.</string> + </map> + <key>PU_FAILURE_OTHER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1000000</integer> + <key>tooltip</key> + <string/> + </map> + <key>PU_FAILURE_PARCEL_UNREACHABLE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>11</integer> + <key>tooltip</key> + <string/> + </map> + <key>PU_FAILURE_TARGET_GONE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x05</integer> + <key>tooltip</key> + <string>Target (for llPursue or llEvade) can no longer be tracked - e.g., it left the region or is an avatar that is now more than about 30m outside the region.</string> + </map> + <key>PU_FAILURE_UNREACHABLE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x04</integer> + <key>tooltip</key> + <string>Goal is no longer reachable for some reason - e.g., an obstacle blocks the path.</string> + </map> + <key>PU_GOAL_REACHED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x01</integer> + <key>tooltip</key> + <string>Character has reached the goal and will stop or choose a new goal (if wandering).</string> + </map> + <key>PU_SLOWDOWN_DISTANCE_REACHED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x00</integer> + <key>tooltip</key> + <string>Character is near current goal.</string> + </map> + <key>PUBLIC_CHANNEL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string>PUBLIC_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the publicly heard chat channel.</string> + </map> + <key>PURSUIT_FUZZ_FACTOR</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string>Selects a random destination near the offset.</string> + </map> + <key>PURSUIT_GOAL_TOLERANCE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string/> + </map> + <key>PURSUIT_INTERCEPT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string>Define whether the character attempts to predict the target's location.</string> + </map> + <key>PURSUIT_OFFSET</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>Go to a position offset from the target.</string> + </map> + <key>RAD_TO_DEG</key> + <map> + <key>type</key> + <string>float</string> + <key>value</key> + <real>57.2957795</real> + <key>tooltip</key> + <string>57.2957795 - Number of degrees per radian. You can use this number to convert radians to degrees by multiplying the radians by this number.</string> + </map> + <key>RC_DATA_FLAGS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>RC_DETECT_PHANTOM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>RC_GET_LINK_NUM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string/> + </map> + <key>RC_GET_NORMAL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>RC_GET_ROOT_KEY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>RC_MAX_HITS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string/> + </map> + <key>RC_REJECT_AGENTS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>RC_REJECT_LAND</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>8</integer> + <key>tooltip</key> + <string/> + </map> + <key>RC_REJECT_NONPHYSICAL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string/> + </map> + <key>RC_REJECT_PHYSICAL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>RC_REJECT_TYPES</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>RCERR_CAST_TIME_EXCEEDED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-3</integer> + <key>tooltip</key> + <string/> + </map> + <key>RCERR_SIM_PERF_LOW</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-2</integer> + <key>tooltip</key> + <string/> + </map> + <key>RCERR_UNKNOWN</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>-1</integer> + <key>tooltip</key> + <string/> + </map> + <key>REGION_FLAG_ALLOW_DAMAGE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x1</integer> + <key>tooltip</key> + <string/> + </map> + <key>REGION_FLAG_ALLOW_DIRECT_TELEPORT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x100000</integer> + <key>tooltip</key> + <string/> + </map> + <key>REGION_FLAG_BLOCK_FLY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x80000</integer> + <key>tooltip</key> + <string/> + </map> + <key>REGION_FLAG_BLOCK_TERRAFORM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x40</integer> + <key>tooltip</key> + <string/> + </map> + <key>REGION_FLAG_DISABLE_COLLISIONS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x1000</integer> + <key>tooltip</key> + <string/> + </map> + <key>REGION_FLAG_DISABLE_PHYSICS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x4000</integer> + <key>tooltip</key> + <string/> + </map> + <key>REGION_FLAG_FIXED_SUN</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x10</integer> + <key>tooltip</key> + <string/> + </map> + <key>REGION_FLAG_RESTRICT_PUSHOBJECT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x400000</integer> + <key>tooltip</key> + <string/> + </map> + <key>REGION_FLAG_SANDBOX</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x100</integer> + <key>tooltip</key> + <string/> + </map> + <key>REMOTE_DATA_CHANNEL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>REMOTE_DATA_REPLY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string/> + </map> + <key>REMOTE_DATA_REQUEST</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>REQUIRE_LINE_OF_SIGHT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>Define whether the character needs a line-of-sight to give chase.</string> + </map> + <key>RESTITUTION</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 0.0 and 1.0</string> + </map> + <key>REVERSE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x4</integer> + <key>tooltip</key> + <string>Play animation in reverse direction.</string> + </map> + <key>ROTATE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x20</integer> + <key>tooltip</key> + <string>Animate texture rotation.</string> + </map> + <key>SCALE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x40</integer> + <key>tooltip</key> + <string>Animate the texture scale.</string> + </map> + <key>SCRIPTED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x8</integer> + <key>tooltip</key> + <string>Scripted in-world objects.</string> + </map> + <key>SIM_STAT_PCT_CHARS_STEPPED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string>Returns the % of pathfinding characters skipped each frame, averaged over the last minute.\nThe returned value corresponds to the "Characters Updated" stat in the viewer's Statistics Bar.</string> + </map> + <key>SMOOTH</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x10</integer> + <key>tooltip</key> + <string>Slide in the X direction, instead of playing separate frames.</string> + </map> + <key>SQRT2</key> + <map> + <key>type</key> + <string>float</string> + <key>value</key> + <real>1.41421356</real> + <key>tooltip</key> + <string>1.41421356 - The square root of 2.</string> + </map> + <key>STATUS_BLOCK_GRAB</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>64</integer> + <key>tooltip</key> + <string>Controls whether the object can be grabbed.\nA grab is the default action when in third person, and is available as the hand tool in build mode. This is useful for physical objects that you don't want other people to be able to trivially disturb. The default is FALSE</string> + </map> + <key>STATUS_BLOCK_GRAB_OBJECT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1024</integer> + <key>tooltip</key> + <string>Prevent click-and-drag movement on all prims in the object.</string> + </map> + <key>STATUS_BOUNDS_ERROR</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1002</integer> + <key>tooltip</key> + <string>Argument(s) passed to function had a bounds error.</string> + </map> + <key>STATUS_CAST_SHADOWS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x200</integer> + <key>tooltip</key> + <string/> + </map> + <key>STATUS_DIE_AT_EDGE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x80</integer> + <key>tooltip</key> + <string>Controls whether the object is returned to the owners inventory if it wanders off the edge of the world.\nIt is useful to set this status TRUE for things like bullets or rockets. The default is TRUE</string> + </map> + <key>STATUS_INTERNAL_ERROR</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1999</integer> + <key>tooltip</key> + <string>An internal error occurred.</string> + </map> + <key>STATUS_MALFORMED_PARAMS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1000</integer> + <key>tooltip</key> + <string>Function was called with malformed parameters.</string> + </map> + <key>STATUS_NOT_FOUND</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1003</integer> + <key>tooltip</key> + <string>Object or other item was not found.</string> + </map> + <key>STATUS_NOT_SUPPORTED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1004</integer> + <key>tooltip</key> + <string>Feature not supported.</string> + </map> + <key>STATUS_OK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string>Result of function call was a success.</string> + </map> + <key>STATUS_PHANTOM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x10</integer> + <key>tooltip</key> + <string>Controls/indicates whether the object collides or not.\nSetting the value to TRUE makes the object non-colliding with all objects. It is a good idea to use this for most objects that move or rotate, but are non-physical. It is also useful for simulating volumetric lighting. The default is FALSE.</string> + </map> + <key>STATUS_PHYSICS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x1</integer> + <key>tooltip</key> + <string>Controls/indicates whether the object moves physically.\nThis controls the same flag that the UI check-box for Physical controls. The default is FALSE.</string> + </map> + <key>STATUS_RETURN_AT_EDGE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x100</integer> + <key>tooltip</key> + <string/> + </map> + <key>STATUS_ROTATE_X</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x2</integer> + <key>tooltip</key> + <string/> + </map> + <key>STATUS_ROTATE_Y</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x4</integer> + <key>tooltip</key> + <string/> + </map> + <key>STATUS_ROTATE_Z</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x8</integer> + <key>tooltip</key> + <string>Controls/indicates whether the object can physically rotate around + the specific axis or not. This flag has no meaning + for non-physical objects. Set the value to FALSE + if you want to disable rotation around that axis. The + default is TRUE for a physical object. + A useful example to think about when visualizing + the effect is a sit-and-spin device. They spin around the + Z axis (up) but not around the X or Y axis.</string> + </map> + <key>STATUS_SANDBOX</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x20</integer> + <key>tooltip</key> + <string>Controls/indicates whether the object can cross region boundaries + and move more than 20 meters from its creation + point. The default if FALSE.</string> + </map> + <key>STATUS_TYPE_MISMATCH</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1001</integer> + <key>tooltip</key> + <string>Argument(s) passed to function had a type mismatch.</string> + </map> + <key>STATUS_WHITELIST_FAILED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2001</integer> + <key>tooltip</key> + <string>Whitelist Failed.</string> + </map> + <key>STRING_TRIM</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x03</integer> + <key>tooltip</key> + <string/> + </map> + <key>STRING_TRIM_HEAD</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x01</integer> + <key>tooltip</key> + <string/> + </map> + <key>STRING_TRIM_TAIL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x02</integer> + <key>tooltip</key> + <string/> + </map> + <key>TEXTURE_BLANK</key> + <map> + <key>type</key> + <string>key</string> + <key>value</key> + <uuid>5748decc-f629-461c-9a36-a35a221fe21f</uuid> + <key>tooltip</key> + <string/> + </map> + <key>TEXTURE_DEFAULT</key> + <map> + <key>type</key> + <string>key</string> + <key>value</key> + <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid> + <key>tooltip</key> + <string/> + </map> + <key>TEXTURE_MEDIA</key> + <map> + <key>type</key> + <string>key</string> + <key>value</key> + <uuid>8b5fec65-8d8d-9dc5-cda8-8fdf2716e361</uuid> + <key>tooltip</key> + <string/> + </map> + <key>TEXTURE_PLYWOOD</key> + <map> + <key>type</key> + <string>key</string> + <key>value</key> + <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid> + <key>tooltip</key> + <string/> + </map> + <key>TEXTURE_TRANSPARENT</key> + <map> + <key>type</key> + <string>key</string> + <key>value</key> + <uuid>8dcd4a48-2d37-4909-9f78-f7a9eb4ef903</uuid> + <key>tooltip</key> + <string/> + </map> + <key>TOUCH_INVALID_FACE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0xFFFFFFFF</integer> + <key>tooltip</key> + <string/> + </map> + <key>TOUCH_INVALID_TEXCOORD</key> + <map> + <key>type</key> + <string>vector</string> + <key>value</key> + <array> + <map> + <key>x</key> + <real>-1.0</real> + </map> + <map> + <key>y</key> + <real>-1.0</real> + </map> + <map> + <key>z</key> + <real>0.0</real> + </map> + </array> + <key>tooltip</key> + <string/> + </map> + <key>TOUCH_INVALID_VECTOR</key> + <map> + <key>type</key> + <string>vector</string> + <key>value</key> + <array> + <map> + <key>x</key> + <real>0.0</real> + </map> + <map> + <key>y</key> + <real>0.0</real> + </map> + <map> + <key>z</key> + <real>0.0</real> + </map> + </array> + <key>tooltip</key> + <string/> + </map> + <key>TRAVERSAL_TYPE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>7</integer> + <key>tooltip</key> + <string>One of TRAVERSAL_TYPE_FAST, TRAVERSAL_TYPE_SLOW, and TRAVERSAL_TYPE_NONE.</string> + </map> + <key>TRAVERSAL_TYPE_FAST</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string/> + </map> + <key>TRAVERSAL_TYPE_NONE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string/> + </map> + <key>TRAVERSAL_TYPE_SLOW</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>TRUE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>An integer constant for boolean comparisons. Has the value '1'.</string> + </map> + <key>TWO_PI</key> + <map> + <key>type</key> + <string>float</string> + <key>value</key> + <real>6.28318530</real> + <key>tooltip</key> + <string>6.28318530 - The radians of a circle.</string> + </map> + <key>TYPE_FLOAT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>The list entry is a float.</string> + </map> + <key>TYPE_INTEGER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>The list entry is an integer.</string> + </map> + <key>TYPE_INVALID</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string>The list entry is invalid.</string> + </map> + <key>TYPE_KEY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string>The list entry is a key.</string> + </map> + <key>TYPE_ROTATION</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>6</integer> + <key>tooltip</key> + <string>The list entry is a rotation.</string> + </map> + <key>TYPE_STRING</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string>The list entry is a string.</string> + </map> + <key>TYPE_VECTOR</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string>The list entry is a vector.</string> + </map> + <key>URL_REQUEST_DENIED</key> + <map> + <key>type</key> + <string>string</string> + <key>value</key> + <string>URL_REQUEST_DENIED</string> + <key>tooltip</key> + <string/> + </map> + <key>URL_REQUEST_GRANTED</key> + <map> + <key>type</key> + <string>string</string> + <key>value</key> + <string>URL_REQUEST_GRANTED</string> + <key>tooltip</key> + <string/> + </map> + <key>VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>32</integer> + <key>tooltip</key> + <string>A slider between minimum (0.0) and maximum (1.0) deflection of angular orientation. That is, its a simple scalar for modulating the strength of angular deflection such that the vehicles preferred axis of motion points toward its real velocity.</string> + </map> + <key>VEHICLE_ANGULAR_DEFLECTION_TIMESCALE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>33</integer> + <key>tooltip</key> + <string>The time-scale for exponential success of linear deflection deflection. Its another way to specify the strength of the vehicles tendency to reorient itself so that its preferred axis of motion agrees with its true velocity.</string> + </map> + <key>VEHICLE_ANGULAR_FRICTION_TIMESCALE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>17</integer> + <key>tooltip</key> + <string>A vector of timescales for exponential decay of the vehicles angular velocity about its preferred axes of motion (at, left, up). + Range = [0.07, inf) seconds for each element of the vector.</string> + </map> + <key>VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>35</integer> + <key>tooltip</key> + <string>The timescale for exponential decay of the angular motors magnitude.</string> + </map> + <key>VEHICLE_ANGULAR_MOTOR_DIRECTION</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>19</integer> + <key>tooltip</key> + <string>The direction and magnitude (in preferred frame) of the vehicles angular motor.The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.</string> + </map> + <key>VEHICLE_ANGULAR_MOTOR_TIMESCALE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>34</integer> + <key>tooltip</key> + <string>The timescale for exponential approach to full angular motor velocity.</string> + </map> + <key>VEHICLE_BANKING_EFFICIENCY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>38</integer> + <key>tooltip</key> + <string>A slider between anti (-1.0), none (0.0), and maxmum (1.0) banking strength.</string> + </map> + <key>VEHICLE_BANKING_MIX</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>39</integer> + <key>tooltip</key> + <string>A slider between static (0.0) and dynamic (1.0) banking. "Static" means the banking scales only with the angle of roll, whereas "dynamic" is a term that also scales with the vehicles linear speed.</string> + </map> + <key>VEHICLE_BANKING_TIMESCALE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>40</integer> + <key>tooltip</key> + <string>The timescale for banking to exponentially approach its maximum effect. This is another way to scale the strength of the banking effect, however it affects the term that is proportional to the difference between what the banking behavior is trying to do, and what the vehicle is actually doing.</string> + </map> + <key>VEHICLE_BUOYANCY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>27</integer> + <key>tooltip</key> + <string>A slider between minimum (0.0) and maximum anti-gravity (1.0).</string> + </map> + <key>VEHICLE_FLAG_CAMERA_DECOUPLED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x200</integer> + <key>tooltip</key> + <string/> + </map> + <key>VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x10</integer> + <key>tooltip</key> + <string>Hover at global height.</string> + </map> + <key>VEHICLE_FLAG_HOVER_TERRAIN_ONLY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x8</integer> + <key>tooltip</key> + <string>Ignore water height when hovering.</string> + </map> + <key>VEHICLE_FLAG_HOVER_UP_ONLY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x20</integer> + <key>tooltip</key> + <string>Hover does not push down. Use this flag for hovering vehicles that should be able to jump above their hover height.</string> + </map> + <key>VEHICLE_FLAG_HOVER_WATER_ONLY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x4</integer> + <key>tooltip</key> + <string>Ignore terrain height when hovering.</string> + </map> + <key>VEHICLE_FLAG_LIMIT_MOTOR_UP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x40</integer> + <key>tooltip</key> + <string>Prevents ground vehicles from motoring into the sky.</string> + </map> + <key>VEHICLE_FLAG_LIMIT_ROLL_ONLY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x2</integer> + <key>tooltip</key> + <string>For vehicles with vertical attractor that want to be able to climb/dive, for instance, aeroplanes that want to use the banking feature.</string> + </map> + <key>VEHICLE_FLAG_MOUSELOOK_BANK</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x100</integer> + <key>tooltip</key> + <string/> + </map> + <key>VEHICLE_FLAG_MOUSELOOK_STEER</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x80</integer> + <key>tooltip</key> + <string/> + </map> + <key>VEHICLE_FLAG_NO_DEFLECTION_UP</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x1</integer> + <key>tooltip</key> + <string>This flag prevents linear deflection parallel to world z-axis. This is useful for preventing ground vehicles with large linear deflection, like bumper cars, from climbing their linear deflection into the sky.</string> + </map> + <key>VEHICLE_FLAG_NO_FLY_UP</key> + <map> + <key>deprecated</key> + <boolean>true</boolean> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0x1</integer> + <key>tooltip</key> + <string>Old, changed to VEHICLE_FLAG_NO_DEFLECTION_UP</string> + </map> + <key>VEHICLE_HOVER_EFFICIENCY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>25</integer> + <key>tooltip</key> + <string>A slider between minimum (0.0 = bouncy) and maximum (1.0 = fast as possible) damped motion of the hover behavior. </string> + </map> + <key>VEHICLE_HOVER_HEIGHT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>24</integer> + <key>tooltip</key> + <string>The height (above the terrain or water, or global) at which the vehicle will try to hover.</string> + </map> + <key>VEHICLE_HOVER_TIMESCALE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>26</integer> + <key>tooltip</key> + <string>Period of time (in seconds) for the vehicle to achieve its hover height.</string> + </map> + <key>VEHICLE_LINEAR_DEFLECTION_EFFICIENCY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>28</integer> + <key>tooltip</key> + <string>A slider between minimum (0.0) and maximum (1.0) deflection of linear velocity. That is, its a simple scalar for modulating the strength of linear deflection.</string> + </map> + <key>VEHICLE_LINEAR_DEFLECTION_TIMESCALE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>29</integer> + <key>tooltip</key> + <string>The timescale for exponential success of linear deflection deflection. It is another way to specify how much time it takes for the vehicles linear velocity to be redirected to its preferred axis of motion.</string> + </map> + <key>VEHICLE_LINEAR_FRICTION_TIMESCALE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>16</integer> + <key>tooltip</key> + <string>A vector of timescales for exponential decay of the vehicles linear velocity along its preferred axes of motion (at, left, up). + Range = [0.07, inf) seconds for each element of the vector.</string> + </map> + <key>VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>35</integer> + <key>tooltip</key> + <string>The timescale for exponential decay of the linear motors magnitude.</string> + </map> + <key>VEHICLE_LINEAR_MOTOR_DIRECTION</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>18</integer> + <key>tooltip</key> + <string>The direction and magnitude (in preferred frame) of the vehicles linear motor. The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor. + Range of magnitude = [0, 30] meters/second.</string> + </map> + <key>VEHICLE_LINEAR_MOTOR_OFFSET</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>20</integer> + <key>tooltip</key> + <string/> + </map> + <key>VEHICLE_LINEAR_MOTOR_TIMESCALE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>30</integer> + <key>tooltip</key> + <string>The timescale for exponential approach to full linear motor velocity.</string> + </map> + <key>VEHICLE_REFERENCE_FRAME</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>44</integer> + <key>tooltip</key> + <string>A rotation of the vehicles preferred axes of motion and orientation (at, left, up) with respect to the vehicles local frame (x, y, z).</string> + </map> + <key>VEHICLE_TYPE_AIRPLANE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>4</integer> + <key>tooltip</key> + <string>Uses linear deflection for lift, no hover, and banking to turn. + // very little friction along forward-back axis + llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, <200, 10, 5> ); + // uniform angular friction + llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 20 ); + // linear motor + llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, <0, 0, 0> ); + llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 2 ); + llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 ); + // angular motor + llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, <0, 0, 0> ); + llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 ); + llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 8 ); + // no hover + llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 ); + llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 ); + llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 ); + llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 ); + // linear deflection + llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 ); + llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.5 ); + // angular deflection + llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 1.0 ); + llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 2.0 ); + // vertical attractor + llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.9 ); + llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 2 ); + // banking + llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 1 ); + llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 ); + llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 2 ); + // default rotation of local frame + llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, <0, 0, 0, 1> ); + // remove these flags + llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP + | VEHICLE_FLAG_HOVER_WATER_ONLY + | VEHICLE_FLAG_HOVER_TERRAIN_ONLY + | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT + | VEHICLE_FLAG_HOVER_UP_ONLY + | VEHICLE_FLAG_LIMIT_MOTOR_UP ); + // set these flags + llSetVehicleFlags( VEHICLE_FLAG_LIMIT_ROLL_ONLY );</string> + </map> + <key>VEHICLE_TYPE_BALLOON</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>5</integer> + <key>tooltip</key> + <string>Hover, and friction, but no deflection. + // uniform linear friction + llSetVehicleFloatParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, 5 ); + // uniform angular friction + llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 ); + // linear motor + llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, <0, 0, 0> ); + llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 ); + llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 ); + // angular motor + llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, <0, 0, 0> ); + llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 6 ); + llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 10 ); + // hover + llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 5 ); + llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.8 ); + llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 ); + llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 ); + // no linear deflection + llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0 ); + llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 5 ); + // no angular deflection + llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 ); + llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 ); + // no vertical attractor + llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 ); + llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 ); + // no banking + llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 ); + llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 ); + llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 5 ); + // default rotation of local frame + llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, <0, 0, 0, 1> ); + // remove all flags + llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP + | VEHICLE_FLAG_HOVER_WATER_ONLY + | VEHICLE_FLAG_LIMIT_ROLL_ONLY + | VEHICLE_FLAG_HOVER_TERRAIN_ONLY + | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT + | VEHICLE_FLAG_HOVER_UP_ONLY + | VEHICLE_FLAG_LIMIT_MOTOR_UP );</string> + </map> + <key>VEHICLE_TYPE_BOAT</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>3</integer> + <key>tooltip</key> + <string>Hovers over water with lots of friction and some anglar deflection. + // least for forward-back, most friction for up-down + llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, <10, 3, 2> ); + // uniform angular friction (setting it as a scalar rather than a vector) + llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 ); + // linear motor wins after about five seconds, decays after about a minute + llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, <0, 0, 0> ); + llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 ); + llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 ); + // angular motor wins after four seconds, decays in same amount of time + llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, <0, 0, 0> ); + llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 ); + llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 4 ); + // hover + llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 ); + llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 ); + llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 2.0 ); + llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 ); + // halfway linear deflection with timescale of 3 seconds + llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 ); + llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 3 ); + // angular deflection + llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.5 ); + llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 ); + // somewhat bounscy vertical attractor + llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.5 ); + llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 5 ); + // weak negative damped banking + llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.3 ); + llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.8 ); + llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 ); + // default rotation of local frame + llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, <0, 0, 0, 1> ); + // remove these flags + llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_TERRAIN_ONLY + | VEHICLE_FLAG_LIMIT_ROLL_ONLY + | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT); + // set these flags + llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP + | VEHICLE_FLAG_HOVER_WATER_ONLY + | VEHICLE_FLAG_HOVER_UP_ONLY + | VEHICLE_FLAG_LIMIT_MOTOR_UP );</string> + </map> + <key>VEHICLE_TYPE_CAR</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>2</integer> + <key>tooltip</key> + <string>Another vehicle that bounces along the ground but needs + the motors to be driven from external controls or + timer events. + // most friction for left-right, least for up-down + llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, <100, 2, 1000> ); + // no angular friction + llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, <1000, 1000, 1000> ); + // linear motor wins after about a second, decays after about a minute + llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, <0, 0, 0> ); + llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1 ); + llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 ); + // angular motor wins after a second, decays in less time than that + llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, <0, 0, 0> ); + llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1 ); + llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.8 ); + // no hover + llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 ); + llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0 ); + llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 ); + llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 ); + // maximum linear deflection with timescale of 2 seconds + llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 ); + llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 2 ); + // no angular deflection + llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 ); + llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 ); + // critically damped vertical attractor + llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 ); + llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 10 ); + // weak negative critically damped banking + llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.2 ); + llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 ); + llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 ); + // default rotation of local frame + llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, <0, 0, 0, 1> ); + // remove these flags + llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY + | VEHICLE_FLAG_HOVER_TERRAIN_ONLY + | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT); + // set these flags + llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP + | VEHICLE_FLAG_LIMIT_ROLL_ONLY + | VEHICLE_FLAG_HOVER_UP_ONLY + | VEHICLE_FLAG_LIMIT_MOTOR_UP );</string> + </map> + <key>VEHICLE_TYPE_NONE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>VEHICLE_TYPE_SLED</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>1</integer> + <key>tooltip</key> + <string>Simple vehicle that bumps along the ground, + and likes to move along its local x-axis. + // most friction for left-right, least for up-down + llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, <30, 1, 1000> ); + // no angular friction + llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, <1000, 1000, 1000> ); + // no linear motor + llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, <0, 0, 0> ); + llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1000 ); + llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 120 ); + // no angular motor + llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, <0, 0, 0> ); + llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1000 ); + llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 120 ); + // no hover (but with timescale of 10 sec if enabled) + llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 ); + llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 10 ); + llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 ); + llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 ); + // maximum linear deflection with timescale of 1 second + llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 ); + llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 1 ); + // no angular deflection + llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 ); + llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 ); + // no vertical attractor (doesnt mind flipping over) + llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 ); + llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 ); + // no banking + llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 ); + llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 ); + llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 10 ); + // default rotation of local frame + llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, <0, 0, 0, 1> ); + // remove these flags + llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY + | VEHICLE_FLAG_HOVER_TERRAIN_ONLY + | VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT + | VEHICLE_FLAG_HOVER_UP_ONLY ); + // set these flags (the limit_roll flag will have no effect + // until banking is enabled, if ever) + llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP + | VEHICLE_FLAG_LIMIT_ROLL_ONLY + | VEHICLE_FLAG_LIMIT_MOTOR_UP );</string> + </map> + <key>VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>36</integer> + <key>tooltip</key> + <string>A slider between minimum (0.0 = wobbly) and maximum (1.0 = firm as possible) stability of the vehicle to keep itself upright.</string> + </map> + <key>VEHICLE_VERTICAL_ATTRACTION_TIMESCALE</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>37</integer> + <key>tooltip</key> + <string>The period of wobble, or timescale for exponential approach, of the vehicle to rotate such that its preferred "up" axis is oriented along the worlds "up" axis.</string> + </map> + <key>VERTICAL</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>WANDER_PAUSE_AT_WAYPOINTS</key> + <map> + <key>type</key> + <string>integer</string> + <key>value</key> + <integer>0</integer> + <key>tooltip</key> + <string/> + </map> + <key>ZERO_ROTATION</key> + <map> + <key>type</key> + <string>rotation</string> + <key>value</key> + <array> + <map> + <key>x</key> + <real>0.0</real> + </map> + <map> + <key>y</key> + <real>0.0</real> + </map> + <map> + <key>z</key> + <real>0.0</real> + </map> + <map> + <key>w</key> + <real>1.0</real> + </map> + </array> + <key>tooltip</key> + <string/> + </map> + <key>ZERO_VECTOR</key> + <map> + <key>type</key> + <string>vector</string> + <key>value</key> + <array> + <map> + <key>x</key> + <real>0.0</real> + </map> + <map> + <key>y</key> + <real>0.0</real> + </map> + <map> + <key>z</key> + <real>0.0</real> + </map> + </array> + <key>tooltip</key> + <string/> + </map> + </map> + <key>events</key> + <map> + <key>at_rot_target</key> + <map> + <key>arguments</key> + <array> + <map> + <key>TargetNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>TargetRotation</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>rotation</string> + </map> + </map> + <map> + <key>CurrentRotation</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>rotation</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>This event is triggered when a script comes within a defined angle of a target rotation. The range and rotation, are set by a call to llRotTarget.</string> + </map> + <key>at_target</key> + <map> + <key>arguments</key> + <array> + <map> + <key>TargetNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>TargetPosition</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>CurrentPosition</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>This event is triggered when the scripted object comes within a defined range of the target position, defined by the llTarget function call.</string> + </map> + <key>attach</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>This event is triggered whenever an object is attached or detached from an avatar. If it is attached, the key of the avatar it is attached to is passed in, otherwise NULL_KEY is.</string> + </map> + <key>changed</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Changed</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>Triggered when various events change the object. The change argument will be a bit-field of CHANGED_* constants.</string> + </map> + <key>collision</key> + <map> + <key>arguments</key> + <array> + <map> + <key>NumberOfCollisions</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>This event is raised while another object, or avatar, is colliding with the object the script is attached to. + The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* functions.</string> + </map> + <key>collision_end</key> + <map> + <key>arguments</key> + <array> + <map> + <key>NumberOfCollisions</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>This event is raised when another object, or avatar, stops colliding with the object the script is attached to. + The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string> + </map> + <key>collision_start</key> + <map> + <key>arguments</key> + <array> + <map> + <key>NumberOfCollisions</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>This event is raised when another object, or avatar, starts colliding with the object the script is attached to. + The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string> + </map> + <key>control</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Levels</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Edges</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>Once a script has the ability to grab control inputs from the avatar, this event will be used to pass the commands into the script. + The levels and edges are bit-fields of control constants.</string> + </map> + <key>dataserver</key> + <map> + <key>arguments</key> + <array> + <map> + <key>RequestID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Data</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>This event is triggered when the requested data is returned to the script. + Data may be requested by the llRequestAgentData, llRequestInventoryData, and llGetNotecardLine function calls, for example.</string> + </map> + <key>email</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Time</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Address</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Subject</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Body</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>NumberRemaining</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>This event is triggered when an email sent to this script arrives. + The number remaining tells how many more emails are known to be still pending.</string> + </map> + <key>http_request</key> + <map> + <key>arguments</key> + <array> + <map> + <key>HTTPRequestID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>HTTPMethod</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Body</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>Triggered when task receives an HTTP request.</string> + </map> + <key>http_response</key> + <map> + <key>arguments</key> + <array> + <map> + <key>HTTPRequestID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Status</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Metadata</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Body</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>This event handler is invoked when an HTTP response is received for a pending llHTTPRequest request or if a pending request fails or times out.</string> + </map> + <key>land_collision</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>This event is raised when the object the script is attached to is colliding with the ground.</string> + </map> + <key>land_collision_end</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>This event is raised when the object the script is attached to stops colliding with the ground.</string> + </map> + <key>land_collision_start</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>This event is raised when the object the script is attached to begins to collide with the ground.</string> + </map> + <key>link_message</key> + <map> + <key>arguments</key> + <array> + <map> + <key>SendersLink</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Value</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>ID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>Triggered when object receives a link message via llMessageLinked function call.</string> + </map> + <key>listen</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Channel</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Name</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>ID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>This event is raised whenever a chat message matching the constraints set in the llListen command is received. The name and ID of the speaker, as well as the message, are passed in as parameters. + Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 through 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen on those channels.</string> + </map> + <key>money</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Payer</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Amount</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>This event is triggered when a resident has given an amount of Linden dollars to the object.</string> + </map> + <key>moving_end</key> + <map> + <key>arguments</key> + <undef/> + <key>tooltip</key> + <string>Triggered whenever an object with this script stops moving.</string> + </map> + <key>moving_start</key> + <map> + <key>arguments</key> + <undef/> + <key>tooltip</key> + <string>Triggered whenever an object with this script starts moving.</string> + </map> + <key>no_sensor</key> + <map> + <key>arguments</key> + <undef/> + <key>tooltip</key> + <string>This event is raised when sensors are active, via the llSensor function call, but are not sensing anything.</string> + </map> + <key>not_at_rot_target</key> + <map> + <key>arguments</key> + <undef/> + <key>tooltip</key> + <string>When a target is set via the llRotTarget function call, but the script is outside the specified angle this event is raised.</string> + </map> + <key>not_at_target</key> + <map> + <key>arguments</key> + <undef/> + <key>tooltip</key> + <string>When a target is set via the llTarget library call, but the script is outside the specified range this event is raised.</string> + </map> + <key>object_rez</key> + <map> + <key>arguments</key> + <array> + <map> + <key>RezzedObjectsID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>Triggered when an object rezzes another object from its inventory via the llRezObject, or similar, functions. The id is the globally unique key for the object rezzed.</string> + </map> + <key>on_rez</key> + <map> + <key>arguments</key> + <array> + <map> + <key>StartParameter</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>Triggered whenever an object is rezzed from inventory or by another object. The start parameter is passed in from the llRezObject call, or zero if from inventory.</string> + </map> + <key>path_update</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Type</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Reserved</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>This event is called to inform the script of changes within the object's path-finding status.</string> + </map> + <key>remote_data</key> + <map> + <key>arguments</key> + <array> + <map> + <key>EventType</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>ChannelID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>MessageID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Sender</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Data</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Data</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>Triggered by various XML-RPC calls with event_type specifying the type of data.</string> + </map> + <key>run_time_permissions</key> + <map> + <key>arguments</key> + <array> + <map> + <key>PermissionFlags</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>Scripts need permission from either the owner or the avatar they wish to act on before they may perform certain functions, such as debiting money from their owners account, triggering an animation on an avatar, or capturing control inputs. The llRequestPermissions library function is used to request these permissions and the various permissions integer constants can be supplied. + The integer returned to this event handler contains the current set of permissions flags, so if permissions equal 0 then no permissions are set.</string> + </map> + <key>sensor</key> + <map> + <key>arguments</key> + <array> + <map> + <key>NumberDetected</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>This event is raised whenever objects matching the constraints of the llSensor command are detected. + The number of detected objects is passed to the script in the parameter. Information on those objects may be gathered via the llDetected* functions.</string> + </map> + <key>state_entry</key> + <map> + <key>arguments</key> + <undef/> + <key>tooltip</key> + <string>The state_entry event occurs whenever a new state is entered, including at program start, and is always the first event handled.</string> + </map> + <key>state_exit</key> + <map> + <key>arguments</key> + <undef/> + <key>tooltip</key> + <string>The state_exit event occurs whenever the state command is used to transition to another state. It is handled before the new states state_entry event.</string> + </map> + <key>timer</key> + <map> + <key>arguments</key> + <undef/> + <key>tooltip</key> + <string>This event is raised at regular intervals set by the llSetTimerEvent library function.</string> + </map> + <key>touch</key> + <map> + <key>arguments</key> + <array> + <map> + <key>NumberOfTouches</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>This event is raised while a user is touching the object the script is attached to. + The number of touching objects is passed to the script in the parameter. + Information on those objects may be gathered via the llDetected* library functions.</string> + </map> + <key>touch_end</key> + <map> + <key>arguments</key> + <array> + <map> + <key>NumberOfTouches</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>This event is raised when a user stops touching the object the script is attached to. The number of touches is passed to the script in the parameter. + Information on those objects may be gathered via the llDetected* library functions.</string> + </map> + <key>touch_start</key> + <map> + <key>arguments</key> + <array> + <map> + <key>NumberOfTouches</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>This event is raised when a user first touches the object the script is attached to. The number of touches is passed to the script in the parameter. + Information on those objects may be gathered via the llDetected() library functions.</string> + </map> + <key>transaction_result</key> + <map> + <key>arguments</key> + <array> + <map> + <key>RequestID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Success</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Message</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>tooltip</key> + <string>Triggered by llTransferMoney() function.</string> + </map> + </map> + <key>functions</key> + <map> + <key>llAbs</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Value</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the absolute (positive) version of Value.</string> + </map> + <key>llAcos</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Value</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the arc-cosine of Value, in radians.</string> + </map> + <key>llAddToLandBanList</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Hours</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Add avatar ID to the parcel ban list for the specified number of Hours.\nA value of 0 for Hours will add the agent indefinitely.\nThe smallest value that Hours will accept is 0.01; anything smaller will be seen as 0.\nWhen values that small are used, it seems the function bans in approximately 30 second increments (Probably 36 second increments, as 0.01 of an hour is 36 seconds).\nResidents teleporting to a parcel where they are banned will be redirected to a neighbouring parcel.</string> + </map> + <key>llAddToLandPassList</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Hours</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.1</real> + <key>tooltip</key> + <string>Add avatar ID to the land pass list, for a duration of Hours.</string> + </map> + <key>llAdjustSoundVolume</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Volume</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.1</real> + <key>tooltip</key> + <string>Adjusts the volume (0.0 - 1.0) of the currently playing attached sound started with llPlaySound or llLoopSound.\nAdjusts the volume of the currently playing attached sound started with llPlaySound or llLoopSound.\nThis function has no effect on sounds started with llTriggerSound.</string> + </map> + <key>llAllowInventoryDrop</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Flag</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>If Flag == TRUE, users without object modify permissions can still drop inventory items into the object.</string> + </map> + <key>llAngleBetween</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Rot1</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>rotation</string> + </map> + </map> + <map> + <key>Rot2</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>rotation</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the angle, in radians, between rotations Rot1 and Rot2.</string> + </map> + <key>llApplyImpulse</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Force</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Local</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Applies impulse to the object.\nApplies the Force in local coordinates if Local == TRUE. Otherwise the Force is applied in global coordinates.\nThis function only works on physical objects.</string> + </map> + <key>llApplyRotationalImpulse</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Force</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Local</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Applies rotational impulse to the object,\nThe force is in local coordinates, if Local == TRUE, otherwise the impulse is applied in global coordinates.\nThis function only works on physical objects.</string> + </map> + <key>llAsin</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Value</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the arc-sine, in radians, of Value.</string> + </map> + <key>llAtan2</key> + <map> + <key>arguments</key> + <array> + <map> + <key>y</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>x</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the arc-tangent2 of y, x.</string> + </map> + <key>llAttachToAvatar</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AttachmentPoint</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Attach to avatar at point AttachmentPoint, if task has permissions to do so.\nAttach to avatar at point iAttachmentPoint.\nRequires the PERMISSION_ATTACH runtime permission.</string> + </map> + <key>llAttachToAvatarTemp</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AttachPoint</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0</real> + <key>tooltip</key> + <string>Follows the same convention as llAttachToAvatar, with the exception that the object will not create new inventory for the user, and will disappear on detach or disconnect.</string> + </map> + <key>llAvatarOnLinkSitTarget</key> + <map> + <key>arguments</key> + <array> + <map> + <key>LinkNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.\nReturns a key that is the UUID of the user seated on the specified link's prim.</string> + </map> + <key>llAvatarOnSitTarget</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.\nThis only will detect avatars sitting on sit targets defined with llSitTarget.</string> + </map> + <key>llAxes2Rot</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Forward</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Left</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Up</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>rotation</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the rotation represented by coordinate axes Forward, Left, and Up.</string> + </map> + <key>llAxisAngle2Rot</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Axis</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Angle</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>rotation</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the rotation that is a generated Angle about Axis.</string> + </map> + <key>llBase64ToInteger</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.\nReturns zero if Text is longer then 8 characters. If Text contains fewer then 6 characters, the return value is unpredictable.</string> + </map> + <key>llBase64ToString</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Converts a Base64 string to a conventional string.\nIf the conversion creates any unprintable characters, they are converted to question marks.</string> + </map> + <key>llBreakAllLinks</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>De-links all prims in the link set (requires permission PERMISSION_CHANGE_LINKS be set).</string> + </map> + <key>llBreakLink</key> + <map> + <key>arguments</key> + <array> + <map> + <key>LinkNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>De-links the prim with the given link number (requires permission PERMISSION_CHANGE_LINKS be set).</string> + </map> + <key>llCastRay</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Start</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>End</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Options</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real/> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real/> + <key>tooltip</key> + <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.\nReports collision data for intersections with objects.\nReturn value: [UUID_1, {link_number_1}, hit_position_1, {hit_normal_1}, UUID_2, {link_number_2}, hit_position_2, {hit_normal_2}, ... , status_code] where {} indicates optional data.</string> + </map> + <key>llCeil</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Value</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns smallest integer value >= Value.</string> + </map> + <key>llClearCameraParams</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Resets all camera parameters to default values and turns off scripted camera control.</string> + </map> + <key>llClearLinkMedia</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Link</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>0.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Clears (deletes) the media and all parameters from the given Face on the linked prim.\nReturns an integer that is a STATUS_* flag, which details the success/failure of the operation.</string> + </map> + <key>llClearPrimMedia</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.1</real> + <key>tooltip</key> + <string>Clears (deletes) the media and all parameters from the given Face.\nReturns an integer that is a STATUS_* flag which details the success/failure of the operation.</string> + </map> + <key>llCloseRemoteDataChannel</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ChannelID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>1.0</real> + <key>tooltip</key> + <string>Closes the specified XML-RPC channel.</string> + </map> + <key>llCloud</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Offset</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the cloud density at the object's position + Offset.</string> + </map> + <key>llCollisionFilter</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ObjectName</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>ObjectID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Accept</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>If Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.\nSpecify an empty string or NULL_KEY to not filter on the corresponding parameter.</string> + </map> + <key>llCollisionSound</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ImpactSound</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>ImpactVolume</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Suppress default collision sounds, replace default impact sounds with ImpactSound.\nThe ImpactSound must be in the object inventory.\nSupply an empty string to suppress collision sounds.</string> + </map> + <key>llCollisionSprite</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ImpactSprite</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Suppress default collision sprites, replace default impact sprite with ImpactSprite; found in the object inventory (empty string to just suppress).</string> + </map> + <key>llCos</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Theta</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the cosine of Theta (Theta in radians).</string> + </map> + <key>llCreateCharacter</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Options</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real/> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real/> + <key>tooltip</key> + <string>Convert link-set to AI/Physics character.\nCreates a path-finding entity, known as a "character", from the object containing the script. Required to activate use of path-finding functions.\nOptions is a list of key/value pairs.</string> + </map> + <key>llCreateLink</key> + <map> + <key>arguments</key> + <array> + <map> + <key>TargetPrim</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Parent</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>1.0</real> + <key>tooltip</key> + <string>Attempt to link the object the script is in, to target (requires permission PERMISSION_CHANGE_LINKS be set).\nIf parent == TRUE, the object the script is attached to is the root.\nRequires permission PERMISSION_CHANGE_LINKS be set.</string> + </map> + <key>llCSV2List</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Create a list from a string of comma separated values specified in Text.</string> + </map> + <key>llDeleteCharacter</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real/> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real/> + <key>tooltip</key> + <string>Convert link-set from AI/Physics character to Physics object.\nConvert the current link-set back to a standard object, removing all path-finding properties.</string> + </map> + <key>llDeleteSubList</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Source</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Start</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>End</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Removes the slice from start to end and returns the remainder of the list.\nRemove a slice from the list and return the remainder, start and end are inclusive.\nUsing negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would delete the entire list.\nIf Start is larger than End the list deleted is the exclusion of the entries; so 6, 4 would delete the entire list except for the 5th. list entry.</string> + </map> + <key>llDeleteSubString</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Source</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Start</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>End</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Removes the indicated sub-string and returns the result.\nStart and End are inclusive.\nUsing negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would delete the entire string.\nIf Start is larger than End, the sub-string is the exclusion of the entries; so 6, 4 would delete the entire string except for the 5th. character.</string> + </map> + <key>llDetachFromAvatar</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Remove the object containing the script from the avatar.</string> + </map> + <key>llDetectedGrab</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Number</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the grab offset of a user touching the object.\nReturns <0.0, 0.0, 0.0> if Number is not a valid object.</string> + </map> + <key>llDetectedGroup</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Number</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns TRUE if detected object or agent Number has the same user group active as this object.\nIt will return FALSE if the object or agent is in the group, but the group is not active.</string> + </map> + <key>llDetectedKey</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Number</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the key of detected object or avatar number.\nReturns NULL_KEY if Number is not a valid index.</string> + </map> + <key>llDetectedLinkNumber</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Number</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the link position of the triggered event for touches and collisions only.\n0 for a non-linked object, 1 for the root of a linked object, 2 for the first child, etc.</string> + </map> + <key>llDetectedName</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Number</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the name of detected object or avatar number.\nReturns the name of detected object number.\nReturns empty string if Number is not a valid index.</string> + </map> + <key>llDetectedOwner</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Number</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the key of detected object's owner.\nReturns invalid key if Number is not a valid index.</string> + </map> + <key>llDetectedPos</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Number</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the position of detected object or avatar number.\nReturns <0.0, 0.0, 0.0> if Number is not a valid index.</string> + </map> + <key>llDetectedRot</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Number</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>rotation</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the rotation of detected object or avatar number.\nReturns <0.0, 0.0, 0.0, 1.0> if Number is not a valid offset.</string> + </map> + <key>llDetectedTouchBinormal</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Index</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the surface bi-normal for a triggered touch event.\nReturns a vector that is the surface bi-normal (tangent to the surface) where the touch event was triggered.</string> + </map> + <key>llDetectedTouchFace</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Index</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the index of the face where the avatar clicked in a triggered touch event.</string> + </map> + <key>llDetectedTouchNormal</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Index</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the surface normal for a triggered touch event.\nReturns a vector that is the surface normal (perpendicular to the surface) where the touch event was triggered.</string> + </map> + <key>llDetectedTouchPos</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Index</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the position, in region coordinates, where the object was touched in a triggered touch event.\nUnless it is a HUD, in which case it returns the position relative to the attach point.</string> + </map> + <key>llDetectedTouchST</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Index</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a vector that is the surface coordinates where the prim was touched.\nThe X and Y vector positions contain the horizontal (S) and vertical (T) face coordinates respectively.\nEach component is in the interval [0.0, 1.0].\nTOUCH_INVALID_TEXCOORD is returned if the surface coordinates cannot be determined (e.g. when the viewer does not support this function).</string> + </map> + <key>llDetectedTouchUV</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Index</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a vector that is the texture coordinates for where the prim was touched.\nThe X and Y vector positions contain the U and V face coordinates respectively.\nTOUCH_INVALID_TEXCOORD is returned if the touch UV coordinates cannot be determined (e.g. when the viewer does not support this function).</string> + </map> + <key>llDetectedType</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Number</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object.\nReturns 0 if number is not a valid index.\nNote that number is a bit-field, so comparisons need to be a bitwise checked. e.g.:\ninteger iType = llDetectedType(0);\n{\n // ...do stuff with the agent\n}</string> + </map> + <key>llDetectedVel</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Number</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the velocity of the detected object Number.\nReturns<0.0, 0.0, 0.0> if Number is not a valid offset.</string> + </map> + <key>llDialog</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Buttons</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Channel</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.1</real> + <key>tooltip</key> + <string>Shows a dialog box on the avatar's screen with the message.\n + Up to 12 strings in the list form buttons.\n + If a button is clicked, the name is chatted on Channel.\nOpens a "notify box" in the given avatars screen displaying the message.\n + Up to twelve buttons can be specified in a list of strings. When the user clicks a button, the name of the button is said on the specified channel.\n + Channels work just like llSay(), so channel 0 can be heard by everyone.\n + The chat originates at the object's position, not the avatar's position, even though it is said as the avatar (uses avatar's UUID and Name etc.).\n + Examples:\n + llDialog(who, "Are you a boy or a girl?", [ "Boy", "Girl" ], -4913);\n + llDialog(who, "This shows only an OK button.", [], -192);\n + llDialog(who, "This chats so you can 'hear' it.", ["Hooray"], 0);</string> + </map> + <key>llDie</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>0.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Deletes the object.\nDelete the object which holds the script.</string> + </map> + <key>llDumpList2String</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Source</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Separator</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the list as a single string, using Separator between the entries.\nWrite the list out as a single string, using Separator between values.</string> + </map> + <key>llEdgeOfWorld</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Direction</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).\nReturns TRUE if the line along Direction from Position hits the edge of the world in the current simulator, returns FALSE if that edge crosses into another simulator.</string> + </map> + <key>llEjectFromLand</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Ejects AvatarID from land that you own.\nEjects AvatarID from land that the object owner (group or resident) owns.</string> + </map> + <key>llEmail</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Address</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Subject</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>20.0</real> + <key>tooltip</key> + <string>Sends email to Address with Subject and Message.\nSends an email to Address with Subject and Message.</string> + </map> + <key>llEscapeURL</key> + <map> + <key>arguments</key> + <array> + <map> + <key>URL</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns an escaped/encoded version of url, replacing spaces with %20 etc.\nReturns the string that is the URL-escaped version of URL (replacing spaces with %20, etc.).\n + This function returns the UTF-8 encoded escape codes for selected characters.</string> + </map> + <key>llEuler2Rot</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Vector</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>rotation</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the rotation representation of the Euler angles.\nReturns the rotation represented by the Euler Angle.</string> + </map> + <key>llEvade</key> + <map> + <key>arguments</key> + <array> + <map> + <key>TargetID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Options</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real/> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real/> + <key>tooltip</key> + <string>Evade a specified target.\nCharacters will (roughly) try to hide from their pursuers if there is a good hiding spot along their fleeing path. Hiding means no direct line of sight from the head of the character (centre of the top of its physics bounding box) to the head of its pursuer and no direct path between the two on the navigation-mesh.</string> + </map> + <key>llExecCharacterCmd</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Command</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Options</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real/> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real/> + <key>tooltip</key> + <string>Execute a character command.\nSend a command to the path system.\n + Currently only supports stopping the current path-finding operation or causing the character to jump.</string> + </map> + <key>llFabs</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Value</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the positive version of Value.\nReturns the absolute value of Value.</string> + </map> + <key>llFleeFrom</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Source</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Distance</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Options</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real/> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real/> + <key>tooltip</key> + <string>Flee from a point.\nDirects a character (llCreateCharacter) to keep away from a defined position in the region or adjacent regions.</string> + </map> + <key>llFloor</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Value</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns largest integer value <= Value.</string> + </map> + <key>llForceMouselook</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Enable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.\nAfter calling this function with Enable set to TRUE, any agent sitting down on the prim will be forced into mouse-look.\n + Just like llSitTarget, this changes a permanent property of the prim (not the object) and needs to be reset by calling this function with Enable set to FALSE in order to disable it.</string> + </map> + <key>llFrand</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Magnitude</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].\nReturns a pseudo-random number between [0, Magnitude].</string> + </map> + <key>llGenerateKey</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0</real> + <key>tooltip</key> + <string>Generates a key (SHA-1 hash) using UUID generation to create a unique key.\nAs the UUID produced is versioned, it should never return a value of NULL_KEY.\nThe specific UUID version is an implementation detail that has changed in the past and may change again in the future. Do not depend upon the UUID that is returned to be version 5 SHA-1 hash.</string> + </map> + <key>llGetAccel</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the acceleration of the object relative to the region's axes.\nGets the acceleration of the object.</string> + </map> + <key>llGetAgentInfo</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns an integer bit-field containing the agent information about id.\n + Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING and/or AGENT_IN_AIR.\nReturns information about the given agent ID as a bit-field of agent info constants.</string> + </map> + <key>llGetAgentLanguage</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the language code of the preferred interface language of the avatar.\nReturns a string that is the language code of the preferred interface language of the resident.</string> + </map> + <key>llGetAgentList</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Scope</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Options</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Requests a list of agents currently in the region, limited by the scope parameter.\nReturns a list [key UUID-0, key UUID-1, ..., key UUID-n] or [string error_msg] - returns avatar keys for all agents in the region limited to the area(s) specified by scope</string> + </map> + <key>llGetAgentSize</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR.\nIf the agent is in the same region as the object, returns the size of the avatar.</string> + </map> + <key>llGetAlpha</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the alpha value of Face.\nReturns the 'alpha' of the given face. If face is ALL_SIDES the value returned is the mean average of all faces.</string> + </map> + <key>llGetAndResetTime</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the script time in seconds and then resets the script timer to zero.\nGets the time in seconds since starting and resets the time to zero.</string> + </map> + <key>llGetAnimation</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the name of the currently playing locomotion animation for the avatar id.\nReturns the currently playing animation for the specified avatar ID.</string> + </map> + <key>llGetAnimationList</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a list of keys of playing animations for an avatar.\nReturns a list of keys of all playing animations for the specified avatar ID.</string> + </map> + <key>llGetAnimationOverride</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AnimationState</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0</real> + <key>tooltip</key> + <string>Returns a string that is the name of the animation that is used for the specified animation state\nTo use this function the script must obtain either the PERMISSION_OVERRIDE_ANIMATIONS or PERMISSION_TRIGGER_ANIMATION permission (automatically granted to attached objects).</string> + </map> + <key>llGetAttached</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the object's attachment point, or 0 if not attached.\nReturns the object attachment point, or 0 if not attached.</string> + </map> + <key>llGetBoundingBox</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the bounding box around the object (including any linked prims) relative to its root prim, as a list in the format [ (vector) min_corner, (vector) max_corner ].\nReturns the bounding box around the object or avatar with the specified key (including any linked prims) relative to the\n + root prim, as a list: [ (vector) min_corner, (vector) max_corner ]</string> + </map> + <key>llGetCameraPos</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the current camera position for the agent the task has permissions for.\nReturns the position of the camera, of the user that granted the script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_VECTOR.</string> + </map> + <key>llGetCameraRot</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>rotation</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the current camera orientation for the agent the task has permissions for.\nReturns the rotation of the camera, of the user who has granted this script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_ROTATION.\n + The key of the user whose camera is being tracked, can be obtained using llGetPermissionsKey.</string> + </map> + <key>llGetCenterOfMass</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string> + </map> + <key>llGetClosestNavPoint</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Point</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Options</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real/> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real/> + <key>tooltip</key> + <string>Get the closest navigable point to the point provided.\nThe function accepts a point in region-local space (like all the other path-finding methods) and returns either an empty list or a list containing a single vector which is the closest point on the navigation-mesh to the point provided.</string> + </map> + <key>llGetColor</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the color on Face.\nReturns the colour of Face as a vector of red, green, and blue values between 0 and 1. If face is ALL_SIDES the colour returned is the mean average of each channel.</string> + </map> + <key>llGetCreator</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a key for the creator of the prim.\nReturns the key of the object's original creator. Similar to llGetOwner.</string> + </map> + <key>llGetDate</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the current date in the UTC time zone in the format YYYY-MM-DD.\nReturns the current UTC date as YYYY-MM-DD.</string> + </map> + <key>llGetDisplayName</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the name of an avatar, if the avatar is in the current region, and the name has been cached, otherwise the same as llGetUsername. Use llRequestDisplayName if you absolutely must have the display name.\nReturns a string that is the non-unique display name of the avatar specified by AvatarID.\n + AvatarID must specify a valid avatar key, present in or otherwise known to the region in which the script is running, otherwise an empty string is returned.\n + This function will still return a valid display name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string> + </map> + <key>llGetEnergy</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns how much energy is in the object as a percentage of maximum.</string> + </map> + <key>llGetEnv</key> + <map> + <key>arguments</key> + <array> + <map> + <key>DataRequest</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a string with the requested data about the region.</string> + </map> + <key>llGetForce</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the force (if the script is physical).\nReturns the current force if the script is physical.</string> + </map> + <key>llGetFreeMemory</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the number of free bytes of memory the script can use.\nReturns the available free space for the current script. This is inaccurate with LSO.</string> + </map> + <key>llGetFreeURLs</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the number of available URLs for the current script.\nReturns an integer that is the number of available URLs.</string> + </map> + <key>llGetGeometricCenter</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the geometric center of the linked set the script is attached to.\nReturns the geometric centre of the linked set the script is in relative to the object's position (the position of the root prim of a linked set).\n + To get the object's position, use llGetPos.</string> + </map> + <key>llGetGMTclock</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the time in seconds since midnight GMT.\nGets the time in seconds since midnight in GMT/UTC.</string> + </map> + <key>llGetHTTPHeader</key> + <map> + <key>arguments</key> + <array> + <map> + <key>HTTPRequestID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Header</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the value for header for request_id.\nReturns a string that is the value of the Header for HTTPRequestID.</string> + </map> + <key>llGetInventoryCreator</key> + <map> + <key>arguments</key> + <array> + <map> + <key>InventoryItem</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a key for the creator of the inventory item.\nThis function returns the UUID of the creator of item. If item is not found in inventory, the object says "No item named 'name' ".</string> + </map> + <key>llGetInventoryKey</key> + <map> + <key>arguments</key> + <array> + <map> + <key>InventoryItem</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the key that is the UUID of the inventory named.\nReturns the key of the inventory named.</string> + </map> + <key>llGetInventoryName</key> + <map> + <key>arguments</key> + <array> + <map> + <key>InventoryType</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Index</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the name of the inventory item number of a given type.\nGet the name of the inventory Index number of InventoryType.\n + Use the inventory constants INVENTORY_* to specify the type.</string> + </map> + <key>llGetInventoryNumber</key> + <map> + <key>arguments</key> + <array> + <map> + <key>InventoryType</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the number of items of a given type (INVENTORY_* flag) in the prim's inventory.\nGet the number of items of InventoryType in the object inventory.\n + Use the inventory constants INVENTORY_* to specify the type.</string> + </map> + <key>llGetInventoryPermMask</key> + <map> + <key>arguments</key> + <array> + <map> + <key>InventoryItem</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>BitMask</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the requested permission mask for the inventory item.\nReturns the requested permission mask for the inventory item defined by InventoryItem. If item is not in the object's inventory, llGetInventoryPermMask returns FALSE and causes the object to say "No item named '<item>'", where "<item>" is item.\n + If this is used to determine whether or not an inventory item exists within the object, it will have the side effect of spamming chat. So please don't ;-)</string> + </map> + <key>llGetInventoryType</key> + <map> + <key>arguments</key> + <array> + <map> + <key>InventoryItem</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the type of the inventory item named.\nReturns the type of the inventory item named.\n + Remember, like all inventory functions, llGetInventoryType is case-sensitive.</string> + </map> + <key>llGetKey</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the key of the prim the script is attached to.\nGet the key for the object which has this script.</string> + </map> + <key>llGetLandOwnerAt</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the key of the land owner, returns NULL_KEY if public.\nReturns the key of the land owner at Position, or NULL_KEY if public.</string> + </map> + <key>llGetLinkKey</key> + <map> + <key>arguments</key> + <array> + <map> + <key>LinkNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the key of the linked prim LinkNumber.\nReturns the key of LinkNumber in the link set.</string> + </map> + <key>llGetLinkMedia</key> + <map> + <key>arguments</key> + <array> + <map> + <key>LinkNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Parameters</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>0.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Get the media parameters for a particular face on linked prim, given the desired list of parameter names. Returns a list of values in the order requested. Returns an empty list if no media exists on the face.\nGet the desired list of named media parameters, for a particular face, of a linked prim.\n + Returns a list of values in the order requested.</string> + </map> + <key>llGetLinkName</key> + <map> + <key>arguments</key> + <array> + <map> + <key>LinkNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the name of LinkNumber in a link set.\nReturns the name of LinkNumber the link set.</string> + </map> + <key>llGetLinkNumber</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc.).\nReturns the link number of the prim containing the script. 0 means no link, 1 the root, 2 for first child, etc.</string> + </map> + <key>llGetLinkNumberOfSides</key> + <map> + <key>arguments</key> + <array> + <map> + <key>LinkNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the number of sides of the specified linked prim.\nReturns an integer that is the number of faces (or sides) of the prim link.</string> + </map> + <key>llGetLinkPrimitiveParams</key> + <map> + <key>arguments</key> + <array> + <map> + <key>LinkNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Parameters</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Get primitive parameters for LinkNumber based on rules.\nIdentical to llGetPrimitiveParams except that it acts on the prim specified by the link number given.\n + Returns the list of primitive attributes requested in the Parameters list for link.\n + PRIM_* flags can be broken into three categories, face flags, prim flags, and object flags.\n + * Supplying a prim or object flag will return that flags attributes.\n + * Face flags require the user to also supply a side parameter.</string> + </map> + <key>llGetListEntryType</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ListVariable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Index</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the type of the index entry in the list (TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list).\nReturns the type of the variable at Index in ListVariable.</string> + </map> + <key>llGetListLength</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ListVariable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the number of elements in the list.\nReturns the number of elements in ListVariable.</string> + </map> + <key>llGetLocalPos</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the position relative to the root.\nReturns the local position of a child object relative to the root.</string> + </map> + <key>llGetLocalRot</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>rotation</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the rotation local to the root.\nReturns the local rotation of a child object relative to the root.</string> + </map> + <key>llGetMass</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the mass of object that the script is attached to.\nReturns the scripted object's mass. When called from a script in a link-set, the parent will return the sum of the link-set weights, while a child will return just its own mass. When called from a script inside an attachment, this function will return the mass of the avatar it's attached to, not its own.</string> + </map> + <key>llGetMassMKS</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real/> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Acts as llGetMass(), except that the units of the value returned are Kg.</string> + </map> + <key>llGetMemoryLimit</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real/> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Get the maximum memory a script can use, in bytes.\nGet the maximum memory a script can use.\n + Returns the integer amount of memory the script can use in bytes.</string> + </map> + <key>llGetNextEmail</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Address</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Subject</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Get the next waiting email with appropriate address and/or subject (if blank they are ignored).\nGet the next waiting email with appropriate address and/or subject.\n + If the parameters are blank, they are not used for filtering.</string> + </map> + <key>llGetNotecardLine</key> + <map> + <key>arguments</key> + <array> + <map> + <key>NotecardName</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>LineNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.1</real> + <key>tooltip</key> + <string>Returns line from NotecardName via the dataserver event.\nThis function fetches LineNumber from NotecardName and returns the data through the dataserver event. The line count starts at zero.\n + If the requested line is passed the end of the note-card the dataserver event will return the constant EOF string.\n + The key returned by this function is a unique identifier which will be supplied to the dataserver event in the requested parameter.</string> + </map> + <key>llGetNumberOfNotecardLines</key> + <map> + <key>arguments</key> + <array> + <map> + <key>NotecardName</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.1</real> + <key>tooltip</key> + <string>Returns number of lines in NotecardName via the dataserver event (cast return value to integer).\nReturns the number of lines in the note-card sNotecardName via the dataserver event. (Cast the value returned by the dataserver to an integer.)\n + The key returned is a query ID for identifying the dataserver reply.</string> + </map> + <key>llGetNumberOfPrims</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the number of prims in a link set the script is attached to.\nReturns the number of prims in (and avatars seated on) the object the script is in.</string> + </map> + <key>llGetNumberOfSides</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the number of faces (or sides) of the prim.\nReturns the number of sides of the prim which has the script.</string> + </map> + <key>llGetObjectDesc</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the description of the prim the script is attached to.\nReturns the description of the scripted object/prim. You can set the description using llSetObjectDesc.</string> + </map> + <key>llGetObjectDetails</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Parameters</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the object details specified in Parameters for the object with key ID.\n + Parameters are OBJECT_NAME, _DESC, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR.\nReturns a list of the details specified in Parameters for the object with key ID.</string> + </map> + <key>llGetObjectMass</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the mass of the avatar or object in the region.\nGets the mass of the object or avatar corresponding to ID.</string> + </map> + <key>llGetObjectName</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the name of the prim which the script is attached to.\nReturns the name of the prim (not object) which contains the script.</string> + </map> + <key>llGetObjectPermMask</key> + <map> + <key>arguments</key> + <array> + <map> + <key>PermissionMask</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the requested permission mask for the root object the task is attached to.</string> + </map> + <key>llGetObjectPrimCount</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ObjectID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the total number of prims for an object in the region.\nReturns the prim count for any object id in the same region.</string> + </map> + <key>llGetOmega</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the rotation velocity in radians per second.\nReturns a vector that is the rotation velocity of the object in radians per second.</string> + </map> + <key>llGetOwner</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the object owner's UUID.\nReturns the key for the owner of the object.</string> + </map> + <key>llGetOwnerKey</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ObjectID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the owner of ObjectID.\nReturns the key for the owner of object ObjectID.</string> + </map> + <key>llGetParcelDetails</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>ParcelDetails</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the parcel details specified in ParcelDetails for the parcel at Position.\n + Parameters is one or more of: PARCEL_DETAILS_NAME, _DESC, _OWNER, _GROUP, _AREA, _ID, _SEE_AVATARS.\nReturns a list that is the parcel details specified in ParcelDetails (in the same order) for the parcel at Position.</string> + </map> + <key>llGetParcelFlags</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.\nReturns a bit-field specifying the parcel flags (PARCEL_FLAG_*) for the parcel at Position.</string> + </map> + <key>llGetParcelMaxPrims</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>SimWide</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the maximum number of prims allowed on the parcel at Position.\nReturns an integer that is the maximum number of prims allowed on the parcel at Position.</string> + </map> + <key>llGetParcelMusicURL</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real/> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real/> + <key>tooltip</key> + <string>Gets the streaming audio URL for the parcel object is on.\nReturns a string containing the parcel streaming audio URL.\n + The object owner, avatar or group, must also be the land owner.</string> + </map> + <key>llGetParcelPrimCount</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Category</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>SimWide</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the number of prims on the parcel at Position of the given category. + Categories: PARCEL_COUNT_TOTAL, _OWNER, _GROUP, _OTHER, _SELECTED, _TEMP.\nReturns the number of prims used on the parcel at Position which are in Category.\n + If SimWide is TRUE, it returns the number of objects for the entire region in the category specified.\n + If SimWide is FALSE, it returns the number of objects on this specific parcel in the category specified</string> + </map> + <key>llGetParcelPrimOwners</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>2.0</real> + <key>tooltip</key> + <string>Returns a list of all residents who own objects on the parcel at Position, with individual prim counts. + Requires owner-like permissions for the parcel.\nReturns a strided list of keys and integers of up to 100 agents who own objects in the parcel at Position.\n + The list is formatted as [ key agentKey1, integer agentCount1, key agentKey2, integer agentCount2, ... ], sorted by agent key.\n + The integers are counts of the number of prims (not objects) owned by the corresponding agents.\n + Only works when the object owner is in the region (likely the reason it doesn't work when deeded to group).</string> + </map> + <key>llGetPermissions</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns an integer bit-field with the permissions that have been granted.\nReturns an integer bit-field with the script permissions granted. e.g.:\n + integer iPerms = llGetPermissions();\n + if (iPerms & PERMISSION_DEBIT) {\n + llOwnerSay("Yay, I can steal your money!!");\n + } else {\n + llOwnerSay("Damn, your money is safe from me!");\n + }</string> + </map> + <key>llGetPermissionsKey</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the key of the avatar that last granted permissions to the script.\nReturns the key of the avatar that last granted or declined permissions to the script.\n + Returns NULL_KEY if permissions were never granted or declined.</string> + </map> + <key>llGetPhysicsMaterial</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real/> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real/> + <key>tooltip</key> + <string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string> + </map> + <key>llGetPos</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the position of the task in region coordinates.\nReturns the vector position of the task in region coordinates.</string> + </map> + <key>llGetPrimitiveParams</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Parameters</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.2</real> + <key>tooltip</key> + <string>Returns the primitive parameters specified in the parameters list.\nReturns primitive parameters specified in the Parameters list.</string> + </map> + <key>llGetPrimMediaParams</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Parameters</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.1</real> + <key>tooltip</key> + <string>Returns the media parameters for a particular face on an object, given the desired list of parameter names, in the order requested. Returns an empty list if no media exists on the face.\nGet the media parameters for a particular face on an object, given the desired list of Parameters.\n + Returns a list of values in the order requested.\n + Returns an empty list if no media exists on the face.</string> + </map> + <key>llGetRegionAgentCount</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the number of avatars in the region.\nReturns an integer that is the number of avatars in the region.</string> + </map> + <key>llGetRegionCorner</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a vector, in meters, that is the global location of the south-west corner of the region which the object is in.\nReturns the Region-Corner of the simulator containing the task. The region-corner is a vector (values in meters) representing distance from the first region.</string> + </map> + <key>llGetRegionFlags</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the region flags (REGION_FLAG_*) for the region the object is in.\nReturns a bit-field specifying the region flags (REGION_FLAG_*) for the region the object is in.</string> + </map> + <key>llGetRegionFPS</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the mean region frames per second.</string> + </map> + <key>llGetRegionName</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the current region name.</string> + </map> + <key>llGetRegionTimeDilation</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).\nReturns the current time dilation as a float between 0.0 and 1.0.</string> + </map> + <key>llGetRootPosition</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the position (in region coordinates) of the root prim of the object which the script is attached to.\nGets the position (in region coordinates) of the root/parent prim of the object containing the script.\n + This is used to allow a child prim to determine where the root is.</string> + </map> + <key>llGetRootRotation</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>rotation</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.\nGets the global rotation of the root object of the object script is attached to.</string> + </map> + <key>llGetRot</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>rotation</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the rotation relative to the region's axes.\nReturns the rotation.</string> + </map> + <key>llGetScale</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the scale of the prim.\nReturns a vector that is the scale (dimensions) of the prim.</string> + </map> + <key>llGetScriptName</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the name of the script that this function is used in.\nReturns the name of this script.</string> + </map> + <key>llGetScriptState</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ScriptName</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns TRUE if the script named is running.\nReturns TRUE if ScriptName is running.</string> + </map> + <key>llGetSimStats</key> + <map> + <key>arguments</key> + <array> + <map> + <key>StatType</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0</real> + <key>tooltip</key> + <string>Returns a float that is the requested statistic.</string> + </map> + <key>llGetSimulatorHostname</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>10.0</real> + <key>tooltip</key> + <string>Returns the host-name of the machine which the script is running on (same as string in viewer Help dialog).\nReturns the host name (server) of the region in which the scripted object is located.\n + For example, "sim225.agni.lindenlab.com".</string> + </map> + <key>llGetSPMaxMemory</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real/> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the maximum used memory for the current script. Only valid after using PROFILE_SCRIPT_MEMORY. Non-mono scripts always use 16k.\nReturns the integer of the most bytes used while llScriptProfiler was last active.</string> + </map> + <key>llGetStartParameter</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns an integer that is the script start parameter.\nReturns the start parameter passed to llRezObject.\n + If the object was created from agent inventory, this function returns 0.</string> + </map> + <key>llGetStaticPath</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Start</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>End</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Radius</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Parameters</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string/> + </map> + <key>llGetStatus</key> + <map> + <key>arguments</key> + <array> + <map> + <key>StatusFlag</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns value of status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z).\nReturns the value of specified status.</string> + </map> + <key>llGetSubString</key> + <map> + <key>arguments</key> + <array> + <map> + <key>String</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Start</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>End</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the indicated substring.\nReturns the indicated sub-string from String. The Start and End are inclusive.\n + Using negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would capture the entire string.\n + If start is larger than end, the sub string is the exclusion of the entries, so 6, 4 would give the entire string except for the 5th. character.</string> + </map> + <key>llGetSunDirection</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a normalized vector of the direction of the sun in the region.\nReturns the sun's direction on the simulator.</string> + </map> + <key>llGetTexture</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key).\nReturns the texture of a face, if it is found in object inventory, its key otherwise.</string> + </map> + <key>llGetTextureOffset</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the texture offset of face in the x and y components of a vector.</string> + </map> + <key>llGetTextureRot</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the texture rotation of side.</string> + </map> + <key>llGetTextureScale</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the texture scale of side in the x and y components of a vector.\nReturns the texture scale of a side in the x and y components of a vector.</string> + </map> + <key>llGetTime</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string> + </map> + <key>llGetTimeOfDay</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the time in seconds since [SECOND_LIFE] server midnight or since region up-time, whichever is smaller.\nGets the time in seconds since midnight in Second Life.</string> + </map> + <key>llGetTimestamp</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a time-stamp (UTC time zone) in the format: YYYY-MM-DDThh:mm:ss.ff..fZ.\nReturns the current time-and-date (a time-stamp) in the format YYYY-MM-DDThh:mm:ss.ff..fZ, for example: 2004-08-27T00:56:21.785886Z\n + The letter Z is the zone designator for the zero UTC offset, and is why UTC is sometimes referred to as Zulu time (Zulu being the name of Z in the phonetic alphabet. T is just a separator between date and time.</string> + </map> + <key>llGetTorque</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the torque (if the script is physical).\nReturns a vector that is the torque (if the script is physical).</string> + </map> + <key>llGetUnixTime</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\nReturns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\n + In UNIX terms, time_t. This is great for a monotonic source of time that ticks once a second.</string> + </map> + <key>llGetUsedMemory</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the current used memory for the current script. Non-mono scripts always use 16K.\nReturns the integer of the number of bytes of memory currently in use by the script. Non-mono scripts always use 16K.</string> + </map> + <key>llGetUsername</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the single-word user-name of an avatar, if the avatar is in the current region, otherwise the empty string.\nReturns a string that is the unique user-name of the avatar specified.\n + AvatarID must specify a valid avatar key present in, or otherwise known to, the region in which the script is running, otherwise an empty string is returned. This function will still return a valid user-name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string> + </map> + <key>llGetVel</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the velocity of the object.\nReturns a vector that is the velocity of the object.</string> + </map> + <key>llGetWallclock</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the time in seconds since midnight California Pacific time (PST/PDT).\nReturns the time in seconds since simulator's time-zone midnight (Pacific Time).</string> + </map> + <key>llGiveInventory</key> + <map> + <key>arguments</key> + <array> + <map> + <key>TargetID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>InventoryItem</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Give InventoryItem to destination represented by TargetID.\nGive the named inventory item to the avatar or object in the same simulator as the giver.\n + If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory.</string> + </map> + <key>llGiveInventoryList</key> + <map> + <key>arguments</key> + <array> + <map> + <key>TargetID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>FolderName</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>InventoryItems</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>3.0</real> + <key>tooltip</key> + <string>Give InventoryItems to destination (represented by TargetID) as a new folder of items.\nGive the list of named inventory items to the keyed avatar or object in the same simulator as the giver.\n + If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. The offered inventory is then placed in a folder named category in the recipients inventory.\n + If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory. If the recipient is an object, the sFolderName parameter is ignored.</string> + </map> + <key>llGiveMoney</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Amount</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Transfers Amount of L from script owner to AvatarID.\nTransfer Amount from the script owner to AvatarID.\n + This call will (silently) fail if PERMISSION_DEBIT has not been set.</string> + </map> + <key>llGodLikeRezObject</key> + <map> + <key>arguments</key> + <array> + <map> + <key>InventoryItemID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>god-mode</key> + <boolean>true</boolean> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Rez directly off of a UUID if owner has dog-bit set.</string> + </map> + <key>llGround</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Offset</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the ground height at the object position + offset.\nReturns the ground height at the object's position + Offset.</string> + </map> + <key>llGroundContour</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Offset</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the ground contour direction below the object position + Offset.\nReturns the ground contour at the object's position + Offset.</string> + </map> + <key>llGroundNormal</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Offset</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the ground normal below the object position + offset.\nReturns the ground contour at the object's position + Offset.</string> + </map> + <key>llGroundRepel</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Height</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Water</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Tau</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Critically damps to height if within height * 0.5 of level (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to fHeight if within fHeight * 0.5 of ground or water level.\n + The height is above ground level if iWater is FALSE or above the higher of land and water if iWater is TRUE.\n + Do not use with vehicles. Only works in physics-enabled objects.</string> + </map> + <key>llGroundSlope</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Offset</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the ground slope below the object position + Offset.\nReturns the ground slope at the object position + Offset.</string> + </map> + <key>llHTTPRequest</key> + <map> + <key>arguments</key> + <array> + <map> + <key>URL</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Parameters</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Body</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sends an HTTP request to the specified URL with the Body of the request and Parameters.\nSends an HTTP request to URL with the specified body and parameters.\n + Returns a key that is a handle identifying the HTTP request made.</string> + </map> + <key>llHTTPResponse</key> + <map> + <key>arguments</key> + <array> + <map> + <key>HTTPRequestID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Status</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Body</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Responds to HTTPRequestID with Status and Body.\nResponds to HTTPRequestID with Status code and Body.</string> + </map> + <key>llInsertString</key> + <map> + <key>arguments</key> + <array> + <map> + <key>TargetVariable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>SourceVariable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Inserts SourceVariable into TargetVariable at Position, and returns the result.\nInserts SourceVariable into TargetVariable at Position and returns the result. Note this does not alter TargetVariable.</string> + </map> + <key>llInstantMessage</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>2.0</real> + <key>tooltip</key> + <string>IMs Text to the user identified.\nSend Text to the user as an instant message.</string> + </map> + <key>llIntegerToBase64</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Value</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a string that is a Base64 big endian encode of Value.\nEncodes the Value as an 8-character Base64 string.</string> + </map> + <key>llJson2List</key> + <map> + <key>arguments</key> + <array> + <map> + <key>JSON</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>0.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Converts the top level of the JSON string to a list.</string> + </map> + <key>llJsonGetValue</key> + <map> + <key>arguments</key> + <array> + <map> + <key>JSON</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Specifiers</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>0.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Gets the value indicated by Specifiers from the JSON string.</string> + </map> + <key>llJsonSetValue</key> + <map> + <key>arguments</key> + <array> + <map> + <key>JSON</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Specifiers</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Value</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>0.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a new JSON string that is the JSON given with the Value indicated by Specifiers set to Value.</string> + </map> + <key>llJsonValueType</key> + <map> + <key>arguments</key> + <array> + <map> + <key>JSON</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Specifiers</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>0.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the type constant (JSON_*) for the value in JSON indicated by Specifiers.</string> + </map> + <key>llKey2Name</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the name of the prim or avatar specified by ID. The ID must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.\nReturns the name of a rezzed prim or avatar, present in or otherwise known, to the region in which the script is running. If the key is invalid (not in region, or not a prim or avatar's key), returns an empty string.</string> + </map> + <key>llLinkParticleSystem</key> + <map> + <key>arguments</key> + <array> + <map> + <key>LinkNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Rules</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Creates a particle system based on Rules. An empty list removes a particle system from object.\n + List format is [ rule-1, data-1, rule-2, data-2 ... rule-n, data-n ].\nA particle system defined by a list of rules is set for the prim(s) link. This is identical to llParticleSystem except that it applies to a specified linked prim and not just the prim the script is in.</string> + </map> + <key>llLinkSitTarget</key> + <map> + <key>arguments</key> + <array> + <map> + <key>LinkNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Offset</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Rotation</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>rotation</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Set the sit location for the linked prim(s). If Offset == <0,0,0> clear it.\nSet the sit location for the linked prim(s). The sit location is relative to the prim's position and rotation.</string> + </map> + <key>llList2CSV</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ListVariable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Creates a string of comma separated values from the list.\nCreate a string of comma separated values from the specified list.</string> + </map> + <key>llList2Float</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ListVariable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Index</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Copies the float at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a float, then zero is returned.</string> + </map> + <key>llList2Integer</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ListVariable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Index</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Copies the integer at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to an integer, then zero is returned.</string> + </map> + <key>llList2Json</key> + <map> + <key>arguments</key> + <array> + <map> + <key>JsonType</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Values</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0</real> + <key>tooltip</key> + <string>Converts either a strided list of key:value pairs to a JSON_OBJECT, or a list of values to a JSON_ARRAY.</string> + </map> + <key>llList2Key</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ListVariable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Index</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Copies the key at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a key, then null string is returned.</string> + </map> + <key>llList2List</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ListVariable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Start</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>End</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Copies the slice of the list from Start to End.\nReturns the slice of the list from start to end from the list as a new list. The start and end parameters are inclusive.\n + Using negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would capture the entire list.\n + If start is larger than end the list returned is the exclusion of the entries, so 6, 4 would give the entire list except for the 5th. entry.</string> + </map> + <key>llList2ListStrided</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ListVariable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Start</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>End</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Stride</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Copies the strided slice of the list from Start to End.\nReturns a copy of the strided slice of the specified list from Start to End.</string> + </map> + <key>llList2Rot</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ListVariable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Index</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>rotation</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Copies the rotation at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to rotation, thenZERO_ROTATION is returned.</string> + </map> + <key>llList2String</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ListVariable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Index</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Copies the string at Index in the list.\nReturns the value at Index in the specified list as a string. If Index describes a location not in the list then null string is returned.</string> + </map> + <key>llList2Vector</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ListVariable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Index</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Copies the vector at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a vector, then ZERO_VECTOR is returned.</string> + </map> + <key>llListen</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Channel</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>SpeakersName</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>SpeakersID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets a callback for Text on Channel from SpeakersName and SpeakersID (SpeakersName, SpeakersID, and/or Text can be empty) and returns an identifier that can be used to deactivate or remove the listen.\nSets a listen event callback on the specified channel. Specifying values for speakername, speakerID, and message will filter the results accordingly, which is advisable or your listen event will respond to every thing said on the channel potentially causing a great deal of lag.\n + Returns an identifier that can be used to deactivate or remove the listen. The name, id and/or msg parameters\n + Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are hidden channels that are not sent to avatars.</string> + </map> + <key>llListenControl</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ChannelHandle</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Active</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Makes a listen event callback active or inactive.\nMake a listen event callback active or inactive. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event you are controlling.\n + Use boolean values to specify Active</string> + </map> + <key>llListenRemove</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ChannelHandle</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Removes listen event callback number.\nRemoves a listen event callback. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event to remove.</string> + </map> + <key>llListFindList</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ListVariable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Find</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.\nReturns the position of the first instance of the Find list in the ListVariable. Returns -1 if not found.</string> + </map> + <key>llListInsertList</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Target</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>ListVariable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.\nReturns a new list, created by inserting ListVariable into the Target list at Position. Note this does not alter the Target.</string> + </map> + <key>llListRandomize</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ListVariable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Stride</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a randomized list of blocks of size Stride.\nReturns the specified list randomized into blocks of size stride.\n + If the remainder from the length of the list, divided by the stride is non-zero, this function does not randomize the list.</string> + </map> + <key>llListReplaceList</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Target</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>ListVariable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Start</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>End</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a list that is Target with Start through End removed and ListVariable inserted at Start.\nReturns a list replacing the slice of the Target list from Start to End with the specified ListVariable. Start and End are inclusive, so 0, 1 would replace the first two entries and 0, 0 would replace only the first list entry.</string> + </map> + <key>llListSort</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ListVariable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Stride</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Ascending</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sorts the list into blocks of stride, in Ascending order if Ascending == TRUE. The sort order is affected by type.\nReturns the specified list, sorted into blocks of stride in ascending order (if Ascending is TRUE, otherwise descending). Note that sort only works if the first entry of each block is the same type.</string> + </map> + <key>llListStatistics</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Operation</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>ListVariable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Performs statistical aggregate functions on ListVariable using LIST_STAT_* Operations.\nThis function allows a script to perform a statistical operation as defined by operation on a list composed of integers and floats.</string> + </map> + <key>llLoadURL</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>URL</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>10.0</real> + <key>tooltip</key> + <string>Shows dialog to avatar AvatarID offering to load web page at URL. If user clicks yes, launches their web browser.\nllLoadURL displays a dialogue box to the user, offering to load the specified web page using the default web browser.</string> + </map> + <key>llLog</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Value</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the natural logarithm of Value. Returns zero if Value <= 0.\nReturns the base e (natural) logarithm of the specified Value.</string> + </map> + <key>llLog10</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Value</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the base 10 logarithm of Value. Returns zero if Value <= 0.\nReturns the base 10 (common) logarithm of the specified Value.</string> + </map> + <key>llLookAt</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Target</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Strength</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Damping</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Cause object name to point it's forward axis towards Target.\nCause object to point the forward axis toward Target.\n + Good Strength values are around half the mass of the object and good Damping values are less than 1/10th of the Strength.\n + Asymmetrical shapes require smaller Damping. A Strength of 0.0 cancels the look at.</string> + </map> + <key>llLoopSound</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Sound</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Volume</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Plays attached Sound, looping indefinitely, at Volume (0.0 - 1.0).\nSimilar to llPlaySound, this function plays a sound attached to an object, but will continuously repeat that sound until llStopSound or llPlaySound is called.\n + Only one sound may be attached to an object at a time. A second call to llLoopSound with the same key will not restart the sound, but the new volume will be used. This allows control over the volume of already playing sounds.\n + Setting the volume to 0 is not the same as calling llStopSound; a sound with 0 volume will continue to loop.\n + To restart the sound from the beginning, call llStopSound before calling llLoopSound again.</string> + </map> + <key>llLoopSoundMaster</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Sound</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Volume</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.\nBehaviour is identical to llLoopSound, with the addition of marking the source as a "Sync Master", causing "Slave" sounds to sync to it. If there are multiple masters within a viewers interest area, the most audible one (a function of both distance and volume) will win out as the master.\n + The use of multiple masters within a small area is unlikely to produce the desired effect.</string> + </map> + <key>llLoopSoundSlave</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Sound</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Volume</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.\nBehaviour is identical to llLoopSound, unless there is a "Sync Master" present.\n + If a Sync Master is already playing the Slave sound will begin playing from the same point the master is in its loop synchronizing the loop points of both sounds.\n + If a Sync Master is started when the Slave is already playing, the Slave will skip to the correct position to sync with the Master.</string> + </map> + <key>llMakeExplosion</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Particles</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Scale</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Velocity</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Lifetime</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Arc</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Texture</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Offset</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>deprecated</key> + <boolean>true</boolean> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.1</real> + <key>tooltip</key> + <string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.\nMake a round explosion of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string> + </map> + <key>llMakeFire</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Particles</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Scale</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Velocity</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Lifetime</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Arc</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Texture</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Offset</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>deprecated</key> + <boolean>true</boolean> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.1</real> + <key>tooltip</key> + <string>Make fire like particles. Deprecated: Use llParticleSystem instead.\nMake fire particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string> + </map> + <key>llMakeFountain</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Particles</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Scale</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Velocity</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Lifetime</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Arc</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Texture</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Offset</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>deprecated</key> + <boolean>true</boolean> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.1</real> + <key>tooltip</key> + <string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.\nMake a fountain of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string> + </map> + <key>llMakeSmoke</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Particles</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Scale</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Velocity</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Lifetime</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Arc</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Texture</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Offset</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>deprecated</key> + <boolean>true</boolean> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.1</real> + <key>tooltip</key> + <string>Make smoke like particles. Deprecated: Use llParticleSystem instead.\nMake smoky particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string> + </map> + <key>llManageEstateAccess</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Action</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real/> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real/> + <key>tooltip</key> + <string>Use to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\nUse to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\n + Returns an integer representing a boolean, TRUE if the call was successful; FALSE if throttled, invalid action, invalid or null id or object owner is not allowed to manage the estate.</string> + </map> + <key>llMapDestination</key> + <map> + <key>arguments</key> + <array> + <map> + <key>RegionName</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Direction</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>1.0</real> + <key>tooltip</key> + <string>Opens world map centred on region with Position highlighted. Only works for scripts attached to avatar, or during touch events. NOTE: Direction currently does nothing.\nShows a given location on the map, opening the map window whenever it is called.\n + There is no way to simply set the map position without opening the window.\n + Only works in attachments, or during touch events.</string> + </map> + <key>llMD5String</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Nonce</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a string of 32 hex characters that is an RSA Data Security Inc., MD5 Message-Digest Algorithm of Text with Nonce.\nPerforms an RSA Data Security, Inc. MD5 Message-Digest Algorithm on the specified string using the nonce (also known as salt).\n + Returns a 32-character hex string. (128-bit in binary.)</string> + </map> + <key>llMessageLinked</key> + <map> + <key>arguments</key> + <array> + <map> + <key>LinkNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Number</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>ID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sends Number, Text, and ID to members of the link set identified by LinkNumber (LINK_ROOT sends to root task in a linked set, LINK_SET sends to all tasks, LINK_ALL_OTHERS to all other tasks, LINK_ALL_CHILDREN to all children, LINK_THIS to the task the script it is in).\nSends the specified number, string, and key to members of the link set.\n + The LinkNumber parameter is either a linked number available through llGetLinkNumber or a LINK_* constant.</string> + </map> + <key>llMinEventDelay</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Delay</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Set the minimum time between events being handled.</string> + </map> + <key>llModifyLand</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Action</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Area</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Modify land with action (LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE, LAND_REVERT) on size (LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH, LAND_LARGE_BRUSH).\nModify land with action on size area. The parameters can be chosen from the land constants.</string> + </map> + <key>llModPow</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Value</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Power</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Modulus</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>1.0</real> + <key>tooltip</key> + <string>Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).\nReturns (Value ^ Power) % Modulus. (Value raised to the Power, Modulus). Value is capped at 0xFFFF (16 bits).</string> + </map> + <key>llMoveToTarget</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Target</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Tau</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Critically damp to Target in Tau seconds (if the script is physical).\nCritically damp to position target in tau-seconds if the script is physical. Good tau-values are greater than 0.2. A tau of 0.0 stops the critical damping.</string> + </map> + <key>llNavigateTo</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Location</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Options</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real/> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real/> + <key>tooltip</key> + <string>Navigate to destination.\nDirects an object to travel to a defined position in the region or adjacent regions.</string> + </map> + <key>llOffsetTexture</key> + <map> + <key>arguments</key> + <array> + <map> + <key>OffsetS</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>OffsetT</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.2</real> + <key>tooltip</key> + <string>Sets the texture S and T offsets for the chosen Face.\nSets the texture s and t offsets of face.\n + If Face is ALL_SIDES this function sets the texture offsets for all faces.</string> + </map> + <key>llOpenRemoteDataChannel</key> + <map> + <key>arguments</key> + <undef/> + <key>deprecated</key> + <boolean>true</boolean> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>1.0</real> + <key>tooltip</key> + <string>Requests a channel to listen for XML-RPC calls. Will trigger a remote_data event with channel ID once it is available.\nRequests a channel to listen for XML-RPC calls. (Deprecated: XML-RPC should not be used. Use http-in instead.)\n + Will trigger a remote_data event with type = REMOTE_DATA_CHANNEL and a channel ID (key) once it is available.\n + This channel ID must be referenced in the XML-RPC call to the script (from the internet) -- so the key must somehow get to the scripter's XML-RPC client, most often via llEmail, llHttpRequest or llLoadUrl.</string> + </map> + <key>llOverMyLand</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.\nReturns TRUE if key ID is over land owned by the object owner, FALSE otherwise.</string> + </map> + <key>llOwnerSay</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>says Text to owner only (if owner is in region).\nSays Text to the owner of the object running the script, if the owner has been within the object's simulator since logging into Second Life, regardless of where they may be in-world.</string> + </map> + <key>llParcelMediaCommandList</key> + <map> + <key>arguments</key> + <array> + <map> + <key>CommandList</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>2.0</real> + <key>tooltip</key> + <string>Sends a list of commands, some with arguments, to a parcel.\nControls the playback of multimedia resources on a parcel or for an agent.</string> + </map> + <key>llParcelMediaQuery</key> + <map> + <key>arguments</key> + <array> + <map> + <key>QueryList</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>2.0</real> + <key>tooltip</key> + <string>Returns a list containing results of the sent query.\nQueries the texture and/or URL for QuickTime-playable video on the land parcel.\n + This function will only work if the script is contained within an object owned by the land-owner (or if the land is owned by a group, only if the object has been deeded to the group). It will not work for group land if the object owner is a member of the group. The object actually has to be owned by the group.</string> + </map> + <key>llParseString2List</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Separators</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Spacers</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Breaks Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).\nBreaks the Text into a list using Separators and Spacers to delimit entries. Separators are discarded, while Spacers are kept. Any empty entries are ignored.\n + The separators and spacers must be lists of strings with a maximum of 8 entries each. So, if you had made the call:\n + llParseString2List("Parsethisnow! I dare:you to.", ["this", "!", " "], [":"]);\n + You would get the list: ["Parse", "now", "I", "dare", ":", "you", "to"].</string> + </map> + <key>llParseStringKeepNulls</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Separators</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Spacers</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>list</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Breaks Text into a list, discarding separators, keeping spacers, keeping any null values generated. (separators and spacers must be lists of strings, maximum of 8 each).\nllParseStringKeepNulls works almost exactly like llParseString2List, except that if a null is found it will add a null-string instead of discarding it like llParseString2List does.</string> + </map> + <key>llParticleSystem</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Parameters</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Creates a particle system based on Parameters. An empty list removes particle system from object. + List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nMakes a particle system based on the parameter list.\n + The parameters are specified as an ordered list of parameter and value. Valid parameters and their expected values can be found in the particle system constants.\n + Here is a simple example:\n + llParticleSystem([PSYS_PART_FLAGS, PSYS_PART_WIND_MASK, PSYS_PART_START_COLOR, <1, 0, 0>, PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE]);</string> + </map> + <key>llPassCollisions</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Pass</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>If Pass == TRUE, collisions are passed from children on to parents (default is FALSE).\nIf pass is TRUE, land and object collisions are passed from children on to parents.\n + The default is FALSE if there is no script to handle the collision events.</string> + </map> + <key>llPassTouches</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Pass</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>If pass == TRUE, touches are passed from children on to parents (default is FALSE).\nIf pass is TRUE, touches are passed from children on to parents.\n + The default is TRUE if there is no script to handle the touch events.</string> + </map> + <key>llPatrolPoints</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Points</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Options</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real/> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real/> + <key>tooltip</key> + <string>Patrol a list of points.\nSets the points for a character (llCreateCharacter) to patrol along.</string> + </map> + <key>llPlaySound</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Sound</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Volume</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Plays attached Sound once, at Volume (0.0 - 1.0).\nPlays a sound once. The sound will be attached to the object and follow object's movement. Only one sound may be attached to an object at a time, and attaching a new sound or calling llStopSound will stop the previously attached sound.\n + A second call to llPlaySound with the same sound will not restart the sound, but the new volume will be used, which allows control over the volume of already playing sounds.\n + To restart the sound from the beginning, call llStopSound before calling llPlaySound again.</string> + </map> + <key>llPlaySoundSlave</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Sound</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Volume</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.\nBehaviour is identical to llPlaySound, unless there is a "Sync Master" present. If a Sync Master is already playing, the Slave sound will not be played until the Master hits its loop point and returns to the beginning.\n + llPlaySoundSlave will play the sound exactly once; if it is desired to have the sound play every time the Master loops, either use llLoopSoundSlave with extra silence padded on the end of the sound or ensure that llPlaySoundSlave is called at least once per loop of the Master.</string> + </map> + <key>llPow</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Value</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Exponent</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.\nReturns the Value raised to the Exponent.</string> + </map> + <key>llPreloadSound</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Sound</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>1.0</real> + <key>tooltip</key> + <string>Preloads a sound on viewers within range.\nCauses nearby viewers to preload the Sound from the object's inventory. This is intended to prevent delays in starting new sounds when called upon.</string> + </map> + <key>llPursue</key> + <map> + <key>arguments</key> + <array> + <map> + <key>TargetID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Options</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real/> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real/> + <key>tooltip</key> + <string>Chase after a target.\nCauses the character (llCharacter) to pursue the target defined by TargetID.</string> + </map> + <key>llPushObject</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ObjectID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Impulse</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>AngularImpulse</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Local</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Applies Impulse and AngularImpulse to ObjectID.\nApplies the supplied impulse and angular impulse to the object specified.</string> + </map> + <key>llRefreshPrimURL</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>20.0</real> + <key>tooltip</key> + <string>Reloads the web page shown on the sides of the object.</string> + </map> + <key>llRegionSay</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Channel</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Broadcasts Text to entire region on Channel (not 0.).\nSays the Text on the specified non-zero Channel, so that it can be heard anywhere in the region by a script listening on that channel.</string> + </map> + <key>llRegionSayTo</key> + <map> + <key>arguments</key> + <array> + <map> + <key>TargetID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Channel</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Says Text, on Channel, to avatar or object indicated by TargetID (if within region).\nSays the Text on the supplied channel number, to the object or avatar specified.</string> + </map> + <key>llReleaseCamera</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>deprecated</key> + <boolean>true</boolean> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Return camera to agent.\nDeprecated: Use llClearCameraParams instead.</string> + </map> + <key>llReleaseControls</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Stop taking inputs.\nStop taking inputs from the avatar.</string> + </map> + <key>llReleaseURL</key> + <map> + <key>arguments</key> + <array> + <map> + <key>URL</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Releases the specified URL, it will no longer be usable.</string> + </map> + <key>llRemoteDataReply</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ChannelID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>MessageID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Data</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Data</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>deprecated</key> + <boolean>true</boolean> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>3.0</real> + <key>tooltip</key> + <string>Send an XML-RPC reply to MessageID on ChannelID with payload of string sData and integer iData. Deprecated: Use HTTP functions/events instead.\nDeprecated: Use HTTP functions/events instead.\n + Send an XML-RPC reply to the request with kMessageID on kChannelID with payload of string sData and integer iData.\n + The size of sData is limited to 254 characters.</string> + </map> + <key>llRemoteDataSetRegion</key> + <map> + <key>arguments</key> + <undef/> + <key>deprecated</key> + <boolean>true</boolean> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Deprecated: Use HTTP functions/events instead.\n + If an object using remote data channels changes regions, you must call this function to re-register the remote data channels. + You do not need to make this call if you don't change regions.\nDeprecated: Use HTTP functions/events instead.\n + Does not work! Use llOpenRemoteDataChannel instead.</string> + </map> + <key>llRemoteLoadScriptPin</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ObjectID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>ScriptName</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>PIN</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Running</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>StartParameter</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>3.0</real> + <key>tooltip</key> + <string>If the owner of the object this script is attached to can modify ObjectID, they are in the same region, and the matching PIN is used, copy ScriptName into target, if Running == TRUE, start the script with StartParameter.\nIf the owner of the object containing this script can modify the object identified by the specified object key, and if the PIN matches the PIN previously set using llSetRemoteScriptAccessPin (on the target prim), then the script will be copied into target.</string> + </map> + <key>llRemoveFromLandBanList</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Remove avatar from the land ban list.\nRemove specified avatar from the land parcel ban list.</string> + </map> + <key>llRemoveFromLandPassList</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Remove avatar from the land pass list.\nRemove specified avatar from the land parcel pass list.</string> + </map> + <key>llRemoveInventory</key> + <map> + <key>arguments</key> + <array> + <map> + <key>InventoryItem</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Remove the named inventory item.\nRemove the named inventory item from the object inventory.</string> + </map> + <key>llRemoveVehicleFlags</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Vehiclelags</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Removes the enabled bits in 'flags'.\nSets the vehicle flags to FALSE. Valid parameters can be found in the vehicle flags constants section.</string> + </map> + <key>llRequestAgentData</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Data</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.1</real> + <key>tooltip</key> + <string>Requests data about AvatarID. When data is available the dataserver event will be raised.\nThis function requests data about an avatar. If and when the information is collected, the dataserver event is triggered with the key returned from this function passed in the requested parameter. See the agent data constants (DATA_*) for details about valid values of data and what each will return in the dataserver event.</string> + </map> + <key>llRequestDisplayName</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Requests name of an avatar. When data is available, the dataserver event will be raised.\nRequests the Display Name of the agent. When the Display Name is available the dataserver event will be raised.\n + The avatar identified does not need to be in the same region or online at the time of the request.\n + Returns a key that is used to identify the dataserver event when it is raised.</string> + </map> + <key>llRequestInventoryData</key> + <map> + <key>arguments</key> + <array> + <map> + <key>InventoryItem</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>1.0</real> + <key>tooltip</key> + <string>Requests data from object's inventory object. When data is available the dataserver event will be raised.\nRequests data for the object inventory item named.\n + When data is available the dataserver event will be raised with the key returned from this function in the requested parameter.\n + The only request currently implemented is to request data from landmarks, where the data returned is in the form "<float, float, float>" which can be cast to a vector. This position is in region local coordinates.</string> + </map> + <key>llRequestPermissions</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>PermmissionMask</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Ask AvatarID to allow the script to do PermmissionMask (NB: Debit, ownership, link, joint, and permission requests can only go to the task's owner).\nAsk avatar to allow the script to perform certain actions. The permission flag should be one or more PERMISSION_* constants.\n + Multiple permissions can be requested simultaneously by ORing the constants together. Many of the permissions requests can only go to object owner.\n + This call will not stop script execution. If the avatar grants the requested permissions, the run_time_permissions event will be called.\n + Permissions for a single avatar are granted to a script, not to an object. So multiple scripts can hold permissions for multiple avatars.</string> + </map> + <key>llRequestSecureURL</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Requests one HTTPS:// (SSL) URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTPS:// (SSL) URL for use by this object. The http_request event is triggered with results.\n + Returns a key that is the handle used for identifying the request in the http_request event.</string> + </map> + <key>llRequestSimulatorData</key> + <map> + <key>arguments</key> + <array> + <map> + <key>RegionName</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Data</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>1.0</real> + <key>tooltip</key> + <string>Requests data about a simulator. When data is available the dataserver event will be raised.\nRequests data about the region named. Data should use one of the DATA_SIM_* constants.\n + Returns a dataserver query ID and triggers the dataserver event when data is found. The region name is usually not case-sensitive, but sometimes will return data for a similarly-named region if the supplied case doesn't match the intended region's actual name.</string> + </map> + <key>llRequestURL</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Requests one HTTP:// URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTP:// URL for use by this script. The http_request event is triggered with the result of the request.\n + Returns a key that is the handle used for identifying the result in the http_request event.</string> + </map> + <key>llRequestUsername</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.\nRequests the user-name of the identified agent. When the user-name is available the dataserver event is raised.\nThe agent identified does not need to be in the same region or online at the time of the request.\nReturns a key that is used to identify the dataserver event when it is raised.</string> + </map> + <key>llResetAnimationOverride</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AnimationState</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0</real> + <key>tooltip</key> + <string>Resets the animation of the specified animation state to the default value.\nIf animation state equals "ALL", then all animation states are reset.</string> + </map> + <key>llResetLandBanList</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Removes all residents from the land ban list.</string> + </map> + <key>llResetLandPassList</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Removes all residents from the land access/pass list.</string> + </map> + <key>llResetOtherScript</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ScriptName</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Resets the named script.</string> + </map> + <key>llResetScript</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Resets the script.</string> + </map> + <key>llResetTime</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the time to zero.\nSets the internal timer to zero.</string> + </map> + <key>llReturnObjectsByID</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ObjectIDs</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Return objects using their UUIDs</string> + </map> + <key>llReturnObjectsByOwner</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Scope</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Return objects based upon their owner and a scope of parcel, parcel owner, or region.</string> + </map> + <key>llRezAtRoot</key> + <map> + <key>arguments</key> + <array> + <map> + <key>InventoryItem</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Velocity</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Rotation</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>rotation</string> + </map> + </map> + <map> + <key>StartParameter</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>200.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.1</real> + <key>tooltip</key> + <string>Instantiate owner's InventoryItem at Position with Velocity, Rotation and with StartParameter. The last selected root object's location will be set to Position.\nCreates object's inventory item at the given Position, with Velocity, Rotation, and StartParameter.</string> + </map> + <key>llRezObject</key> + <map> + <key>arguments</key> + <array> + <map> + <key>InventoryItem</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Velocity</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Rotation</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>rotation</string> + </map> + </map> + <map> + <key>StartParameter</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>200</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.1</real> + <key>tooltip</key> + <string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.\nCreates object's inventory item at Position with Velocity and Rotation supplied. The StartParameter value will be available to the newly created object in the on_rez event or through the llGetStartParameter function.\nThe Velocity parameter is ignored if the rezzed object is not physical.</string> + </map> + <key>llRot2Angle</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Rotation</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>rotation</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the rotation angle represented by Rotation.\nReturns the angle represented by the Rotation.</string> + </map> + <key>llRot2Axis</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Rotation</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>rotation</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the rotation axis represented by Rotation.\nReturns the axis represented by the Rotation.</string> + </map> + <key>llRot2Euler</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Rotation</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>rotation</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the Euler representation (roll, pitch, yaw) of Rotation.\nReturns the Euler Angle representation of the Rotation.</string> + </map> + <key>llRot2Fwd</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Rotation</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>rotation</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the forward vector defined by Rotation.\nReturns the forward axis represented by the Rotation.</string> + </map> + <key>llRot2Left</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Rotation</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>rotation</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the left vector defined by Rotation.\nReturns the left axis represented by the Rotation.</string> + </map> + <key>llRot2Up</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Rotation</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>rotation</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the up vector defined by Rotation.\nReturns the up axis represented by the Rotation.</string> + </map> + <key>llRotateTexture</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Radians</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.2</real> + <key>tooltip</key> + <string>Sets the texture rotation for the chosen face.\nSets the rotation of the texture on the given side.\n + If face is ALL_SIDES, rotates the texture of all sides.</string> + </map> + <key>llRotBetween</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Vector1</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Vector2</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>rotation</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the rotation to rotate Vector1 to Vector2.\nReturns the rotation needed to rotate Vector1 to Vector2.</string> + </map> + <key>llRotLookAt</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Rotation</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>rotation</string> + </map> + </map> + <map> + <key>Strength</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Damping</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Cause object to point it's forward axis towards Rotation.\nCause object to rotate to Rotation. Good strength values are around half the mass of the object and good damping values are less than 1/10th of the strength.\n + Asymmetrical shapes require smaller damping.\n + A strength of 0.0 cancels the look at.</string> + </map> + <key>llRotTarget</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Rotation</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>rotation</string> + </map> + </map> + <map> + <key>LeeWay</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Set rotations with error of LeeWay as a rotational target and return an ID for the rotational target.\nSet object rotation within the given lee way of rotation as a rotational target and return an integer number for the target.\n + The returned number is a handle that can be used in llRotTargetRemove.</string> + </map> + <key>llRotTargetRemove</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Handle</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Removes rotational target number.\nRemove rotational target indicated by the handle.</string> + </map> + <key>llRound</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Value</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns Value rounded to the nearest integer.\nReturns the Value rounded to the nearest integer.</string> + </map> + <key>llSameGroup</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.\nReturns TRUE if the object or agent identified is in the same simulator and has the same active group as this object. Otherwise, returns FALSE.</string> + </map> + <key>llSay</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Channel</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Says Text on Channel.\nSay Text on channel.\n + Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen/listen event system.</string> + </map> + <key>llScaleTexture</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Horizontal</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Vertical</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.2</real> + <key>tooltip</key> + <string>Sets the texture's S and T scales for the chosen Face.\nSets the Horizontal and Vertical repeats per Face on Face.\n + If Face == ALL_SIDES, all sides are set in one call.\n + Negative values for horizontal and vertical will flip the texture.</string> + </map> + <key>llScriptDanger</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns TRUE if Position is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.\nReturns true if the position is over public land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string> + </map> + <key>llScriptProfiler</key> + <map> + <key>arguments</key> + <array> + <map> + <key>State</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Enables or disables script profiling options. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n + MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.\nEnables or disables the scripts profiling state.. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n + MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.</string> + </map> + <key>llSendRemoteData</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ChannelID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Destination</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Value</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>deprecated</key> + <boolean>true</boolean> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>3.0</real> + <key>tooltip</key> + <string>Deprecated: use HTTP instead.\n + Sends an XML-RPC request to Destination through ChannelID with payload of ChannelID (in a string), integer Value and string Text. + Returns a key that is the message_id for the resulting remote_data events.\nSend an XML-RPC request to the Destination (probably an URL) through the ChannelID, with a payload of ChannelID (in a string), integer Value and string Text.</string> + </map> + <key>llSensor</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Name</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>ID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Type</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Range</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Arc</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Performs a single scan for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0).\nPerforms a single scan for Name and ID with Type within Range meters and Arc radians of the forward vector.\n + Specifying a blank Name or NULL_KEY ID will prevent filtering results for a particular Name or ID. A range of 0.0 does not perform a scan. The Type parameter should be an object type constant value.</string> + </map> + <key>llSensorRemove</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>removes sensor.\nRemoves the sensor set by llSensorRepeat.</string> + </map> + <key>llSensorRepeat</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Name</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>ID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Type</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Range</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Arc</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Rate</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets a callback for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0) and repeats every Rate seconds.\nPerforms a repeating sensor scan for Name and ID with Type within Range meters and Arc radians of the forward vector (Name and/or ID can be empty or NULL_KEY).\n + A range of 0.0m does not perform a scan. The parameters have the same function as llSensor, except Rate, which defines the number of seconds between repeated scans and subsequent sensor or no_sensor events.</string> + </map> + <key>llSetAlpha</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Opacity</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the alpha (opacity) of Face.\nSets the alpha (opacity) value for Face. If Face is ALL_SIDES, sets the alpha for all faces. The alpha value is interpreted as an opacity percentage (1.0 is fully opaque, and 0.2 is mostly transparent). This function will clamp alpha values less than 0.1 to 0.1 and greater than 1.0 to 1.</string> + </map> + <key>llSetAngularVelocity</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Force</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Local</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real/> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets an object's angular velocity, in local coordinates if local == TRUE (if the script is physical).\nApplies angular (rotational) velocity to a physical object. Has no effect on non-physical objects.</string> + </map> + <key>llSetAnimationOverride</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AnimationState</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>AnimationName</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0</real> + <key>tooltip</key> + <string>Sets the animation (in object inventory) that will play for the given animation state.\nTo use this function the script must obtain the PERMISSION_OVERRIDE_ANIMATIONS permission.</string> + </map> + <key>llSetBuoyancy</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Buoyancy</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Set the tasks buoyancy (0 is none, < 1.0 sinks, 1.0 floats, > 1.0 rises).\nSet the object buoyancy. A value of 0 is none, less than 1.0 sinks, 1.0 floats, and greater than 1.0 rises.</string> + </map> + <key>llSetCameraAtOffset</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Offset</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the camera used in this object, at offset, if an avatar sits on it.\nSets the offset that an avatar's camera will be moved to if the avatar sits on the object.</string> + </map> + <key>llSetCameraEyeOffset</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Offset</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the camera eye offset used in this object if an avatar sits on it.</string> + </map> + <key>llSetCameraParams</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Parameters</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets multiple camera parameters at once. List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nSets multiple camera parameters at once.\n + List format is [rule-1, value-1, rule-2, value-2 ... rule-N, value-N]</string> + </map> + <key>llSetClickAction</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Action</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the action performed when a prim is clicked upon.</string> + </map> + <key>llSetColor</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Colour</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the color, for the face.\nSets the colour of the side specified. If Face is ALL_SIDES, sets the colour on all faces.</string> + </map> + <key>llSetContentType</key> + <map> + <key>arguments</key> + <array> + <map> + <key>HTTPRequestID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>ContentType</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real/> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real/> + <key>tooltip</key> + <string>Set the media type of an LSL HTTP server response.</string> + </map> + <key>llSetDamage</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Damage</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the amount of damage that will be done to an avatar that this task hits. Task will be killed.\nSets the amount of damage that will be done to an avatar that this object hits. This object will be destroyed on damaging an avatar, and no collision event is triggered.</string> + </map> + <key>llSetForce</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Force</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Local</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets Force on object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the force.\n + The vector is in local coordinates if local is TRUE, global if FALSE.</string> + </map> + <key>llSetForceAndTorque</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Force</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Torque</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Local</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the Force and Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the Force and Torque. The vectors are in local coordinates if Local is TRUE, global if FALSE.</string> + </map> + <key>llSetHoverHeight</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Height</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Water</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Tau</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Critically damps to a Height (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to a Height. The height is above ground and water (which ever is greater) if water is TRUE. Only works with physics-enabled objects.\n + Do not use with vehicles. Use llStopHover to stop hovering.</string> + </map> + <key>llSetInventoryPermMask</key> + <map> + <key>arguments</key> + <array> + <map> + <key>InventoryItem</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>PermissionFlag</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>PermissionMask</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>god-mode</key> + <boolean>true</boolean> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the given permission mask to the new value on the inventory item.</string> + </map> + <key>llSetKeyframedMotion</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Keyframes</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + <map> + <key>Options</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real/> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real/> + <key>tooltip</key> + <string>Requests that a non-physical object be key-framed according to key-frame list.\nSpecify a list of times, positions, and orientations to be followed by an object. The object will be smoothly moved between key-frames by the simulator. Collisions with other non-physical or key-framed objects will be ignored (no script events will fire and collision processing will not occur). Collisions with physical objects will be computed and reported, but the key-framed object will be unaffected by those collisions.</string> + </map> + <key>llSetLinkAlpha</key> + <map> + <key>arguments</key> + <array> + <map> + <key>LinkNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Opacity</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>If a prim exists in the link chain at LinkNumber, set Face to Opacity.\nSets the Face, on the linked prim specified, to the Opacity.</string> + </map> + <key>llSetLinkCamera</key> + <map> + <key>arguments</key> + <array> + <map> + <key>LinkNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>EyeOffset</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>LookOffset</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string> + </map> + <key>llSetLinkColor</key> + <map> + <key>arguments</key> + <array> + <map> + <key>LinkNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Colour</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>If a task exists in the link chain at LinkNumber, set the Face to color.\nSets the colour of the linked child's side, specified by LinkNumber.</string> + </map> + <key>llSetLinkMedia</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Link</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Parameters</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>0.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Set the media parameters for a particular face on linked prim. Parameters is a list of name/value pairs (in no particular order). If media is not already on this object, add it. Parameters not specified are unchanged, or if new media is added set to the default specified.\nSet the media parameters for a particular face on the linked prim(s) without a delay.\n + Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string> + </map> + <key>llSetLinkPrimitiveParams</key> + <map> + <key>arguments</key> + <array> + <map> + <key>LinkNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Parameters</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.2</real> + <key>tooltip</key> + <string>Set primitive parameters for LinkNumber based on Parameters.\nSets the parameters (or properties) of any linked prim in one step.</string> + </map> + <key>llSetLinkPrimitiveParamsFast</key> + <map> + <key>arguments</key> + <array> + <map> + <key>LinkNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Parameters</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Set primitive parameters for LinkNumber based on Parameters, without a delay.\nSet parameters for link number, from the list of Parameters, with no built-in script sleep. This function is identical to llSetLinkPrimitiveParams, except without the delay.</string> + </map> + <key>llSetLinkTexture</key> + <map> + <key>arguments</key> + <array> + <map> + <key>LinkNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Texture</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.2</real> + <key>tooltip</key> + <string>Sets the Texture of Face for LinkNumber.\nSets the Texture of linked prims.</string> + </map> + <key>llSetLinkTextureAnim</key> + <map> + <key>arguments</key> + <array> + <map> + <key>LinkNumber</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Mode</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>SizeX</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>SizeY</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Start</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Length</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Rate</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Animate the texture on the specified prim's face/faces.\nAnimate the texture on the specified face/faces of the specified prim/prims by setting the texture scale and offset.\n + Identical to llSetTextureAnim except able to modify any prim in the link set.</string> + </map> + <key>llSetLocalRot</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Rotation</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>rotation</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.2</real> + <key>tooltip</key> + <string>Sets the rotation of a child prim relative to the root prim.</string> + </map> + <key>llSetMemoryLimit</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Limit</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real/> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Request Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\nRequest Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\n + Return TRUE or FALSE indicating whether the limit was set successfully.</string> + </map> + <key>llSetObjectDesc</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Description</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the object's description.\nSets the description of the scripted prim. You can get the description using llGetObjectDesc.\n + The description is limited to 127 characters.</string> + </map> + <key>llSetObjectName</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Name</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the object's name.</string> + </map> + <key>llSetObjectPermMask</key> + <map> + <key>arguments</key> + <array> + <map> + <key>PermissionFlag</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>PermissionMask</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>god-mode</key> + <boolean>true</boolean> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the given permission mask to the new value on the root object the task is attached to.</string> + </map> + <key>llSetParcelMusicURL</key> + <map> + <key>arguments</key> + <array> + <map> + <key>URL</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>2.0</real> + <key>tooltip</key> + <string>Sets the streaming audio URL for the parcel object is on.\nSets the streaming audio URL for the parcel the scripted object is on (the object must be owned by the owner of the parcel, if the parcel is group owned the object must be owned by that group).</string> + </map> + <key>llSetPayPrice</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Price</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>QuickButtons</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the default amount when someone chooses to pay this object.\nSets the values of the buttons and the text box default for the Pay dialogue, when a user right-clicks on the object and selects "Pay".\n + llSetPayPrice will affect what buttons exist, what their values are, and whether or not there is a manual payment text entry box.</string> + </map> + <key>llSetPhysicsMaterial</key> + <map> + <key>arguments</key> + <array> + <map> + <key>MaterialBits</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>GravityMultiplier</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Restitution</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Friction</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Density</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real/> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real/> + <key>tooltip</key> + <string>Sets the requested attributes of the root object's physics material.</string> + </map> + <key>llSetPos</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.2</real> + <key>tooltip</key> + <string>Sets the position (if the script isn't physical).\nIf the object is not physical, this function sets the position in region coordinates. If the object is a child prim, the position is treated as root relative and the link-set is adjusted.</string> + </map> + <key>llSetPrimitiveParams</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Parameters</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.2</real> + <key>tooltip</key> + <string>Set primitive parameters.\nThis function changes the many properties (or "parameters") of a prim in one operation. The Parameters are a list of changes.</string> + </map> + <key>llSetPrimMediaParams</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>MediaParameters</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.1</real> + <key>tooltip</key> + <string>Sets the MediaParameters for a particular Face on an object. If media is not already on this object, add it. + MediaParameters is a set of name/value pairs in no particular order. Parameters not specified are unchanged, or if new media is added then set to the default specified.\nSet the MediaParameters for a particular face.\n + Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string> + </map> + <key>llSetPrimURL</key> + <map> + <key>arguments</key> + <array> + <map> + <key>URL</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>deprecated</key> + <boolean>true</boolean> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>20.0</real> + <key>tooltip</key> + <string>Deprecated: Use llSetPrimMediaParams instead.\nDeprecated: Use llSetPrimMediaParams instead. Updates the URL for the web page shown on the sides of the object.</string> + </map> + <key>llSetRegionPos</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>0.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the Position anywhere within the region (if the object isn't physical).\nTries to moves the entire object so that the root prim is within 0.1m of Position.\n + Returns an integer boolean, TRUE if the object is successfully placed within 0.1 m of Position, FALSE otherwise.\n + The object with the script will move the root prim position to the given location. The position is any position within the region. If the position is below ground, it will be set to the ground level at that x,y location. The function has no delay or throttle.</string> + </map> + <key>llSetRemoteScriptAccessPin</key> + <map> + <key>arguments</key> + <array> + <map> + <key>PIN</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.2</real> + <key>tooltip</key> + <string>If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if it passes in the correct PIN. Othersise, llRemoteLoadScriptPin is ignored.\nIf PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if passed the matching PIN. Otherwise llRemoteLoadScriptPin is ignored</string> + </map> + <key>llSetRot</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Rotation</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>rotation</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.2</real> + <key>tooltip</key> + <string>Sets the rotation (if the script isn't physical).\nIf the object is not physical, this function sets the rotation.\n + If the script is in a child prim, the position is treated as root relative and the linked set is adjusted.</string> + </map> + <key>llSetScale</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Scale</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the scale.\nSets the prim's scale (size).</string> + </map> + <key>llSetScriptState</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ScriptName</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Running</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Control the state of a named script.\nControl the state of a script in the prim.</string> + </map> + <key>llSetSitText</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Displays Text rather than "Sit" in context menu.\nDisplays Text rather than 'Sit' in the viewer's menu.</string> + </map> + <key>llSetSoundQueueing</key> + <map> + <key>arguments</key> + <array> + <map> + <key>QueueEnable</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Determines whether attached sound calls wait for the current sound to finish (0 = no [default], non-zero = yes).\nSets whether successive calls to llPlaySound, llLoopSound, etc., (attached sounds) interrupt the playing sound.\n + The default for objects is FALSE. Setting this value to TRUE will make the sound wait until the current playing sound reaches its end. The queue is one level deep.</string> + </map> + <key>llSetSoundRadius</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Radius</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string> + </map> + <key>llSetStatus</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Status</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Value</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z) to value.\nSets the Status to Value. Use STATUS_* constants for the values of status.</string> + </map> + <key>llSetText</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Colour</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Opacity</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Set text floating over object.\nSets the text that floats above the object, using the specified colour and opacity level.</string> + </map> + <key>llSetTexture</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Texture</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.2</real> + <key>tooltip</key> + <string>Sets the Texture of Face.\nSets the Texture of Face. If Face is ALL_SIDES, set the texture on all faces.</string> + </map> + <key>llSetTextureAnim</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Mode</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Face</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>SizeX</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>SizeY</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Start</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Length</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Rate</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Animate the texture on the specified face/faces.\nAnimates a texture by setting the texture scale and offset.</string> + </map> + <key>llSetTimerEvent</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Rate</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Cause the timer event to be triggered every Rate seconds.\nSets the timer event to be triggered at the specified Rate, in seconds.\n + Passing in 0.0 stops further timer events.</string> + </map> + <key>llSetTorque</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Torque</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Local</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the torque.\n + The vector is in local coordinates if Local is TRUE, global if FALSE.</string> + </map> + <key>llSetTouchText</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Displays Text in the menu that acts on a touch.\nDisplays Text in the viewer context menu that acts on a touch.</string> + </map> + <key>llSetVehicleFlags</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Flags</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the enabled bits in 'flags'.\nSets the vehicle flags to TRUE.\nValid parameters can be found in the vehicle flags constants section.</string> + </map> + <key>llSetVehicleFloatParam</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ParameterName</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>ParameterValue</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the specified vehicle float parameter.\nSets the vehicle floating point parameter.\n + Valid parameters and their expected values can be found in the vehicle parameter constants section.</string> + </map> + <key>llSetVehicleRotationParam</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ParameterName</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>ParameterValue</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the specified vehicle rotation parameter.\nSets the vehicle rotation parameter.\n + Valid parameters can be found in the vehicle parameter constants section.</string> + </map> + <key>llSetVehicleType</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Type</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets vehicle to one of the default types.\nActivates the vehicle action and choose vehicle Type.\n + Valid Types and an explanation of their characteristics can be found in the vehicle type constants section.</string> + </map> + <key>llSetVehicleVectorParam</key> + <map> + <key>arguments</key> + <array> + <map> + <key>ParameterName</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>ParameterValue</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets the specified vehicle vector parameter.\nSets the vehicle vector parameter.\nValid parameters can be found in the vehicle parameter constants section.</string> + </map> + <key>llSetVelocity</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Force</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Local</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real/> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets an objects velocity, in local coordinates if Local == TRUE (if the script is physical).\nApplies Force to a physical object.</string> + </map> + <key>llSHA1String</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a string of 40 hex characters that is the SHA1 security Hash of Text.\nReturns a string of 40 hex characters that is the SHA1 security hash of the supplied string.</string> + </map> + <key>llShout</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Channel</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>shouts Text on Channel.\nShout Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string> + </map> + <key>llSin</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Theta</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the sine of Theta (Theta in radians).\nReturns the sine of Theta in radians.</string> + </map> + <key>llSitTarget</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Offset</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Rotation</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>rotation</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Set the sit location for this object (if offset == <0,0,0> clear it).\nSet the sit location for this object. If offset == ZERO_VECTOR, clears the sit target.</string> + </map> + <key>llSleep</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Time</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Put script to sleep for Time seconds.\nPuts the script to sleep for time specified, in seconds.</string> + </map> + <key>llSound</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Sound</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Volume</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Queue</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Loop</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>deprecated</key> + <boolean>true</boolean> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Deprecated: Use llPlaySound instead.\nDeprecated: Use llPlaySound instead.\nPlays Sound at Volume and specifies whether it should loop or not.</string> + </map> + <key>llSoundPreload</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Sound</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>deprecated</key> + <boolean>true</boolean> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Deprecated: Use llPreloadSound instead.\nDeprecated: Use llPreloadSound instead.\nPreloads a sound on viewers within range.</string> + </map> + <key>llSqrt</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Value</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the square root of Value, or returns 0 and triggers a Math Error for imaginary results.\nReturns the square root of the value. If the value is less than 0.0, this function returns 0.0 and raises a maths runtime error.</string> + </map> + <key>llStartAnimation</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Animation</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Start Animation for agent that owns object.\nThis function starts the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string> + </map> + <key>llStopAnimation</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Animation</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Stop Animation for agent that owns object.\nThis function stops the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string> + </map> + <key>llStopHover</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Stop hovering to a height.\nStop hovering at a height.</string> + </map> + <key>llStopLookAt</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Stop causing object to point at a target.\nStop causing object to look at target.</string> + </map> + <key>llStopMoveToTarget</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Stops critically damped motion.</string> + </map> + <key>llStopSound</key> + <map> + <key>arguments</key> + <undef/> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Stops currently attached sound.\nStops the currently playing attached sound started with llPlaySound or llLoopSound. Has no effect on sounds started with llTriggerSound.</string> + </map> + <key>llStringLength</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the length of string.\nReturns the number of characters in the specified text.</string> + </map> + <key>llStringToBase64</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Converts a string to the Base64 representation of the string.\nConverts a string to the Base 64 representation of the string.</string> + </map> + <key>llStringTrim</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>TrimType</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Trims the leading and/or trailing white spaces from a string.\n + TrimType can be STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL.\nOutputs a string, eliminating white-space from the start and/or end of the specified string.\n + Constants for trim_type:\n + STRING_TRIM_HEAD: trim all leading spaces in text\n + STRING_TRIM_TAIL: trim all trailing spaces in text\n + STRING_TRIM: trim all leading and trailing spaces in text</string> + </map> + <key>llSubStringIndex</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Sequence</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns an integer that is the index in source where pattern first appears. Returns -1 if not found.\nReturns an index of the text where the sequence of characters first appears.\n + Returns -1 if no match is found.</string> + </map> + <key>llTakeCamera</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>deprecated</key> + <boolean>true</boolean> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Deprecated: Use llSetCameraParams instead.\nDeprecated: Use llSetCameraParams instead. Move avatar's viewpoint to task.</string> + </map> + <key>llTakeControls</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Controls</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Accept</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>PassOn</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Take controls from agent task has permissions for. If (Accept == (controls & input)), send input to task. If PassOn send to agent also.\nRequires the PERMISSION_TAKE_CONTROLS permission to run.</string> + </map> + <key>llTan</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Theta</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the tangent of Theta (Theta in radians).\nReturns the tangent of Theta radians.</string> + </map> + <key>llTarget</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Range</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>integer</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Sets positions within range of position as a target and return an ID for the target.\nSet object position, within range of position, as a target and returns an integer ID for the target.</string> + </map> + <key>llTargetOmega</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Axis</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>SpinRate</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>Gain</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Attempt to spin at SpinRate with strength Gain.\nAttempt to spin at SpinRate with strength Gain on axis.\n + A spin-rate of 0.0 cancels the spin. This function always works in object local coordinates.</string> + </map> + <key>llTargetRemove</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Target</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Removes target number.\nRemove target number.</string> + </map> + <key>llTeleportAgent</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>LandmarkName</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Position</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>LookAtPoint</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0</real> + <key>tooltip</key> + <string>Requests a teleport of avatar to a landmark stored in the object's inventory. If no landmark is provided (an empty string), the avatar is teleported to the location position in the current region. In either case, the avatar is turned to face the position given by look_at in local coordinates. + Requires the PERMISSION_TELEPORT permission. This function can only teleport the owner of the object.</string> + </map> + <key>llTeleportAgentGlobalCoords</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>GlobalPosition</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>RegionPosition</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>LookAtPoint</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0</real> + <key>tooltip</key> + <string>Teleports an agent to set of a region_coordinates within a region at the specified global_coordinates. The agent lands facing the position defined by look_at local coordinates.</string> + </map> + <key>llTeleportAgentHome</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>100.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>5.0</real> + <key>tooltip</key> + <string>Teleports agent on owner's land to agent's home location.\nTeleport agent over the owner's land to agent's home location.</string> + </map> + <key>llTextBox</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Channel</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>1.0</real> + <key>tooltip</key> + <string>Shows a dialog box on the avatar's screen with the message. A text box asks for input, and if entered the Text is chatted on Channel.\nShows a dialogue box on avatar's screen with the text message.\n + It contains a text box for input. Any text that is entered is said on the specified channel (as if by the avatar) when the "OK" button is clicked.</string> + </map> + <key>llToLower</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a string that is Text with all lower-case characters.\nReturns Text in all lower case.</string> + </map> + <key>llToUpper</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns a string that is Text with all upper-case characters.\nReturns Text in all upper case.</string> + </map> + <key>llTransferLindenDollars</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + <map> + <key>Amount</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real/> + <key>return</key> + <string>key</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Transfer Amount of linden dollars (L$) from script owner to AvatarID. Returns a key to a corresponding transaction_result event for the success of the transfer.\nAttempts to send the amount of money to the specified avatar, and trigger a transaction_result event identified by the returned key.</string> + </map> + <key>llTriggerSound</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Sound</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Volume</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.\nPlays a transient sound NOT attached to an object.\n + The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n + There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string> + </map> + <key>llTriggerSoundLimited</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Sound</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Volume</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>float</string> + </map> + </map> + <map> + <key>TNE</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>BSW</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object, limited to axis-aligned bounding box defined by vectors top-north-east (TNE) and bottom-south-west (BSW).\nPlays a transient sound NOT attached to an object, with its audible range limited by the axis-aligned bounding box define by TNE (top-north-east) and BSW (bottom-south-west).\n + The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n + There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string> + </map> + <key>llUnescapeURL</key> + <map> + <key>arguments</key> + <array> + <map> + <key>URL</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns an unescaped/ unencoded version of URL, replacing %20 with spaces etc.\nReturns the string that is the URL unescaped, replacing "%20" with spaces, etc., version of URL.\n + The function can output raw UTF-8 strings.</string> + </map> + <key>llUnSit</key> + <map> + <key>arguments</key> + <array> + <map> + <key>AvatarID</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>key</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>If agent identified by AvatarID is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.\nIf the agent identified is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.</string> + </map> + <key>llUpdateCharacter</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Options</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real/> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real/> + <key>tooltip</key> + <string>Change the character's settings.\nUpdates settings for a character.</string> + </map> + <key>llVecDist</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Location1</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Location2</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the 3D distance between Location1 and Location2.\nReturns the distance from location 1 to location 2.</string> + </map> + <key>llVecMag</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Vector</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the magnitude of Vector.\nReturns the magnitude of the vector.</string> + </map> + <key>llVecNorm</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Vector</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the v normalized.\nReturns normalized vector.</string> + </map> + <key>llVolumeDetect</key> + <map> + <key>arguments</key> + <array> + <map> + <key>DetectEnabled</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>If DetectEnabled = TRUE, object becomes phantom but triggers collision_start and collision_end events when other objects start and stop interpenetrating. Must be applied to the root object.\nWhen detect = TRUE, this makes the entire link set the script is attached to phantom. If another object (including avatars) interpenetrates it, it will get a collision_start event.\n + When an object stops interpenetrating, a collision_end event is generated. While the other is inter-penetrating, collision events are NOT generated. The script must be applied to the root object of the link set to get the collision events.\n + Collision filters work normally.</string> + </map> + <key>llWanderWithin</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Origin</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Area</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + <map> + <key>Options</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>list</string> + </map> + </map> + </array> + <key>energy</key> + <real/> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real/> + <key>tooltip</key> + <string>Wander within a specified volume.\nSets a character to wander about a central spot within a specified area.</string> + </map> + <key>llWater</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Offset</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>float</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the water height below the object position + offset.\nReturns the water height at the object's position + offset.</string> + </map> + <key>llWhisper</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Channel</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>integer</string> + </map> + </map> + <map> + <key>Text</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>void</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Whispers Text on Channel.\nWhisper Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string> + </map> + <key>llWind</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Offset</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>vector</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>vector</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Returns the wind velocity at the object position + offset.\nReturns the wind velocity at the object's position + offset.</string> + </map> + <key>llXorBase64</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text1</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Text2</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.3</real> + <key>tooltip</key> + <string>Performs an exclusive OR on two Base64 strings and returns a Base64 string. Text2 repeats if it is shorter than Text1. Retained for backwards compatibility.\nDeprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string> + </map> + <key>llXorBase64Strings</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text1</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Text2</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>deprecated</key> + <boolean>true</boolean> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.3</real> + <key>tooltip</key> + <string>Deprecated: Please use llXorBase64 instead.\n + Incorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string. Text2 repeats if it is shorter than Text1. Retained for backwards compatibility.\nDeprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string> + </map> + <key>llXorBase64StringsCorrect</key> + <map> + <key>arguments</key> + <array> + <map> + <key>Text1</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + <map> + <key>Text2</key> + <map> + <key>tooltip</key> + <string/> + <key>type</key> + <string>string</string> + </map> + </map> + </array> + <key>deprecated</key> + <boolean>true</boolean> + <key>energy</key> + <real>10.0</real> + <key>return</key> + <string>string</string> + <key>sleep</key> + <real>0.0</real> + <key>tooltip</key> + <string>Deprecated: Please use llXorBase64 instead.\n + Correctly (unless nulls are present) performs an exclusive OR on two Base64 strings and returns a Base64 string.\n + Text2 repeats if it is shorter than Text1.\nPerforms an exclusive-OR on two Base64 strings and returns a Base64 string. text-2 repeats if it is shorter than text-1.\n + This function is for encrypting data. Put your data in text-1 and your key in text-2 to encrypt or put the encrypted data into text-1 with the same key in text-2 to decrypt again.</string> + </map> + </map> + </map> +</llsd> diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 79da9e5873..f150ceda67 100755 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -259,11 +259,9 @@ bool handleSlowMotionAnimation(const LLSD& newvalue) return true; } -// static -void LLAgent::parcelChangedCallback() +void LLAgent::setCanEditParcel() // called via mParcelChangedSignal { bool can_edit = LLToolMgr::getInstance()->canEdit(); - gAgent.mCanEditParcel = can_edit; } @@ -425,6 +423,8 @@ LLAgent::LLAgent() : mListener.reset(new LLAgentListener(*this)); + addParcelChangedCallback(&setCanEditParcel); + mMoveTimer.stop(); } @@ -451,8 +451,6 @@ void LLAgent::init() mLastKnownRequestMaturity = mLastKnownResponseMaturity; mIsDoSendMaturityPreferenceToServer = true; - LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback(boost::bind(&LLAgent::parcelChangedCallback)); - if (!mTeleportFinishedSlot.connected()) { mTeleportFinishedSlot = LLViewerParcelMgr::getInstance()->setTeleportFinishedCallback(boost::bind(&LLAgent::handleTeleportFinished, this)); @@ -835,22 +833,33 @@ void LLAgent::handleServerBakeRegionTransition(const LLUUID& region_id) } } +void LLAgent::changeParcels() +{ + LL_DEBUGS("AgentLocation") << "Calling ParcelChanged callbacks" << LL_ENDL; + // Notify anything that wants to know about parcel changes + mParcelChangedSignal(); +} + +boost::signals2::connection LLAgent::addParcelChangedCallback(parcel_changed_callback_t cb) +{ + return mParcelChangedSignal.connect(cb); +} + //----------------------------------------------------------------------------- // setRegion() //----------------------------------------------------------------------------- void LLAgent::setRegion(LLViewerRegion *regionp) { - bool teleport = true; - + bool notifyRegionChange; + llassert(regionp); if (mRegionp != regionp) { - // std::string host_name; - // host_name = regionp->getHost().getHostName(); - + notifyRegionChange = true; + std::string ip = regionp->getHost().getString(); - llinfos << "Moving agent into region: " << regionp->getName() - << " located at " << ip << llendl; + LL_INFOS("AgentLocation") << "Moving agent into region: " << regionp->getName() + << " located at " << ip << LL_ENDL; if (mRegionp) { // We've changed regions, we're now going to change our agent coordinate frame. @@ -878,9 +887,6 @@ void LLAgent::setRegion(LLViewerRegion *regionp) { gSky.mVOGroundp->setRegion(regionp); } - - // Notify windlight managers - teleport = (gAgent.getTeleportState() != LLAgent::TELEPORT_NONE); } else { @@ -902,8 +908,14 @@ void LLAgent::setRegion(LLViewerRegion *regionp) // Pass new region along to metrics components that care about this level of detail. LLAppViewer::metricsUpdateRegion(regionp->getHandle()); } + else + { + notifyRegionChange = false; + } mRegionp = regionp; + // TODO - most of what follows probably should be moved into callbacks + // Pass the region host to LLUrlEntryParcel to resolve parcel name // with a server request. LLUrlEntryParcel::setRegionHost(getRegionHost()); @@ -922,15 +934,6 @@ void LLAgent::setRegion(LLViewerRegion *regionp) LLFloaterMove::sUpdateFlyingStatus(); - if (teleport) - { - LLEnvManagerNew::instance().onTeleport(); - } - else - { - LLEnvManagerNew::instance().onRegionCrossing(); - } - // If the newly entered region is using server bakes, and our // current appearance is non-baked, request appearance update from // server. @@ -943,6 +946,12 @@ void LLAgent::setRegion(LLViewerRegion *regionp) // Need to handle via callback after caps arrive. mRegionp->setCapabilitiesReceivedCallback(boost::bind(&LLAgent::handleServerBakeRegionTransition,this,_1)); } + + if (notifyRegionChange) + { + LL_DEBUGS("AgentLocation") << "Calling RegionChanged callbacks" << LL_ENDL; + mRegionChangedSignal(); + } } @@ -967,6 +976,16 @@ LLHost LLAgent::getRegionHost() const } } +boost::signals2::connection LLAgent::addRegionChangedCallback(const region_changed_signal_t::slot_type& cb) +{ + return mRegionChangedSignal.connect(cb); +} + +void LLAgent::removeRegionChangedCallback(boost::signals2::connection callback) +{ + mRegionChangedSignal.disconnect(callback); +} + //----------------------------------------------------------------------------- // inPrelude() //----------------------------------------------------------------------------- diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h index 7fac17d098..0766407494 100755 --- a/indra/newview/llagent.h +++ b/indra/newview/llagent.h @@ -231,15 +231,54 @@ private: LLVector3 mHomePosRegion; //-------------------------------------------------------------------- - // Region + // Parcel //-------------------------------------------------------------------- public: + void changeParcels(); // called by LLViewerParcelMgr when we cross a parcel boundary + + // Register a boost callback to be called when the agent changes parcels + typedef boost::function<void()> parcel_changed_callback_t; + boost::signals2::connection addParcelChangedCallback(parcel_changed_callback_t); + +private: + typedef boost::signals2::signal<void()> parcel_changed_signal_t; + parcel_changed_signal_t mParcelChangedSignal; + + //-------------------------------------------------------------------- + // Region + //-------------------------------------------------------------------- + public: void setRegion(LLViewerRegion *regionp); LLViewerRegion *getRegion() const; LLHost getRegionHost() const; BOOL inPrelude(); -private: + + /** + * Register a boost callback to be called when the agent changes regions + * Note that if you need to access a capability for the region, you may need to wait + * for the capabilities to be received, since in some cases your region changed + * callback will be called before the capabilities have been received. Your callback + * may need to look something like: + * + * LLViewerRegion* region = gAgent.getRegion(); + * if (region->capabilitiesReceived()) + * { + * useCapability(region); + * } + * else // Need to handle via callback after caps arrive. + * { + * region->setCapabilitiesReceivedCallback(boost::bind(&useCapability,region,_1)); + * // you may or may not want to remove that callback + * } + */ + typedef boost::signals2::signal<void()> region_changed_signal_t; + + boost::signals2::connection addRegionChangedCallback(const region_changed_signal_t::slot_type& cb); + void removeRegionChangedCallback(boost::signals2::connection callback); + + private: LLViewerRegion *mRegionp; + region_changed_signal_t mRegionChangedSignal; //-------------------------------------------------------------------- // History @@ -640,9 +679,10 @@ private: public: bool canEditParcel() const { return mCanEditParcel; } private: + static void setCanEditParcel(); bool mCanEditParcel; - static void parcelChangedCallback(); + /******************************************************************************** ** ** diff --git a/indra/newview/llenvmanager.cpp b/indra/newview/llenvmanager.cpp index 86fe6754dc..589cf28615 100755 --- a/indra/newview/llenvmanager.cpp +++ b/indra/newview/llenvmanager.cpp @@ -92,9 +92,11 @@ void LLEnvPrefs::setUseDayCycle(const std::string& name) } //============================================================================= -LLEnvManagerNew::LLEnvManagerNew() +LLEnvManagerNew::LLEnvManagerNew(): + mInterpNextChangeMessage(true), + mCurRegionUUID(LLUUID::null), + mLastReceivedID(LLUUID::null) { - mInterpNextChangeMessage = true; // Set default environment settings. mUserPrefs.mUseRegionSettings = true; @@ -102,6 +104,9 @@ LLEnvManagerNew::LLEnvManagerNew() mUserPrefs.mWaterPresetName = "Default"; mUserPrefs.mSkyPresetName = "Default"; mUserPrefs.mDayCycleName = "Default"; + + LL_DEBUGS("Windlight")<<LL_ENDL; + gAgent.addRegionChangedCallback(boost::bind(&LLEnvManagerNew::onRegionChange, this)); } bool LLEnvManagerNew::getUseRegionSettings() const @@ -300,6 +305,11 @@ void LLEnvManagerNew::loadUserPrefs() mUserPrefs.mUseRegionSettings = gSavedSettings.getBOOL("UseEnvironmentFromRegion"); mUserPrefs.mUseDayCycle = gSavedSettings.getBOOL("UseDayCycle"); + + if (mUserPrefs.mUseRegionSettings) + { + requestRegionSettings(); + } } void LLEnvManagerNew::saveUserPrefs() @@ -398,6 +408,7 @@ void LLEnvManagerNew::dumpPresets() void LLEnvManagerNew::requestRegionSettings() { + LL_DEBUGS("Windlight") << LL_ENDL; LLEnvironmentRequest::initiate(); } @@ -422,11 +433,6 @@ boost::signals2::connection LLEnvManagerNew::setRegionSettingsChangeCallback(con return mRegionSettingsChangeSignal.connect(cb); } -boost::signals2::connection LLEnvManagerNew::setRegionChangeCallback(const region_change_signal_t::slot_type& cb) -{ - return mRegionChangeSignal.connect(cb); -} - boost::signals2::connection LLEnvManagerNew::setRegionSettingsAppliedCallback(const region_settings_applied_signal_t::slot_type& cb) { return mRegionSettingsAppliedSignal.connect(cb); @@ -457,25 +463,13 @@ const std::string LLEnvManagerNew::getScopeString(LLEnvKey::EScope scope) } } -void LLEnvManagerNew::onRegionCrossing() -{ - LL_DEBUGS("Windlight") << "Crossed region" << LL_ENDL; - onRegionChange(true); -} - -void LLEnvManagerNew::onTeleport() -{ - LL_DEBUGS("Windlight") << "Teleported" << LL_ENDL; - onRegionChange(false); -} - void LLEnvManagerNew::onRegionSettingsResponse(const LLSD& content) { // If the message was valid, grab the UUID from it and save it for next outbound update message. mLastReceivedID = content[0]["messageID"].asUUID(); // Refresh cached region settings. - LL_DEBUGS("Windlight") << "Caching region environment settings: " << content << LL_ENDL; + LL_DEBUGS("Windlight") << "Received region environment settings: " << content << LL_ENDL; F32 sun_hour = 0; // *TODO LLEnvironmentSettings new_settings(content[1], content[2], content[3], sun_hour); mCachedRegionPrefs = new_settings; @@ -594,6 +588,7 @@ void LLEnvManagerNew::updateWaterFromPrefs(bool interpolate) void LLEnvManagerNew::updateManagersFromPrefs(bool interpolate) { + LL_DEBUGS("Windlight")<<LL_ENDL; // Apply water settings. updateWaterFromPrefs(interpolate); @@ -651,28 +646,35 @@ bool LLEnvManagerNew::useDefaultWater() } -void LLEnvManagerNew::onRegionChange(bool interpolate) +void LLEnvManagerNew::onRegionChange() { // Avoid duplicating region setting requests // by checking whether the region is actually changing. LLViewerRegion* regionp = gAgent.getRegion(); LLUUID region_uuid = regionp ? regionp->getRegionID() : LLUUID::null; - if (region_uuid == mCurRegionUUID) + if (region_uuid != mCurRegionUUID) { - return; + // Clear locally modified region settings. + mNewRegionPrefs.clear(); + + // *TODO: clear environment settings of the previous region? + + // Request environment settings of the new region. + mCurRegionUUID = region_uuid; + // for region crossings, interpolate the change; for teleports, don't + mInterpNextChangeMessage = (gAgent.getTeleportState() == LLAgent::TELEPORT_NONE); + LL_DEBUGS("Windlight") << (mInterpNextChangeMessage ? "Crossed" : "Teleported") + << " to new region: " << region_uuid + << LL_ENDL; + requestRegionSettings(); + } + else + { + LL_DEBUGS("Windlight") << "disregarding region change; interp: " + << (mInterpNextChangeMessage ? "true" : "false") + << " regionp: " << regionp + << " old: " << mCurRegionUUID + << " new: " << region_uuid + << LL_ENDL; } - - // Clear locally modified region settings. - mNewRegionPrefs.clear(); - - // *TODO: clear environment settings of the previous region? - - // Request environment settings of the new region. - LL_DEBUGS("Windlight") << "New viewer region: " << region_uuid << LL_ENDL; - mCurRegionUUID = region_uuid; - mInterpNextChangeMessage = interpolate; - requestRegionSettings(); - - // Let interested parties know agent region has been changed. - mRegionChangeSignal(); } diff --git a/indra/newview/llenvmanager.h b/indra/newview/llenvmanager.h index ad56761bc7..c7877303fc 100755 --- a/indra/newview/llenvmanager.h +++ b/indra/newview/llenvmanager.h @@ -166,7 +166,6 @@ class LLEnvManagerNew : public LLSingleton<LLEnvManagerNew> public: typedef boost::signals2::signal<void()> prefs_change_signal_t; typedef boost::signals2::signal<void()> region_settings_change_signal_t; - typedef boost::signals2::signal<void()> region_change_signal_t; typedef boost::signals2::signal<void(bool)> region_settings_applied_signal_t; LLEnvManagerNew(); @@ -222,15 +221,12 @@ public: bool sendRegionSettings(const LLEnvironmentSettings& new_settings); boost::signals2::connection setPreferencesChangeCallback(const prefs_change_signal_t::slot_type& cb); boost::signals2::connection setRegionSettingsChangeCallback(const region_settings_change_signal_t::slot_type& cb); - boost::signals2::connection setRegionChangeCallback(const region_change_signal_t::slot_type& cb); boost::signals2::connection setRegionSettingsAppliedCallback(const region_settings_applied_signal_t::slot_type& cb); static bool canEditRegionSettings(); /// @return true if we have access to editing region environment static const std::string getScopeString(LLEnvKey::EScope scope); // Public callbacks. - void onRegionCrossing(); - void onTeleport(); void onRegionSettingsResponse(const LLSD& content); void onRegionSettingsApplyResponse(bool ok); @@ -251,7 +247,7 @@ private: bool useDefaultSky(); bool useDefaultWater(); - void onRegionChange(bool interpolate); + void onRegionChange(); /// Emitted when user environment preferences change. prefs_change_signal_t mUsePrefsChangeSignal; @@ -260,9 +256,6 @@ private: region_settings_change_signal_t mRegionSettingsChangeSignal; /// Emitted when agent region changes. Move to LLAgent? - region_change_signal_t mRegionChangeSignal; - - /// Emitted when agent region changes. Move to LLAgent? region_settings_applied_signal_t mRegionSettingsAppliedSignal; LLEnvPrefs mUserPrefs; /// User environment preferences. diff --git a/indra/newview/llfloaterbulkpermission.cpp b/indra/newview/llfloaterbulkpermission.cpp index 76f62a7880..c3e9a6f5fb 100755 --- a/indra/newview/llfloaterbulkpermission.cpp +++ b/indra/newview/llfloaterbulkpermission.cpp @@ -36,7 +36,7 @@ #include "llviewerobject.h" #include "llviewerobjectlist.h" #include "llviewerregion.h" -#include "lscript_rt_interface.h" +//#include "lscript_rt_interface.h" #include "llviewercontrol.h" #include "llviewerinventory.h" #include "llviewerobject.h" diff --git a/indra/newview/llfloatereditdaycycle.cpp b/indra/newview/llfloatereditdaycycle.cpp index b63677b258..78e20e3bf0 100755 --- a/indra/newview/llfloatereditdaycycle.cpp +++ b/indra/newview/llfloatereditdaycycle.cpp @@ -145,7 +145,7 @@ void LLFloaterEditDayCycle::initCallbacks(void) // Connect to env manager events. LLEnvManagerNew& env_mgr = LLEnvManagerNew::instance(); env_mgr.setRegionSettingsChangeCallback(boost::bind(&LLFloaterEditDayCycle::onRegionSettingsChange, this)); - env_mgr.setRegionChangeCallback(boost::bind(&LLFloaterEditDayCycle::onRegionChange, this)); + gAgent.addRegionChangedCallback(boost::bind(&LLFloaterEditDayCycle::onRegionChange, this)); env_mgr.setRegionSettingsAppliedCallback(boost::bind(&LLFloaterEditDayCycle::onRegionSettingsApplied, this, _1)); // Connect to day cycle manager events. diff --git a/indra/newview/llfloaterpathfindingconsole.cpp b/indra/newview/llfloaterpathfindingconsole.cpp index 298454724b..161259d049 100755 --- a/indra/newview/llfloaterpathfindingconsole.cpp +++ b/indra/newview/llfloaterpathfindingconsole.cpp @@ -34,11 +34,11 @@ #include <boost/signals2.hpp> +#include "llagent.h" #include "llbutton.h" #include "llcheckboxctrl.h" #include "llcombobox.h" #include "llcontrol.h" -#include "llenvmanager.h" #include "llfloaterpathfindingcharacters.h" #include "llfloaterpathfindinglinksets.h" #include "llfloaterreg.h" @@ -224,7 +224,7 @@ void LLFloaterPathfindingConsole::onOpen(const LLSD& pKey) if (!mRegionBoundarySlot.connected()) { - mRegionBoundarySlot = LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLFloaterPathfindingConsole::onRegionBoundaryCross, this)); + mRegionBoundarySlot = gAgent.addRegionChangedCallback(boost::bind(&LLFloaterPathfindingConsole::onRegionBoundaryCross, this)); } if (!mTeleportFailedSlot.connected()) diff --git a/indra/newview/llfloaterpathfindingobjects.cpp b/indra/newview/llfloaterpathfindingobjects.cpp index 20c1215bcb..d72ee073e1 100755 --- a/indra/newview/llfloaterpathfindingobjects.cpp +++ b/indra/newview/llfloaterpathfindingobjects.cpp @@ -41,7 +41,6 @@ #include "llavatarnamecache.h" #include "llbutton.h" #include "llcheckboxctrl.h" -#include "llenvmanager.h" #include "llfloater.h" #include "llfontgl.h" #include "llnotifications.h" @@ -85,7 +84,7 @@ void LLFloaterPathfindingObjects::onOpen(const LLSD &pKey) if (!mRegionBoundaryCrossingSlot.connected()) { - mRegionBoundaryCrossingSlot = LLEnvManagerNew::getInstance()->setRegionChangeCallback(boost::bind(&LLFloaterPathfindingObjects::onRegionBoundaryCrossed, this)); + mRegionBoundaryCrossingSlot = gAgent.addRegionChangedCallback(boost::bind(&LLFloaterPathfindingObjects::onRegionBoundaryCrossed, this)); } if (!mGodLevelChangeSlot.connected()) diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp index 66bf49331b..ed0209f90b 100755 --- a/indra/newview/llfloaterregioninfo.cpp +++ b/indra/newview/llfloaterregioninfo.cpp @@ -219,7 +219,7 @@ BOOL LLFloaterRegionInfo::postBuild() &processEstateOwnerRequest); // Request region info when agent region changes. - LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLFloaterRegionInfo::requestRegionInfo, this)); + gAgent.addRegionChangedCallback(boost::bind(&LLFloaterRegionInfo::requestRegionInfo, this)); return TRUE; } diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp index 5022dba934..dbdff11f11 100755 --- a/indra/newview/lllocationinputctrl.cpp +++ b/indra/newview/lllocationinputctrl.cpp @@ -407,14 +407,14 @@ LLLocationInputCtrl::LLLocationInputCtrl(const LLLocationInputCtrl::Params& p) // - Make the "Add landmark" button updated when either current parcel gets changed // or a landmark gets created or removed from the inventory. // - Update the location string on parcel change. - mParcelMgrConnection = LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback( + mParcelMgrConnection = gAgent.addParcelChangedCallback( boost::bind(&LLLocationInputCtrl::onAgentParcelChange, this)); // LLLocationHistory instance is being created before the location input control, so we have to update initial state of button manually. mButton->setEnabled(LLLocationHistory::instance().getItemCount() > 0); mLocationHistoryConnection = LLLocationHistory::getInstance()->setChangedCallback( boost::bind(&LLLocationInputCtrl::onLocationHistoryChanged, this,_1)); - mRegionCrossingSlot = LLEnvManagerNew::getInstance()->setRegionChangeCallback(boost::bind(&LLLocationInputCtrl::onRegionBoundaryCrossed, this)); + mRegionCrossingSlot = gAgent.addRegionChangedCallback(boost::bind(&LLLocationInputCtrl::onRegionBoundaryCrossed, this)); createNavMeshStatusListenerForCurrentRegion(); mRemoveLandmarkObserver = new LLRemoveLandmarkObserver(this); diff --git a/indra/newview/llmenuoptionpathfindingrebakenavmesh.cpp b/indra/newview/llmenuoptionpathfindingrebakenavmesh.cpp index a567d1217a..8879cfd7fb 100755 --- a/indra/newview/llmenuoptionpathfindingrebakenavmesh.cpp +++ b/indra/newview/llmenuoptionpathfindingrebakenavmesh.cpp @@ -79,7 +79,7 @@ void LLMenuOptionPathfindingRebakeNavmesh::initialize() if ( !mRegionCrossingSlot.connected() ) { - mRegionCrossingSlot = LLEnvManagerNew::getInstance()->setRegionChangeCallback(boost::bind(&LLMenuOptionPathfindingRebakeNavmesh::handleRegionBoundaryCrossed, this)); + mRegionCrossingSlot = gAgent.addRegionChangedCallback(boost::bind(&LLMenuOptionPathfindingRebakeNavmesh::handleRegionBoundaryCrossed, this)); } if (!mAgentStateSlot.connected()) diff --git a/indra/newview/llmoveview.cpp b/indra/newview/llmoveview.cpp index eb6591eb39..32b168b8c5 100755 --- a/indra/newview/llmoveview.cpp +++ b/indra/newview/llmoveview.cpp @@ -140,7 +140,7 @@ BOOL LLFloaterMove::postBuild() initMovementMode(); - LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback(LLFloaterMove::sUpdateFlyingStatus); + gAgent.addParcelChangedCallback(LLFloaterMove::sUpdateFlyingStatus); return TRUE; } diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp index 6c2a01fc82..8bb3ace2d9 100755 --- a/indra/newview/llpanelplaces.cpp +++ b/indra/newview/llpanelplaces.cpp @@ -251,7 +251,7 @@ LLPanelPlaces::LLPanelPlaces() gInventory.addObserver(mInventoryObserver); - mAgentParcelChangedConnection = LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback( + mAgentParcelChangedConnection = gAgent.addParcelChangedCallback( boost::bind(&LLPanelPlaces::updateVerbs, this)); //buildFromFile( "panel_places.xml"); // Called from LLRegisterPanelClass::defaultPanelClassBuilder() diff --git a/indra/newview/llpaneltopinfobar.cpp b/indra/newview/llpaneltopinfobar.cpp index 9dd665198f..0d09f0bbfc 100755 --- a/indra/newview/llpaneltopinfobar.cpp +++ b/indra/newview/llpaneltopinfobar.cpp @@ -166,7 +166,7 @@ BOOL LLPanelTopInfoBar::postBuild() mShowCoordsCtrlConnection = ctrl->getSignal()->connect(boost::bind(&LLPanelTopInfoBar::onNavBarShowParcelPropertiesCtrlChanged, this)); } - mParcelMgrConnection = LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback( + mParcelMgrConnection = gAgent.addParcelChangedCallback( boost::bind(&LLPanelTopInfoBar::onAgentParcelChange, this)); setVisibleCallback(boost::bind(&LLPanelTopInfoBar::onVisibilityChange, this, _2)); diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index e533be7f24..aedf687f0d 100755 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -34,6 +34,7 @@ #include "llcheckboxctrl.h" #include "llcombobox.h" #include "lldir.h" +#include "llenvmanager.h" #include "llexternaleditor.h" #include "llfilepicker.h" #include "llfloaterreg.h" @@ -50,11 +51,9 @@ #include "llscrolllistctrl.h" #include "llscrolllistitem.h" #include "llscrolllistcell.h" +#include "llsdserialize.h" #include "llslider.h" #include "lscript_rt_interface.h" -#include "lscript_library.h" -#include "lscript_export.h" -#include "lltextbox.h" #include "lltooldraganddrop.h" #include "llvfile.h" @@ -408,42 +407,21 @@ BOOL LLScriptEdCore::postBuild() initMenu(); + // Intialise keyword highlighting for the current simulator's version of LSL + onRegionChangeInitialiseKeywords(); + // Set up a callback for region changes, so that highlighting is updated to the new region's version of LSL + gAgent.addRegionChangedCallback(boost::bind(&LLScriptEdCore::onRegionChangeInitialiseKeywords, this)); - std::vector<std::string> funcs; - std::vector<std::string> tooltips; - for (std::vector<LLScriptLibraryFunction>::const_iterator i = gScriptLibrary.mFunctions.begin(); - i != gScriptLibrary.mFunctions.end(); ++i) - { - // Make sure this isn't a god only function, or the agent is a god. - if (!i->mGodOnly || gAgent.isGodlike()) - { - std::string name = i->mName; - funcs.push_back(name); - - std::string desc_name = "LSLTipText_"; - desc_name += name; - std::string desc = LLTrans::getString(desc_name); - - F32 sleep_time = i->mSleepTime; - if( sleep_time ) - { - desc += "\n"; - - LLStringUtil::format_map_t args; - args["[SLEEP_TIME]"] = llformat("%.1f", sleep_time ); - desc += LLTrans::getString("LSLTipSleepTime", args); - } - - // A \n linefeed is not part of xml. Let's add one to keep all - // the tips one-per-line in strings.xml - LLStringUtil::replaceString( desc, "\\n", "\n" ); - - tooltips.push_back(desc); - } - } - - LLColor3 color(0.5f, 0.0f, 0.15f); - mEditor->loadKeywords(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords.ini"), funcs, tooltips, color); + return TRUE; +} + +void LLScriptEdCore::onRegionChangeInitialiseKeywords() +{ + mEditor->mKeywords.clearLoaded(); + mSyntaxIdLSL.initialise(); + mEditor->mKeywords.initialise(mSyntaxIdLSL.getKeywordsXML()); + + mEditor->loadKeywords(); std::vector<std::string> primary_keywords; std::vector<std::string> secondary_keywords; @@ -452,7 +430,7 @@ BOOL LLScriptEdCore::postBuild() for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it) { token = token_it->second; - if (token->getColor() == color) // Wow, what a disgusting hack. + if (token->getType() == LLKeywordToken::TT_FUNCTION) { primary_keywords.push_back( wstring_to_utf8str(token->getToken()) ); } @@ -462,10 +440,6 @@ BOOL LLScriptEdCore::postBuild() } } - // Case-insensitive dictionary sort for primary keywords. We don't sort the secondary - // keywords. They're intelligently grouped in keywords.ini. - std::stable_sort( primary_keywords.begin(), primary_keywords.end(), LLSECKeywordCompare() ); - for (std::vector<std::string>::const_iterator iter= primary_keywords.begin(); iter!= primary_keywords.end(); ++iter) { @@ -477,8 +451,6 @@ BOOL LLScriptEdCore::postBuild() { mFunctions->add(*iter); } - - return TRUE; } void LLScriptEdCore::initMenu() @@ -680,7 +652,7 @@ void LLScriptEdCore::updateDynamicHelp(BOOL immediate) std::vector<LLTextSegmentPtr>::iterator segment_iter; for (segment_iter = selected_segments.begin(); segment_iter != selected_segments.end(); ++segment_iter) { - if((*segment_iter)->getToken() && (*segment_iter)->getToken()->getType() == LLKeywordToken::WORD) + if((*segment_iter)->getToken() && (*segment_iter)->getToken()->getType() == LLKeywordToken::TT_WORD) { segment = *segment_iter; break; @@ -691,7 +663,7 @@ void LLScriptEdCore::updateDynamicHelp(BOOL immediate) if (!segment) { const LLTextSegmentPtr test_segment = mEditor->getPreviousSegment(); - if(test_segment->getToken() && test_segment->getToken()->getType() == LLKeywordToken::WORD) + if(test_segment->getToken() && test_segment->getToken()->getType() == LLKeywordToken::TT_WORD) { segment = test_segment; } diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h index 9fb0a4fb63..2dd5a1b6a7 100755 --- a/indra/newview/llpreviewscript.h +++ b/indra/newview/llpreviewscript.h @@ -35,6 +35,7 @@ #include "lliconctrl.h" #include "llframetimer.h" #include "llfloatergotoline.h" +#include "llsyntaxid.h" class LLLiveLSLFile; class LLMessageSystem; @@ -77,6 +78,7 @@ public: ~LLScriptEdCore(); void initMenu(); + void onRegionChangeInitialiseKeywords(); virtual void draw(); /*virtual*/ BOOL postBuild(); @@ -149,6 +151,7 @@ private: BOOL mEnableSave; BOOL mHasScriptData; LLLiveLSLFile* mLiveFile; + LLSyntaxIdLSL mSyntaxIdLSL; LLScriptEdContainer* mContainer; // parent view }; diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp new file mode 100644 index 0000000000..94226b82b1 --- /dev/null +++ b/indra/newview/llsyntaxid.cpp @@ -0,0 +1,297 @@ +/** + * @file LLSyntaxId + * @author Ima Mechanique + * @brief Handles downloading, saving, and checking of LSL keyword/syntax files + * for each region. + * + * $LicenseInfo:firstyear=2013&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2013, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#include "llviewerprecompiledheaders.h" + +#include "llagent.h" +#include "llappviewer.h" +#include "llhttpclient.h" +#include "llsdserialize.h" +#include "llsyntaxid.h" + + +//----------------------------------------------------------------------------- +// fetchKeywordsFileResponder +//----------------------------------------------------------------------------- +fetchKeywordsFileResponder::fetchKeywordsFileResponder(std::string filespec) +{ + mFileSpec = filespec; + LL_INFOS("SyntaxLSL") + << "Instantiating with file saving to: '" << filespec << "'" + << LL_ENDL; +} + +void fetchKeywordsFileResponder::errorWithContent(U32 status, + const std::string& reason, + const LLSD& content) +{ + LL_ERRS("SyntaxLSL") + << "fetchKeywordsFileResponder error [status:" + << status << "]: " << content + << LL_ENDL; +} + +void fetchKeywordsFileResponder::result(const LLSD& content_ref) +{ + LLSyntaxIdLSL::setKeywordsXml(content_ref); + + std::stringstream str; + LLSDSerialize::toPrettyXML(content_ref, str); + const std::string xml = str.str(); + + // save the str to disc, usually to the cache. + llofstream file(mFileSpec, std::ios_base::out); + file.write(xml.c_str(), str.str().size()); + file.close(); + + LL_INFOS("SyntaxLSL") + << "Syntax file received, saving as: '" << mFileSpec << "'" << LL_ENDL; +} + + +//----------------------------------------------------------------------------- +// LLSyntaxIdLSL +//----------------------------------------------------------------------------- +/** + * @brief LLSyntaxIdLSL constructor + */ +LLSyntaxIdLSL::LLSyntaxIdLSL() : + // Move these to signature? + mFileNameDefault("keywords_lsl_default.xml"), + mSimulatorFeature("LSLSyntaxId"), + mCapabilityName("LSLSyntax"), + mCapabilityURL(""), + mFilePath(LL_PATH_APP_SETTINGS) +{ + mSyntaxIdCurrent = LLUUID(); + mFileNameCurrent = mFileNameDefault; +} + +LLSD LLSyntaxIdLSL::sKeywordsXml; + +std::string LLSyntaxIdLSL::buildFileNameNew() +{ + mFileNameNew = mSyntaxIdNew.isNull() ? mFileNameDefault : "keywords_lsl_" + gLastVersionChannel + "_" + mSyntaxIdNew.asString() + ".llsd.xml"; + return mFileNameNew; +} + +std::string LLSyntaxIdLSL::buildFullFileSpec() +{ + ELLPath path = mSyntaxIdNew.isNull() ? LL_PATH_APP_SETTINGS : LL_PATH_CACHE; + buildFileNameNew(); + mFullFileSpec = gDirUtilp->getExpandedFilename(path, mFileNameNew); + return mFullFileSpec; +} + +//----------------------------------------------------------------------------- +// checkSyntaxIdChange() +//----------------------------------------------------------------------------- +bool LLSyntaxIdLSL::checkSyntaxIdChanged() +{ + bool changed = false; + LLViewerRegion* region = gAgent.getRegion(); + + if (region) + { + if (!region->capabilitiesReceived()) + { // Shouldn't be possible, but experience shows that it may be needed. + LL_WARNS("SyntaxLSL") + << "Region '" << region->getName() + << "' has not received capabilities yet! Cannot process SyntaxId." + << LL_ENDL; + } + else + { + LLSD simFeatures; + std::string message; + region->getSimulatorFeatures(simFeatures); + + // get and check the hash + if (simFeatures.has("LSLSyntaxId")) + { + mSyntaxIdNew = simFeatures["LSLSyntaxId"].asUUID(); + mCapabilityURL = region->getCapability(mCapabilityName); + if (mSyntaxIdCurrent != mSyntaxIdNew) + { + message = "' it has LSLSyntaxId capability, and the new hash is '" + + mSyntaxIdNew.asString() + "'"; + + changed = true; + } + else + { + message = "' it has the same LSLSyntaxId! Leaving hash as '" + + mSyntaxIdCurrent.asString() + "'"; + } + } + else + { + if ( mSyntaxIdCurrent.isNull() ) + { + message = " it does not have LSLSyntaxId capability, remaining with default keywords file!"; + } + else + { + // The hash is set to NULL_KEY to indicate use of default keywords file + mSyntaxIdNew = LLUUID(); + message = " it does not have LSLSyntaxId capability, using default keywords file!"; + changed = true; + } + } + LL_INFOS("SyntaxLSL") + << "Region is '" << region->getName() << message << LL_ENDL; + } + } + return changed; +} + +//----------------------------------------------------------------------------- +// fetchKeywordsFile +//----------------------------------------------------------------------------- +void LLSyntaxIdLSL::fetchKeywordsFile() +{ + if ( !mCapabilityURL.empty() ) + { + LLHTTPClient::get(mCapabilityURL, + new fetchKeywordsFileResponder(mFullFileSpec), + LLSD(), 30.f + ); + LL_INFOS("SyntaxLSL") + << "LSLSyntaxId capability URL is: " << mCapabilityURL + << ". Filename to use is: '" << mFullFileSpec << "'." + << LL_ENDL; + } + else + { + LL_ERRS("SyntaxLSL") + << "LSLSyntaxId capability URL is empty!!" << LL_ENDL; + } +} + +void LLSyntaxIdLSL::initialise() +{ + mFileNameNew = mFileNameCurrent; + mSyntaxIdNew = mSyntaxIdCurrent; + if (checkSyntaxIdChanged()) + { + LL_INFOS("SyntaxLSL") + << "LSL version has changed, getting appropriate file." + << LL_ENDL; + + // Need a full spec regardless of file source, so build it now. + buildFullFileSpec(); + if ( !mSyntaxIdNew.isNull() ) + { + if ( !gDirUtilp->fileExists(mFullFileSpec) ) + { // Does not exist, so fetch it from the capability + fetchKeywordsFile(); + LL_INFOS("SyntaxLSL") + << "File is not cached, we will try to download it!" + << LL_ENDL; + } + else + { + LL_INFOS("SyntaxLSL") + << "File is cached, no need to download!" + << LL_ENDL; + loadKeywordsIntoLLSD(); + } + } + else + { // Need to open the default + loadDefaultKeywordsIntoLLSD("LSLSyntaxId is null so we will use the default file!"); + } + } + else if (sKeywordsXml.isDefined()) + { + LL_INFOS("SyntaxLSL") + << "No change to Syntax! Nothing to see. Move along now!" + << LL_ENDL; + } + else + { // Need to open the default + loadDefaultKeywordsIntoLLSD("LSLSyntaxId is null so we will use the default file!"); + } + + mFileNameCurrent = mFileNameNew; + mSyntaxIdCurrent = mSyntaxIdNew; +} + +//----------------------------------------------------------------------------- +// loadDefaultKeywordsIntoLLSD() +//----------------------------------------------------------------------------- +void LLSyntaxIdLSL::loadDefaultKeywordsIntoLLSD(const std::string message) +{ + LL_INFOS("SyntaxLSL") << message << LL_ENDL; + mSyntaxIdNew = LLUUID(); + buildFullFileSpec(); + loadKeywordsIntoLLSD(); +} + +//----------------------------------------------------------------------------- +// loadKeywordsFileIntoLLSD +//----------------------------------------------------------------------------- +/** + * @brief Load xml serialised LLSD + * @desc Opens the specified filespec and attempts to deserialise the + * contained data to the specified LLSD object. + * @return Returns boolean true/false indicating success or failure. + */ +bool LLSyntaxIdLSL::loadKeywordsIntoLLSD() +{ + LL_INFOS("SyntaxLSL") + << "Trying to open cached or default keyword file ;-)" + << LL_ENDL; + + bool loaded = false; + LLSD content; + llifstream file; + file.open(mFullFileSpec); + if (file.is_open()) + { + loaded = (bool)LLSDSerialize::fromXML(content, file); + if (!loaded) + { + LL_ERRS("SyntaxLSL") << "Unable to deserialise file: " << mFullFileSpec << LL_ENDL; + + // Is this the right thing to do, or should we leave the old content + // even if it isn't entirely accurate anymore? + sKeywordsXml = LLSD().emptyMap(); + } + else + { + sKeywordsXml = content; + LL_INFOS("SyntaxLSL") << "Deserialised file: " << mFullFileSpec << LL_ENDL; + } + } + else + { + LL_ERRS("SyntaxLSL") << "Unable to open file: " << mFullFileSpec << LL_ENDL; + } + return loaded; +} diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h new file mode 100644 index 0000000000..b968dd233d --- /dev/null +++ b/indra/newview/llsyntaxid.h @@ -0,0 +1,121 @@ +/** + * @file llsyntaxid.h + * @brief Contains methods to access the LSLSyntaxId feature and LSLSyntax capability + * to use the appropriate syntax file for the current region's LSL version. + * @author Ima Mechanique + * + * $LicenseInfo:firstyear=2013&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2013, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ +#ifndef LLSYSNTAXIDLSL_H +#define LLSYSNTAXIDLSL_H + +#endif // LLSYSNTAXIDLSL_H + +#include "llviewerprecompiledheaders.h" + +#include "llagent.h" +#include "llenvmanager.h" +#include "llhttpclient.h" +#include "llviewerregion.h" + +/** + * @file llsyntaxid.h + * @brief Handles responses for the LSLSyntax capability's get call. + */ +class fetchKeywordsFileResponder : public LLHTTPClient::Responder +{ +public: + std::string mFileSpec; + + /** + * @brief fetchKeywordsFileResponder + * @param filespec File path and name of where to save the returned data + */ + fetchKeywordsFileResponder(std::string filespec); + + void errorWithContent(U32 status, + const std::string& reason, + const LLSD& content); + + /** + * @brief Saves the returned file to the location provided at instantiation. + * @param content_ref The LSL syntax file for the sim. + */ + void result(const LLSD& content_ref); +}; + + +/** + * @file llsyntaxid.h + * @brief Tracks the file needed to decorate the current sim's version of LSL. + */ +class LLSyntaxIdLSL +{ +public: + + +protected: + LLViewerRegion* region; + + +private: + std::string mCapabilityName; + std::string mCapabilityURL; + std::string mFileNameCurrent; + std::string mFileNameDefault; + std::string mFileNameNew; + ELLPath mFilePath; + std::string mFullFileSpec; + std::string mSimulatorFeature; + LLUUID mSyntaxIdCurrent; + LLUUID mSyntaxIdNew; + + static LLSD sKeywordsXml; + + +public: + LLSyntaxIdLSL(); + + bool checkSyntaxIdChanged(); + std::string getFileNameCurrent() const { return mFileNameCurrent; } + ELLPath getFilePath() const { return mFilePath; } + std::string getFileSpec() const { return mFullFileSpec; } + LLSD getKeywordsXML() const { return sKeywordsXml; } + LLUUID getSyntaxId() const { return mSyntaxIdCurrent; } + + void initialise(); + + static void setKeywordsXml(const LLSD& content) { sKeywordsXml = content; } + + +protected: + std::string buildFileNameNew(); + std::string buildFullFileSpec(); + void fetchKeywordsFile(); + void loadDefaultKeywordsIntoLLSD(const std::string message); + bool loadKeywordsIntoLLSD(); + void setSyntaxId(LLUUID SyntaxId) { mSyntaxIdCurrent = SyntaxId; } + void setFileNameCurrent(std::string& name) { mFileNameCurrent = name; } + void setFileNameDefault(std::string& name) { mFileNameDefault = name; } + void setFileNameNew(std::string name) { mFileNameNew = name; } + void setSimulatorFeatureName(const std::string& name) { mSimulatorFeature = name; } +}; diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp index 4cdb568d17..e361fad9de 100755 --- a/indra/newview/llviewerparcelmgr.cpp +++ b/indra/newview/llviewerparcelmgr.cpp @@ -1580,7 +1580,8 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use // Let interesting parties know about agent parcel change. LLViewerParcelMgr* instance = LLViewerParcelMgr::getInstance(); - instance->mAgentParcelChangedSignal(); + // Notify anything that wants to know when the agent changes parcels + gAgent.changeParcels(); if (instance->mTeleportInProgress) { @@ -2458,10 +2459,6 @@ LLViewerTexture* LLViewerParcelMgr::getPassImage() const return sPassImage; } -boost::signals2::connection LLViewerParcelMgr::addAgentParcelChangedCallback(parcel_changed_callback_t cb) -{ - return mAgentParcelChangedSignal.connect(cb); -} /* * Set finish teleport callback. You can use it to observe all teleport events. * NOTE: @@ -2475,7 +2472,7 @@ boost::signals2::connection LLViewerParcelMgr::setTeleportFinishedCallback(telep return mTeleportFinishedSignal.connect(cb); } -boost::signals2::connection LLViewerParcelMgr::setTeleportFailedCallback(parcel_changed_callback_t cb) +boost::signals2::connection LLViewerParcelMgr::setTeleportFailedCallback(teleport_failed_callback_t cb) { return mTeleportFailedSignal.connect(cb); } diff --git a/indra/newview/llviewerparcelmgr.h b/indra/newview/llviewerparcelmgr.h index 6183b7e90e..9da49bb3f3 100755 --- a/indra/newview/llviewerparcelmgr.h +++ b/indra/newview/llviewerparcelmgr.h @@ -80,8 +80,8 @@ class LLViewerParcelMgr : public LLSingleton<LLViewerParcelMgr> public: typedef boost::function<void (const LLVector3d&, const bool& local)> teleport_finished_callback_t; typedef boost::signals2::signal<void (const LLVector3d&, const bool&)> teleport_finished_signal_t; - typedef boost::function<void()> parcel_changed_callback_t; - typedef boost::signals2::signal<void()> parcel_changed_signal_t; + typedef boost::function<void()> teleport_failed_callback_t; + typedef boost::signals2::signal<void()> teleport_failed_signal_t; LLViewerParcelMgr(); ~LLViewerParcelMgr(); @@ -283,9 +283,8 @@ public: // the agent is banned or not in the allowed group BOOL isCollisionBanned(); - boost::signals2::connection addAgentParcelChangedCallback(parcel_changed_callback_t cb); boost::signals2::connection setTeleportFinishedCallback(teleport_finished_callback_t cb); - boost::signals2::connection setTeleportFailedCallback(parcel_changed_callback_t cb); + boost::signals2::connection setTeleportFailedCallback(teleport_failed_callback_t cb); void onTeleportFinished(bool local, const LLVector3d& new_pos); void onTeleportFailed(); @@ -338,8 +337,7 @@ private: BOOL mTeleportInProgress; teleport_finished_signal_t mTeleportFinishedSignal; - parcel_changed_signal_t mTeleportFailedSignal; - parcel_changed_signal_t mAgentParcelChangedSignal; + teleport_failed_signal_t mTeleportFailedSignal; // Array of pieces of parcel edges to potentially draw // Has (parcels_per_edge + 1) * (parcels_per_edge + 1) elements so diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 6018c2d250..a067603bf0 100755 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -1608,6 +1608,7 @@ void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames) capabilityNames.append("GroupProposalBallot"); capabilityNames.append("HomeLocation"); capabilityNames.append("LandResources"); + capabilityNames.append("LSLSyntax"); capabilityNames.append("MapLayer"); capabilityNames.append("MapLayerGod"); capabilityNames.append("MeshUploadFlag"); diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index f53995732f..77a8fc7e22 100755 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -56,7 +56,7 @@ <color name="Black" value="0 0 0 1" /> - <colork + <color name="Black_10" value="0 0 0 0.1" /> <color @@ -898,5 +898,60 @@ <color name="ResizebarBody" value="0.208 0.208 0.208 1"/> - + + <!-- syntax highlighting (LSL Scripts) --> + <color + name="SyntaxLslComment1Sided" + value=".8 .3 .15 1.0" /> + <color + name="SyntaxLslComment2Sided" + value=".8 .3 .15 1.0" /> + <color + name="SyntaxLslConstantFloat" + value=".3 .1 .5 1.0" /> + <color + name="SyntaxLslConstantInteger" + value=".1 .1 .5 1.0" /> + <color + name="ResizebarBody" + value="0.208 0.208 0.208 1"/> + <color + name="SyntaxLslConstantKey" + value=".1 .3 .5 1.0" /> + <color + name="SyntaxLslConstantRotation" + value=".2 .4 .2 1.0" /> + <color + name="SyntaxLslConstantString" + value=".1 .3 .5 1.0" /> + <color + name="SyntaxLslConstantVector" + value=".2 .4 .2 1.0" /> + <color + name="SyntaxLslControlFlow" + value="0 0 .8 1.0" /> + <color + name="SyntaxLslControlLabel" + value="0 0 .8 1.0" /> + <color + name="SyntaxLslDataType" + value=".1 .3 .1 1.0" /> + <color + name="SyntaxLslDeprecated" + value=".9 .4 .55 1.0" /> + <color + name="SyntaxLslEvent" + value="0 .3 .5 1.0" /> + <color + name="SyntaxLslFunction" + value=".3 0 .5 1.0" /> + <color + name="SyntaxLslGodMode" + value="0.7 .2 .35 1.0" /> + <color + name="SyntaxLslSection" + value=".5 .1 .3 1.0" /> + <color + name="SyntaxLslStringLiteral" + value="0 .2 0 1.0" /> </colors> diff --git a/indra/newview/skins/default/xui/en/panel_script_ed.xml b/indra/newview/skins/default/xui/en/panel_script_ed.xml index bcdef96138..d1b35dce9d 100755 --- a/indra/newview/skins/default/xui/en/panel_script_ed.xml +++ b/indra/newview/skins/default/xui/en/panel_script_ed.xml @@ -157,7 +157,7 @@ height="376" ignore_tab="false" layout="topleft" - max_length="65536" + max_length="262144" name="Script Editor" text_readonly_color="DkGray" width="487" |