Difference between revisions of "Linden Scripting Language/ru"
(Help info) |
(formating) |
||
Line 5: | Line 5: | ||
''Вся информация о "Linden Scripting Language" является доступной на [[LSL Portal|LSL портале]].'' | ''Вся информация о "Linden Scripting Language" является доступной на [[LSL Portal|LSL портале]].'' | ||
<div class="content clear-block"> | |||
<p></p><p align="center"><b>КРАТКИЙ СПРАВОЧНИК ПО LSL</b></p> | |||
<p align="center"> 2007 Октябрь</p> | |||
<p align="center"><b>ЯЗЫК LSL</b></p> | |||
<p><b>Constants</b></p> | |||
<p>Константы в LSL это заранее заданные глобальные преременные определенного типа которые используются для удобства восприятия каких либо числовых значений. </p> | |||
<p>Константы описаны в приложении : <b>«C. КОНСТАНТЫ»</b></p> | |||
<p><b>Events</b></p> | |||
<p>LSL событийный язык и в любой вашей программе должно быть хотябы одно обьявленное и описанное событие. Все команды языка бутут выполнятся в теле события.</p> | |||
<p>События описаны в приложении : <b>«B. СОБЫТИЯ»</b></p> | |||
<p><b>Functions</b></p> | |||
<p>Набор из более чем трехсот функций опысывается в приложении: <b>«A. БИБЛИОТЕЧНЫЕ ЛИНДЕН-ФУНКЦИИ»</b></p> | |||
<p><b>Flow Control</b></p> | |||
<p>Команды контроля выполнения программы:</p> | |||
<p> </p> | |||
<p><b>if</b>(условие){программа выполняется если истина} <b>else </b>{программа выполняется если ложь}</p> | |||
<p><b>if</b>(условие){программа выполняется если истина}</p> | |||
<p> </p> | |||
<p><b>while</b>(условие){программа выполняющаяся циклически пока условие не будет истинно - условие проверяется перед итерацией}</p> | |||
<p><b>do</b>{программа выполняющаяся циклически пока условие не будет истинно - условие проверяется после итеррации}<b>while</b>(условие)</p> | |||
<p><b>for</b>(инициализация переменной; условие; операция над переменной например инкремент){программа выполняющаяся циклически пока условие не будет истинно - условие проверяется после итеррации}</p> | |||
<p> </p> | |||
<p><b>jump</b> метка_места_перехода;</p> | |||
<p>...</p> | |||
<p>...</p> | |||
<p>метка_места_перехода@;</p> | |||
<p>...</p> | |||
<p><b>return</b> значение; вернуть значение функции если функция была обьявлена как функция возвращающая какоето значение.</p> | |||
<p><b>return; </b>выход из цикла, из функции , из события , после выхода продолжается выполнение дальнейшей программы.</p> | |||
<p><b>Operators</b></p> | |||
<p>Список операторов:</p> | |||
<p>() [] . Parenthesis, Brackets, and Dot do this second (do this first)</p> | |||
<p>(type) Typecasting message = "The result is:" + (string) result;</p> | |||
<p>! ~ ++ -- NOT, One's Complement, Increment, Decrement counter++;</p> | |||
<p>* / % Multiply, Divide, Modulus rollover = (count + 1)%5;</p> | |||
<p>- Subtraction one = 3 - 2;</p> | |||
<p>+ Addition or joining Strings two = 1+1; text = "Hello" + "World"; myList = [1, 2, 3] + [4, 5]; newList = oldList + addList;</p> | |||
<p><< >> Left Shift, Right Shift eight = 4 << 1;</p> | |||
<p>< <= > >= Less Than, Less Than Or Equal To, isFalse = (6 <= 4);</p> | |||
<p>& Bitwise AND zero = 4 & 2;four = 4 & 4;</p> | |||
<p>^ Bitwise XOR zero = 4 ^ 4; six = 4 ^ 2;</p> | |||
<p>| Bitwise OR four = 4 | 4; six = 4 | 2;</p> | |||
<p>&& Comparison AND isFalse = (FALSE && TRUE);</p> | |||
<p>|| Comparison OR isTrue = (FALSE || TRUE);</p> | |||
<p>= += -= *= /= %= Assignment four = 4;</p> | |||
<p><b>States</b></p> | |||
<p>В любой программе написанной на LSL обязательно должно быть хотябы одно состояние. Начальное состояние в котором обявляются и описываются все события называется <b>default </b>состоянием.</p> | |||
<p>Форма записи состояний:</p> | |||
<p><b>default</b>{событие1{}событие2{}событиеN{}} -- так описывается начальное состояние</p> | |||
<p><b>state</b> состояние1{событие1{}событие2{}событиеN{}} -- так описывается любое состояние определенное пользователем</p> | |||
<p>Вызов любого из обьявленных и описанных состояних может быть произведен из любого места в программе описанной в событиях.</p> | |||
<p> </p> | |||
<p>Форма вызова события:</p> | |||
<p><b>default</b></p> | |||
<p>{</p> | |||
<p>событие1 { ... }</p> | |||
<p>событие2 { ... ; <b>state</b> состояние2 ; ... ; }</p> | |||
<p>событиеN { ... }</p> | |||
<p>}</p> | |||
<p> </p> | |||
<p><b>state </b>состояние2</p> | |||
<p>{</p> | |||
<p>событие1 { ... }</p> | |||
<p>событие2 { ... ; <b>state default</b> ; ... ; }</p> | |||
<p>событиеN { ... }</p> | |||
<p>}</p> | |||
<p>Обьявление состояния default не требует ключевого слова state.</p> | |||
<p><b>Types</b></p> | |||
<p><b>integer </b>- целочисленный тип данных</p> | |||
<p><b>float </b>- тип данных с плавающей точкой</p> | |||
<p><b>string </b>- строковый тип данных а также и символьный</p> | |||
<p><b>key </b>- тип данных использующийся для хранения уникальных ключей ID</p> | |||
<p><b>vector </b>- тип данных использующийся для хранения коордитат или схожих данных в виде < x, y, z ></p> | |||
<p><b>rotation </b>- тип данных использующийся для хранения угловых параметров или схожих данных в виде < x, y, z, s ></p> | |||
<p><b>list </b>- смешаный тип данных обьеденяющий в себе понятия структуры и масива. Можно хранить списки любых типов данных в любом порядке.</p> | |||
<p><b>Variables </b></p> | |||
<p>Примеры записи значений переменных разных типов:</p> | |||
<p><b>integer </b>- 1234567</p> | |||
<p><b>float </b>- 123456.789</p> | |||
<p><b>string </b>- "stroka"</p> | |||
<p><b>key </b>- "a822ff2b-ff02-461d-b45d-dcd10a2de0c2"</p> | |||
<p><b>vector </b>- < 0.35, 1.456, 234.23 ></p> | |||
<p><b>rotation</b> - < 0.35, 1.456, 234.23, 12.3 ></p> | |||
<p><b>list </b>- [1234567, "stroka", "a822ff2b-ff02-461d-b45d-dcd10a2de0c2", < 0.35, 1.456, 234.23, 12.3 >, < 0.35, 1.456, 234.23 >]</p> | |||
<p><b>Errors </b></p> | |||
<p>Сообщения о ошибках происходящих в работе програмы отправляются по специальному каналу DEBUG_CHANNEL и они все будут отображатся в тексте чата.</p> | |||
<p> </p> | |||
<p align="center"><b>Приложение A. БИБЛИОТЕЧНЫЕ ЛИНДЕН-ФУНКЦИИ</b></p> | |||
<p><b>A.1. llAbs</b></p> | |||
<p>integer llAbs(integer val);</p> | |||
<p>Возвращает абсолютное число</p> | |||
<p><b>A.2. llAcos</b></p> | |||
<p>float llAcos(float val);</p> | |||
<p>Возвращает арккосинус числа</p> | |||
<p><b>A.3. llAddToLandPassList</b></p> | |||
<p>llAddToLandPassList(key avatar, float hours);</p> | |||
<p>Добавить аватара avatar к пропускному списку Этой земли на время hours.</p> | |||
<p><b>A.4. llAdjustSoundVolume</b></p> | |||
<p>llAdjustSoundVolume(float volume);</p> | |||
<p>Настроить громкость проигрывания звука прикрепленного к обьекту с этим скриптом и запущенного с помощью llPlaySound или llLoopSound. Эта функция не дает эффекта если не установлен тригер звука с помошью функции llTriggerSound.</p> | |||
<p><b>A.5. llAllowInventoryDrop</b></p> | |||
<p>llAllowInventoryDrop(integer add);</p> | |||
<p>Если add = TRUE, юзер не сможет модифицировать права доступа для выбрасывания из инвентаря </p> | |||
<p><b>A.6. llAngleBetween</b></p> | |||
<p>float llAngleBetween(rotation a, rotation b);</p> | |||
<p>Возвращает угол в радианах между поворотами a и b.</p> | |||
<p><b>A.7. llApplyImpulse</b></p> | |||
<p>llApplyImpulse(vector force, integer local);</p> | |||
<p>Применить импульс force к локальной системе координат local если local = TRUE. Иначе приложенный импульс будет приложен к глобальной системе координат. Эта функция работает только с физическими обьектами.</p> | |||
<p><b>A.8. llApplyRotationalImpulse</b></p> | |||
<p>llApplyRotationalImpulse(vector force, integer local);</p> | |||
<p>Задать импульс вращения force к системе координат local если local = TRUE. Иначе приложенный импульс будет приложен к глобальной системе координат. Эта функция работает только с физическими обьектами.</p> | |||
<p><b>A.9. llAsin</b></p> | |||
<p>float llAsin(float val);</p> | |||
<p>Возвращает арксинус в радианах</p> | |||
<p><b>A.10. llAtan2</b></p> | |||
<p>float llAtan2(float y, float x);</p> | |||
<p>Возвращает arctangent2 из y, x</p> | |||
<p><b>A.11. llAttachToAvatar</b></p> | |||
<p>llAttachToAvatar(key avatar, integer attachment);</p> | |||
<p>Прикрепить к аватару в точку attachment. Требуется PERMISSION_ATTACH разрешение аватара на выполнения данной функции.</p> | |||
<p><b>A.12. llAvatarOnSitTarget</b></p> | |||
<p>key llAvatarOnSitTarget(void);</p> | |||
<p>Если аватар сидит на обьекте предназначенном для сидения , возврашается ключ аватара, иначе возвращается NULL_KEY. Это единственная возможность обнаружить сидит ли аватар на обьекте определенном с помощью функции llSitTarget для сидения.</p> | |||
<p><b>A.13. llAxes2Rot</b></p> | |||
<p>rotation llAxes2Rot(vector fwd, vector left, vector up);</p> | |||
<p>Возвращает свойства вращение обьекта , представленное в осевых координатах. Возвращает поворот системы заданной тремя координатами.</p> | |||
<p><b>A.14. llAxisAngle2Rot</b></p> | |||
<p>rotation llAxisAngle2Rot(vector axis, float angle);</p> | |||
<p>Возвращает поворот rotation сгенерированный по углу angle на оси axis.</p> | |||
<p><b>A.15. llBase64ToString</b></p> | |||
<p>string llBase64ToString(string str);</p> | |||
<p>Конвертирует строку Base 64 string в обычную строку. Если преабразование создает непонятный символ то функция конвертирует его в пробел.</p> | |||
<p><b>A.16. llBreakAllLinks</b></p> | |||
<p>llBreakAllLinks(void);</p> | |||
<p>Разорвать связь всех обьектов в установленной связи(залинкованых или обьединеных в оди составной). Требует получения PERMISSION_CHANGE_LINKS разрешения.</p> | |||
<p><b>A.17. llBreakLink</b></p> | |||
<p>llBreakLink(integer linknum);</p> | |||
<p>Разорвать связь с сгрупированным(залинкованным) обьектом linknum. Требует получения PERMISSION_CHANGE_LINKS разрешения после которого у нас будет право на разгрупировку.</p> | |||
<p><b>A.18. llCSV2List</b></p> | |||
<p>list llCSV2List(string src);</p> | |||
<p>Создать список list из строки srс , данные в которой перечисляются через запятую.</p> | |||
<p><b>A.19. llCeil</b></p> | |||
<p>integer llCeil(float val);</p> | |||
<p>Возвращает наибольшее integer значение >= val.</p> | |||
<p><b>A.20. llCloseRemoteDataChannel</b></p> | |||
<p>llCloseRemoteDataChannel(key channel);</p> | |||
<p>Закрывает XML-RPC канал открытый с помощью функции llOpenRemoteDataChannel .</p> | |||
<p><b>A.21. llCloud</b></p> | |||
<p>float llCloud(vector offset);</p> | |||
<p>Возвращает плотность облака по текущим координатам смещенным на вектор offset .</p> | |||
<p><b>A.22. llCollisionFilter</b></p> | |||
<p>llCollisionFilter(string name, key id, integer accept);</p> | |||
<p>Если допуск accept == TRUE, допускается только столкновение с обьектом name и id , иначе с обьектом без имени name или id. Спецификаторы могут принимать любую последовательность или NULL_KEY если не нужен фильтр на передачу параметра.</p> | |||
<p><b>A.23. llCollisionSound</b></p> | |||
<p>llCollisionSound(string impact_sound, float impact_volume);</p> | |||
<p>Выключить звук столкновения по умолчанию, и заменить звуком удара с impact_sound находящимся в object inventory.</p> | |||
<p><b>A.24. llCollisionSprite</b></p> | |||
<p>llCollisionSprite(string impact_sprite);</p> | |||
<p>Запретить появление спрайта при столкновения установленный по умолчанию, заменить толчковый спрайт на установленный по умолчанию impact_sprite из инвентаря обьекта. Только запретить спрайт столкновения установленный по умолчанию если строка пуста.</p> | |||
<p><b>A.25. llCos</b></p> | |||
<p>float llCos(float theta);</p> | |||
<p>Возвращает косинус угла theta в заданного в радианах</p> | |||
<p><b>A.26. llCreateLink</b></p> | |||
<p>llCreateLink(key target, integer parent);</p> | |||
<p>Создает связь(линк) обьекта с другим обектом по его ключу target. Требуется получить разрешение PERMISSION_CHANGE_LINKS . Если параметр parent = TRUE , то обьект прикрепится к корневому обьекту.</p> | |||
<p><b>A.27. llDeleteSubList</b></p> | |||
<p>list llDeleteSubList(list src, integer start, integer end);</p> | |||
<p>Удаляет елементы из списка src начиная с позиции start и заканчивая позицией end. Если промежуток между конечной и начальной позицией равен 0,-1 то удалится весь список, если 0,0 то удалится первый элемент , если напимер нач позиция больше конечной то удалится все (включая и позиции старта и конца)кроме того что было межу этими позициями.</p> | |||
<p><b>A.28. llDeleteSubString</b></p> | |||
<p>string llDeleteSubString(string src, integer start, integer end);</p> | |||
<p>Удаляет елементы из строки src начиная с позиции start и заканчивая позицией end. Если промежуток между конечной и начальной позицией равен 0,-1 то удалится все символы, если 0,0 то удалится первый символ , если напимер нач позиция больше конечной то удалится все (включая и позиции старта и конца)кроме того что было межу этими позициями.</p> | |||
<p><b>A.29. llDetachFromAvatar</b></p> | |||
<p>llDetachFromAvatar(key avatar);</p> | |||
<p>Отсоединяет от автара присоединеную к нему вещь содержащую этот срипт с этой функцией по его ID.</p> | |||
<p><b>A.30. llDetectedGrab</b></p> | |||
<p>vector llDetectedGrab(integer number);</p> | |||
<p>Возвращает вектор мгновенного движения обнаруженного обьекта по его номеру обнаружения. (не ID) . Возвращает <0,0,0> если номер не действительный.</p> | |||
<p><b>A.31. llDetectedGroup</b></p> | |||
<p>integer llDetectedGroup(integer number);</p> | |||
<p>Возвращает TRUE если обнаруженный обьект number это участник группы владельца этого скрипта.</p> | |||
<p><b>A.32. llDetectedKey</b></p> | |||
<p>key llDetectedKey(integer number);</p> | |||
<p>Возвращает ключ обнаруженного обьекта по его номеру обнаружения(маркеру) number. Возвращает NULL_KEY если номер не действительный.</p> | |||
<p><b>A.33. llDetectedLinkNumber</b></p> | |||
<p>integer llDetectedLinkNumber(integer number);</p> | |||
<p>Возвращает номер обьединеного(залинкованного) обьекта по которобу было произведено нажатие и в результате чего было запущенно touches событие. 0 - если обьект не залинкован(необнаружен), 1 - если корневой обьект, 2,3,4... и т.д. - если обьект дочерний .</p> | |||
<p><b>A.34. llDetectedName</b></p> | |||
<p>string llDetectedName(integer number);</p> | |||
<p>Возвращает имя по номеру обнаружения number обьекта. Возвращает пустую строку если номер не действительный и не совпадает с обнаруженными обьтектами.</p> | |||
<p><b>A.35. llDetectedOwner</b></p> | |||
<p>key llDetectedOwner(integer number);</p> | |||
<p>Возвращает ключ обнаруженного обьекта владельца по номеру обнаружения number. Возвращает NULL_KEY если номер недействительный.</p> | |||
<p><b>A.36. llDetectedPos</b></p> | |||
<p>vector llDetectedPos(integer number);</p> | |||
<p>Возвращает положение обнаруженного обьекта по его номеру обнаружения number .Возвращает <0,0,0> если number недействительный.</p> | |||
<p><b>A.37. llDetectedRot</b></p> | |||
<p>rotation llDetectedRot(integer number);</p> | |||
<p>Возвращает поворот обнаруженного обьекта по его номеру обнаружения number .Возвращает <0,0,0,1> если number недействительный.</p> | |||
<p><b>A.38. llDetectedType</b></p> | |||
<p>integer llDetectedType(integer number);</p> | |||
<p>Возвращает тип обнаруженного обьекта по его номеру обнаружения(маркеру) number . Тип является битовым полем содержащим в себе одну или несколько констант (AGENT, ACTIVE, PASSIVE, SCRIPTED). Возвращает 0 если указанный маркер number недействительный(т.е. Указан маркер несуществующего обьекта). </p> | |||
<p>Пример:</p> | |||
<p>integer type = llDetectedType(0);//получаем параметр состояния обекта</p> | |||
<p>if (type & AGENT)//сравниваем с помощю побитового И</p> | |||
<p>{</p> | |||
<p>// ...do stuff with the agent</p> | |||
<p>}</p> | |||
<p><b>A.39. llDetectedVel</b></p> | |||
<p>vector llDetectedVel(integer number);</p> | |||
<p>Возвращает вектор скорости обнаруженного обьекта по его номеру обнаружения(маркеру) number .Возвращает <0,0,0> если number недействительный.</p> | |||
<p><b>A.40. llDialog</b></p> | |||
<p>llDialog(key avatar, string message, list buttons, integer channel);</p> | |||
<p>Открывает "бокс сообщения" в верхнем правом углу для данного аватара и выводит на экран сообщение. В сообщение может входить до 12 кнопок которые определяются в списке buttons. Когда аватар нажимает на кнопку имя кнопки передается по определенному каналу channel. Каналы используются такиеже как функцией llSay(), таким образом канал 0 может быть услышан каждым если он находится рядом так как это общественный канал.</p> | |||
<p>LLDialog(who, "Are you a boy or a girl?", [ "Boy", "Girl" ], 4913);</p> | |||
<p>LLDialog(who, "This shows only an OK button.", [], 192);</p> | |||
<p>llDialog(who, "This chats so you can hear it.", ["Hooray"], 0);</p> | |||
<p>A.41. llDie</p> | |||
<p>llDie(void);</p> | |||
<p>Удалить обьект содержащий этот скрипт.</p> | |||
<p><b>A.42. llDumpList2String</b></p> | |||
<p>string llDumpList2String(list src, string separator);</p> | |||
<p>Создает строку из списка SRC используя SEPARATOR как разделитель элементов списка в строке</p> | |||
<p><b>A.43. llEscapeURL</b></p> | |||
<p>string llEscapeURL(string url);</p> | |||
<p>Возвращает строку преобразованную в строку из escape кодов(например ( " )прямые ковычки преобразуются вот в такую последовательность .</p> | |||
<p>Экономит 20% пространства.</p> | |||
<p><b>A.44. llEdgeOfWorld</b></p> | |||
<p>integer llEdgeOfWorld(vector pos, vector dir);</p> | |||
<p>Возвращает TRUE если линия от начальных координат pos до конечных координат dir выходит за края текущего сима (земли ) . Возвращает FALSE если концы линии находятся за пределами сима.</p> | |||
<p><b>A.45. llEjectFromLand</b></p> | |||
<p>llEjectFromLand(key pest);</p> | |||
<p>Выбросить вредителя pest с земельной собственности по его ключу.</p> | |||
<p><b>A.46. llEmail</b></p> | |||
<p>llEmail(string address, string subject, string message);</p> | |||
<p>Послать email по адрессу address от субьекта subject и сообщение message.</p> | |||
<p><b>A.47. llEuler2Rot</b></p> | |||
<p>rotation llEuler2Rot(vector vec);</p> | |||
<p>Возвращает поворот представленный в системе Эйлера vec. </p> | |||
<p><b>A.48. llFabs</b></p> | |||
<p>float llFabs(float val);</p> | |||
<p>Возвращает абсолютное значение числа val.</p> | |||
<p><b>A.49. llFloor</b></p> | |||
<p>integer llFloor(float val);</p> | |||
<p>Возвращает наибольшее integer значение <= val.</p> | |||
<p><b>A.50. llFrand</b></p> | |||
<p>float llFrand(float mag);</p> | |||
<p>Возвращает случайное число в диапазоне [0, mag).</p> | |||
<p><b>A.51. llGetAccel</b></p> | |||
<p>vector llGetAccel(void);</p> | |||
<p>Получает ускорение.</p> | |||
<p><b>A.52. llGetAttached</b></p> | |||
<p>integer llGetAttached(void);</p> | |||
<p>Возвращает точку крепления обьекта к аватару или возвращает 0 если обьект не прикреплен.</p> | |||
<p><b>A.53. llGetAgentInfo</b></p> | |||
<p>integer llGetAgentInfo(key id);</p> | |||
<p>Возвращает информацию о данном агенте по его ID. Возвращает в виде битового поля которое можно прочитать с помощью констант agent info constants.</p> | |||
<p><b>A.54. llGetAgentSize</b></p> | |||
<p>vector llGetAgentSize(key id);</p> | |||
<p>Если ключ id агента находится в этомже симе что и обьект с этим скриптом, возвращает размер аватара.</p> | |||
<p><b>A.55. llGetAlpha</b></p> | |||
<p>float llGetAlpha(integer face);</p> | |||
<p>Возвращает коофициент прозрачности alpha данной стороны face. Если сторона face является ALL_SIDES возвращает значение среднего числа альфы всех сторон.</p> | |||
<p><b>A.56. llGetAndResetTime</b></p> | |||
<p>float llGetAndResetTime(void);</p> | |||
<p>Возвращает в секундах продолжительность во внутренем хронометре скрипта. Таймер сбрасывается в ноль при вызове этой функции. Таймер также сбрасывает on rez, симулятор перезапускается , скрипт сбрасывается , и вызывается функция llResetTime. Выберите функцию llSetTimerEvent если вы хотите надежный механизм выбора времени.</p> | |||
<p><b>A.57. llGetAnimation</b></p> | |||
<p>string llGetAnimation(key id);</p> | |||
<p>Возвращает имя анимации происхдящей в данное с аватаром по его ID.</p> | |||
<p><b>A.58. llGetAnimationList</b></p> | |||
<p>list llGetAnimationList(key id);</p> | |||
<p>Возвращает список анимаций аватара происхдящих в данное время по его ID.</p> | |||
<p><b>A.59. llGetBoundingBox</b></p> | |||
<p>list llGetBoundingBox(key object);</p> | |||
<p>Возвращает ограничивающий прямоугольник вокруг обьекта object (включающий любой соединеный примитив) по отношению к корневому примитиву. Возвращает значение в списке list в форме : [ (vector) min_corner, (vector) max_corner ]</p> | |||
<p><b>A.60. llGetCenterOfMass</b></p> | |||
<p>vector llGetCenterOfMass(void);</p> | |||
<p>Возвращает центр массы коренного обьекта.</p> | |||
<p><b>A.61. llGetColor</b></p> | |||
<p>vector llGetColor(integer face);</p> | |||
<p>Возвращает цвет данной стороны face. Если сторона face является ALL_SIDES возвращает среднее значение каждого цветового канала.</p> | |||
<p><b>A.62. llGetCreator</b></p> | |||
<p>key llGetCreator(void);</p> | |||
<p>Возвращает ключ создателя обьекта который имеет этот скрипт.</p> | |||
<p><b>A.63. llGetDate</b></p> | |||
<p>string llGetDate(void);</p> | |||
<p>Возвращает текущую UTC(универсальную) дату в виде --- YYYY-MM-DD.</p> | |||
<p><b>A.64. llGetEnergy</b></p> | |||
<p>float llGetEnergy(void);</p> | |||
<p>Возвращает энергию обьекта как процент от максимума.</p> | |||
<p><b>A.65. llGetForce</b></p> | |||
<p>vector llGetForce(void);</p> | |||
<p>Возвращает поток силы если скрипт физический.</p> | |||
<p><b>A.66. llGetFreeMemory</b></p> | |||
<p>integer llGetFreeMemory(void);</p> | |||
<p>Возвращает доступное пространство скриптового потока(т.е. Оставшуюся свободную память которую может использовать текущий скрипт).</p> | |||
<p><b>A.67. llGetGeometricCenter</b></p> | |||
<p>vector llGetGeometricCenter(void);</p> | |||
<p>Возвращает геометрический центр сгрупированных(залинкованых) и прикрепленных к аватару обьектов.</p> | |||
<p><b>A.68. llGetGMTclock</b></p> | |||
<p>float llGetGMTclock(void);</p> | |||
<p>Возвращает время в секундах начиная с GMT полночи.</p> | |||
<p><b>A.69. llGetInventoryCreator</b></p> | |||
<p>key llGetInventoryCreator(string name);</p> | |||
<p>Возвращает ключ(идентификатор) создателя обьекта name находящегося в личном инвентаре текущего обьекта.</p> | |||
<p><b>A.70. llGetInventoryKey</b></p> | |||
<p>key llGetInventoryKey(string name);</p> | |||
<p>Возвращает ключ по заданному имени name записи(или обьекта) в личном инвентаре текущего обьекта.</p> | |||
<p><b>A.71. llGetInventoryName</b></p> | |||
<p>string llGetInventoryName(integer type, integer number);</p> | |||
<p>Получает имя записи в личном инвентаре текущего обьекта по заданому порядковому номеру number и типу type. Выбери константу <b>inventory constants</b> для точного определения типа type.</p> | |||
<p><b>A.72. llGetInventoryNumber</b></p> | |||
<p>integer llGetInventoryNumber(integer type);</p> | |||
<p>Получает количество записей в личном инвентаре текущего обьекта по заданому типу type. Выбери константу inventory constants для точного определения типа type.</p> | |||
<p><b>A.73. llGetInventoryPermMask</b></p> | |||
<p>integer llGetInventoryPermMask(string item, integer mask);</p> | |||
<p>Возвращает ответ на запрос о разрешение mask на использование обьекта для указанного обьекта в инвентаре. Ответ возвращается в виде битовых констант Permission Mask Constants по которым можно определить какие разрешения доступны для пользователя.</p> | |||
<p>Пример использования: </p> | |||
<p>integer JeansPerms = llGetInventoryPermMask("Black Jeans", MASK_NEXT);</p> | |||
<p>if (JeansPerms & PERM_COPY)</p> | |||
<p>{</p> | |||
<p>llSay(0, "Следующи владелец может копировать 'Black Jeans'":);</p> | |||
<p>}</p> | |||
<p><b>A.74. llGetInventoryType</b></p> | |||
<p>integer llGetInventoryType(string name);</p> | |||
<p>Возвращает тип обьекта name находящегося в инвентаре обьекта. Константа INVENTORY_NONE возвращается если в инвентаре не было найдено обьекта по имени name. Выбери константу inventory constants для сравнения с возвращенными функцией данными.</p> | |||
<p><b>A.75. llGetKey</b></p> | |||
<p>key llGetKey(void);</p> | |||
<p>Получить ключ(идентификатор) обьекта с этим скриптом.</p> | |||
<p><b>A.76. llGetLandOwnerAt</b></p> | |||
<p>key llGetLandOwnerAt(vector pos);</p> | |||
<p>Возвращает ключ владельца земли в точке этой земли pos или NULL_KEY если земля общественная.</p> | |||
<p><b>A.77. llGetLinkKey</b></p> | |||
<p>key llGetLinkKey(integer linknum);</p> | |||
<p>Возвращает ключ обьединеного (залинкованного) обьекта по его порядковому номеру linknum . 0 -если не залинкован 1-если корневой 2- если дочерний. И т.д.</p> | |||
<p><b>A.78. llGetLinkName</b></p> | |||
<p>string llGetLinkName(integer linknum);</p> | |||
<p>Возвращает имя обьединеного (залинкованного) обьекта по его порядковому номеру linknum . 0 -если не залинкован 1-если корневой 2- если дочерний. И т.д.</p> | |||
<p><b>A.79. llGetLinkNumber</b></p> | |||
<p>integer llGetLinkNumber(void);</p> | |||
<p>Возвращает личный порядковый номер обьекта который обьединен с другими обьектами(залинкован) . 0 -если не залинкован 1-если корневой 2- если дочерний. И т.д.</p> | |||
<p><b>A.80. llGetListEntryType</b></p> | |||
<p>integer llGetListEntryType(list src, integer index);</p> | |||
<p>Возвращает тип type переменной по индексу index в списке src.</p> | |||
<p><b>A.81. llGetListLength</b></p> | |||
<p>integer llGetListLength(list src);</p> | |||
<p>Возвращает количество элементов в списке src.</p> | |||
<p><b>A.82. llGetLocalPos</b></p> | |||
<p>vector llGetLocalPos(void);</p> | |||
<p>Возвращает локальную позицию обьекта относительно корневого обьекта .</p> | |||
<p><b>A.83. llGetLocalRot</b></p> | |||
<p>rotation llGetLocalRot(void);</p> | |||
<p>Возвращает локальный угол поворота обьекта относительно корневого обьекта.</p> | |||
<p><b>A.84. llGetMass</b></p> | |||
<p>float llGetMass(void);</p> | |||
<p>Возвращает массу обьекта в киллограммах. Многие материалы в SL немного меньшей плотности чем в жизни , таким образом возвращается масса немного меньше чем вы можете представить.</p> | |||
<p><b>A.85. llGetObjectMass</b></p> | |||
<p>float llGetObjectMass(key id);</p> | |||
<p>Возвращает массу обьекта в киллограммах по его идентификатору ID. Многие материалы в SL немного меньшей плотности чем в жизни , таким образом возвращается масса немного меньше чем вы можете представить.</p> | |||
<p><b>A.86. llGetNextEmail</b></p> | |||
<p>llGetNextEmail(string address, string subject);</p> | |||
<p>Получает следующий ожидаемый емайл с соответствующего адреса address и/или от соответствующего субьекта subject. Если параметры не заданы то данные не будут отфильтрованы и поступит первый попавшийся емайл.</p> | |||
<p><b>A.87. llGetNotecardLine</b></p> | |||
<p>key llGetNotecardLine(string name, integer line);</p> | |||
<p>Эта функция по номеру строки line блокнота name получает содержимое одной строки через dataserver событие . Нумерация строк начинается с нуля. Если линия запроса подошла к концу блокнота dataserver событие вернет константу EOF string. Ключ возвращенный этой функцией это идетификатор который будет передаваатся dataserver событию в requested параметре.</p> | |||
<p><b>A.88. llGetNumberOfNotecardLines</b></p> | |||
<p>key llGetNumberOfNotecardLines(string name);</p> | |||
<p>Эта функция подсчитывает количество строк блокнота name (находящегося в инвентаре обьекта) и возвращает их количество через dataserver событие . Ключ возвращенный этой функцией это идетификатор который будет передаваатся dataserver событию в requested параметре , его можно использовать для сверки - на какой запрос был получен ответ.</p> | |||
<p><b>A.89. llGetNumberOfPrims</b></p> | |||
<p>integer llGetNumberOfPrims(void);</p> | |||
<p>Возвращает количество примитивов в сгрупированном(залинкованном или составном) обьекте .</p> | |||
<p><b>A.90. llGetNumberOfSides</b></p> | |||
<p>integer llGetNumberOfSides(void);</p> | |||
<p>Возвращает количество сторон(граней) обьекта который содержит этот скрипт.</p> | |||
<p><b>A.91. llGetObjectDesc</b></p> | |||
<p>string llGetObjectDesc(void);</p> | |||
<p>Возвращает дескриптор (описание такоеже примерно как name) обьекта который содержит этот скрипт.</p> | |||
<p><b>A.92. llGetObjectName</b></p> | |||
<p>string llGetObjectName(void);</p> | |||
<p>Возвращает имя обьекта который содержит этот скрипт.</p> | |||
<p><b>A.93. llGetObjectPermMask</b></p> | |||
<p>integer llGetObjectPermMask(integer mask);</p> | |||
<p>Возвращает ответ на запрос о разрешении маски mask для прикрепления корневого обьекта . Смотри Permission Mask Constants для большей информации. Возвращаемое значение является битовым полем.</p> | |||
<p>Пример использования:</p> | |||
<p>integer ObjectPerms = llGetObjectPermMask(MASK_NEXT);</p> | |||
<p>if (ObjectPerms & PERM_COPY)</p> | |||
<p>{</p> | |||
<p>llSay(0, "The next owner may copy this item":);</p> | |||
<p>}</p> | |||
<p><b>A.94. llGetOmega</b></p> | |||
<p>vector llGetOmega(void);</p> | |||
<p>Возвращает омегу - Скорость вращения по трем осям.</p> | |||
<p><b>A.95. llGetOwner</b></p> | |||
<p>key llGetOwner(void);</p> | |||
<p>Возвращает ключ(идетификатор) владельца обьекта (владелец это не тоже самое что создатель владелец это тот аватар который имеет текущий предмет у себя в инвентаре).</p> | |||
<p><b>A.96. llGetOwnerKey</b></p> | |||
<p>key llGetOwnerKey(key id);</p> | |||
<p>Возвращает ключ(идентификатор) владельца обьекта по id(идентификатору) этого обьекта.</p> | |||
<p><b>A.97. llGetPermissions</b></p> | |||
<p>integer llGetPermissions(void);</p> | |||
<p>Возвращает информацию о том какие права permissions были разрешены(выданны) . Возвращаемое значение является битовым полем (тоесть может содержать множественный ответ каждый из которых сверяется с константой).</p> | |||
<p> </p> | |||
<p>Пример:</p> | |||
<p>integer perm = llGetPermissions();</p> | |||
<p>if((perm & PERMISSION_DEBIT) == PERMISSION_DEBIT)</p> | |||
<p>{</p> | |||
<p>// code goes here</p> | |||
<p>}</p> | |||
<p><b>A.98. llGetPermissionsKey</b></p> | |||
<p>key llGetPermissionsKey(void);</p> | |||
<p>Возвращает ключ аватара если для него разрешены права (у нешо есть право). Возвращает NULL_KEY если нет разрешения.</p> | |||
<p><b>A.99. llGetPos</b></p> | |||
<p>vector llGetPos(void);</p> | |||
<p>Возвращает позицию обьекта в глобальных координатах сима(острова).</p> | |||
<p><b>A.100. llGetPrimitiveParams</b></p> | |||
<p>list llGetPrimitiveParams(list parameters);</p> | |||
<p>Эта функция получает список установленых параметров текущего примитива. В списке parameters используются константы Primitive Constants обозначающие имя каждого параметра.</p> | |||
<p>Пример:</p> | |||
<p>llGetPrimitiveParams([PRIM_TYPE, PRIM_MATERIAL, PRIM_COLOR, ALL_SIDES, PRIM_POSITION]);</p> | |||
<p>Эта функция веозвращает вот такой список параметров: </p> | |||
<p> </p> | |||
<p>[PRIM_TYPE_BOX, PRIM_HOLE_DEFAULT, <0, 1, 0>, 0.0, <0, 0, 0>, <1, 1, 0>, <0, 0, 0>, // PRIM_TYPE</p> | |||
<p>PRIM_MATERIAL_WOOD, // PRIM_MATERIAL</p> | |||
<p>0, <1, 1, 1>, 1.0, // PRIM_COLOR (ALL_SIDES спцификатор, который обозначает все 6 сторон)</p> | |||
<p>1, <1, 0, 0>, 0.5,</p> | |||
<p>2, <0, 0, 1>, 1.0,</p> | |||
<p>3, <0, 1, 0>, 1.0,</p> | |||
<p>4, <0, 0, 0>, 0.5,</p> | |||
<p>5, <1, 1, 1>, 1.0,</p> | |||
<p><37.341, 195.283, 31.239>] // PRIM_POSITION</p> | |||
<p><b>A.101. llGetRegionCorner</b></p> | |||
<p>llGetRegionCorner(void);</p> | |||
<p>Возвращает вектор юго-западного угла текущего региона.</p> | |||
<p><b>A.102. llGetRegionFPS</b></p> | |||
<p>llGetRegionFPS(void);</p> | |||
<p>Возвращает среднюю частоту кадров в текущем регионе (тоесть возвращает FPS текущего сима).</p> | |||
<p><b>A.103. llGetRegionName</b></p> | |||
<p>string llGetRegionName(void);</p> | |||
<p>Возвращает имя текущего региона.</p> | |||
<p><b>A.104. llGetRegionTimeDilation</b></p> | |||
<p>float llGetRegionTimeDilation(void);</p> | |||
<p>Возвращает текущее расширенное время в виде числа в промежутке от 0 до 1.</p> | |||
<p><b>A.105. llGetRootPosition</b></p> | |||
<p>vector llGetRootPosition(void);</p> | |||
<p>Возвращает глобальное положение коренного обьекта из прикрепленного(залинкованного) к нему обьекта в котором находится этот скрипт.</p> | |||
<p><b>A.106. llGetRootRotation</b></p> | |||
<p>rotation llGetRootRotation(void);</p> | |||
<p>Возвращает глобальное поворот коренного обьекта из прикрепленного(залинкованного) к нему обьекта в котором находится этот скрипт.</p> | |||
<p><b>A.107. llGetRot</b></p> | |||
<p>rotation llGetRot(void);</p> | |||
<p>Возвращает поворот обьекта с этим скриптом.</p> | |||
<p><b>A.108. llGetScale</b></p> | |||
<p>vector llGetScale(void);</p> | |||
<p>Возвращает масштаб обьекта с этим скриптом.</p> | |||
<p><b>A.109. llGetScriptName</b></p> | |||
<p>string llGetScriptName(void);</p> | |||
<p>Возвращает имя текущего скрипта.</p> | |||
<p><b>A.110. llGetStartParameter</b></p> | |||
<p>integer llGetStartParameter(void);</p> | |||
<p>Возвращает стартовые параметры переданные при вызове функций llRezObject или llRezAtRoot. Если обьект создан из инвентаря агента, то эта функция возвращает 0.</p> | |||
<p><b>A.111. llGetScriptState</b></p> | |||
<p>integer llGetScriptState(string name);</p> | |||
<p>Установить Rest TRUE если скипт name запущен.</p> | |||
<p><b>A.112. llGetStatus</b></p> | |||
<p>integer llGetStatus(integer status);</p> | |||
<p>Возвращает значение статуса status. Единственное значение будет в виде константы status constants. С помощью этой функции можно получить такие данные об оьекте как: физический обьект или нет, является ли обьект фантомом, по каким осям заблокирован поворот обьекта, можно ли его передвигать с помощью курсора мышки «Рука» и т.д.</p> | |||
<p><b>A.113. llGetSubString</b></p> | |||
<p>string llGetSubString(string src, integer start, integer end);</p> | |||
<p>Возвращает часть строки src начиная от стартовой позиции start до конечной end, таким образом 0, 1 длина захватывает всю строку и 0,0 захватывает первый символ. Использование отрицательного номера start и/или end подсчитывает в обратном направлении в результате 0,-1 захватывает всю строку. Если start больше end то захватится вся строка за исключением символов в диапазоне от start до end. Например 6,4 захватит всю строку кроме 5 символов.</p> | |||
<p><b>A.114. llGetSunDirection</b></p> | |||
<p>vector llGetSunDirection(void);</p> | |||
<p>Возвращает вектор направления солнца всимуляторе.</p> | |||
<p><b>A.115. llGetTexture</b></p> | |||
<p>string llGetTexture(integer face);</p> | |||
<p>Возвращает имя текстуры с заданой стороны обьекта если такая тектстура присутствует в инвентаре обьекта</p> | |||
<p><b>A.116. llGetTextureOffset</b></p> | |||
<p>vector llGetTextureOffset(integer side);</p> | |||
<p>Возвращает смещение текстуры на стороне обьекта side в X и Y компонентах вектора.</p> | |||
<p><b>A.117. llGetTextureRot</b></p> | |||
<p>float llGetTextureRot(integer side);</p> | |||
<p>Возвращает поворот текстуры на стороне side.</p> | |||
<p><b>A.118. llGetTextureScale</b></p> | |||
<p>vector llGetTextureScale(integer side);</p> | |||
<p>Возвращает маштаб текстуры на стороне side в X и Y компонентах вектора.</p> | |||
<p><b>A.119. llGetTime</b></p> | |||
<p>float llGetTime(void);</p> | |||
<p>Возвращает второе астрономическое время из внутреннего таймера связанного со скриптом. Таймер сбрасывается on rez, симулятор перестартовывает, скрипт сбрасывается, и в вызове llGetAndResetTime или llResetTime. Выбераем llSetTimerEvent если вы хотите надежный временной механизм.</p> | |||
<p><b>A.120. llGetTimeOfDay</b></p> | |||
<p>float llGetTimeOfDay(void);</p> | |||
<p>Получить времяв секундах осчитывая с полночи в SECOND LIFE.</p> | |||
<p><b>A.121. llGetTimestamp</b></p> | |||
<p>string llGetTimestamp(void);</p> | |||
<p>Получить время в формате : YYYY-MM-DDThh:mm:ss.ff..fZ.</p> | |||
<p><b>A.122. llGetTorque</b></p> | |||
<p>vector llGetTorque(void);</p> | |||
<p>Получить момент вращения если скрипт физический.</p> | |||
<p><b>A.123. llGetVel</b></p> | |||
<p>vector llGetVel();</p> | |||
<p>Возвращает скорость.</p> | |||
<p><b>A.124. llGetWallclock</b></p> | |||
<p>float llGetWallclock(void);</p> | |||
<p>Возвращает время в секундах с тех пор как в симуляторе наступила полночь. В настоящее время это PST.</p> | |||
<p><b>A.125. llGiveInventory</b></p> | |||
<p>llGiveInventory(key destination, string inventory);</p> | |||
<p>Выдать деталь из инвентаря inventory Аватару или обьекту ключ которого указан в destination. Если получатель является Аватаром, тогда аватар после этого следует нормальной процедуре принятия или отказа от предложения. Если получатель является какимлибо обьектом то права доступа будут применятся как будто это были вы и перемещали в инвентаре обьекты вручную, если функция llAllowInventoryDrop была вызвана с TRUE параметрами любой другой обьект может быть пропущен в инвентарь.</p> | |||
<p><b>A.126. llGiveInventoryList</b></p> | |||
<p>llGiveInventoryList(key destination, string category, list inventory);</p> | |||
<p>Выдать указанный перечень деталей из инвентаря аватару или обьекту ключ которого destination в томже симуляторе где находится обьект у которого это берут. Если получатель является аватаром, то он после этого следует нормальной процедуре принятия или отказа от предложения. Предложенный инвентарь после этого помещяется в папку названную category в инвентаре получателя. Если получатель является любым обьектом то к нему применяются права также как если бы это были вы и перемещали в инвентаре обьекты вручную, если llAllowInventoryDrop была вызвана с TRUE параметрами любой другой обьект может быть пропущен в инвентарь.</p> | |||
<p><b>A.127. llGiveMoney</b></p> | |||
<p>llGiveMoney(key destination, integer amount);</p> | |||
<p>Передает сумму amount с помощью скрипта владельца в пункту назначения destination . Это вызов не будет успешным если не был установленно разрешение PERMISSION_DEBIT </p> | |||
<p><b>A.128. llGround</b></p> | |||
<p>float llGround(vector offset);</p> | |||
<p>Возвращает высоту земли по кординатам обьекта со смещение координат offset</p> | |||
<p><b>A.129. llGroundContour</b></p> | |||
<p>vector llGroundContour(vector offset);</p> | |||
<p>Возвращает контур земли по кординатам обьекта со смещение координат offset</p> | |||
<p><b>A.130. llGroundNormal</b></p> | |||
<p>vector llGroundNormal(vector offset);</p> | |||
<p>Возвращает вектор нормалей земли по кординатам обьекта со смещение координат offset</p> | |||
<p><b>A.131. llGroundRepel</b></p> | |||
<p>llGroundRepel(float height, integer water, float tau);</p> | |||
<p>Критическая аммортизация(тормоз) по высоте height , если высота в пределах height * 0.5 уровня. Height выше уровня земли вода water - FALSE , или выше уровня земли и вода если water - TRUE</p> | |||
<p><b>A.132. llGroundSlope</b></p> | |||
<p>vector llGroundSlope(vector offset);</p> | |||
<p>Возвращает уклон земли под позицией обьекта со смещением offset</p> | |||
<p><b>A.133. llInsertString</b></p> | |||
<p>string llInsertString(string dst, integer position, string src);</p> | |||
<p>Вставить строку src в строку dst на позицию position и вернуть результат.</p> | |||
<p><b>A.134. llInstantMessage</b></p> | |||
<p>llInstantMessage(key user, string message);</p> | |||
<p>Послать сообщение message юзеру(по ключу) user согласно мнгновенному сообщению.</p> | |||
<p><b>A.135. llKey2Name</b></p> | |||
<p>string llKey2Name(key id);</p> | |||
<p>Если обьект с этим ID находится в этомже симуляторе(територии), возвращается имя обьекта.</p> | |||
<p><b>A.136. llList2CSV</b></p> | |||
<p>string llList2CSV(list src);</p> | |||
<p>Создает строку отделенную запятыми со значениями из списка src. </p> | |||
<p><b>A.137. llList2Float</b></p> | |||
<p>float llList2Float(list src, integer index);</p> | |||
<p>Возвращает значение с плав точкой float по индексу index из списка src.</p> | |||
<p><b>A.138. llList2Integer</b></p> | |||
<p>integer llList2Integer(list src, integer index);</p> | |||
<p>Возвращает целое integer по индексу index из списка src.</p> | |||
<p><b>A.139. llList2Key</b></p> | |||
<p>key llList2Key(list src, integer index);</p> | |||
<p>Возвращает ключ key по индексу index из списка src.</p> | |||
<p><b>A.140. llList2List</b></p> | |||
<p>list llList2List(list src, integer start, integer end);</p> | |||
<p>Возвращает новый список как часть списка от стартовой позиции start до конечной end из списка src . Если промежуток между конечной и начальной позицией равен 0,-1 то вернется весь список, если 0,0 то вернется первый элемент , если напимер начальная позиция больше конечной то вернется все (включая и позиции старта и конца)кроме того что было межу этими позициями.</p> | |||
<p><b>A.141. llList2ListStrided</b></p> | |||
<p>list llList2ListStrided(list src, integer start, integer end, integer stride);</p> | |||
<p>Копирует равные доли из списка src начиная от позиции start до позиции end c шагом stride.</p> | |||
<p><b>A.142. llList2Rot</b></p> | |||
<p>rotation llList2Rot(list src, integer index);</p> | |||
<p>Возвращает переменную типа ротация по индексу index из списка src.</p> | |||
<p><b>A.143. llList2String</b></p> | |||
<p>string llList2String(list src, integer index);</p> | |||
<p>Возвращает строку по индексу index из списка src.</p> | |||
<p><b>A.144. llList2Vector</b></p> | |||
<p>llList2Vector(list src, integer index);</p> | |||
<p>Возвращает вектор по индексу index из списка src.</p> | |||
<p><b>A.145. llListFindList</b></p> | |||
<p>integer llListFindList(list src, list test);</p> | |||
<p>Возвращает позицию первого встретившегося значения test из списка src. - 1(минус один) - возвращается если в списке src нет ни одного элемента из списка test.</p> | |||
<p><b>A.146. llListInsertList</b></p> | |||
<p>list llListInsertList(list dest, list src, integer pos);</p> | |||
<p>Возвращает созданный лист list при вставке src в dest на позицию pos.</p> | |||
<p><b>A.147. llListRandomize</b></p> | |||
<p>list llListRandomize(list src, integer stride);</p> | |||
<p>Возвращает случайное значение из списка src в виде блока размером stride. Если длина указанного блока равна 0 то функция не производит рандомизацию.</p> | |||
<p><b>A.148. llListReplaceList</b></p> | |||
<p>list llListReplaceList(list dest, list src, integer start, integer end);</p> | |||
<p>Возвращает созданный список после замены сегмента из dest списка на сегмент из src списка , начальная позиция которого - start и конечная - end.</p> | |||
<p><b>A.149. llListSort</b></p> | |||
<p>list llListSort(list src, integer stride, integer ascending);</p> | |||
<p>Возвращает отсортированный список src в порядке возростания (если ascending TRUE)или убывания (если ascending FALSE) .Сортировка производится блоками с размером в ascending элементов. Запись этой сортировки работает только с одним и тем-же типом заголовка каждого сортируемого блока.</p> | |||
<p><b>A.150. llListen</b></p> | |||
<p>integer llListen(integer channel, string name, key id, string msg);</p> | |||
<p>Активирует вызов прослушивающего Listen события при появлении сообщения msg на канале chanel от обьекта (аватара)name и обьекта(аватара)ключ которого id, можно использовать для деактивации или активации прослушивающего события Listen. Name , id и / или msn параметры могут быть пустыми если вы не хотите использовать какие либо аргументы для фильтрации прослушки. Канал 0 это канал ощественного чата , текст чата будет виден всем аватарам. Каналы от 1 до 2,147,483,648 скрытые каналы которые не посылаются аватарам.</p> | |||
<p>Функция возвращает маркер который нужен для использования в таких функциях как llListenControl и llListenRemove.</p> | |||
<p><b>A.151. llListenControl</b></p> | |||
<p>llListenControl(integer number, integer active);</p> | |||
<p>Активирует или дезактивирует Listen событие. Использует маркер полученный функцией llListen в параметре number для того чтобы определить какое событие вы контролируете. Используйте boolean значения для установки параметра active.</p> | |||
<p><b>A.152. llListenRemove</b></p> | |||
<p>llListenRemove(integer number);</p> | |||
<p>Удаляет Listen событие. Использует маркер полученный функцией llListen в параметре number для того чтобы определить какое событие нужно удалить.</p> | |||
<p><b>A.153. llLoadURL</b></p> | |||
<p>llLoadURL(key avatar_id, string message, string url);</p> | |||
<p>Показывает диалоговое окно юзеру avatar_id С сообщением message и предлагает перейти на вэб страницу по адресу url. Если юзер нажимает кнопку "Перейти на страницу" - запускается установленный по умолчанию браузер и направляетс на url.</p> | |||
<p>url должен начинатся с "http:" или "https:", другой протокол в настоящее время не поддерживается. Диалоговый бокс показывает имя Владельца обьекта так что при злоупотреблении о спалме можно легко сообщить. Эта функция имеет 10 сек задержку.</p> | |||
<p><b>A.154. llLog</b></p> | |||
<p>float llLog(float val);</p> | |||
<p>Возвращает натуральный логарифм (base e) числа val если val > 0 иначе возвращает ноль.</p> | |||
<p><b>A.155. llLog10</b></p> | |||
<p>float llLog10(float val);</p> | |||
<p>Возвращает десятичный логарифм числа (base 10) val если val > 0 иначе возвращает ноль.</p> | |||
<p><b>A.156. llLookAt</b></p> | |||
<p>llLookAt(vector target, float strength, float damping);</p> | |||
<p>Установить поворот обьекта по направлению к цели (направить взгляд или прицелится) координаты которой заносятся в параметр target - после выполнения этой функции обьект повернется к цели и ось Z обьекта будет направленна в центр цели target. Подходящее значение strength лучше установить приблизетельно равной половине массы обьекта , и подходящее значение damping лучше установить менее чем 1/10 силы. Асимметричные формы обьектов требуют меньшего демпфирования damping. Сила strength равная 0.0 отменяет поворот взгляда обьекта на цель.</p> | |||
<p><b>A.157. llLoopSound</b></p> | |||
<p>llLoopSound(string sound, float volume);</p> | |||
<p>Эта функция подобна llPlaySound и также проигрывает музыкальный файл с именем sound и громкостью volume прикрепленный к обьекту, но как только проигрывание файла завершается файл начинает проигрыватся снова по кругу без остановок. Остановить циклическое проигрывание файла можно с помощью функции llStopSound либо перейти на одноразовое прогигрывание м помощью функции llPlaySound. Только один музыкальный файл прикрепленный к обьекту может проигрыватся одновременно . Повторный вызов этой фунции с тем-же именем файла не будет вызывать его проигрывание сначала, но новый параметр звука volume будет использован. Это позволяет контролировать излишнюю громкость звука воспроизведения файла. Установка громкости звука в ноль не тоже самое что использование функции llStopSound; звук с нулевой громкость также будет циклически воспроизводится но не будет слышен. Для рестарта проигрывания звука сначало вызовите фцнкцию llStopSound и после нее можете вызывать функцию llLoopSound снова.</p> | |||
<p><b>A.158. llLoopSoundMaster</b></p> | |||
<p>llLoopSoundMaster(string sound, float volume);</p> | |||
<p>Поведение этой функции идентично поведению llLoopSound, но с дополнительной маркировкой источника как "Sync Master", с использованием "Slave" музыкальной синхронизации. Если будет много источников такого звука в пределах области интересов зрителя, то самый слышимый звук (с помощью механизма расстояния и объема) будет звук владельца . Использование большого количества источников в пределах маленькой области вряд ли произведет желательный эффект.</p> | |||
<p><b>A.159. llLoopSoundSlave</b></p> | |||
<p>llLoopSoundSlave(string sound, float volume);</p> | |||
<p>Поведение этой функции идентично поведению llLoopSound, Если нет "Sync Master" звуковых файлов. Если Sync Master будет уже играть, то звук Slave начнет играть с того же самого пункта, владелеца находящегося в цикле, пункты зацикливания обоих звуков будут синхронны. Если звук Master начнет играть, когда Slave уже играет, то Slave будет пропускатся и синхронизироватся с Master.</p> | |||
<p><b>A.160. llMakeExplosion</b></p> | |||
<p>llMakeExplosion(integer particles, float scale, float velocity, float lifetime, float arc, string texture, vector offset);</p> | |||
<p>Создать шарообразный взрыв частиц с использованием texture находящуюся в инвентаре обьекта.</p> | |||
<p><b>A.161. llMakeFire</b></p> | |||
<p>llMakeFire(integer particles, float scale, float velocity, float lifetime, float arc, string texture, vector offset);</p> | |||
<p>Создать огненные частицы с использованием texture находящуюся в инвентаре обьекта.</p> | |||
<p><b>A.162. llMakeFountain</b></p> | |||
<p>llMakeFountain(integer particles, float scale, float velocity, float lifetime, float arc, string texture, vector offset);</p> | |||
<p>Создать фонтан из частиц с использованием texture находящуюся в инвентаре обьекта.</p> | |||
<p><b>A.163. llMakeSmoke</b></p> | |||
<p>llMakeSmoke(integer particles, float scale, float velocity, float lifetime, float arc, string texture, vector offset);</p> | |||
<p>Создать частицы дыма с использованием texture находящуюся в инвентаре обьекта.</p> | |||
<p><b>A.164. llMD5String *****</b></p> | |||
<p>string llMD5String(string str, integer nonce);</p> | |||
<p>Выполняет защиту данных RSA, Inc. MD5 Message-Digest Algorithm on str with nonce. The function returns the digest as a 32 character hex string. The digest is computed on the string in the following format: </p> | |||
<p>str + ":" + (string)nonce</p> | |||
<p><b>A.165. llMessageLinked</b></p> | |||
<p>llMessageLinked(integer linknum, integer num, string str, key id);</p> | |||
<p>Послать num, str , и ID всем примитивам в установленном обьединении(залинкованным). Linknum параметр это один из двух числовых коофициентов полученых с помощью функцию llGetLinkNumber или константы link constant .</p> | |||
<p><b>A.166. llMinEventDelay</b></p> | |||
<p>llMinEventDelay(float delay);</p> | |||
<p>Установить минимум времени между обработчиками событий.</p> | |||
<p><b>A.167. llModifyLand</b></p> | |||
<p>llModifyLand(integer action, integer size);</p> | |||
<p>Модифицировать землю с action согласно размеру size площади параметры могут быть выбраны из land constants. Констант.</p> | |||
<p><b>A.168. llModPow</b></p> | |||
<p>integer llModPow(integer a, integer b, integer c);</p> | |||
<p>Увеличить силу от a до b используя счетчик с. b может принимать максимум 16-и битное значение 0xFFFF (16 bits).</p> | |||
<p><b>A.169. llMoveToTarget</b></p> | |||
<p>llMoveToTarget(vector target, float tau);</p> | |||
<p>Затухающее движение с текущей позиции в позицию target , затухание в <b>tau</b> секундах . Работает только с физическими обьектами. Подходящее значение для tau приблизительно = 0.2. Если tau = 0.0 то затухающее движение будет остановленно.</p> | |||
<p><b>A.170. llOffsetTexture</b></p> | |||
<p>llOffsetTexture(float offset_s, float offset_t, integer face);</p> | |||
<p>Установить смещение текстуры S и T на стороне face. Если установлена константа ALL_SIDES текстура сместится на всех сторонах. </p> | |||
<p><b>A.171. llOpenRemoteDataChannel</b></p> | |||
<p>llOpenRemoteDataChannel(void);</p> | |||
<p>Создать(Открыть) канал для прослушивания XML-RPC вызовов . Будет запускатся remote_data событие с типом type = REMOTE_DATA_CHANNEL и ID канала когдато может пригодится.</p> | |||
<p><b>A.172. llOverMyLand</b></p> | |||
<p>integer llOverMyLand(key id);</p> | |||
<p>Возвращает TRUE если Обект с ключом ID не принадлежит этой земле и FALSE если принадлежит.</p> | |||
<p><b>A.173. llParcelMediaCommandList</b></p> | |||
<p>llParcelMediaCommandList(list command_list);</p> | |||
<p>Контролирует воспроизведение видеороликов и других multimedia ресурсов на парцелле земли. Использует константы: PARCEL_MEDIA_COMMAND_PLAY, PARCEL_MEDIA_COMMAND_LOOP, PARCEL_MEDIA_COMMAND_TEXTURE, PARCEL_MEDIA_COMMAND_URL, PARCEL_MEDIA_COMMAND_TIME, PARCEL_MEDIA_COMMAND_AGENT, PARCEL_MEDIA_COMMAND_UNLOAD, or PARCEL_MEDIA_COMMAND_AUTO_ALIGN. </p> | |||
<p> </p> | |||
<p>Возможно использовать только один видеоролик (или "media" ресур) на одной земляной парцеле(територии). Ролик будет проигрыватся, заменяя текстуру на объекте на видеоэкран. Пользователи будут видеть ролик, только тогда когда они будут находится на вашей части земли. Иначе они будут видеть статическую текстуру.</p> | |||
<p> </p> | |||
<p>В проигрыватель мультимедиа включенна поддержка большинства QuickTime форматов например: </p> | |||
<ul type="disc"> | |||
<li><b>QuickTime movies (.mov)</b></li> | |||
<li><b>Streamable stored QuickTime movies (.mov)</b></li> | |||
<li><b>Real time QuickTime streams (rtsp://)</b></li> | |||
<li><b>MPEG4 movies (.mp4, .mpeg4) (толко простого профиля)</b></li> | |||
<li><b>QuickTime VR scenes and objects (.mov)</b></li> | |||
<li><b>Flash movies (.swf) (только не интерактивных, версии 5 и выше)</b></li> | |||
<li><b>И множество других о которых можно узнать с сайта <a href="http://www.apple.com/quicktime/products/qt/specifications.html" rel="nofollow">http://www.apple.com/quicktime/products/qt/specifications.html</a></b></li> | |||
</ul> | |||
<p> </p> | |||
<p>Есть хорошее правило гласящее , что если это будет проигрывать плеер QuickTime Media Player, то и в Second Life это тоже будет проигрыватся. </p> | |||
<p> </p> | |||
<p>Вы можете установить воспроизведение ролика как указано ниже:</p> | |||
<p> </p> | |||
<ul type="disc"> | |||
<li>Выберите текстуру из вашего инвентаря для статичной видеотекстуры. Эта текстура не должна быть общей и присутствовать гдето еще так как видеопоток отобразится на всех таких текстурах.</li> | |||
<li>Примените эту текстуру к обьекту.</li> | |||
<li>Правой кнопкой мыши нажмите на вашей землю и выберите закладку "About Land...".</li> | |||
<li>В нижней "Options" выберите статичную текстуру которую вы заранее подобрали для видеопотока.</li> | |||
<li>Введите URL Вашего медиа потока.</li> | |||
<li>Создайте обьект и нажмите на кнопках PLAY, STOP, PAUSE и LOOP (на стандартно меню плеера)</li> | |||
<li>Прикрепите этот скрипт к обьекту.</li> | |||
</ul> | |||
<p> </p> | |||
<p>default</p> | |||
<p>{</p> | |||
<p>touch_start ( integer total_number )</p> | |||
<p>{</p> | |||
<p>// Будет проигрывать текущий ролик для всех агентов на вашей части земли.</p> | |||
<p>llParcelMediaCommandList( [PARCEL_MEDIA_COMMAND_LOOP] );</p> | |||
<p>}</p> | |||
<p>}</p> | |||
<p> </p> | |||
<p> </p> | |||
<p>Или более функциональный пример:</p> | |||
<p> </p> | |||
<p>float START_TIME = 30.0;</p> | |||
<p>float RUN_LENGTH = 10.0;</p> | |||
<p> </p> | |||
<p>default</p> | |||
<p>{</p> | |||
<p>state_entry()</p> | |||
<p>{</p> | |||
<p>llParcelMediaCommandList( [PARCEL_MEDIA_COMMAND_URL, "<b><a href="http://enter_your.url/here" rel="nofollow">http://enter_your.url/here</a></b>", PARCEL_MEDIA_COMMAND_TEXTURE, (key) llGetTexture(0) ] );</p> | |||
<p>}</p> | |||
<p> </p> | |||
<p>touch_start(integer num_detected)</p> | |||
<p>{</p> | |||
<p>llParcelMediaCommandList( [</p> | |||
<p>PARCEL_MEDIA_COMMAND_AGENT, llDetectedKey(0),</p> | |||
<p>PARCEL_MEDIA_COMMAND_TIME, START_TIME,</p> | |||
<p>PARCEL_MEDIA_COMMAND_PLAY ] );</p> | |||
<p>list Info = llParcelMediaQuery([PARCEL_MEDIA_COMMAND_URL, PARCEL_MEDIA_COMMAND_TEXTURE]);</p> | |||
<p>llSay(0, "Playing '" + llList2String(Info, 0) + "' on texture '" + (string)llList2Key(Info, 1) + "' for agent " + llDetectedName(0));</p> | |||
<p>llSetTimerEvent(RUN_LENGTH);</p> | |||
<p>}</p> | |||
<p> </p> | |||
<p>timer()</p> | |||
<p>{</p> | |||
<p>llParcelMediaCommandList( [ PARCEL_MEDIA_COMMAND_STOP ] );</p> | |||
<p>llSetTimerEvent(0.0);</p> | |||
<p>}</p> | |||
<p>}</p> | |||
<p><b>A.174. llParcelMediaQuery</b></p> | |||
<p>list llParcelMediaQuery(list query_list);</p> | |||
<p>Контролирует воспроизведение роликов и других мультимедиа ресурсов на Собственной земле. Команда может быть одной из констант PARCEL_MEDIA_COMMAND_TEXTURE или PARCEL_MEDIA_COMMAND_URL.</p> | |||
<p>Это функция позволяет вам сделать запрос на текстуру или URL для медиа пакета. Для примера использования рассмотрите функцию llParcelMediaCommandList .</p> | |||
<p><b>A.175. llParseString2List</b></p> | |||
<p>list llParseString2List(string src, list separators, list spacers);</p> | |||
<p>Разбивает строку src используя разделители описанные в списке separators и прерыватели spacers .Выдает результат в виде списка. Разделителей и прерывателей можно использовать по 8 параметров.</p> | |||
<p>Пример:</p> | |||
<p>llParseString2List("Parsethisnow! I dare:you to.", ["this", "!", " "], [":"]);</p> | |||
<p>Результат в виде списка:</p> | |||
<p>["Parse", "now", "I", "dare", ":", "you", "to"]</p> | |||
<p><b>A.176. llParseStringKeepNulls</b></p> | |||
<p>list llParseStringKeepNulls(string src, list separators, list spacers);</p> | |||
<p>Разбивает строку src используя разделители описанные в списке separators и прерыватели spacers .Выдает результат в виде списка. Разделителей и прерывателей можно использовать по 8 параметров. Любой нулевой результат будет сохранен в виде нуля.</p> | |||
<p>Пример:</p> | |||
<p>llParseString2List("!Parsethisthisnow I dare::you to.", ["this", "!", " "], [":"]);</p> | |||
<p>Результат в виде списка.</p> | |||
<p>[NULL, "Parse", NULL, "now", "I", "dare", ":", NULL, ":", "you", "to"]</p> | |||
<p><b>A.177. llParticleSystem</b></p> | |||
<p>llParticleSystem(list parameters);</p> | |||
<p>Создать систему частиц базирующуюся на параметрах перечисленных в List parameters. Параметры используют специальный ордер а потом его значение. Действительные параметры и значения могут быть выбранны с помошью констант particle system constants.</p> | |||
<p>Пример:</p> | |||
<p>llParticleSystem([PSYS_PART_FLAGS, PSYS_PART_WIND_MASK,</p> | |||
<p>PSYS_PART_START_COLOR, <1,0,0>,</p> | |||
<p>PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE]);</p> | |||
<p><b>A.178. llPassCollisions</b></p> | |||
<p>llPassCollisions(integer pass);</p> | |||
<p>Если параметр pass установлен в TRUE соприкосновение с обьектом передается также и дочерним залинкованым обьектам </p> | |||
<p><b>A.179. llPassTouches</b></p> | |||
<p>llPassTouches(integer pass);</p> | |||
<p>Если pass установлен в TRUE все клики по потомственным обьектам передаются родительскому обьекту</p> | |||
<p><b>A.180. llPlaySound</b></p> | |||
<p>llPlaySound(string sound, float volume);</p> | |||
<p>Проигрывает музыкальный файл с именем sound и громкостью volume прикрепленный к обьекту один раз. Остановить проигрывание файла можно с помощью функции llStopSound либо перейти на многоразовое прогигрывание м помощью функции llLoopSound. Только один музыкальный файл прикрепленный к обьекту может проигрыватся одновременно . Повторный вызов этой фунции с тем-же именем файла не будет вызывать его проигрывание сначала, но новый параметр звука volume будет использован. Это позволяет контролировать излишнюю громкость звука воспроизведения файла. Установка громкости звука в ноль не тоже самое что использование функции llStopSound; звук с нулевой громкость также будет воспроизводится но не будет слышен. Для рестарта проигрывания звука сначало вызовите фцнкцию llStopSound и после нее можете вызывать функцию llPlaySound снова.</p> | |||
<p><b>A.181. llPlaySoundSlave</b></p> | |||
<p>llPlaySoundSlave(string sound, float volume);</p> | |||
<p>Поведение этой функции идентично поведению llPlaySound, Если нет "Sync Master" звуковых файлов. Если Sync Master будет уже играть, то звук Slave начнет играть с того же самого пункта, владелеца , пункты обоих звуков будут синхронны. Если звук Master начнет играть, когда Slave уже играет, то Slave будет пропускатся и синхронизироватся с Master.</p> | |||
<p><b>A.182. llPointAt</b></p> | |||
<p>llPointAt(vector pos);</p> | |||
<p>Сделать аватара владельцем обьекта на позиции pos // в настоящее время устарела и не работает</p> | |||
<p><b>A.183. llPow</b></p> | |||
<p>llPow(float base, float exp);</p> | |||
<p>Возвращает результат числа base в степени exp.</p> | |||
<p><b>A.184. llPreloadSound</b></p> | |||
<p>llPreloadSound(string sound);</p> | |||
<p>Предварительная загрузка звукового файла sound из инвентаря неподалеку от слушателя.</p> | |||
<p><b>A.185. llPushObject</b></p> | |||
<p>llPushObject(key id, vector impulse, vector angular_impulse, integer local);</p> | |||
<p>Применить импульс(толчок) impulse и импульс вращения angular_impulse к обьекту или аватару с ключем id</p> | |||
<p>Для получения массы llGetObjectMass может быть применен гденибудь в пределах сима.</p> | |||
<p>Параметр local принимает булеан значение TRUE либо FALSE и включает вращение вокруг обьекта с заданым id или нет.</p> | |||
<p><b>A.186. llReleaseControls</b></p> | |||
<p>llReleaseControls(key avatar);</p> | |||
<p>Остановить опрос команд ввода с клавиатуры для аватара.</p> | |||
<p><b>A.187. llRemoteDataReply</b></p> | |||
<p>llRemoteDataReply(key channel, key message_id, string sdata);</p> | |||
<p>Послать XML-RPC ответное сообщение message_id по каналу со полезными строковыми данными sdata.</p> | |||
<p><b>A.188. llRemoteDataSetRegion</b></p> | |||
<p>llRemoteDataSetRegion(void);</p> | |||
<p>В случае если любой обьект испльзуя удаленных какнал данных remote data channels, то вы должны вызвать эту функцию чтобы зарегистрировать удаленный канал данных. Вы не сможете вызывать функцию если ваш обьект не находится за пределами вашего региона и не использует дистанционный канал remote data channels.</p> | |||
<p><b>A.189. llRemoteLoadScript</b></p> | |||
<p>llRemoteLoadScript(void);</p> | |||
<p>Устраевший(глючный). Пожалуйста выберите llRemoteLoadScriptPin </p> | |||
<p><b>A.190. llRemoteLoadScriptPin</b></p> | |||
<p>llRemoteLoadScriptPin(key target, string name, integer pin, integer running, integer param);</p> | |||
<p>Если у владельца этого обьекта есть права на передачу скрипта в инвентарь другого обьекта, ключ которого <b>target</b>, и владелец имеет правильный код pin и обьекты находятся в томже регионе что и обьект передающий скрипт, то скрипт <b>name</b> будет скопирован из инвентаря текущего обьекта в инвентарь указанного обьекта <b>target</b>, если параметр <b>running</b> == TRUE то после того как скрипт скопируется в другой обьект он сразу запустится, параметр <b>param</b> (которые можно получит в созданном скрипте с помощью функции llGetStartParameter). Если имя <b>name</b> уже существует в инвентаре цели, то скрипт будет заменен только что полученным скриптом.</p> | |||
<p><b>A.191. llRemoveInventory</b></p> | |||
<p>llRemoveInventory(string inventory);</p> | |||
<p>Удалить обьект или запись name из инвентаря.</p> | |||
<p><b>A.192. llRemoveVehicleFlags</b></p> | |||
<p>llRemoveVehicleFlags(integer flags);</p> | |||
<p>Установить флаг транспортного средства в FALSE.</p> | |||
<p>Используемые параметры нужно выбрать из набора констант vehicle <b>flags constants</b> .</p> | |||
<p><b>A.193. llRequestAgentData</b></p> | |||
<p>key llRequestAgentData(key id, integer data);</p> | |||
<p>Эта функция нужна для запроса данных об каком либо аватаре по его id. Если информация об автаре будет собрана то результат будет возвращен через событие dataserver. Ключ который возвращает функция будет в точности такойже как и ключ возвращенный событием - это можно использовать для сверки для какого запроса были полученны данные. В параметре data и данных полученных в событии споьзуется набор констант agent data constants . По которым можно разобрать полученные данные.</p> | |||
<p><b>A.194. llRequestInventoryData</b></p> | |||
<p>key llRequestInventoryData(string name);</p> | |||
<p>Запрашивает данные об обьекте name из инвентаря текущего обьекта. Результат запроса будет получен в событии dataserver. Если были запршенны данные о landmark то вернется результат в форме "<...,...,...>" это будут координаты земли. Ключ возвращаемый фунцией исползуется для проверки соответствия полученного ответа в событии.</p> | |||
<p><b>A.195. llRequestPermissions</b></p> | |||
<p>llRequestPermissions(key avatar, integer perm);</p> | |||
<p>Узнать есть ли права доступа у аватара по ключу avatar на изменение чего - либо заданного константой perm. Perm параметр использует константы permission constant. Резултат будет возвращен в событии run_time_permissions</p> | |||
<p><b>A.196. llRequestSimulatorData</b></p> | |||
<p>key llRequestSimulatorData(string sim_name, integer data);</p> | |||
<p>Эта функция запрашивает данные о симуляторе sim_name . Когда иформация собрана , запускается dataserver событие которое возвращает ключ переданный функцией в параметре requested. Смотрите simulator data constants для уточнения деталей насчет значений параметра data и значений которые возвращает dataserver событие.</p> | |||
<p><b>A.197. llResetScript</b></p> | |||
<p>llResetScript(void);</p> | |||
<p>Перезапустить скрипт.</p> | |||
<p><b>A.198. llResetOtherScript</b></p> | |||
<p>llResetOtherScript(string name);</p> | |||
<p>Перезапустить скрипт по его имени name.</p> | |||
<p><b>A.199. llResetTime</b></p> | |||
<p>llResetTime(void);</p> | |||
<p>Установить внутренний скрипт таймер в ноль.</p> | |||
<p><b>A.200. llRezAtRoot</b></p> | |||
<p>llRezAtRoot(string inventory, vector pos, vector vel, rotation rot, integer param);</p> | |||
<p>Создать обьект из инвентаря inventory, в позиции pos со скоростью vel и поворотом rot. Последний выбранный корневой обьект координируется в мультиобьект и веделение придет к позиции pos выделенный. Все другие обьекты в выделении будут создаватся Родственными (дочерними) до конца выделения коренной позиции. Значение Param доступно недавно созданным обьектом в on_rez событии или библиотечной функции llGetStartParameter . Параметр vel игнорируется если создаваемый обьект не физический. </p> | |||
<p><b>A.201. llRezObject</b></p> | |||
<p>llRezObject(string inventory, vector pos, vector vel, rotation rot, integer param);</p> | |||
<p>Создать обьект из инвентаря inventory, в позиции pos со скоростью vel и поворотом rot. Значение Param доступно недавно созданным обьектом в on_rez событии или библиотечной функции llGetStartParameter . Параметр vel игнорируется если создаваемый обьект не физический. </p> | |||
<p><b>A.202. llRot2Angle</b></p> | |||
<p>float llRot2Angle(rotation rot);</p> | |||
<p>Возвращает угол вращения представленный в виде rot.</p> | |||
<p><b>A.203. llRot2Axis</b></p> | |||
<p>vector llRot2Axis(rotation rot);</p> | |||
<p>Возвращает поворотные оси представленные в rot.</p> | |||
<p><b>A.204. llRot2Euler</b></p> | |||
<p>vector llRot2Euler(rotation rot);</p> | |||
<p>Возвращает угол Эйлера представленный в виде rot.</p> | |||
<p><b>A.205. llRot2Fwd</b></p> | |||
<p>vector llRot2Fwd(rotation rot);</p> | |||
<p>Возвращает направление осей представленных в виде rot.</p> | |||
<p><b>A.206. llRot2Left</b></p> | |||
<p>llRot2Left(rotation rot);</p> | |||
<p>Возвращает левую ось представленных в виде rot.</p> | |||
<p><b>A.207. llRot2Up</b></p> | |||
<p>llRot2Up(rotation rot);</p> | |||
<p>Возвращает ось вращения представленную в виде rot.</p> | |||
<p><b>A.208. llRotBetween</b></p> | |||
<p>rotation llRotBetween(vector a, vector b);</p> | |||
<p>Возвращает угол поворота между векторами a и b.</p> | |||
<p><b>A.209. llRotLookAt</b></p> | |||
<p>llRotLookAt(rotation rot, float strength, float damping);</p> | |||
<p>Установить поворот обьекта .Эта функция работает также как llLookAt только без использование прицела . Обьект повернется на угол заданный в параметре rotation rot. Подходящее значение strength лучше установить приблизетельно равной половине массы обьекта , и подходящее значение damping лучше установить менее чем 1/10 силы. Асимметричные формы обьектов требуют меньшего демпфирования damping. Сила strength равная 0.0 отменяет поворот обьекта.</p> | |||
<p><b>A.210. llRotTarget</b></p> | |||
<p>integer llRotTarget(rotation rot, float error);</p> | |||
<p>Установить постоянное вращение обьекта(цели) в пределах <b>error</b> с коэфициентом вращения <b>rotation</b> после чего обьект будет рассматриватся как цель вращения и функция вернет маркер(типа ключа) цели. После чего можно будет использовать этот маргер как указатель на обьект и производит разннообразные операции над ним например с помощью функции llRotTargetRemove - котрорая остановит вращение цели по ее маркеру.</p> | |||
<p><b>A.211. llRotTargetRemove</b></p> | |||
<p>llRotTargetRemove(integer number);</p> | |||
<p>Остановить постоянное вращение цели(обьекта) по его маркеру number.</p> | |||
<p><b>A.212. llRotateTexture</b></p> | |||
<p>llRotateTexture(float radians, integer face);</p> | |||
<p>Установить поворот текстуры в радианах radians на стороне face.</p> | |||
<p><b>A.213. llRound</b></p> | |||
<p>integer llRound(float val);</p> | |||
<p>Возвращает округленное целое значение числа val</p> | |||
<p><b>A.214. llSameGroup</b></p> | |||
<p>integer llSameGroup(key id);</p> | |||
<p>Возвращает TRUE если обьект или аватар id входит в Группу которой принадлежит текущая земля . Иначе вернет FALSE.</p> | |||
<p><b>A.215. llSay</b></p> | |||
<p>llSay(integer channel, string text);</p> | |||
<p>Сказать текст text по каналу channel .</p> | |||
<p><b>A.216. llScaleTexture</b></p> | |||
<p>llScaleTexture(integer scale_s, integer scale_t, integer face);</p> | |||
<p>Установить масштаб текстуры на стороне face по scale_s и scale_t параметрам. Если в параметре face используется константа ALL_SIDES масштаб текстур будет установлен на всех сторонах обьекта</p> | |||
<p><b>A.217. llScriptDanger</b></p> | |||
<p>integer llScriptDanger(vector pos);</p> | |||
<p>Возвращает true если коррдинаты pos находятся на чужой територии</p> | |||
<p><b>A.218. llSendRemoteData</b></p> | |||
<p>key llSendRemoteData(key channel, string dest, integer idata, string sdata);</p> | |||
<p>Посылает XML-RPC запрос в dest через канал chennel с полезным грузом в виде целого числа idata и строки sdata.</p> | |||
<p>Любой XML-RPC ответ запускает remote_data событие с типом type = REMOTE_DATA_REPLY. Событие возвращает message_id который может быть использован для идентификации XML-RPC ответа соответстыует ли он своему запросу.</p> | |||
<p><b>A.219. llSensor</b></p> | |||
<p>llSensor(string name, key id, integer type, float range, float arc);</p> | |||
<p>Выполняет одиночное сканирование(т.е. Сканирование производится только один раз ) по имени обьекта <b>name </b>и по его <b>ID</b> по типу искомого обьекта <b>type</b> в радиусе <b>range</b> метров и в пределах угла <b>arc</b> в радианах из переданного вектора . Задавая пустое имя или ключ, не будут фильтроватся результаты по этим параметрам. Дистанция 0.0 делает сканирование не выполнимым. Дистанция ограничена 96.0 метрами. Параметр type должен быть соответствовать одной из констант object type constant . Если что нибудь обнаружено запускаетс событие <b>sensor</b> .Максимум 16 обнаруженных обьектов может быть переданно в событие. Если при сканировании ничего не обнаруженно запускается событие <b>no_sensor</b> . После того как цель была обнаружена и ее параметы были переданны событию <b>sensor</b> , с помощью разнообразных функций типа <b>llDetection*</b> можно собрать обширную информацию об обнаруженном обьекте.</p> | |||
<p><b>Замечания: Сенсор не обнаруживает обьект где находится сам сенсор и не обнаруживает агента к которому прикреплен этот сенсор(других агентов и обьекты он обнаруживает). </b></p> | |||
<p>Тип искомого обьекта должен быт определенн с помощю одной или несколгих констант из набора: AGENT, ACTIVE, PASSIVE и/или SCRIPTED. </p> | |||
<p>Типы искомого обьекта можно комбинировать с помощью побитового OR (|). Например, AGENT | ACTIVE.</p> | |||
<p>Сочетание типа SCRIPTED с другими может привести к несколько неожиданным результатам:</p> | |||
<p>SCRIPTED будет обнаруживать активные скрипты или двигающиеся объекты, содержащие скрипт. </p> | |||
<p>AGENT | SCRIPTED будет обнаруживать активные скрипты или двигающиеся объекты, содержащие скрипт; АГЕНТЫ НЕ БУДУТ НАЙДЕНЫ! </p> | |||
<p>ACTIVE | SCRIPTED будет обнаруживать активные скрипты или двигающиеся объекты, которые содержат скрипт; не будут найдены физические перемещающиеся объекты без скриптов. </p> | |||
<p>PASSIVE | SCRIPTED будет обнаруживать активные скрипты, нефизические объекты без скриптов и физические объекты, содержащие скрипт; не будут найдены физические неподвижные объекты, в которых нет скрипта. </p> | |||
<p><b>A.220. llSensorRemove</b></p> | |||
<p>llSensorRemove(void);</p> | |||
<p>Удалить сенсор установленный с помощью функции llSensorRepeat</p> | |||
<p><b>A.221. llSensorRepeat</b></p> | |||
<p>llSensorRepeat(string name, key id, integer type, float range, float arc, float rate);</p> | |||
<p>Выполняет сканирование пространства на нахождение обьекта имя которого <b>name</b> и <b>ID</b> , сканирование можно фильтровать выберая одну или несколько масок из набора констант <b>Object Type Constants, </b>помимо этого нужно задать дальность сканирования <b>range </b>и угол в пределах которого производить сканирование в заданном радиусе периметра сканирования, Эта функция включает сканирование каждые заданные <b>rate</b> секунд. Пустое имя определяется <b>NULL_KEY</b> и индефикация не фильтрует результаты ID и работает для любых имен и ID. C диапазоном <b>range</b> равным 0.0 сканирование будет приостановленно. Предел радиуса сканирования 96.0 метров. Параметры типа должны быть любыми </p> | |||
<p>object type constant значениями. Если что либо найдено во время сканирования запускается событие <b>sensor</b> . Максимум , возможно передать 16 предметов к этому событию. Если ничего не найдено во время сканирования то взамен будет запущено событие no sensor. Работает абсолютно также как и llSensor за исключение того что сканирование будут атоматически повторятся через заданный промежуток времени</p> | |||
<p><b>A.222. llSetAlpha</b></p> | |||
<p>llSetAlpha(float alpha, integer face);</p> | |||
<p>Установить альфа значение на сторону face. Если fase является ALL_SIDES , устанавливает альфу на все стороны</p> | |||
<p><b>A.223. llSetBuoyancy</b></p> | |||
<p>llSetBuoyancy(float buoyancy);</p> | |||
<p>Установить плавучесть buoyancy обьекта. Значение 0 - неплавучий, меньше чем 1.0 плавучий, и больше чем 1.0 повышенная плавучесть.</p> | |||
<p><b>A.224. llSetCameraAtOffset</b></p> | |||
<p>llSetCameraAtOffset(vector offset);</p> | |||
<p>Установить смещение камеры относительно обьекта на который присел аватар.</p> | |||
<p><b>A.225. llForceMouselook</b></p> | |||
<p>llForceMouselook(integer mouselook);</p> | |||
<p>Перевести камеру в MouseLook-вид относительно обьекта на котором сидит аватар. Параметр mouselook может принимать значение TRUE либо FALSE.</p> | |||
<p><b>A.226. llSetCameraEyeOffset</b></p> | |||
<p>llSetCameraEyeOffset(vector offset);</p> | |||
<p>Установить смещение координат камеры если аватар сидит на этом обьекте.</p> | |||
<p><b>A.227. llSetColor</b></p> | |||
<p>llSetColor(vector color, integer face);</p> | |||
<p>Установить цвет color на сторону face. Если в параметре face написать константу ALL_SIDES то цвет будет установлен на все стороны обьекта.</p> | |||
<p><b>A.228. llSetDamage</b></p> | |||
<p>llSetDamage(float damage);</p> | |||
<p>Установить индикатор повреждения. Этот обьект будет разрушен если он будет задет другим оьектом наносящим повреждения.</p> | |||
<p><b>A.229. llSetForce</b></p> | |||
<p>llSetForce(vector force, integer local);</p> | |||
<p>Если обьект физический то эта функция устанавливает силу force. Чтобы установить вектор в локальных координатах параметр local надо установить в TRUE, а в глобальн коорд в FALSE.</p> | |||
<p><b>A.230. llSetForceAndTorque</b></p> | |||
<p>llSetForceAndTorque(vector force, vector torque, integer local);</p> | |||
<p>Если обьект физический то эта функция задает силу force и вращающий момент torque обьекта. Чтобы установить вектор в локальных координатах параметр local надо установить в TRUE, а в глобальн коорд в FALSE.</p> | |||
<p><b>A.231. llSetHoverHeight</b></p> | |||
<p>llSetHoverHeight(float height, float water, float tau);</p> | |||
<p>Установить минимальную высоту от земли и от воды на которой будет находится(парить) физический обьект. Высота будет установленна для земли и воды если флаг water будет TRUE.</p> | |||
<p><b>A.232. llSetLinkAlpha</b></p> | |||
<p>llSetLinkAlpha(integer linknumber, float alpha, integer face);</p> | |||
<p>Устанавливает прозрачность связаного(залинкованного) обьекта с текушим по его номере связи linknumber , прозрачность можно установить на определенную сторону обекта по указателю face Ели использовать константу ALL_SIDES, то прозрачность будет установлена на все стороны.</p> | |||
<p><b>A.233. llSetLinkColor</b></p> | |||
<p>llSetLinkColor(integer linknumber, vector color, integer face);</p> | |||
<p>Устанавливает цвет связаного(залинкованного) обьекта с текушим по его номере связи linknumber , цвет монжо установить на определенную сторону обекта по указателю face Ели использовать константу ALL_SIDES, то цвет будет установлен на все стороны.</p> | |||
<p><b>A.234. llSetLocalRot</b></p> | |||
<p>llSetLocalRot(rotation rot);</p> | |||
<p>Устанавливает поворот обьекта относительно локальных координат оьекта(относительно координат корневого обьекта)</p> | |||
<p><b>A.235. llSetObjectDesc</b></p> | |||
<p>llSetObjectDesc(string description);</p> | |||
<p>Установить описание description обьекта.</p> | |||
<p><b>A.236. llSetObjectName</b></p> | |||
<p>llSetObjectName(string name);</p> | |||
<p>Установить Имя name обьекта.</p> | |||
<p><b>A.237. llSetParcelMusicURL</b></p> | |||
<p>llSetParcelMusicURL(string url);</p> | |||
<p>Установить URL audio поток для той земли где расположен в настоящее время обьект в котором этот скрипт. URL должен быть любой http указывающий на поток mp3 или ogg данных.</p> | |||
<p><b>A.238. llSetPayPrice</b></p> | |||
<p>llSetPayPrice(integer default_price, list quick_pay_buttons);</p> | |||
<p>Установить цену по умолчанию из прайса и добавочную цену .И установить кнопки в платежном окне когда кто то платит обьекту. Смотрите Pay Button Constants.</p> | |||
<p><b>A.239. llSetPos</b></p> | |||
<p>llSetPos(vector pos);</p> | |||
<p>Если обьект не физический, эта функция устанавливает его положение в региональных координатах. Если обьект дочерний(залинкованный), координаты расматриваютс как локальные (относительно коренного обьекта). </p> | |||
<p><b>A.240. llSetPrimitiveParams</b></p> | |||
<p>llSetPrimitiveParams(list rules);</p> | |||
<p>Установить базовые парметры(параметры которые используются для редактирования обьекта) примитива по правилу rules. Rules это точно определенный список параметров и значений. Действующие значения могут быть выбранны и из констант Primitive Constants . Вот простой пример:</p> | |||
<p>llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_BOX, PRIM_HOLE_DEFAULT, <0,1,0>,0.5, <-0.2, 0.2, 0>, <0.5,0.5,0>,<-0.5,0.5,0>]);</p> | |||
<p><b>A.241. llSetRemoteScriptAccessPin</b></p> | |||
<p>llSetRemoteScriptAccessPin(integer pin);</p> | |||
<p>Если pin установлен не в-ноль, задача будет принята отдаленным скриптом загружаемым через llRemoteLoadScriptPin если пин корректный. Иначе функция llRemoteLoadScriptPin будет проигнорированна.</p> | |||
<p><b>A.242. llSetRot</b></p> | |||
<p>llSetRot(rotation rot);</p> | |||
<p>Если обьект не физический, эта функция установит поворот обьекта. Если обьект дочерний(залинкованный), то поворот будет произведен относительно локальных координат(или координат корневого обьекта).</p> | |||
<p><b>A.243. llSetScale</b></p> | |||
<p>llSetScale(vector scale);</p> | |||
<p>Установить маштаб(размер) обьекта. </p> | |||
<p><b>A.244. llSetScriptState</b></p> | |||
<p>llSetScriptState(string name, integer run);</p> | |||
<p>Установить состояние запуска скрипта name, в состояние "запущен" либо "незапущен" TRUE либо FALSE</p> | |||
<p><b>A.245. llSetSitText</b></p> | |||
<p>llSetSitText(string text);</p> | |||
<p>Установить (заменить) текстовую команду "Присесть" которая отображается в меню после нажатия правой клавиши мыши на предмете.</p> | |||
<p><b>A.246. llSetSoundQueueing</b></p> | |||
<p>llSetSoundQueueing(integer queue);</p> | |||
<p>Настройка свойств звука - прерываются ли звуки игры функциями llPlaySound, llLoopSound . По умолчанию для всех обьектов это свойство звука равно FALSE. Установите значение TRUE для того чтобы ожидать окончания игрового звука а затем продолжать по очереди пользовательский звук. Параметр <b>queue</b> является уровнем глубины очереди.</p> | |||
<p><b>A.247. llSetStatus</b></p> | |||
<p>llSetStatus(integer status, integer value);</p> | |||
<p>Установить статус обьекта с помощью констант status constants переданных в параметр status со значением value. С помощью этой функции можно устанновить статус обьекта такой как: физический обьект или нет, является ли обьект фантомом, по каким осям заблокирован поворот обьекта, можно ли его передвигать с помощью курсора мышки «Рука» и т.д.</p> | |||
<p><b>A.248. llSetText</b></p> | |||
<p>llSetText(string text, vector color, float alpha);</p> | |||
<p>Установить текст text который будет парить над обьектом, текст будет указанного цвета color и прозрачности alpha.</p> | |||
<p><b>A.249. llSetTexture</b></p> | |||
<p>llSetTexture(string texture, integer face);</p> | |||
<p>Установить текстуру texture из инвентаря (либо по ключу текстуры который надо написать в каквычках) на сторону face. Если face задан константой ALL_SIDES текстура установится на все стороны.</p> | |||
<p><b>A.250. llSetTextureAnim</b></p> | |||
<p>llSetTextureAnim(integer mode, integer face, integer sizex, integer sizey, float start, float length, float rate);</p> | |||
<p>Включает анимацию текстуры с установленными параметрами маштаба и смещения тайла(одного кадра из множества размещенных в одной картинке). Параметр mode используетс для передачи одной из констант из набора texture animation constants. Вы можете выбрать толбьо один набор текстурных анимаций для одного обьекта. Повторный вызов этой функции сбросит текущую анимацию и установит новую. Вы можете одновременно использовать только одну традиционную анимацию ROTATE или SCALE. Вы не можете комбинировать маски друг с другом. Анимации ROTATE или SCALE будут игнорировать параметры <b>sizex</b> и <b>sizey, </b>а параметры <b>start</b> и <b>lenght</b> будут использованны для анимации. Для вращения <b>start</b> и <b>length</b> нужно задавать в радианах. </p> | |||
<p>Параметр <b>face</b> определяет на каких сторонах(гранях) примитива будет происходить анимация. Если <b>face </b>равен константе ALL_SIDES то анимация будет со всеми текстурами на всех сторонах обьекта. Параметр <b>sizex и sizey </b>описывают размер одного кадра(фрэйма,тайла) анимации в пределах одной текстуры (т.е. Все кадры должны распологатся на одной текстуре). Фреймы нумеруются в порядке слева на право и сверху вниз , номер стартового фрейма будет 0. Фреймы должны вписыватся в одну текстуру тоесть не выходить за ее края.</p> | |||
<p>Параметр <b>rate</b> задается в секундах и определяет сколько времени будет длится один кадр анимации. Например этот параметр равен 1.0 секунде а кадров у нас в текстуре поместилось 10 то анимация всей текстуры будет происходить 10 секунд.</p> | |||
<p>Пример 1:</p> | |||
<p>llSetTextureAnim(ANIM_ON | SMOOTH | ROTATE | LOOP, ALL_SIDES,1,1,0, TWO_PI, 2*TWO_PI);</p> | |||
<p>Пример 2:</p> | |||
<p>llSetTextureAnim(ANIM_ON | SMOOTH | LOOP , ALL_SIDES, 1, 1, 1, 1, 1);</p> | |||
<p>Пример 3:</p> | |||
<p>llSetTextureAnim(ANIM_ON | SMOOTH | SCALE | PING_PONG | LOOP, ALL_SIDES, 1, 1, 1, 3, 2);</p> | |||
<p><b>A.251. llSetTimerEvent</b></p> | |||
<p>llSetTimerEvent(float sec);</p> | |||
<p>Установить вызов timer события с переодичностью указанной в параметре sec. Значение параметра равное 0.0 прекратит вызов события.</p> | |||
<p><b>A.252. llSetTorque</b></p> | |||
<p>llSetTorque(vector torque, integer local);</p> | |||
<p>Если обьект физический то эта функция устанавливает момент вращения по вектору torque . Вектор вращения будет определятся локальными координатами если local = TRUE и глобальными если FALSE</p> | |||
<p><b>A.253. llSetTouchText</b></p> | |||
<p>llSetTouchText(string text);</p> | |||
<p>Установить (заменить) текстовую команду "Дотронутся" которая отображается в меню после нажатия правой клавиши мыши на предмете.</p> | |||
<p><b>A.254. llSetVehicleFlags</b></p> | |||
<p>llSetVehicleFlags(integer flags);</p> | |||
<p>Устанавливает Флаг транспортного средства в TRUE. Доступные параметры нужно использовать из vehicle flags constants констант.</p> | |||
<p><b>A.255. llSetVehicleFloatParam</b></p> | |||
<p>llSetVehicleFloatParam(integer param_name, float param_value);</p> | |||
<p>Устанавливает динамические параметры передвижного средства param_name c параметрами param_value. Доступные параметры могут быть найдены в секции vehicle parameter constants констант.</p> | |||
<p><b>A.256. llSetVehicleType</b></p> | |||
<p>llSetVehicleType(integer type);</p> | |||
<p>Активирует передвижное средство и выбирает его тип type. Доступные параметры и разьяснения их особенностей могут быть найдены в секции vehicle type constants констант.</p> | |||
<p><b>A.257. llSetVehicleRotationParam</b></p> | |||
<p>llSetVehicleRotationParam(integer param_name, rotation param_value);</p> | |||
<p>Устанавливает параметры вращения передвижного средства param_name c параметрами param_value. Доступные параметры могут быть выбраны и констант vehicle parameter constants .</p> | |||
<p><b>A.258. llSetVehicleVectorParam</b></p> | |||
<p>llSetVehicleVectorParam(integer param_name, vector param_value);</p> | |||
<p>Устанавливает вектор передвижного средства param_name c параметрами param_value. Доступные параметры могут быть найдены в секции vehicle parameter constants констант.</p> | |||
<p><b>A.259. llShout</b></p> | |||
<p>llShout(integer channel, string text);</p> | |||
<p>Крикнуть текст text по каналу channel .</p> | |||
<p><b>A.260. llSin</b></p> | |||
<p>float llSin(float theta);</p> | |||
<p>Возвращает синус тэта в радианах</p> | |||
<p><b>A.261. llSitTarget</b></p> | |||
<p>llSitTarget(vector offset, rotation rot);</p> | |||
<p>Устанавливает положение(координаты) и поворот аватара после того как он присел на этот обьект . Если offset == ZERO_VECTOR то изменение положения аватара анулируется.</p> | |||
<p><b>A.262. llSleep</b></p> | |||
<p>llSleep(float sec);</p> | |||
<p>Установить спящий режим скрипта на sec секунд. (Пауза)</p> | |||
<p><b>A.263. llSqrt</b></p> | |||
<p>float llSqrt(float val);</p> | |||
<p>Возвращает квадратный корень числа val. Если параметр val меньше 0.0 то функци вернет значение 0.0 и выдаст математическую ошибку во время выполнения.</p> | |||
<p><b>A.264. llStartAnimation</b></p> | |||
<p>llStartAnimation(string anim);</p> | |||
<p>Эта функция зпускает анимацию anim аватара владеющего этим обьектом.</p> | |||
<p>Значение переменной anim может быть именем анимации вложенной в инвентарь или можно использовать значения из стандартного набора встроеных анимаций:</p> | |||
<p>hold_R_bazooka, hold_R_handgun, hold_R_rifle</p> | |||
<p>Holds the appropriately shaped weapon in the right hand. Automatically switches to the aims (below) when user enters mouse look</p> | |||
<p>aim_R_bazooka, aim_R_handgun, aim_R_rifle</p> | |||
<p>Aims the appropriately shaped weapon along the direction the avatar is looking.</p> | |||
<p>away</p> | |||
<p>Flops over in "away from keyboard" state.</p> | |||
<p>backflip</p> | |||
<p>Performs a backflip.</p> | |||
<p>bow</p> | |||
<p>Bows at waist.</p> | |||
<p>brush</p> | |||
<p>Brushes dirt from shirt.</p> | |||
<p>clap</p> | |||
<p>Applauds.</p> | |||
<p>courtbow</p> | |||
<p>Bows with a courtly flourish.</p> | |||
<p>crouch</p> | |||
<p>Crouches in place.</p> | |||
<p>crouchwalk</p> | |||
<p>Walks in place while crouching.</p> | |||
<p>dance1, dance2, dance3, dance4, dance5, dance6, dance7, dance8</p> | |||
<p>Various dance maneuvers.</p> | |||
<p>falldown</p> | |||
<p>Freefall falling animation.</p> | |||
<p>female_walk</p> | |||
<p>Walks with hip sway.</p> | |||
<p>fly</p> | |||
<p>Flies forward.</p> | |||
<p>flyslow</p> | |||
<p>Flies forward at a less aggressive angle.</p> | |||
<p>hello</p> | |||
<p>Waves.</p> | |||
<p>hold_throw_R</p> | |||
<p>Hold object in right hand, prepared to throw it.</p> | |||
<p>hover</p> | |||
<p>Hovers in place.</p> | |||
<p>hover_down</p> | |||
<p>Pretends to hover straight down.</p> | |||
<p>hover_up</p> | |||
<p>Pretends to hover straight up.</p> | |||
<p>jump</p> | |||
<p>Midair jump position.</p> | |||
<p>kick_roundhouse_R</p> | |||
<p>Roundhouse kick with right leg.</p> | |||
<p>land</p> | |||
<p>Lands after flying.</p> | |||
<p>prejump</p> | |||
<p>Prepares to jump.</p> | |||
<p>punch_L</p> | |||
<p>Punch with left hand.</p> | |||
<p>punch_R</p> | |||
<p>Punch with right hand.</p> | |||
<p>punch_onetwo</p> | |||
<p>Punch with one hand then the other.</p> | |||
<p>run</p> | |||
<p>Runs in place.</p> | |||
<p>salute</p> | |||
<p>Salutes with right hand.</p> | |||
<p>sit</p> | |||
<p>Sits on object at knee height.</p> | |||
<p>sit_ground</p> | |||
<p>Sits down on ground.</p> | |||
<p>slowwalk</p> | |||
<p>Walks in place slowly.</p> | |||
<p>smoke_idle</p> | |||
<p>Leans on imaginary prop while holding cigarette.</p> | |||
<p>smoke_inhale</p> | |||
<p>Leans on imaginary prop and smokes a cigarette.</p> | |||
<p>smoke_throw_down</p> | |||
<p>Leans on imaginary prop, throws down a cigarette, and stamps it out.</p> | |||
<p>snapshot</p> | |||
<p>Pantomimes taking a picture.</p> | |||
<p>soft_land</p> | |||
<p>Stumbles a bit as if landing.</p> | |||
<p>stand</p> | |||
<p>Stands in place.</p> | |||
<p>standup</p> | |||
<p>Falls on face and stands up.</p> | |||
<p>stride</p> | |||
<p>Legs extended as if stepping off of a ledge.</p> | |||
<p>sword_strike_R</p> | |||
<p>Strike with sword in right hand.</p> | |||
<p>talk</p> | |||
<p>Head moves as if talking.</p> | |||
<p>throw_R</p> | |||
<p>Throws object in right hand.</p> | |||
<p>tryon_shirt</p> | |||
<p>Turns around and models a new shirt.</p> | |||
<p>turnleft</p> | |||
<p>Pretends to turn left.</p> | |||
<p>turnright</p> | |||
<p>Pretends to turn right.</p> | |||
<p>type</p> | |||
<p>Makes typing motion.</p> | |||
<p>uphillwalk</p> | |||
<p>Walks uphill in place.</p> | |||
<p>walk</p> | |||
<p>Walks in place.</p> | |||
<p>whisper</p> | |||
<p>Whispers behind hand.</p> | |||
<p>whistle</p> | |||
<p>Whistles with hands in mouth.</p> | |||
<p>yell</p> | |||
<p>Shouts between cupped hands.</p> | |||
<p><b>A.265. llStopAnimation</b></p> | |||
<p>llStopAnimation(string anim);</p> | |||
<p>Останавливает анимацию anim для аватара владельца этого обьекта.</p> | |||
<p><b>A.266. llStopHover</b></p> | |||
<p>llStopHover(void);</p> | |||
<p>Останавливает парение по высоте.</p> | |||
<p><b>A.267. llStopLookAt</b></p> | |||
<p>llStopLookAt(void);</p> | |||
<p>Останавливает установленный обьектом проспотр цели.</p> | |||
<p><b>A.268. llStopMoveToTarget</b></p> | |||
<p>llStopMoveToTarget(void);</p> | |||
<p>Остановка движения обьекта заданного с помощью функции llMoveToTarget.</p> | |||
<p><b>A.269. llStopPointAt</b></p> | |||
<p>llStopPointAt(void);</p> | |||
<p>Остановить аватара в этой точке.</p> | |||
<p><b>A.270. llStopSound</b></p> | |||
<p>llStopSound(void);</p> | |||
<p>Остановить текущее проигрывание прикрепленной музыки запущенной с помощью llPlaySound или llLoopSound. Запускать или выключать звук можно с помощью функции llTriggerSound.</p> | |||
<p><b>A.271. llStringLength</b></p> | |||
<p>integer llStringLength(string src);</p> | |||
<p>Возвращает количество символов в строке src.</p> | |||
<p><b>A.272. llSubStringIndex</b></p> | |||
<p>integer llSubStringIndex(string source, string pattern);</p> | |||
<p>Поиск индекса в строке sourse по первому обнаружению в ней образца pattern. Возвращает (-1) если не найден.</p> | |||
<p><b>A.273. llStringToBase64</b></p> | |||
<p>string llStringToBase64(string str);</p> | |||
<p>Конвертировать строку src в Base 64 представление. </p> | |||
<p><b>A.274. llTakeControls</b></p> | |||
<p>llTakeControls(integer controls, integer accept, integer pass_on);</p> | |||
<p>If (accept == (controls & input)), посылается данные ввода с клавиатуры обьекту. Если boolean pass_on равен TRUE, то вводимые данные будут посланы аватару аватара.</p> | |||
<p>Используется для опроса клавиатуры.</p> | |||
<p><b>A.275. llTan</b></p> | |||
<p>float llTan(float theta);</p> | |||
<p>Возвращает тангенс в радианах.</p> | |||
<p><b>A.276. llTarget</b></p> | |||
<p>integer llTarget(vector position, float range);</p> | |||
<p>Устанавливает положение обьекта который должен находится в пределах радиуса range , на позицию position и получает маркер(наподобии ключа) цели.</p> | |||
<p><b>A.277. llTargetOmega</b></p> | |||
<p>integer llTargetOmega(vector axis, float spinrate, float gain);</p> | |||
<p>Запустить вращение со скоростью spinrate с нарастанием gain на оси axis. Значение spinrate равное 0,0 анулирует вращение. Эта функция работает с локальными координатами обьекта если обьект залинкован и является потомком, и работает с мировыми координатами для корневого обьекта.</p> | |||
<p>Возвращает маркер(наподобии ключа) который может понадобится для сылки на этот обьект с целью произвести какието операции над ним например функции llTargetRemove.</p> | |||
<p><b>A.278. llTargetRemove</b></p> | |||
<p>llTargetRemove(integer tnumber);</p> | |||
<p>Удалить движения которые происходят с обьектом маркер которого передается в параметр tnumber.</p> | |||
<p><b>A.279. llTeleportAgentHome</b></p> | |||
<p>llTeleportAgentHome(key id);</p> | |||
<p>Телепортировать агента находящегося на земле владельца к дому этого агента по его ключу id.</p> | |||
<p><b>A.280. llToLower</b></p> | |||
<p>string llToLower(string src);</p> | |||
<p>Возвращает строку src со всеми строчными символами.</p> | |||
<p><b>A.281. llToUpper</b></p> | |||
<p>string llToUpper(string src);</p> | |||
<p>Возвращает строку src со всеми Заглавными символами.</p> | |||
<p><b>A.282. llTriggerSound</b></p> | |||
<p>llTriggerSound(string sound, float volume);</p> | |||
<p>Играет переходный звук, НЕ прикрепленный к объекту. Звук проигрывается с одного постоянного положения, расположенного в центре объекта во время спускового механизма. Нет никакого предела числу вызванных звуков, которые могут быть сгенерированы объектом, и вызваные звуки с помошью llTriggerSound не затрагивают прикрепленные звуки, созданные с помощью функций llPlaySound и llLoopSound. Это очень полезно для вещей как шумы столкновения, взрывы, и т.д. Нет никакого способа остановить или изменять громкость звука, вызванного этой функцией.</p> | |||
<p><b>A.283. llTriggerSoundLimited</b></p> | |||
<p>llTriggerSoundLimited(string sound, float volume, vector tne, vector bsw);</p> | |||
<p>Проигрывает переходный звук, НЕ прикрепленный к объекту с определеным диапазоном слышимости, ограниченным ровным прямоугольником по осям <b>tne</b>(вершина-северо-восток) и <b>bsw</b> (юго-запад основания). Звук проигрывается с одного постоянного положения, расположенного в центре объекта во время спускового механизма. Нет никакого предела числу вызванных звуков, которые могут быть сгенерированы объектом, и вызваные звуки с помошью llTriggerSoundLimited не затрагивают прикрепленные звуки, созданные с помощью функций llPlaySound и llLoopSound. Это очень полезно для вещей как шумы столкновения, взрывы, и т.д. Нет никакого способа остановить или изменять громкость звука, вызванного этой функцией.</p> | |||
<p><b>A.284. llUnescapeURL</b></p> | |||
<p>string llUnescapeURL(string url);</p> | |||
<p>Преобразует специальные символы URL обратно в ASCII. Полезна для возвращения нормального вида URL, внедренным в другие URL (распространенный трюк, который используют многие сайты для отслеживания ссылок, на которые вы нажимаете). Часто символы типа ":" и "/" преобразуются в их hex-эквивалент ("%3A" и "%2F":), что усложняет использование URL.</p> | |||
<p>Экономит 20% свободного пространства</p> | |||
<p><b>A.285. llUnSit</b></p> | |||
<p>llUnSit(key id);</p> | |||
<p>Если идентифицированный id агент сидит на обьекте с этим скриптом или на земле находящейся в собственности владельца обьекта , агент будет вынужден встать.</p> | |||
<p><b>A.286. llVecDist</b></p> | |||
<p>float llVecDist(vector a, vector b);</p> | |||
<p>Возвращает дистанцию от координаты а до б .</p> | |||
<p><b>A.287. llVecMag</b></p> | |||
<p>float llVecMag(vector vec);</p> | |||
<p>Возврщает длину вектора vec.</p> | |||
<p><b>A.288. llVecNorm</b></p> | |||
<p>vector llVecNorm(vector vec);</p> | |||
<p>Возвращает нормали vec.</p> | |||
<p><b>A.289. llVolumeDetect</b></p> | |||
<p>llVolumeDetect(integer detect);</p> | |||
<p>Когда параметр detect = TRUE, эта функция связывает скрипт с обьектом который является ФАНТОМОМ()беспрепятственным, и если другой объект(или аватар) глубоко проникнет в этот обьект, то будет запущенно collision_start событие . Скрипт должен быть прикреплен к корневому обьекту для того чтобы связать и получать события столкновения для всех дочерних обьектов. </p> | |||
<p><b>A.290. llWater</b></p> | |||
<p>float llWater(vector offset);</p> | |||
<p>Возвращает высоту воды на позиции обьекта со смещением координат offset.</p> | |||
<p><b>A.291. llWhisper</b></p> | |||
<p>llWhisper(integer channel, string text);</p> | |||
<p>Шепнуть текст text по каналу channel. </p> | |||
<p><b>A.292. llWind</b></p> | |||
<p>vector llWind(vector offset);</p> | |||
<p>Возвращает скорость ветра на позиции обьекта со смещением координат offset.</p> | |||
<p><b>A.293. llXorBase64Strings</b></p> | |||
<p>string llXorBase64Strings(string s1, string s2);</p> | |||
<p>Выполняет особое исключительное - ИЛИ с двумя строками 64string , и возвращает одну строку 64string. Строка S2 повторяется если она короче чем S1. </p> | |||
<p><b>llSetObjectPermMask</b></p> | |||
<p>llSetObjectPermMask( integer mask, integer value );</p> | |||
<p>Установит новые значения (разрешения) масок permission mask эта задача будет прикреплена к родительскому обьекту . В параметре mask нужно использовать одну или несколько констант из набора Permission Mask Constants. Так как параметр mask является битовым полем то можно одновременно установить несколько масок.</p> | |||
<p><b>llStringTrim</b></p> | |||
<p>string llStringTrim( string src, integer type );</p> | |||
<p>Returns a string that is src with leading and/or trailing white space (spaces, tabs, and line feeds) trimmed from it.</p> | |||
<ul type="disc"> | |||
<li>string src </li> | |||
<li>integer type - STRING_TRIM* flag(s) </li> | |||
</ul> | |||
<p>Constant Description </p> | |||
<p>STRING_TRIM_HEAD 0x01 Trims spaces off the beginning. </p> | |||
<p>STRING_TRIM_TAIL 0x02 Trims spaces off the end </p> | |||
<p>STRING_TRIM 0x03 Trims spaces off the beginning and end. </p> | |||
<p>This function is available in 1.13.4 onwards... </p> | |||
<p>The following examples will make the same result. </p> | |||
<p>string src = " Dah ";</p> | |||
<p>st = llStringTrim(src, STRING_TRIM_HEAD);</p> | |||
<p>st = llStringTrim(st , STRING_TRIM_TAIL);</p> | |||
<p>string src = " Dah ";</p> | |||
<p>st = llStringTrim(src, STRING_TRIM);</p> | |||
<p>This is because (STRING_TRIM_HEAD | STRING_TRIM_TAIL) == STRING_TRIM.</p> | |||
<p><b>llListStatistics</b></p> | |||
<p>float llListStatistics( integer operation, list src );</p> | |||
<p>Returns a float that is the result of performing statistical aggregate function operation on src.</p> | |||
<p> </p> | |||
<ul type="disc"> | |||
<li>integer operation - a LIST_STAT_* flag </li> | |||
</ul> | |||
<p> </p> | |||
<p>If a list entry type is not a float or an integer it is silently ignored. </p> | |||
<p>Constant Description </p> | |||
<p>LIST_STAT_RANGE 0 Returns the range. </p> | |||
<p>LIST_STAT_MIN 1 Retrieves the smallest number. </p> | |||
<p>LIST_STAT_MAX 2 Retrieves the largest number. </p> | |||
<p>LIST_STAT_MEAN 3 Retrieves the mean (average). </p> | |||
<p>LIST_STAT_MEDIAN 4 Retrieves the median number. </p> | |||
<p>LIST_STAT_STD_DEV 5 Calculates the standard deviation. </p> | |||
<p>LIST_STAT_SUM 6 Calculates the sum. </p> | |||
<p>LIST_STAT_SUM_SQUARES 7 Calculates the sum of the squares. </p> | |||
<p>LIST_STAT_NUM_COUNT 8 Retrieves the number of float and integer elements. </p> | |||
<p>LIST_STAT_GEOMETRIC_MEAN 9 Calculates the geometric mean. </p> | |||
<p><b>llMapDestination</b></p> | |||
<p>llMapDestination( string simname, vector pos, vector look_at );</p> | |||
<p>Открыть мировую карту и отпозиционировать в центре этой карты указанный регион simname.</p> | |||
<p>Работает только в скрипте которых находится в обьекте прикрепленном к аватару, или в touch событии.</p> | |||
<p><b>llRegionSay</b></p> | |||
<p>llRegionSay( integer channel, string msg );</p> | |||
<p>Сказать или послать сообщение msg на весь текущий регион , сообщение будет услышано всеми обьектами в пределах границ этого региона.</p> | |||
<p>Параметр метод указывает на номер канала по которому будет переданно сообщение. Канал может быть любым integer значением кроме 0. Общественный канал 0 не поддерживается.</p> | |||
<p><b>llHTTPRequest</b></p> | |||
<p>key llHTTPRequest(string url, list parameters, string body)</p> | |||
<p> </p> | |||
<p>Посылает HTTP запрос на URL с описанием body и параметрами parameters</p> | |||
<p>url должен всегда быть HTTP или HTTPS URL, не указывать на локацию Linden Lab и Second Life серверов.</p> | |||
<p>параметры List состоят из пар - <integer key, string value></p> | |||
<p>parameter </p> | |||
<p>Value </p> | |||
<p>Default </p> | |||
<p>Description </p> | |||
<p>HTTP_METHOD </p> | |||
<p>0</p> | |||
<p>"GET" </p> | |||
<p>"GET", "POST", "PUT" and "DELETE" </p> | |||
<p>HTTP_MIMETYPE </p> | |||
<p>1</p> | |||
<p>"text/plain;charset=utf-8" </p> | |||
<p>text/* MIME types should specify a charset. To emulate HTML forms use application/x-www-form-urlencoded. This allows you to set the body to a properly escaped (llEscapeURL) sequence of <name,value> pairs in the form var=value&var2=value2 and have them automatically parsed by web frameworks (PHP will allow you to retrieve them from $_POST) (Supported in version 1.10.4) </p> | |||
<p> </p> | |||
<p>text/*MIME специальный тип.Эмулирующий HTML форму используйте application/x-www-form-urlencoded. </p> | |||
<p>HTTP_BODY_MAXLENGTH </p> | |||
<p>2</p> | |||
<p>2048 </p> | |||
<p>(Setting HTTP_BODY_MAXLENGTH is not yet supported) </p> | |||
<p>HTTP_VERIFY_CERT </p> | |||
<p>?</p> | |||
<p>TRUE </p> | |||
<p>If TRUE, the server SSL certificate must be verifiable using one of the standard certificate authorities when making HTTPS requests. If FALSE, any server SSL certificate will be accepted. (Supported in version 1.10.4)</p> | |||
<p> </p> | |||
<p>body ---- специалльное описание используется только с методом HTTP_METHOD и POST или PUT. Спецификатор body ограничен по количеству используемой памяти.</p> | |||
<p>Ключ возвращаемый функцией запроса llHTTPRequest является уникальным ключом дубликат которого будет получен событием http_response() вместе с полученым результатом запроса.</p> | |||
<p>HTTP запрос использует llHTTPRequest только на територии владельца обьекта который содержит скрипт с этим запросом. Максимум за 100 секунд выполнится 20 запросов.</p> | |||
<p>ПРИМЕЧАНИЕ: Это было изменено к 100 запросам за 100 секунд сейчас.</p> | |||
<p>Если какие либо ошибки существуют в параметрах передаваемых llHTTPRequest или просто HTTP запрос не может быть выполнен по пречине превышения нормы запроса владельцем , то по этой причине возвращенный ключ будет нулевой NULL_KEY и сообщение об ошибке будет послано по дебаг каналу</p> | |||
<p> </p> | |||
<p>Следующий заголовок добавляется к HTTP запросу в llHTTPRequest:</p> | |||
<p>Header </p> | |||
<p>Value </p> | |||
<p>Description </p> | |||
<p>Accept </p> | |||
<p>text/* </p> | |||
<p> </p> | |||
<p>Accept-Charset </p> | |||
<p>utf-8;q=1.0, *;q=0.5 </p> | |||
<p> </p> | |||
<p>User-Agent </p> | |||
<p>Second Life LSL/VERSION (<a href="http://secondlife.com/" title="http://secondlife.com/" rel="nofollow">http://secondlife.com/</a>) </p> | |||
<p>simulator version making the request </p> | |||
<p>X-SecondLife-Shard </p> | |||
<p>SHARD </p> | |||
<p>"Production" if the HTTP request is made from SL; otherwise, "Testing" </p> | |||
<p>X-SecondLife-Object-Name </p> | |||
<p>NAME </p> | |||
<p>object name making the HTTP request </p> | |||
<p>X-SecondLife-Object-Key </p> | |||
<p>KEY </p> | |||
<p>object UUID making the HTTP request </p> | |||
<p>X-SecondLife-Region </p> | |||
<p>NAME(X,Y) </p> | |||
<p>region containing the object making the request; X,Y is its grid location </p> | |||
<p>X-SecondLife-Local-Position </p> | |||
<p>(X,Y,Z) </p> | |||
<p>object region coordinates making the request </p> | |||
<p>X-SecondLife-Local-Rotation </p> | |||
<p>(X,Y,Z, W) </p> | |||
<p>object quaternion rotation making the request </p> | |||
<p>X-SecondLife-Local-Velocity </p> | |||
<p>(X,Y,Z) </p> | |||
<p>object velocity making the request </p> | |||
<p>X-SecondLife-Owner-Name </p> | |||
<p>NAME </p> | |||
<p>object owner name making the HTTP request This will be group if the object is deeded to group </p> | |||
<p>X-SecondLife-Owner-Key </p> | |||
<p>KEY </p> | |||
<p>object owner key making the HTTP request This will be group if the object is deeded to group </p> | |||
<p>Note, some languages may export the X-SecondLife-* variables differently, however the HTTP headers send it as X-SecondLife-Shard and simular, with a ASCII hyphen, and no prefix before X, these are also not LSL constants in the variables and conform to HTTP header specifications, not LSL specifications. - Ice</p> | |||
<p> llClearCameraParams llClearCameraParams( ); | |||
</p><p>Сбросить все параметры камеры установленные с помощью функции llSetCameraParams.</p> | |||
<p>Требует разрешение PERMISSION_CONTROL_CAMERA .</p> | |||
<p>Если разрешение PERMISSION_TRACK_CAMERA, не было полученно то по каналу DEBUG_CHANNEL будет отправлено оповещение об ошибке и скрипт продолжит работу. </p> | |||
<p> llGetCameraPos | |||
</p><p>vector llGetCameraPos( );</p> | |||
<p>Возвращает ориентировочное положение камеры если агент дал разрешение на запрос PERMISSION_TRACK_CAMERA<br> Если разрешение PERMISSION_TRACK_CAMERA, не было полученно то по каналу DEBUG_CHANNEL будет отправлено оповещение об ошибке и скрипт продолжит работу. </p> | |||
<p> llGetCameraRot | |||
</p><p>rotation llGetCameraRot( );</p> | |||
<p>Возвращает ориентировочный поворот камеры если агент разрешил запрос PERMISSION_TRACK_CAMERA<br> Если разрешение PERMISSION_TRACK_CAMERA, не было полученно то по каналу DEBUG_CHANNEL будет отправлено оповещение об ошибке и скрипт продолжит работу. </p> | |||
<p> llSetCameraParams | |||
</p><p>llSetCameraParams( list rules );</p> | |||
<p>Устанавливает сразу все параметры камеры в формате [ rule1, data1, rule2, data2 . . . rulen, datan ] </p> | |||
<p>Использование камеры требует разрешение на запрос с константой PERMISSION_CONTROL_CAMERA .</p> | |||
<p> </p> | |||
<p>Если ращрешение PERMISSION_CONTROL_CAMERA, не было полученно то по каналу DEBUG_CHANNEL будет отправленно сообщение об ошибке. </p> | |||
<p>Пример в котором привидены все параметры функции:</p> | |||
<p> </p> | |||
<p>llSetCameraParams([</p> | |||
<p>CAMERA_ACTIVE, 1, // 1 - Камера активна, 0 - не активна</p> | |||
<p>CAMERA_BEHINDNESS_ANGLE, 10.0, // (0 to 180) Устанавливает степень угла, в пределах которого камера не будет вращатся .</p> | |||
<p>CAMERA_BEHINDNESS_LAG, 0.0, // (0 to 3) секунд. Устанавливает сколько секунд камера будет остоватся позади цели. Если она находится за преднлами угла BEHINDNESS</p> | |||
<p>CAMERA_DISTANCE, 3.0, // ( 0.5 to 10) метров . Устанавливает на каком расстоянии камера будет от цели</p> | |||
<p>// CAMERA_FOCUS, <0,0,0>, // положение фокуса камеры в региональных координатах</p> | |||
<p>CAMERA_FOCUS_LAG, 0.1 , // (0 to 3) секунды. На сколько секунд будет отставать камера, при фокусировке на цель.</p> | |||
<p>CAMERA_FOCUS_LOCKED, FALSE, // (TRUE или FALSE) Блокирует фокус камеры , так что он не сможет передвигаться.</p> | |||
<p>CAMERA_FOCUS_THRESHOLD, 1.0, // (0 to 4) метров. Устанавливает радиус сферы вокруг цели камеры, в пределах которой на его центр не воздействует целевое движение.</p> | |||
<p>CAMERA_PITCH, 0.0, // (-45 to 80) Регулирует угловой коэфициент, который камера нацеливает прямо вперед против прямого вниз, поддерживая то же самое расстояние аналогичный 'сфере действия'.</p> | |||
<p>// CAMERA_POSITION, <0,0,0>, // Полжение камеры в региональных координатах</p> | |||
<p>CAMERA_POSITION_LAG, 0.1, // (0 до 3)секунд. Насколько будет задерживатся камера, перед перемещением к основному положению.</p> | |||
<p>CAMERA_POSITION_LOCKED, FALSE, // (TRUE или FALSE) Блокирует положение камеры после чего перемещение камеры приостанавливается и остается в одном положении.</p> | |||
<p>CAMERA_POSITION_THRESHOLD, 1.0, // (0 до 4) метров. Устанавливает радиус сферы вокруг исходного положения камеры, в пределах которого камера не будет фокусироватся на цель.</p> | |||
<p>CAMERA_FOCUS_OFFSET, ZERO_VECTOR // Регулирует позицию фокуса камеры относительно цели (Смещение фокуса камеры) от <-10,-10,-10> до <10,10,10> метров</p> | |||
<p>]);</p> | |||
<p> llGetObjectDetails | |||
</p><p>list llGetObjectDetails( key id, list params );</p> | |||
<p>Возвращает список параметров обьекта по его уникальному ключу id. Константа OBJECT_UNKNOWN_DETAIL будет возвращена в одном или нескольких записях в списке если были запрошены несуществующие параметры. Если id не находится в этом симе то возвращается пустой список.</p> | |||
<p> </p> | |||
<p>OBJECT_NAME - Возвращает имя обьекта , возвращает String</p> | |||
<p>OBJECT_DESC - Возвращает дескриптор обьекта , возвращает String</p> | |||
<p>OBJECT_POS - Возвращает позицию обьекта в региональных координатах , возвращает vector</p> | |||
<p>OBJECT_ROT - Возвращает поворот обьекта , возвращает rotational</p> | |||
<p>OBJECT_VELOCITY - Возвращает скорость обьекта , возвращает vector</p> | |||
<p>OBJECT_OWNER - Возвращает ключ владельца обьекта , если владельцем является группа то будет возвращен NULL_KEY , возвращает key</p> | |||
<p>OBJECT_GROUP - Возвращает ключ группы владеющей этим обьектом , если владельцем является не группа а один аватар то будет возвращен NULL_KEY , возвращает key</p> | |||
<p>OBJECT_CREATOR - Возвращает ключ создателя обьекта , если создателем является не один аватар то будет возвращен NULL_KEY , возвращает key</p> | |||
<p> </p> | |||
<p>Пример:</p> | |||
<p>default</p> | |||
<p>{</p> | |||
<p>collision_start(integer i)</p> | |||
<p>{</p> | |||
<p>list a = llGetObjectDetails(llDetectedKey(0), ([OBJECT_NAME, </p> | |||
<p>OBJECT_DESC, OBJECT_POS, OBJECT_ROT, OBJECT_VELOCITY,</p> | |||
<p>OBJECT_OWNER, OBJECT_GROUP, OBJECT_CREATOR]));</p> | |||
<p>llWhisper(0,"UUID: " + (string)llDetectedKey(0) +</p> | |||
<p>"\nName: \"" + llList2String(a,0)+ "\"" +</p> | |||
<p>"\nDecription: \"" + llList2String(a,1) + "\"" +</p> | |||
<p>"\nPosition: " + llList2String(a,2) +</p> | |||
<p>"\nRotation: " + llList2String(a,3) +</p> | |||
<p>"\nVelocity: " + llList2String(a,4) +</p> | |||
<p>"\nOwner: " + llList2String(a,5) +</p> | |||
<p>"\nGroup: " + llList2String(a,6) +</p> | |||
<p>"\nCreator: " + llList2String(a,7));</p> | |||
<p>}</p> | |||
<p>}</p> | |||
<p> llGetParcelDetails | |||
</p><p>list llGetParcelDetails( vector pos, list params );</p> | |||
<p>Возвращает список деталей земли которая находится на позиции pos по специальным параметрам.</p> | |||
<p>Список параметров:</p> | |||
<p>PARCEL_DETAILS_NAME Имя територии , возвращает string</p> | |||
<p>PARCEL_DETAILS_DESC Дескриптор територии , возвращает string</p> | |||
<p>PARCEL_DETAILS_OWNER Ключ владельца этой територии , возвращает key</p> | |||
<p>PARCEL_DETAILS_GROUP Ключ группы влдельцев територии , возвращает key</p> | |||
<p>PARCEL_DETAILS_AREA Размер територии в кадратных метрах , возвращает integer</p> | |||
<p> </p> | |||
<p>Пример:</p> | |||
<p>list landinforeqd = [PARCEL_DETAILS_NAME, PARCEL_DETAILS_DESC];</p> | |||
<p>vector regionbase;</p> | |||
<p>default</p> | |||
<p>{</p> | |||
<p>state_entry()</p> | |||
<p>{</p> | |||
<p>regionbase = llGetPos(); // llGetRegionCorner();</p> | |||
<p>}</p> | |||
<p>touch_start(integer total_number)</p> | |||
<p>{</p> | |||
<p>list details = llGetParcelDetails(regionbase,landinforeqd);</p> | |||
<p>llSay(0, "Local Parcel Name:" + llList2String(details ,0));</p> | |||
<p>llSay(0, "Local Parcel Desc:" + llList2String(details ,1));</p> | |||
<p>}</p> | |||
<p>}</p> | |||
<p> llGetParcelFlags | |||
</p><p>integer llGetParcelFlags( vector pos );</p> | |||
<p>Возвращает битовое поле с значениями различных флагов для територии.</p> | |||
<p>PARCEL_FLAG_ALLOW_FLY</p> | |||
<p>PARCEL_FLAG_ALLOW_SCRIPTS</p> | |||
<p>PF_FOR_SALE†</p> | |||
<p>PARCEL_FLAG_ALLOW_LANDMARK</p> | |||
<p>PARCEL_FLAG_ALLOW_TERRAFORM</p> | |||
<p>PARCEL_FLAG_ALLOW_DAMAGE</p> | |||
<p>PARCEL_FLAG_ALLOW_CREATE_OBJECTS</p> | |||
<p>PF_FOR_SALE_OBJECTS†</p> | |||
<p>PARCEL_FLAG_USE_ACCESS_GROUP</p> | |||
<p>PARCEL_FLAG_USE_ACCESS_LIST</p> | |||
<p>PARCEL_FLAG_USE_BAN_LIST</p> | |||
<p>PARCEL_FLAG_USE_LAND_PASS_LIST</p> | |||
<p>PF_SHOW_DIRECTORY†</p> | |||
<p>PF_ALLOW_DEED_TO_GROUP†</p> | |||
<p>PF_CONTRIBUTE_WITH_DEED†</p> | |||
<p>PARCEL_FLAG_LOCAL_SOUND_ONLY</p> | |||
<p>PF_SELL_PARCEL_OBJECTS†</p> | |||
<p>PF_ALLOW_PUBLISH†</p> | |||
<p>PF_MATURE_PUBLISH†</p> | |||
<p>PF_URL_WEB_PAGE†</p> | |||
<p>PF_URL_RAW_HTML†</p> | |||
<p>PARCEL_FLAG_RESTRICT_PUSHOBJECT</p> | |||
<p>PF_DENY_ANONYMOUS†</p> | |||
<p>PF_DENY_IDENTIFIED†</p> | |||
<p>PF_DENY_TRANSACTED†</p> | |||
<p>PARCEL_FLAG_ALLOW_GROUP_SCRIPTS</p> | |||
<p>PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS</p> | |||
<p>PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY</p> | |||
<p>PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY</p> | |||
<p>PF_ALLOW_VOICE_CHAT†</p> | |||
<p>PF_USE_ESTATE_VOICE_CHAN†</p> | |||
<p> llGetRegionFlags | |||
</p><p>integer llGetRegionFlags( );</p> | |||
<p>Возвращает битовое поле с значениями различных флагов для региона.</p> | |||
<p>REGION_FLAG_ALLOW_DAMAGE</p> | |||
<p>REGION_FLAG_FIXED_SUN</p> | |||
<p>REGION_FLAG_BLOCK_TERRAFORM</p> | |||
<p>REGION_FLAG_SANDBOX</p> | |||
<p>REGION_FLAG_DISABLE_COLLISIONS</p> | |||
<p>REGION_FLAG_DISABLE_PHYSICS</p> | |||
<p>REGION_FLAG_BLOCK_FLY</p> | |||
<p>REGION_FLAG_ALLOW_DIRECT_TELEPORT</p> | |||
<p>REGION_FLAG_RESTRICT_PUSHOBJECT</p> | |||
<p>REGION_FLAGS_ALLOW_LANDMARK†</p> | |||
<p>REGION_FLAGS_ALLOW_SET_HOME†</p> | |||
<p>REGION_FLAGS_RESET_HOME_ON_TELEPORT†</p> | |||
<p>REGION_FLAGS_TAX_FREE†</p> | |||
<p>REGION_FLAGS_BLOCK_LAND_RESELL†</p> | |||
<p>REGION_FLAGS_NULL_LAYER†</p> | |||
<p>REGION_FLAGS_SKIP_AGENT_ACTION†</p> | |||
<p>REGION_FLAGS_SKIP_UPDATE_INTEREST_LIST†</p> | |||
<p>REGION_FLAGS_SKIP_SCRIPTS†</p> | |||
<p>REGION_FLAGS_EXTERNALLY_VISIBLE†</p> | |||
<p>REGION_FLAGS_MAINLAND_VISIBLE†</p> | |||
<p>REGION_FLAGS_PUBLIC_ALLOWED†</p> | |||
<p>REGION_FLAGS_BLOCK_DWELL†</p> | |||
<p>REGION_FLAGS_ESTATE_SKIP_SCRIPTS†</p> | |||
<p>REGION_FLAGS_DENY_ANONYMOUS†</p> | |||
<p>REGION_FLAGS_DENY_IDENTIFIED†</p> | |||
<p>REGION_FLAGS_DENY_TRANSACTED†</p> | |||
<p>REGION_FLAGS_ALLOW_PARCEL_CHANGES† </p> | |||
<p>REGION_FLAGS_ABUSE_EMAIL_TO_ESTATE_OWNER†</p> | |||
<p> llGetParcelMaxPrims | |||
</p><p>integer llGetParcelMaxPrims( vector pos, integer sim_wide );</p> | |||
<p>Возвращает максимальное количество примитивов на участке земли по координатам pos. Параметр sim_wide является булевым и если он установлен в FALSE то будут полученны данные о всей земле либо только о кусочке земли тоесть одном симе.</p> | |||
<p> llGetParcelPrimOwners | |||
</p><p>list llGetParcelPrimOwners( vector pos );</p> | |||
<p>Возвращает список всем резидентам которые владеют обьектами на этой територии по координатам места на этой територии pos.</p> | |||
<p> </p> | |||
<p>Формат списка: [ key agentKey1, integer agentCount1, key agentKey2, integer agentCount2, ... ], сортирует по ключу агента , максимально может быть до 100 записей.</p> | |||
<p> llGodLikeRezObject | |||
</p><p>llGodLikeRezObject( key inventory, vector pos );</p> | |||
<p>Создать обьект inventory из инвентаря в позиции pos.</p> | |||
<p> llAddToLandBanList | |||
</p><p>llAddToLandBanList( key avatar, float hours );</p> | |||
<p>Добавить аватара по его ключу avatar в бан-списка на время в часах hours.</p> | |||
<p> llRemoveFromLandBanList | |||
</p><p>llRemoveFromLandBanList( key avatar );</p> | |||
<p>Удалить аватара по его ключу avatar из бан-списка.</p> | |||
<p> llRemoveFromLandPassList | |||
</p><p>llRemoveFromLandPassList( key avatar );</p> | |||
<p>Удалить аватара по его ключу avatar из пропускного-списка.</p> | |||
<p> llResetLandBanList | |||
</p><p>llResetLandBanList( key avatar );</p> | |||
<p>Удалить всех резидентов из бан-списка</p> | |||
<p> llResetLandPassList | |||
</p><p>llResetLandPassList( key avatar );</p> | |||
<p>Удалить всех резидентов из пропускного-списка.</p> | |||
<p> llGetObjectPrimCount | |||
</p><p>integer llGetObjectPrimCount( key object_id );</p> | |||
<p>Возвращает количество примитивов в обьединеном(залинкованом) обьекте по его ID и если он находится в текущем симе.</p> | |||
<p> llGetSimulatorHostname | |||
</p><p>string llGetSimulatorHostname( );</p> | |||
<p>Получает имя хоста текущего симулятора.</p> | |||
<p> </p> | |||
<p>// The beginnings of a region-info script.</p> | |||
<p>string region;</p> | |||
<p>string sim;</p> | |||
<p> </p> | |||
<p>default</p> | |||
<p>{</p> | |||
<p>state_entry()</p> | |||
<p>{</p> | |||
<p>llSetTimerEvent(1.0);</p> | |||
<p>}</p> | |||
<p>timer()</p> | |||
<p>{</p> | |||
<p>string here = llGetRegionName();</p> | |||
<p>if(region != here)</p> | |||
<p>{</p> | |||
<p>sim = llGetSimulatorHostname();</p> | |||
<p>region = here;</p> | |||
<p>}</p> | |||
<p>llSetText(</p> | |||
<p>" REGION NAME : " + region + </p> | |||
<p>"\n SIM HOSTNAME : " + sim + </p> | |||
<p>"\nTIME DIALATION : " + (string)llGetRegionTimeDilation() +</p> | |||
<p>"\n REGION FPS : " + (string)llGetRegionFPS(),</p> | |||
<p><0,1,0>, 1.0};</p> | |||
<p>}</p> | |||
<p>}</p> | |||
<p align="center"><b>Приложение B. СОБЫТИЯ</b></p> | |||
<p>Каждое состояние должно иметь по крайней мере один обработчик. Вы можете отрегулировать событие путем выбора одного из зарезервированных Событий перечисленных ниже.</p> | |||
<p><b>B.1. at_rot_target</b></p> | |||
<p>at_rot_target(integer number, rotation target_rotation, rotation our_rotation);</p> | |||
<p>Это событие вызывается когда обьект определенный как цель(Target) достигает заданного в функции llRotTarget угла . Угловой диапазон устанавливается путем вызова функции llRotTarget.</p> | |||
<p><b>B.2. at_target</b></p> | |||
<p>at_target(integer number, vector target_position, vector our_position);</p> | |||
<p>Это событие запускается когда обьект находится в пределах заданного радиуса относительно заданной позиции с помощью функции llTarget . Диапазон и позиция устанавливаются с помощью функции llTarget.</p> | |||
<p><b>B.3. attach</b></p> | |||
<p>attach(key attached);</p> | |||
<p>Это событие запускается когда обьект с этим скриптом прикрепляется или отсоединяется от аватара . Если обьект прикрепляется то событию передается ключ аватара , если отсоединяется то передается NULL_KEY. </p> | |||
<p><b>B.4. changed</b></p> | |||
<p>changed(integer changed);</p> | |||
<p>Это событие запускается когда производится какое либо действие над обьектом. Параметр changed принимает значение одной константы из набора change constants.</p> | |||
<p><b>B.5. collision</b></p> | |||
<p>collision(integer total_number);</p> | |||
<p>Это событие запускается тогда когда происходит столкновение этого обьекта с другими обьектами или аватарами. Номера(маркера) обнаруженных обьектов столкновения передаются событию. Информация об этих обьектах может быть получена с помощью библиотечной функции llDetected*. </p> | |||
<p><b>B.6. collision_end</b></p> | |||
<p>collision_end(integer total_number);</p> | |||
<p>Это событие запускается тогда когда столкновение этого обьекта с другими обьектами или аватарами прекращено. Номера(маркера) обнаруженных обьектов столкновения передаются событию. Информация об этих обьектах может быть получена с помощью библиотечной функции llDetected*. </p> | |||
<p><b>B.7. collision_start</b></p> | |||
<p>collision_start(integer total_number);</p> | |||
<p>Это событие запускается тогда когда столкновение этого обьекта с другими обьектами или аватарами только что произошло. Номера(маркера) обнаруженных обьектов столкновения передаются событию. Информация об этих обьектах может быть получена с помощью библиотечной функции llDetected*. </p> | |||
<p><b>B.8. control</b></p> | |||
<p>control(key name, integer levels, integer edges);</p> | |||
<p>Как только скрипт получил возможность захватывать команды ввода от аватара это событие будет запускатся каждый раз при очерредном вводе команды (с клавиатуры). Параметры Level (уровни) и edges (края) принимают значения констант control constants.</p> | |||
<p><b>B.9. dataserver</b></p> | |||
<p>dataserver(key requested, string data);</p> | |||
<p>Это событие запускается когда скипт получает запрошенные данные . Запросы данных можно создавать с помощью функций llRequestAgentData , llRequestSimulatorData, llRequestInventoryData, и llGetNotecardLine.</p> | |||
<p><b>B.10. email</b></p> | |||
<p>email(string time, string address, string subject, string body, integer remaining);</p> | |||
<p>Это событие запускается когда скрипт получает любой емаил . Параметр remaining говорит сколько емайлов осталось еще в очереди.</p> | |||
<p><b>B.11. land_collision</b></p> | |||
<p>land_collision(vector position);</p> | |||
<p>Это событие запускается когда обьект сталкивается с землей. </p> | |||
<p><b>B.12. land_collision_end</b></p> | |||
<p>land_collision_end(vector position);</p> | |||
<p>Это событие запускается когда обьект прекращает сталкиватся с землей</p> | |||
<p><b>B.13. land_collision_start</b></p> | |||
<p>land_collision_start(vector position);</p> | |||
<p>Это событие запускается когда обьект начал сталкиватся с землей</p> | |||
<p><b>B.14. link_message</b></p> | |||
<p>link_message(integer sender_number, integer number, string message, key id);</p> | |||
<p>Это событие запускается когда обьект получает сообщение по линии для обьединеных обьектов(залинкованных) через функцию посылки сообщения llMessageLinked .</p> | |||
<p><b>B.15. listen</b></p> | |||
<p>listen(integer channel, string name, key id, string message);</p> | |||
<p>Это событие запускается каждый раз когда приходит определенное сообщение по заданному каналу, соответствуя ограничениям, переданным в функцию llListen. Имя Name и идентификатор id также как и сообщения message говорящего, передаются во входных параметрах события. Канал 0 это общественный чатовый канал в котором все аватары видят чат текс. Каналы от 1 до 2,147,483,648 - частные(приватные) каналы, которые не используются аватарами, но при этом скрипты могут прослушивать и отправлять сообщения по этим каналы. </p> | |||
<p><b>B.16. money</b></p> | |||
<p>money(key giver, integer amount);</p> | |||
<p>Это событие запускается каждый раз когда пользователь giver передаё сумму линден долларов amount обьекту.</p> | |||
<p><b>B.17. moving_end</b></p> | |||
<p>moving_end(void);</p> | |||
<p>Это событие запускается каждый раз когда обект с этим скриптом прекращает движение.</p> | |||
<p><b>B.18. moving_start</b></p> | |||
<p>moving_start(void);</p> | |||
<p>Это событие запускается каждый раз когда обект с этим скриптом только что начал движение.</p> | |||
<p><b>B.19. no_sensor</b></p> | |||
<p>no_sensor(void);</p> | |||
<p>Это событие запускается каждый раз когда датчики активны (посредствам библиотечной функции llSensor) но ничего не воспринимают.</p> | |||
<p><b>B.20. not_at_rot_target</b></p> | |||
<p>not_at_rot_target(void);</p> | |||
<p>Это событие запускается каждый раз когда цель установленная с помощью функции llRotTarget находится вне указанного угла. </p> | |||
<p><b>B.21. not_at_target</b></p> | |||
<p>not_at_target(void);</p> | |||
<p>Это событие запускается каждый раз когда цель установленная с помощью функции llTarget находится вне указанного диапазона.</p> | |||
<p><b>B.22. object_rez</b></p> | |||
<p>object_rez(key id);</p> | |||
<p>Вызывается когда обьект создает другой обьект из своего инвентаря с помощью функции llRezObject . Параметр id это уникальный ключ этого обьекта.</p> | |||
<p><b>B.23. on_rez</b></p> | |||
<p>on_rez(integer start_param);</p> | |||
<p>Вызывается всякий раз когда обьект создается из инвентаря обьекта возле другого обьекта. Входной параметр start_param это параметр переданный вызванной функции llRezObject или llRezAtRoot. Скрипт обработчика этого события может быть расположен в только что созданном обьекте.</p> | |||
<p><b>B.24. run_time_permissions</b></p> | |||
<p>run_time_permissions(integer permissions);</p> | |||
<p>Если скрипт нуждается в разрешении аватара получить какие либо права на какие либо действия прежде чем выплнится определенная функция, такая как снятие средств с текущего щета аккаунта владельца или включение анимации аватара или захват и контроль управления. С помощью функции llRequestPermissions и разнообразных констант permissions integer constants посылаются запросы на получение прав доступа. Обработчик события получает константу текущего набора флагов прав доступа, если возвращается 0 то права доступа не полученны.</p> | |||
<p><b>B.25. sensor</b></p> | |||
<p>sensor(integer total_number);</p> | |||
<p>Это событие запускается всякий раз когда обьект сочетается с ограничениями заданными в функции llSensor -функцией обнаружения. Число обнаруженых предметов передается в параметре total_number . Максимум 16 обьектов может быть переданно в это событие. Информация об этих обьектах может быть получена с помощью библиотечной функции llDetected*</p> | |||
<p><b>B.26. state_entry</b></p> | |||
<p>state_entry(void);</p> | |||
<p>Событие запускается всякий раз когда запускается новое состояние, в том числе и когда стартует программа, и всегда когда запускается первый обработчик событий.</p> | |||
<p><b>B.27. state_exit</b></p> | |||
<p>state_exit(void);</p> | |||
<p>Событие state_exit вызывается когда запускается команда перехода в другое состояние . Оно выполняется перед переходом в новое состояние state_entry события.</p> | |||
<p><b>B.28. timer</b></p> | |||
<p>timer(void);</p> | |||
<p>Это событие постоянно вызывается через заданный интервал времени установленный с помощью библиотечной функции llSetTimerEvent </p> | |||
<p><b>B.29. touch</b></p> | |||
<p>touch(integer total_number);</p> | |||
<p>Это событие запускается когда пользователь продолжительно дотрагиваетя до обьекта. Число обьектов к которым прикоснулся пользователь передается в параметре total_number. Информация об этих пользователях может быть собрана с помощью функции llDetected* .</p> | |||
<p><b>B.30. touch_end</b></p> | |||
<p>touch_end(integer total_number);</p> | |||
<p>Это событие запускается когда пользователь перестал дотрагиваетя до обьекта. Маркер(номер) Аватара который прикоснулся к обьекту передается в параметре total_number. Информация об этих пользователях может быть собрана с помощью библиот функции llDetected* .</p> | |||
<p><b>B.31. touch_start</b></p> | |||
<p>touch_start(integer total_number);</p> | |||
<p>Это событие запускается когда пользователь начал дотрагиваетя до обьекта. Маркер(номер) Аватара который прикоснулся к обьекту передается в параметре total_number. Информация об этих пользователях может быть собрана с помощью библиот функции llDetected* .</p> | |||
<p><b>B.32. remote_data</b></p> | |||
<p>remote_data(integer type, key channel, key message_id, string sender, integer ival, string sval);</p> | |||
<p>This event is raised when a user creates an XML-RPC channel via llOpenRemoteDataChannel, a remote XML-RPC server replies to a llSendRemoteData, or a remote XML-RPC client sends in an XML-RPC request. In the open case, type = REMOTE_DATA_CHANNEL, channel = NULL_KEY, message_id = NULL_KEY, sender is an empty string, ival = 0, and sval is an empty string. In the reply case, type = REMOTE_DATA_REPLY, channel is set to the channel that the request was sent on, message_id is set to the id of the message, sender is an empty string, ival = 0, and sval is a string. In the remote request case, type = REMOTE_DATA_REQUEST, channel is set to the channel that sent the message, message_id is set to the id of the message, sender is set by the sender, ival is an integer, and sval is a string. parameter.</p> | |||
<p>Это событие запускается когда пользователь создает XML-RPC канал с помощью функции llOpenRemoteDataChannel </p> | |||
<p><b>Http_response</b></p> | |||
<p>http_response(key request_id, integer status, list metadata, string body)</p> | |||
<p> </p> | |||
<p>Это событие запускается когда ожидается HTTP ответ на запрос llHTTPRequest или если ожидаемый ответ прерван по ошибке, или если вышло время ответа .</p> | |||
<p><b>request_id</b> - получает тотже ключ что был получен в при инициализации запроса с помощью функции llHTTPRequest . Он может быть использован для сверки определенного запроса с определенным ответом на этот запрос .Особенно это полезно когда запросы шлются постоянно и мы не знаем на какой запрос пришел текущщий ответ.</p> | |||
<p><b>status </b>- получает информацию о статусе HTTP либо возвращает HTTP ответ или детали о возникшей ошибке если запрос потерпел неудачу.</p> | |||
<p><b>metadata</b> - возвращается описание ответа в форме пары <key, value>. В настоящее время может быть возвращен только один ключ HTTP_BODY_TRUNCATED который обозначает длину полученного блока данных если пришлось его обрезать.</p> | |||
<p> </p> | |||
<p><b>body</b> - is set to the body of the HTTP response as long as the response includes a "Content-Type" header specifying a text mime type. If a mime type is not specified or the type is not a text type, body is set to "Unsupported or unknown Content-Type." If the "Content-Type" header specifies a character set, body will be set to the body of the response transcoded to UTF-8, or to "Unsupported or unknown character set." if the character set is unsupported. The body is currently limited to 2049 bytes. </p> | |||
<p> </p> | |||
<p> </p> | |||
<p align="center"><b>Приложение C. КОНСТАНТЫ</b></p> | |||
<p>Чтобы упростить порограмирование на LSL существуют специальные константы перечисленные ниже.</p> | |||
<p><b>C.1. Boolean Constants</b></p> | |||
<p>Булевые константы представляются в двух значениях TRUE и FALSE. В языке LSL булевые константы заменяют значения 1 и 0 для удобства. Так как специальный булевый тип данных отсутствует то эти константы созданы чисто для сохранения класического стиля програмирования и соответственно могут быт заменены 1 и 0.</p> | |||
<ul type="disc"> | |||
<li><b>TRUE</b></li> | |||
<li><b>FALSE</b></li> | |||
</ul> | |||
<p><b>C.2. Status Constants</b></p> | |||
<p>Статус константы используются при вызове функции llSetStatus и llGetStatus . Эти константы являются битовыми полями поэтому можно устанавливать и получать сразу по несколько констант</p> | |||
<p>Константы статуса:</p> | |||
<p><b>STATUS_PHYSICS</b></p> | |||
<p>Контролирует будет ли передвижение обьекта по физическим законам или нет. По умалчанию он установлен в меню обьекта в чекбоксе 'Physical' в состояние FALSE.</p> | |||
<p><b>STATUS_PHANTOM</b></p> | |||
<p>Контролирует будет ли обьект являтся фантомом или нет. Установив значение TRUE обьект не будет препятствовать прохождению других обьектов и агентов. Хорошо использовать включать этот флаг если обьект с этим свойством является перемешаемым или вращающимся но не физически. И это также полезно для моделирования обьемного освещения. Значение по умолчанию равно FALSE.</p> | |||
<p><b>STATUS_ROTATE_X, STATUS_ROTATE_Y, STATUS_ROTATE_Z</b></p> | |||
<p>Контролирует может ли обьект физически вращатся вокруг определенной оси или нет. Этот флаг не имеет смысла если обьект не является физическим. Установите значение FALSE для остановки вращения вокруг определенной оси. По умолчанию значение флага равно TRUE для физических обьектов.</p> | |||
<p>Полезный пример отображения эффекта 'Сидеть и крутится' устройства. Они вращаются по оси Z и не вращаются по осям X или Y .</p> | |||
<p><b>STATUS_BLOCK_GRAB</b></p> | |||
<p>Контролирует, можно ли захватить текущий обьект. Действие захвата установленно по умолчанию в режиме третего лица, и доступно поскольку установлен инсрумент 'рука' в строительном режиме. Это полезно использовать для физических объектов, если Вы не хотите, чтобы другие люди их могли случайно нарушить. По умолчанию FALSE</p> | |||
<p><b>STATUS_SANDBOX</b></p> | |||
<p>Контролирует, может ли объект пересечь границы области и переместить обьект больше чем на 20 метров от пункта где его создали. По умолчанию FALSE.</p> | |||
<p><b>STATUS_DIE_AT_EDGE</b></p> | |||
<p>Контролирует, возвращен ли объект в инвентарь владельца, если он оказался за краем територии владельца. Полезно установить этот статус в TRUE для таких обьектов как - пули или ракеты. По умолчанию флаг установлен в FALSE</p> | |||
<p><b>C.3. Object Type Constants</b></p> | |||
<p>Эти константы комбинируются с помощью бинарной операции '|' и предназначены для функции llSensor и других родственных вызовов.</p> | |||
<p>Константы описывающие тип обьекта:</p> | |||
<p><b>AGENT</b></p> | |||
<p>Мировые обьекты агента</p> | |||
<p><b>ACTIVE</b></p> | |||
<p>Мировые обьекты с запущенным скриптом и физическим перемещением.</p> | |||
<p><b>PASSIVE</b></p> | |||
<p>Статические мировые обьекты.</p> | |||
<p><b>SCRIPTED</b></p> | |||
<p>Скриптовые мировые обьекты.</p> | |||
<p><b>C.4. Permission Constants</b></p> | |||
<p>Permission константы (константы разрешения) используютс для описания запроса на получение прав с помощью функции llRequestPermissions, Определяются с помощью функций llGetPermissions и передаются событию run_time_permissions . Для большей рабочей функциональности основных библиотечных функции -- константы permission должны быть разрешены. Константы permission могут быть обьеденены так как константы являютя битовыми полями.</p> | |||
<p>Константы получения прав доступа:</p> | |||
<p><b>PERMISSION_DEBIT</b></p> | |||
<p>Если было полученно это разрешение то обьект может успешно вызвать функцию llGiveMoney для дебитовых операций владельца этого акаунта.</p> | |||
<p><b>PERMISSION_TAKE_CONTROLS</b></p> | |||
<p>Если было полученно это разрешение то обьект может успешно вызвать функцию llTakeControls.</p> | |||
<p><b>PERMISSION_REMAP_CONTROLS</b></p> | |||
<p>(not yet implemented)</p> | |||
<p><b>PERMISSION_TRIGGER_ANIMATION</b></p> | |||
<p>Если было полученно это разрешение то обьект может успешно вызвать функцию llStartAnimation для аватара являющегося владельцем этого обьекта.</p> | |||
<p><b>PERMISSION_ATTACH</b></p> | |||
<p>Если было полученно это разрешение то обьект может успешно вызвать функцию llAttachToAvatar чтобы прикрепить обект к аватару.</p> | |||
<p><b>PERMISSION_RELEASE_OWNERSHIP</b></p> | |||
<p>(not yet implemented)</p> | |||
<p><b>PERMISSION_CHANGE_LINKS</b></p> | |||
<p>Если было полученно это разрешение то обьект может успешно вызвать функции llCreateLink, llBreakLink, и llBreakAllLinks для изменения связей(обьединений) с другими обьектами.</p> | |||
<p><b>PERMISSION_CHANGE_JOINTS</b></p> | |||
<p>(not yet implemented)</p> | |||
<p><b>PERMISSION_CHANGE_PERMISSIONS</b></p> | |||
<p>(not yet implemented)</p> | |||
<p><b>PERMISSION_CONTROL_CAMERA</b></p> | |||
<p>Если было полученно это разрешение то можно будет пользоватся функцией llSetCameraParams которая меняет положение и др. параметры камеры</p> | |||
<p><b>PERMISSION_TRACK_CAMERA </b></p> | |||
<p>Если было получено это разрешение то можно будет работать с координатами и поворотом камеры.</p> | |||
<p><b>C.5. Inventory Constants</b></p> | |||
<p>Эти константы могут быть выбраны во время обращения к специальным функциям инвентаря llGetInventoryNumber и llGetInventoryName. Они возвращаются с помощью функции llGetInventoryType.</p> | |||
<p>Константы инвентаря.</p> | |||
<p><b>INVENTORY_TEXTURE, INVENTORY_SOUND, INVENTORY_OBJECT, INVENTORY_SCRIPT, INVENTORY_LANDMARK, INVENTORY_CLOTHING, INVENTORY_NOTECARD, INVENTORY_BODYPART, INVENTORY_ANIMATION, INVENTORY_GESTURE, INVENTORY_ALL, INVENTORY_NONE</b></p> | |||
<p>Каждая константа ссылается на названный тип обьекта из инвентаря.</p> | |||
<p><b>C.6. Pay Price Constants</b></p> | |||
<p>Эти константы могут быть выбраны для функции llSetPayPrice</p> | |||
<p>Константы платежей по прайсу:</p> | |||
<p><b>PAY_HIDE</b></p> | |||
<p>Не показывать кномки для быстрой оплаты</p> | |||
<p><b>PAY_DEFAULT</b></p> | |||
<p>Используется по умолчанию для показа кнопок быстрого оплаты</p> | |||
<p><b>C.7. Attachment Constants</b></p> | |||
<p>Эти константы используются для определения точки на аватаре куда будет прикреплен обьект с помощью функции llAttachToAvatar.</p> | |||
<p>Константы прикрепления обьекта к аватару:</p> | |||
<p><b>ATTACH_CHEST</b></p> | |||
<p>Прикрепить к груди</p> | |||
<p><b>ATTACH_HEAD</b></p> | |||
<p>Прикрепить к голове</p> | |||
<p><b>ATTACH_LSHOULDER</b></p> | |||
<p>Прикрепить к левому плечу</p> | |||
<p><b>ATTACH_RSHOULDER</b></p> | |||
<p>Прикрепить к правому плечу</p> | |||
<p><b>ATTACH_LHAND</b></p> | |||
<p>Прикрепить к левой руке</p> | |||
<p><b>ATTACH_RHAND</b></p> | |||
<p>Прикрепить к правой руке</p> | |||
<p><b>ATTACH_LFOOT</b></p> | |||
<p>Прикрепить к левой ступне</p> | |||
<p><b>ATTACH_RFOOT</b></p> | |||
<p>Прикрепить к правой ступне</p> | |||
<p><b>ATTACH_BACK</b></p> | |||
<p>Прикрепить к спине</p> | |||
<p><b>ATTACH_PELVIS</b></p> | |||
<p>Прикрепить к тазу</p> | |||
<p><b>ATTACH_MOUTH</b></p> | |||
<p>Прикрепить ко рту</p> | |||
<p><b>ATTACH_CHIN</b></p> | |||
<p>Прикрепит к подбородку</p> | |||
<p><b>ATTACH_LEAR</b></p> | |||
<p>Прикрепить к левому уху</p> | |||
<p><b>ATTACH_REAR</b></p> | |||
<p>Прикрепить к правому уху</p> | |||
<p><b>ATTACH_LEYE</b></p> | |||
<p>Прикрепить к левому глазу</p> | |||
<p><b>ATTACH_REYE</b></p> | |||
<p>Прикрепить к правому уху</p> | |||
<p><b>ATTACH_NOSE</b></p> | |||
<p>Прикрепить к носу</p> | |||
<p><b>ATTACH_RUARM</b></p> | |||
<p>Прикрепить к левому предплечью</p> | |||
<p><b>ATTACH_RLARM</b></p> | |||
<p>Прикрепить к правому предплечью</p> | |||
<p><b>ATTACH_LUARM</b></p> | |||
<p>Прикрепить к левой руке</p> | |||
<p><b>ATTACH_LLARM</b></p> | |||
<p>Прикрепить к правой руке</p> | |||
<p><b>ATTACH_RHIP</b></p> | |||
<p>Прикрепить к правому бедру</p> | |||
<p><b>ATTACH_RULEG</b></p> | |||
<p>Прикрепить к левой ноге</p> | |||
<p><b>ATTACH_RLLEG</b></p> | |||
<p>Прикрепить к правой ноге</p> | |||
<p><b>ATTACH_LHIP</b></p> | |||
<p>Прикрепить к левому бедру</p> | |||
<p><b>ATTACH_LULEG</b></p> | |||
<p>Прикрепить к лодыжке</p> | |||
<p><b>ATTACH_LLLEG</b></p> | |||
<p>Прикрепить к левой лодыжке</p> | |||
<p><b>ATTACH_BELLY</b></p> | |||
<p>Прикрепить к животу</p> | |||
<p><b>ATTACH_RPEC</b></p> | |||
<p>Прикрепить к правой груди</p> | |||
<p><b>ATTACH_LPEC</b></p> | |||
<p>Прикрепить к левой груди</p> | |||
<p><b>C.8. Land Constants</b></p> | |||
<p>Эти константы используются для функции llModifyLand.</p> | |||
<p>Константы для модификации поверхности земли:</p> | |||
<p><b>LAND_LEVEL</b></p> | |||
<p>Действие выравнивоюще землю по одной высоте (для создания плоских ровных площадок).</p> | |||
<p><b>LAND_RAISE</b></p> | |||
<p>Действие увеличивающее высоту земли</p> | |||
<p><b>LAND_LOWER</b></p> | |||
<p>Действие уменьшающее высоту земли</p> | |||
<p><b>LAND_SMOOTH</b></p> | |||
<p>Действие сглаживающее резкие перепады высоты земли</p> | |||
<p><b>LAND_NOISE</b></p> | |||
<p>Действие создающее перепады высоты(шум) в случайном порядке на поверности земли.</p> | |||
<p><b>LAND_REVERT</b></p> | |||
<p>Действие возвращающее земли в исходную начальную форму (возвращается к последнему изменению формы земли).</p> | |||
<p><b>LAND_SMALL_BRUSH</b></p> | |||
<p>Установить маленький размер кисти-экскаватора.</p> | |||
<p><b>LAND_MEDIUM_BRUSH</b></p> | |||
<p>Установить средний размер кисти-экскаватора.</p> | |||
<p><b>LAND_LARGE_BRUSH</b></p> | |||
<p>Установить большой размер кисти-экскаватора.</p> | |||
<p><b>C.9. Link Constants</b></p> | |||
<p>Эти константы используются при вызове функций llSetLinkColor и llMessageLinked.</p> | |||
<p>Константы для сгрупированных(залинкованных) обьектов:</p> | |||
<p><b>LINK_SET</b></p> | |||
<p>Нацелится на все обьекты находящемся в соединении (групировке).</p> | |||
<p><b>LINK_ROOT</b></p> | |||
<p>Нацелится на все корневые обьекты в соединении (групировке).</p> | |||
<p><b>LINK_ALL_OTHERS</b></p> | |||
<p>Нацелится на все другие обьекты кроме текущего в этом соединении(групировке).</p> | |||
<p><b>LINK_ALL_CHILDREN</b></p> | |||
<p>Нацелится на все обьекты в соединении (групировке) кроме корневых обьектов со скриптом.</p> | |||
<p><b>LINK_THIS</b></p> | |||
<p>Нацелится исключительно на текущий обьект.</p> | |||
<p><b>C.10. Control Constants</b></p> | |||
<p>Эти константы используются при вызове функции llTakeControls а также возвращаются в событии control .</p> | |||
<p>Константы управления клавишами движения аватара:</p> | |||
<p><b>CONTROL_FWD</b></p> | |||
<p>Тест на движение аватара вперед в контроле управления.</p> | |||
<p><b>CONTROL_BACK</b></p> | |||
<p>Тест на движение аватара назад в контроле управления.</p> | |||
<p><b>CONTROL_LEFT</b></p> | |||
<p>Тест на движение аватара влево в контроле управления.</p> | |||
<p><b>CONTROL_RIGHT</b></p> | |||
<p>Тест на движение аватара вправо в контроле управления.</p> | |||
<p><b>CONTROL_ROT_LEFT</b></p> | |||
<p>Тест на вращение аватара влево в контроле управления.</p> | |||
<p><b>CONTROL_ROT_RIGHT</b></p> | |||
<p>Тест на вращение аватара вправо в контроле управления.</p> | |||
<p><b>CONTROL_UP</b></p> | |||
<p>Тест на движение аватара вверх в контроле управления.</p> | |||
<p><b>CONTROL_DOWN</b></p> | |||
<p>Тест на движение аватара вниз в контроле управления.</p> | |||
<p><b>CONTROL_LBUTTON</b></p> | |||
<p>Тест на нажатие левой кнопки в контроле управления.</p> | |||
<p><b>CONTROL_ML_BUTTON</b></p> | |||
<p>Тест на нажатие левой кнопки когда включен вид "Mouse viev" в контроле управления.</p> | |||
<p><b>C.11. Change Constants</b></p> | |||
<p>Эти константы получает changed событие.</p> | |||
<p>Константы каких либо изменений происходящих с обьектом:</p> | |||
<p><b>CHANGED_INVENTORY</b></p> | |||
<p>Обьект из инвентаря был изменен(вообще если произошли какие-либо изменения в инвентаре)</p> | |||
<p><b>CHANGED_ALLOWED_DROP</b></p> | |||
<p>Обьект инвентаря имеет изменения потому как любой пункт был добавлен через интерфейс llAllowInventoryDrop</p> | |||
<p><b>CHANGED_COLOR</b></p> | |||
<p>Цвет обьекта изменен</p> | |||
<p><b>CHANGED_SHAPE</b></p> | |||
<p>Обьект поменял свою форму (например из цилиндра в шар)</p> | |||
<p><b>CHANGED_SCALE</b></p> | |||
<p>Был изменен масштаб обьекта</p> | |||
<p><b>CHANGED_TEXTURE</b></p> | |||
<p>Смещение текстуры , маштабирование вращение, или просто выбор текстуры.</p> | |||
<p><b>CHANGED_LINK</b></p> | |||
<p>Обьект имеет связь или эти связи были разорваны.</p> | |||
<p><b>CHANGED_REGION</b></p> | |||
<p>Обьек сменил регион</p> | |||
<p><b>CHANGED_TELEPORT</b></p> | |||
<p>Обьект был телепортирован</p> | |||
<p><b>C.12. Type Constants</b></p> | |||
<p>Эти константы используются для определения типа переменной являющейся элементом списка. Значение констант возвращаются при вызове функции llGetListEntryType и может быть выбранна для сравнения с константами.</p> | |||
<p>Константы представления типов данных:</p> | |||
<p><b>TYPE_INTEGER</b></p> | |||
<p>Целое число.</p> | |||
<p><b>TYPE_FLOAT</b></p> | |||
<p>Число с плавающей точкой (вещественное).</p> | |||
<p><b>TYPE_STRING</b></p> | |||
<p>Строковый тип данных</p> | |||
<p><b>TYPE_KEY</b></p> | |||
<p>Тип данных использующийся для идентификаторов или ключей</p> | |||
<p><b>TYPE_VECTOR</b></p> | |||
<p>Вектор</p> | |||
<p><b>TYPE_ROTATION</b></p> | |||
<p>Поворот</p> | |||
<p><b>TYPE_INVALID</b></p> | |||
<p>Недействительный тип ошибочный</p> | |||
<p><b>C.13. Agent Info Constants</b></p> | |||
<p>Эти константы представляют собой битовое поле и возвращаются функцией llGetAgentInfo и позволяют узнать информацию об агенте проверяя пределенные битовые поля.</p> | |||
<p>Константы информирующие о состоянии агента:</p> | |||
<p><b>AGENT_FLYING</b></p> | |||
<p>Агент находится в состоянии полета.</p> | |||
<p><b>AGENT_ATTACHMENTS</b></p> | |||
<p>К телу агента прикреплены какието обьекты.</p> | |||
<p><b>AGENT_SCRIPTED</b></p> | |||
<p>К телу агента прикреплены какието обьекты содержащие скрипт.</p> | |||
<p><b>AGENT_SITTING</b></p> | |||
<p>Агент сидит на земле.</p> | |||
<p><b>AGENT_ON_OBJECT</b></p> | |||
<p>Агент сидит на обьекте.</p> | |||
<p><b>AGENT_WALKING</b></p> | |||
<p>Агент находится в режиме ходьбы.</p> | |||
<p><b>AGENT_IN_AIR</b></p> | |||
<p>Агент находится в воздухе.</p> | |||
<p><b>AGENT_MOUSELOOK</b></p> | |||
<p>Агент включил вид мышью ( mouselook ).</p> | |||
<p><b>AGENT_AWAY</b></p> | |||
<p>Агент находится в режиме отсутствия (когда игрок долго не нажимает на клавиатуру или свернул окно прграммы SL) (AFK).</p> | |||
<p><b>AGENT_TYPING</b></p> | |||
<p>Агент находится в режиме печатания сообщения.</p> | |||
<p><b>AGENT_CROUCHING</b></p> | |||
<p>Агент находится в режиме приседания.</p> | |||
<p><b>C.14. Texture Animation Constants</b></p> | |||
<p>Эти константы используются функцией llSetTextureAnim для контроля разных способов анимации.</p> | |||
<p>Константы предназначенные для анимации тектуры:</p> | |||
<p><b>ANIM_ON</b></p> | |||
<p>Включить анимацию текстуры.</p> | |||
<p><b>LOOP</b></p> | |||
<p>Анимация текстуры с автоповтором.</p> | |||
<p><b>REVERSE</b></p> | |||
<p>Проирывать анимацию в обратном направлении.</p> | |||
<p><b>PING_PONG</b></p> | |||
<p>Проигрывать анимацию сначала до конца и наоборот(Туда-сюда)</p> | |||
<p><b>SMOOTH</b></p> | |||
<p>Дополнять (сглаживать) направление движения вместо проигрывания отдельными фреймами.</p> | |||
<p><b>ROTATE</b></p> | |||
<p>Анимация текстуры вращением.</p> | |||
<p><b>SCALE</b></p> | |||
<p>Анимацию текстуры маштабированием.</p> | |||
<p><b>C.15. Particle System Constants</b></p> | |||
<p>Эти константы используются в описании специальных параметров для описания системы частиц</p> | |||
<p>ПАРАМЕТРЫ СИСТЕМЫ ЧАСТИЦ:</p> | |||
<p> </p> | |||
<p>Универсальная программа в которой используются все константы и приводится описание каждой(вы можете скопировать и запустить эту программу):</p> | |||
<p> </p> | |||
<p>default</p> | |||
<p>{</p> | |||
<p>state_entry()</p> | |||
<p>{</p> | |||
<p>llParticleSystem([ //KPSv1.0 ГЕНЕРАТОР ЧАСТИЦ (ПАРТИКЛОВ)</p> | |||
<p><b>PSYS_PART_FLAGS</b> , 0 //Коментарий для дезактивации любой из следующих масок, по умолчанию ноль</p> | |||
<p>//| <b>PSYS_PART_BOUNCE_MASK</b> //Сильный поток по оси Z обьекта</p> | |||
<p>//| <b>PSYS_PART_WIND_MASK </b>//Частицы перемещаютс силой ветра ветром</p> | |||
<p>| <b>PSYS_PART_INTERP_COLOR_MASK</b> //Выключает начальный и конечный цвет частиц</p> | |||
<p>| <b>PSYS_PART_INTERP_SCALE_MASK</b> //Выключает начальный и конечный маштаб частиц</p> | |||
<p>| <b>PSYS_PART_FOLLOW_SRC_MASK</b> //Частицы следуют за источником</p> | |||
<p>// | <b>PSYS_PART_FOLLOW_VELOCITY_MASK</b> //Частицы создаются если источник имеет какуюто скорость</p> | |||
<p>//| <b>PSYS_PART_TARGET_POS_MASK</b> //Частицы пердвигаются вместе с источником, если источник двигается</p> | |||
<p>| <b>PSYS_PART_EMISSIVE_MASK </b>//Частицы самоосвещены и пылают</p> | |||
<p>//| <b>PSYS_PART_TARGET_LINEAR_MASK</b> //Послать частицы по прямой линии к указанной цели в PSYS_SRC_TARGET_KEY методе. Метод PSYS_SRC_ACCEL,</p> | |||
<p>// и PSYS_SRC_BURST_RADIUS, и возможно другие будут игнорироватся.</p> | |||
<p>,<b>PSYS_SRC_TARGET_KEY</b>, llGetKey() //Ключ цели на которую будет направлен поток частиц </p> | |||
<p>//,PSYS_SRC_TARGET_KEY, NULL_KEY //если NULL_KEY поток не будет иметь направления на конкретную цель</p> | |||
<p>,</p> | |||
<p>//Можно выбрать только один образец для правильной работы</p> | |||
<p><b>PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_DROP</b> //Частица генерируются в источнике без скорости</p> | |||
<p>//<b>PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE</b> //Частицы взрываются от источника</p> | |||
<p>//<b>PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE</b> //Частицы испускаются в плоскости от источника расходясь под 2D углом</p> | |||
<p>//<b>PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE</b> //Частицы испускаются из источника в виде 3D конуса с заданным 3D углом</p> | |||
<p>//<b>PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY</b> //Частицы испускаются из источника во все стороны кроме заданного 3D конуса</p> | |||
<p> </p> | |||
<p>,<b>PSYS_SRC_TEXTURE</b>, "" //UUID(уникальный ключ) текстуры либо ее имя в инвентаре обьекта источника если </p> | |||
<p>,<b>PSYS_SRC_MAX_AGE</b>, 0.0 //Время испускания частиц, если значение 0 то испускание будет постоянным</p> | |||
<p>,<b>PSYS_PART_MAX_AGE</b>, 1.0 //Врямя в сукундах существование сгенерированной частицы</p> | |||
<p>,<b>PSYS_SRC_BURST_RATE</b>, 0.0 //Временная задержка в секундах между каждым испусканием частиц</p> | |||
<p>,<b>PSYS_SRC_BURST_PART_COUNT</b>, 1 //Число одновременно испускаемых частиц</p> | |||
<p>,<b>PSYS_SRC_BURST_RADIUS</b>, 0.0 //Радиус пространства испускания частиц</p> | |||
<p>,<b>PSYS_SRC_BURST_SPEED_MIN</b>, 0.0 //Минимальная скорость испускания частицы</p> | |||
<p>,<b>PSYS_SRC_BURST_SPEED_MAX</b>, 0.00 //Максимальная скорость испускания частицы</p> | |||
<p>,<b>PSYS_SRC_ACCEL</b>, <0.0,0.0,0.0> //Ускорение частиц каждую секунду</p> | |||
<p>,<b>PSYS_PART_START_COLOR</b>, <1.0,1.0,1.0> //Стартовый RGB цвет частицы</p> | |||
<p>,<b>PSYS_PART_END_COLOR</b>, <1.0,1.0,1.0> //Конечный RGB цвет частицы, если константа INTERP_COLOR_MASK активирована</p> | |||
<p>,<b>PSYS_PART_START_ALPHA</b>, 0.0 //Стартовая прозрачность частиц, 1 - непрозрачные, 0 прозрачные, либо промежуточные значения.</p> | |||
<p>,<b>PSYS_PART_END_ALPHA</b>, 1.0 //Конечная прозрачность частиц</p> | |||
<p>,<b>PSYS_PART_START_SCALE</b>, <2.0,2.0,2.0> //Стартовый размер частиц</p> | |||
<p>,<b>PSYS_PART_END_SCALE,</b> <2.0,2.0,2.0> //Конечный размер частиц, если константа INTERP_SCALE_MASK активирована</p> | |||
<p>,<b>PSYS_SRC_ANGLE_BEGIN</b>, -PI //Внутренний угол, используется только для ANGLE образцов</p> | |||
<p>,<b>PSYS_SRC_ANGLE_END</b>, PI //Внешний угол, используется только для ANGLE образцов</p> | |||
<p>,<b>PSYS_SRC_OMEGA</b>, <0.0,0.0,0.0> //Вращение источника испускания, только для ANGLE образцов, используется подобно вращению llTargetOmega() для обьектов</p> | |||
<p>]);</p> | |||
<p>}</p> | |||
<p>}</p> | |||
<p><b>C.16. Agent Data Constants</b></p> | |||
<p>Эти константы используются при вызове функции <b>llRequestAgentData</b> для сбора информации об агентеб, результат будет получен <b>dataserver</b> событием.</p> | |||
<p>Константы данных состояния агента:</p> | |||
<p><b>DATA_ONLINE</b></p> | |||
<p>"1" если агент online "0" если агент offline.</p> | |||
<p><b>DATA_NAME</b></p> | |||
<p>Имя этого агента.</p> | |||
<p><b>DATA_BORN</b></p> | |||
<p>дата рождения агента в кодировке ISO 8601 формат: YYYY-MM-DD.</p> | |||
<p><b>DATA_RATING</b></p> | |||
<p>Возвращает рейтинг агента в виде одного из шести целых чисел. </p> | |||
<p>Которые обозначают: </p> | |||
<p>1. Положительный рейтинг поведения</p> | |||
<p>2. Отрицательный рейтинг поведения</p> | |||
<p>3. Положительный рейтинг внешнего вида</p> | |||
<p>4. Отрицательный рейтинг внешнего вида</p> | |||
<p>5. Положительный рейтинг строительства</p> | |||
<p>6. Отрицательный рейтинг строительства</p> | |||
<p><b>C.17. Float Constants</b></p> | |||
<p>LSL обеспечивает небольшую коллекцию арифметических констант с плавающей точкой. Эти константы обычно используются для сокращения выполнения тригонометрических вычислений, за исключением полезности использования их в определения радианов дуги на датчик или функции системы частицы.</p> | |||
<p>Константы с плавающей точкой:</p> | |||
<p><b>PI</b></p> | |||
<p>3.14159265 - Половинв круга в радианах.</p> | |||
<p><b>TWO_PI</b></p> | |||
<p>6.28318530 - Целый круг в радианах.</p> | |||
<p><b>PI_BY_TWO</b></p> | |||
<p>1.57079633 - Четверть круга в радианах.</p> | |||
<p><b>DEG_TO_RAD</b></p> | |||
<p>0.01745329 - Число радианов в степени. Вы можете использовать это число или константу , для преобразования степени в радианы, умножая степень на это число.</p> | |||
<p><b>RAD_TO_DEG</b></p> | |||
<p>57.2957795 - Число степеней в радианах. Вы можете использовать это число или константу , для преобразования радиан в степень, умножая радианы на это числом.</p> | |||
<p><b>SQRT2</b></p> | |||
<p>1.41421356 - Квадратный корень двух 2.</p> | |||
<p><b>C.18. Key Constant</b></p> | |||
<p>Это единственная кей константа которая показывает недействительность ключа NULL_KEY.</p> | |||
<p><b>C.19. Miscellaneous Integer Constants</b></p> | |||
<p>Эта константа используется в параметрах обьекта для указания всех сторон ALL_SIDES</p> | |||
<p><b>C.20. Miscellaneous String Constants</b></p> | |||
<p>Это одна раскатегориная стринг константа которая используется в dataserver событии : EOF</p> | |||
<p><b>C.21. Vector Constant</b></p> | |||
<p>Эта константа заменяет нулевой вектор: ZERO_VECTOR = <0,0,0>.</p> | |||
<p><b>C.22. Rotation Constant</b></p> | |||
<p>Эта константа заменяет обнуленную ротацию: ZERO_ROTATION = <0,0,0,1>.</p> | |||
<p><b>C.23. Simulator Data Constants</b></p> | |||
<p>Эти константы используются для вызова функции llRequestSimulatorData Для получения данных используется событие dataserver event.</p> | |||
<p>Константы данных симулятора(земли владельца):</p> | |||
<p><b>DATA_SIM_POS</b></p> | |||
<p>Глобальное положение симулятора . Форма значенния пердается в векторе</p> | |||
<p><b>DATA_SIM_STATUS</b></p> | |||
<p>Статус симулятора. В настоящее время это может быть один из седующих номеров.</p> | |||
<ul type="disc"> | |||
<li>up</li> | |||
<li>down</li> | |||
<li>stopping</li> | |||
<li>starting</li> | |||
<li>crashed</li> | |||
</ul> | |||
<p><b>C.24. Vehicle Parameters</b></p> | |||
<p><b>ПАРАМЕТРЫ ТРАНСПОРТНЫХ СРЕДСТВ:</b></p> | |||
<p><b>VEHICLE_LINEAR_FRICTION_TIMESCALE</b><br> Вектор постоянных времени экспоненциального ослабления линейной скорости объекта по его предпочтительным осям движения (прямо, влево, вверх). Диапазон = [0,07, беск.) секунд для каждого элемента вектора.</p> | |||
<p><b>VEHICLE_ANGULAR_FRICTION_TIMESCALE</b><br> Вектор постоянных времени экспоненциального затухания угловой скорости объекта вокруг его предпочтительных осей движения (прямо, влево, вверх). Диапазон = [0,07, беск.) секунд для каждого элемента вектора.</p> | |||
<p><b>VEHICLE_LINEAR_MOTOR_DIRECTION</b><br> Направление и амплитуда (относительно предпочтительного каркаса) воздействия линейного двигателя. Транспортное средство будет ускоряться или замедляться для достижения указанной скорости. Диапазон амплитуды = [0, 30] м/с.</p> | |||
<p><b>VEHICLE_LINEAR_MOTOR_OFFSET</b><br> Точка, смещенная относительно центра масс транспортного средства, в которой прилагается усилие линейного двигателя. Позволяет линейному двигателю создавать вращательный момент. Диапазон амплитуды = [0, 100] м.</p> | |||
<p><b>VEHICLE_LINEAR_MOTOR_TIMESCALE</b><br> Постоянная времени экспоненциального приближения к полной скорости линейного двигателя.</p> | |||
<p><b>VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE</b><br> Постоянная времени экспоненциального ослабления амплитуды линейного двигателя.</p> | |||
<p><b>VEHICLE_ANGULAR_MOTOR_DIRECTION</b><br> Направление и амплитуда (относительно предпочтительного каркаса) углового двигателя транспортного средства. Транспортное средство будет ускоряться или замедляться для достижения указанной скорости.</p> | |||
<p><b>VEHICLE_ANGULAR_MOTOR_TIMESCALE</b><br> Постоянная времени экспоненциального приближения к полной скорости углового двигателя.</p> | |||
<p><b>VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE</b><br> Постоянная времени экспоненциального ослабления амплитуды углового двигателя.</p> | |||
<p><b>VEHICLE_HOVER_HEIGHT</b><br> Высота (над поверхностью земли или воды, или глобальная высота), на которой транспортное средство будет стремиться парить.</p> | |||
<p><b>VEHICLE_HOVER_EFFICIENCY</b><br> Уровень демпфирования парения. Значение лежит в диапазоне от 0,0 (минимум демпфирования) до 1,0.</p> | |||
<p><b>VEHICLE_HOVER_TIMESCALE</b><br> Период колебаний высоты (или постоянная времени экспоненциального приближения, в зависимости от значения параметра VEHICLE_HOVER_EFFICIENCY) в процессе приближения транспортного средства к заданной высоте.</p> | |||
<p><b>VEHICLE_BUOYANCY</b><br> Плавучесть. Значение изменяется от 0,0 до 1,0 (максимальная антигравитация).</p> | |||
<p><b>VEHICLE_LINEAR_DEFLECTION_EFFICIENCY</b><br> Скалярная величина, определяющая интенсивность линейного смещения. Диапазон значений простирается от 0,0 до 1,0 (максимум смещения линейной скорости).</p> | |||
<p><b>VEHICLE_LINEAR_DEFLECTION_TIMESCALE</b><br> Постоянная времени процесса линейного смещения. Это еще один способ определить насколько быстро произойдет перенаправление линейной скорости транспортного средства к предпочтительной оси движения.</p> | |||
<p><b>VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY</b><br> Параметр изменяется от минимального (0,0) до максимального (1,0) смещения угловой ориентации. Это скалярная величина, определяющая интенсивность углового смещения предпочтительной оси движения объекта до совпадения с направлением его истинной скорости.</p> | |||
<p><b>VEHICLE_ANGULAR_DEFLECTION_TIMESCALE</b><br> Постоянная времени процесса углового смещения. Это еще один способ задать интенсивность процесса переориентирования объекта к состоянию, когда его предпочтительная ось движения совпадает с направлением его истинной скорости.</p> | |||
<p><b>VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY</b><br> Значение параметра изменяется от минимального (0,0 = шаткий) до (1,0 = устойчивый) максимального уровня стабильности поддержания транспортного средства в положении верхней частью вверх.</p> | |||
<p><b>VEHICLE_VERTICAL_ATTRACTION_TIMESCALE</b><br> Период колебаний (или постоянная времени экспоненциального приближения) направления оси "вверх" транспортного средства в процессе переориентирования ее вдоль мировой оси "вверх". </p> | |||
<p><b>VEHICLE_BANKING_EFFICIENCY</b><br> Значение параметра изменяется от обратного (-1,0) виража через его отсутствие (0,0) до максимальной (1,0) величины виража.</p> | |||
<p><b>VEHICLE_BANKING_MIX</b><br> Значение параметра изменяется от статичного (0,0) до динамичного (1,0) виража. "Статичный" означает, что вираж зависит только от угла крена, а "динамичный" значит, что вираж еще зависит еще и от линейной скорости объекта.</p> | |||
<p><b>VEHICLE_BANKING_TIMESCALE</b><br> Постоянная времени процесса экспоненциального приближения эффекта виража к его максимальному значению. Это еще один способ масштабировать интенсивность эффекта виража, однако это касается только компоненты, которая пропорциональна разнице между целевым и текущим состоянием транспортного средства.</p> | |||
<p><b>VEHICLE_REFERENCE_FRAME</b><br> Поворот предпочтительных осей движения и ориентации транспортного средства (прямо, влево, вверх) относительно локального каркаса (X, Y, Z).</p> | |||
<p><b>C.25. Vehicle Flags</b></p> | |||
<p><b>ФЛАГИ ТРАНСПОРТНЫХ СРЕДСТВ:</b></p> | |||
<p><b>VEHICLE_FLAG_NO_DEFLECTION_UP </b><br> Этот флаг предотвращает линейное смещение, параллельное мировой оси Z. Полезен для наземных транспортных средств с большим линейным смещением, например, таких как аттракционные электрические автомобильчики с бампером. В этом случае установленный флаг предотвращает их вертикальное линейное смещение.<br> Значение равно 1.</p> | |||
<p><b>VEHICLE_FLAG_LIMIT_ROLL_ONLY</b><br> Для транспорта с вертикальным притяжением (vertical attractor), который должен обладать способностью набора/снижения высоты, например самолетов, использующих свойство виража.<br> Значение равно 2.</p> | |||
<p><b>VEHICLE_FLAG_HOVER_WATER_ONLY</b><br> Игнорирование высоты местности при парении.<br> Значение равно 4.</p> | |||
<p><b>VEHICLE_FLAG_HOVER_TERRAIN_ONLY</b><br> Игнорирование уровня водной поверхности при парении.<br> Значение равно 8.</p> | |||
<p><b>VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT</b><br> Парение на глобальной высоте вместо высоты над уровнем земли или воды.<br> Значение равно 16.</p> | |||
<p><b>VEHICLE_FLAG_HOVER_UP_ONLY</b><br> Используйте этот флаг для парящих транспортных средств, которые должны обладать возможностью подниматься выше своей высоты парения.<br> Значение равно 32.</p> | |||
<p><b>VEHICLE_FLAG_LIMIT_MOTOR_UP</b><br> Флаг предотвращает воздействие двигателя на наземное транспортное средство в воздухе. Этот флаг имеет тонкий эффект при использовании совместно со свойством виража: интенсивность виража уменьшается, когда объект больше не испытывает сцепления с землей. Постоянная времени ослабления та же, что и VEHICLE_BANKING_TIMESCALE. Служит для предотвращения поворота транспортного средства во время прыжка.<br> Значение равно 64.</p> | |||
<p><b>VEHICLE_FLAG_MOUSELOOK_STEER</b><br> Поворот транспортного средства мышью. Угловой двигатель будет стремиться повернуть объект так, чтобы его локальная ось X совпадала с направлением взгляда камеры.<br> Значение равно 128.</p> | |||
<p><b>VEHICLE_FLAG_MOUSELOOK_BANK</b><br> Поворот транспортного мышью с помощью виражей. Движения мыши влево-вправо преобразуются в поворот транспорта вокруг его локальной оси X.<br> Значение равно 256.</p> | |||
<p><b>VEHICLE_FLAG_CAMERA_DECOUPLED</b><br> Камера будет вращаться независимо от транспортного средства. По умолчанию камера вращается совместно с объектом.<br> Значение равно 512.</p> | |||
<p><b>C.26. Vehicle Types</b></p> | |||
<p>Типы:</p> | |||
<p><b>VEHICLE_TYPE_SLED</b></p> | |||
<p>Простое транспортное средство будет трястись на земляных ухабах и стремится к движению вперед по локальной оси абсцисс</p> | |||
<p>// most friction for left-right, least for up-down</p> | |||
<p>llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, <30, 1, 1000> );</p> | |||
<p>// no angular friction</p> | |||
<p>llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, <1000, 1000, 1000> );</p> | |||
<p>// no linear motor</p> | |||
<p>llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, <0, 0, 0> );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1000 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 120 );</p> | |||
<p>// no angular motor</p> | |||
<p>llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, <0, 0, 0> );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1000 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 120 );</p> | |||
<p>// no hover (but with timescale of 10 sec if enabled)</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 10 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );</p> | |||
<p>// maximum linear deflection with timescale of 1 second</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 1 );</p> | |||
<p>// no angular deflection </p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 );</p> | |||
<p>// no vertical attractor (doesn't mind flipping over)</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 );</p> | |||
<p>// no banking</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 10 );</p> | |||
<p>// default rotation of local frame</p> | |||
<p>llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, <0, 0, 0, 1> );</p> | |||
<p>// remove these flags </p> | |||
<p>llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY </p> | |||
<p>| VEHICLE_FLAG_HOVER_TERRAIN_ONLY </p> | |||
<p>| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT </p> | |||
<p>| VEHICLE_FLAG_HOVER_UP_ONLY );</p> | |||
<p>// set these flags (the limit_roll flag will have no effect</p> | |||
<p>// until banking is enabled, if ever)</p> | |||
<p>llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP </p> | |||
<p>| VEHICLE_FLAG_LIMIT_ROLL_ONLY</p> | |||
<p>| VEHICLE_FLAG_LIMIT_MOTOR_UP );</p> | |||
<p><b>VEHICLE_TYPE_CAR</b></p> | |||
<p>Еще одно траспортное средство будет трястись на земляных ухабах за исключением необходимости приводного двигателя для внешнего контроя или timer события.</p> | |||
<p>// most friction for left-right, least for up-down</p> | |||
<p>llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, <100, 2, 1000> );</p> | |||
<p>// no angular friction</p> | |||
<p>llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, <1000, 1000, 1000> );</p> | |||
<p>// linear motor wins after about a second, decays after about a minute</p> | |||
<p>llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, <0, 0, 0> );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );</p> | |||
<p>// angular motor wins after a second, decays in less time than that</p> | |||
<p>llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, <0, 0, 0> );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.8 );</p> | |||
<p>// no hover </p> | |||
<p>llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );</p> | |||
<p>// maximum linear deflection with timescale of 2 seconds</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 2 );</p> | |||
<p>// no angular deflection </p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 );</p> | |||
<p>// critically damped vertical attractor</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 10 );</p> | |||
<p>// weak negative critically damped banking</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.2 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 );</p> | |||
<p>// default rotation of local frame</p> | |||
<p>llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, <0, 0, 0, 1> );</p> | |||
<p>// remove these flags </p> | |||
<p>llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY </p> | |||
<p>| VEHICLE_FLAG_HOVER_TERRAIN_ONLY </p> | |||
<p>| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT);</p> | |||
<p>// set these flags </p> | |||
<p>llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP </p> | |||
<p>| VEHICLE_FLAG_LIMIT_ROLL_ONLY </p> | |||
<p>| VEHICLE_FLAG_HOVER_UP_ONLY</p> | |||
<p>| VEHICLE_FLAG_LIMIT_MOTOR_UP );</p> | |||
<p><b>VEHICLE_TYPE_BOAT</b></p> | |||
<p>Парить над водой с трением и с угловым смещением</p> | |||
<p>// least for forward-back, most friction for up-down</p> | |||
<p>llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, <10, 3, 2> );</p> | |||
<p>// uniform angular friction (setting it as a scalar rather than a vector)</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 );</p> | |||
<p>// linear motor wins after about five seconds, decays after about a minute</p> | |||
<p>llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, <0, 0, 0> );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );</p> | |||
<p>// angular motor wins after four seconds, decays in same amount of time</p> | |||
<p>llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, <0, 0, 0> );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 4 );</p> | |||
<p>// hover </p> | |||
<p>llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 2.0 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 );</p> | |||
<p>// halfway linear deflection with timescale of 3 seconds</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 3 );</p> | |||
<p>// angular deflection </p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.5 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 );</p> | |||
<p>// somewhat bouncy vertical attractor </p> | |||
<p>llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.5 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 5 );</p> | |||
<p>// weak negative damped banking</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.3 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.8 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 );</p> | |||
<p>// default rotation of local frame</p> | |||
<p>llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, <0, 0, 0, 1> );</p> | |||
<p>// remove these flags </p> | |||
<p>llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_TERRAIN_ONLY </p> | |||
<p>| VEHICLE_FLAG_LIMIT_ROLL_ONLY </p> | |||
<p>| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT);</p> | |||
<p>// set these flags </p> | |||
<p>llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP </p> | |||
<p>| VEHICLE_FLAG_HOVER_WATER_ONLY </p> | |||
<p>| VEHICLE_FLAG_HOVER_UP_ONLY </p> | |||
<p>| VEHICLE_FLAG_LIMIT_MOTOR_UP );</p> | |||
<p><b>VEHICLE_TYPE_AIRPLANE</b></p> | |||
<p>Использует линейное отклонение для подьема тяжести и крена при повороте.</p> | |||
<p>// very little friction along forward-back axis</p> | |||
<p>llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, <200, 10, 5> );</p> | |||
<p>// uniform angular friction</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 20 );</p> | |||
<p>// linear motor</p> | |||
<p>llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, <0, 0, 0> );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 2 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );</p> | |||
<p>// angular motor</p> | |||
<p>llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, <0, 0, 0> );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 8 );</p> | |||
<p>// no hover </p> | |||
<p>llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );</p> | |||
<p>// linear deflection </p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.5 );</p> | |||
<p>// angular deflection </p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 1.0 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 2.0 );</p> | |||
<p>// vertical attractor</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.9 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 2 );</p> | |||
<p>// banking</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 1 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 2 );</p> | |||
<p>// default rotation of local frame</p> | |||
<p>llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, <0, 0, 0, 1> );</p> | |||
<p>// remove these flags </p> | |||
<p>llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP </p> | |||
<p>| VEHICLE_FLAG_HOVER_WATER_ONLY </p> | |||
<p>| VEHICLE_FLAG_HOVER_TERRAIN_ONLY </p> | |||
<p>| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT </p> | |||
<p>| VEHICLE_FLAG_HOVER_UP_ONLY</p> | |||
<p>| VEHICLE_FLAG_LIMIT_MOTOR_UP );</p> | |||
<p>// set these flags </p> | |||
<p>llSetVehicleFlags( VEHICLE_FLAG_LIMIT_ROLL_ONLY );</p> | |||
<p><b>VEHICLE_TYPE_BALLOON</b></p> | |||
<p>Парение и трение за изключением отклонения от прямого направления</p> | |||
<p>// uniform linear friction</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, 5 );</p> | |||
<p>// uniform angular friction</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 );</p> | |||
<p>// linear motor</p> | |||
<p>llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, <0, 0, 0> );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );</p> | |||
<p>// angular motor</p> | |||
<p>llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, <0, 0, 0> );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 6 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 10 );</p> | |||
<p>// hover </p> | |||
<p>llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 5 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.8 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 );</p> | |||
<p>// no linear deflection </p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 5 );</p> | |||
<p>// no angular deflection </p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 );</p> | |||
<p>// no vertical attractor </p> | |||
<p>llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 );</p> | |||
<p>// no banking</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 );</p> | |||
<p>llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 5 );</p> | |||
<p>// default rotation of local frame</p> | |||
<p>llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, <0, 0, 0, 1> );</p> | |||
<p>// remove all flags </p> | |||
<p>llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP </p> | |||
<p>| VEHICLE_FLAG_HOVER_WATER_ONLY </p> | |||
<p>| VEHICLE_FLAG_LIMIT_ROLL_ONLY </p> | |||
<p>| VEHICLE_FLAG_HOVER_TERRAIN_ONLY </p> | |||
<p>| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT </p> | |||
<p>| VEHICLE_FLAG_HOVER_UP_ONLY </p> | |||
<p>| VEHICLE_FLAG_LIMIT_MOTOR_UP );</p> | |||
<p><b>C.27. Primitive Constants</b></p> | |||
<p>Эти константы используются привызове функции llSetPrimitiveParams и llGetPrimitiveParams для точного определения параметров.</p> | |||
<p>Параметры визуализации и формы примитива:</p> | |||
<p><b>PRIM_TYPE</b></p> | |||
<p>Это константа позволяет управлять различным параметрам формы примитива. PRIM_TYPE контанта должна сопровождаться соответствующими аргументами, для этой константы PRIM_TYPE Values</p> | |||
<p><b>PRIM_TYPE_BOX</b></p> | |||
<p>Установить примитив <b>бокс</b>, с формой отверстия integer, вырез vector, пустотой float, закрученность vector , верхний размер vector , и вершинным срезом vector .</p> | |||
<p><b>PRIM_TYPE_CYLINDER</b></p> | |||
<p>Установить примитив <b>цилиндр</b>, с формой отверстия integer, вырез vector, пустотой float, закрученность vector , верхний размер vector , и вершинным срезом vector .</p> | |||
<p><b>PRIM_TYPE_PRISM</b></p> | |||
<p>Установить примитив <b>призма</b>, с формой отверстия integer, вырез vector, пустотой float, закрученность vector , верхний размер vector , и вершинным срезом vector .</p> | |||
<p><b>PRIM_TYPE_SPHERE</b></p> | |||
<p>Установить примитив <b>сфера</b>, с формой отверстия integer, вырез vector, пустотой float, закрученность vector , и ямкой vector.</p> | |||
<p><b>PRIM_TYPE_TORUS</b></p> | |||
<p>Установить примитив <b>торус</b>, с формой отверстия integer, вырез vector, пустотой float, закрученность vector , верхний размер vector , и вершинным срезом vector, с конусным сужением vector , float revolutions, float radius offset, and float skew.</p> | |||
<p><b>PRIM_TYPE_TUBE</b></p> | |||
<p>Установить примитив <b>тубус</b>, с формой отверстия integer, вырез vector, пустотой float, закрученность vector , диаметром отверстия vector , вершинным срезом vector, выдвинутое сечение vector, конусностью vector, float revolutions, смещение радиуса float, и уклоном float .</p> | |||
<p><b>PRIM_TYPE_RING</b></p> | |||
<p>Установить примитив <b>кольцо</b>, с формой отверстия integer, вырез vector, пустотой float, закрученность vector , диаметром отверстия vector , вершинным срезом vector, выдвинутое сечение vector, конусностью vector, float revolutions, смещение радиуса float, и уклоном float.</p> | |||
<p> </p> | |||
<p>Для выбора формы отверстия используй одну из констант PRIM_HOLE_DEFAULT, PRIM_HOLE_CIRCLE, PRIM_HOLE_SQUARE, или PRIM_HOLE_TRIANGLE.</p> | |||
<p> </p> | |||
<p><b>PRIM_MATERIAL</b></p> | |||
<p>Выбрать один из материалов для обьекта PRIM_MATERIAL_STONE, PRIM_MATERIAL_METAL, PRIM_MATERIAL_GLASS, PRIM_MATERIAL_WOOD, PRIM_MATERIAL_FLESH, PRIM_MATERIAL_PLASTIC, PRIM_MATERIAL_RUBBER, or PRIM_MATERIAL_LIGHT.</p> | |||
<p><b>PRIM_PHYSICS</b></p> | |||
<p>Установить параметр - физический обьект или нет TRUE или FALSE.</p> | |||
<p><b>PRIM_TEMP_ON_REZ</b></p> | |||
<p>Установить параметр - временный обьект или нет TRUE или FALSE.</p> | |||
<p><b>PRIM_PHANTOM</b></p> | |||
<p>Установить параметр - обьект является фантомом(безпрепятственным) или нет TRUE или FALSE.</p> | |||
<p><b>PRIM_POSITION</b></p> | |||
<p>Установить положение(координаты) задаваемые вектором vector.</p> | |||
<p><b>PRIM_SIZE</b></p> | |||
<p>Установить размер задаваемый вектором vector.</p> | |||
<p><b>PRIM_ROTATION</b></p> | |||
<p>Установить поворот задаваемые задаваемый с помощью rotation типа данных.</p> | |||
<p><b>PRIM_TEXTURE</b></p> | |||
<p>Устанавливает тектстуру на сторону integer, key id, с повторениями vector, смещением vector, и поворотом float rotation в радианах.</p> | |||
<p><b>PRIM_COLOR</b></p> | |||
<p>Устанавливает цвет тектстуры на сторону integer, с цветом vector, и прозрачностью float.</p> | |||
<p><b>PRIM_BUMP_SHINY</b></p> | |||
<p>Устанавливает бамп - тектстуру и блик - текстуру на сторону integer, одну из <b>PRIM_SHINY_NONE, PRIM_SHINY_LOW, PRIM_SHINY_MEDIUM</b>, или <b>PRIM_SHINY_HIGH</b>, и одну из <b>PRIM_BUMP_NONE, PRIM_BUMP_BRIGHT, PRIM_BUMP_DARK, PRIM_BUMP_WOOD, PRIM_BUMP_BARK, PRIM_BUMP_BRICKS, PRIM_BUMP_CHECKER, PRIM_BUMP_CONCRETE, PRIM_BUMP_TILE, PRIM_BUMP_STONE, PRIM_BUMP_DISKS, PRIM_BUMP_GRAVEL, PRIM_BUMP_BLOBS, PRIM_BUMP_SIDING, PRIM_BUMP_LARGETILE, PRIM_BUMP_STUCCO, PRIM_BUMP_SUCTION, or PRIM_BUMP_WEAVE.</b></p> | |||
<p><b>C.28. XML-RPC Constants</b></p> | |||
<p>Эти константы получает событие remote_data: REMOTE_DATA_CHANNEL, REMOTE_DATA_REQUEST, и REMOTE_DATA_REPLY.</p> | |||
<p><b>C.29. Permission Mask Constants</b></p> | |||
<p>Эти MASK_* константы используются в качестве аргумента в функциях llGetObjectPermMask и llGetInventoryPermMask . Эти функции возвращают комбинацию PERM_* констант.</p> | |||
<p>Константы масок и разрешений:</p> | |||
<p><b>MASK_BASE</b></p> | |||
<p>Точно определяет базовые права дступа. Эти права идентичны для владельца за исключением заблокированных обьектов. Когда обьект заблокирован права владелеца на передвижение и модификацию закрыты. После разблокировки обьекта права возвращаются владельцу.</p> | |||
<p><b>MASK_OWNER</b></p> | |||
<p>Точно пределяет права доступа владельца которые ни когда не привысят дозволеного(базовых прав).</p> | |||
<p><b>MASK_GROUP</b></p> | |||
<p>Точно определеет права доступа группы . Они ни когда не привысят права владельца.</p> | |||
<p><b>MASK_EVERYONE</b></p> | |||
<p>Точно определяет права всех. Они ни когда не привысят права владельца.</p> | |||
<p><b>MASK_NEXT</b></p> | |||
<p>Точно определяет права доступа следующего владельца которые ни когда не привысят дозволеного(базовых прав).</p> | |||
<p><b>PERM_MOVE</b></p> | |||
<p>Установлен если позволено двигать</p> | |||
<p><b>PERM_MODIFY</b></p> | |||
<p>Установлен если позволено модифицировать</p> | |||
<p><b>PERM_COPY</b></p> | |||
<p>Установлен если позволено копировать</p> | |||
<p><b>PERM_TRANSFER</b></p> | |||
<p>Установлен если позволено передавать</p> | |||
<p><b>PERM_ALL</b></p> | |||
<p>Эта константа устанавливается если установленны все константы вида PERM_* </p> | |||
<p><b>C.30. Parcel Media Constants (Movies)</b></p> | |||
<p>Эти константы передаются в функцию llParcelMediaCommand для управления проигрыванием мультимедиа ресурсов в пределах територии владельца.</p> | |||
<p>Медиа константы которые используются только на частной територии:</p> | |||
<p><b>PARCEL_MEDIA_COMMAND_STOP</b></p> | |||
<p>Остановка медиа потока и возврат на начальный фрейм.</p> | |||
<p><b>PARCEL_MEDIA_COMMAND_PAUSE</b></p> | |||
<p>Пауза медиа потока (Остановка медиа потока и пребывание на текущем фрейме)</p> | |||
<p><b>PARCEL_MEDIA_COMMAND_PLAY</b></p> | |||
<p>Старт медиа потока и проигрывание начиная с текущего фрейма и остановка при достижении конца.</p> | |||
<p><b>PARCEL_MEDIA_COMMAND_LOOP</b></p> | |||
<p>Старт медиа потока с текущего фрэйма и проигрывание при достижении конца возвращается на начальный фрейм и проигрывает все заново.</p> | |||
<p><b>PARCEL_MEDIA_COMMAND_TEXTURE</b></p> | |||
<p>Эта константа используется для получения или установки медиа текстуры по умолчанию.</p> | |||
<p><b>PARCEL_MEDIA_COMMAND_URL</b></p> | |||
<p>Эта константа испльзуется для получения или установки URL адреса медиа пакета </p> | |||
<p><b>PARCEL_MEDIA_COMMAND_TIME</b></p> | |||
<p>Это испльзуется для запуска видеопотока в определенное время</p> | |||
<p><b>PARCEL_MEDIA_COMMAND_AGENT</b></p> | |||
<p>Применяет средства управления Медиа потоком только к одному текщему агенту(для каждого агента будут показыватся разные видео потоки если создать выбор из списка)</p> | |||
<p><b>PARCEL_MEDIA_COMMAND_UNLOAD</b></p> | |||
<p>Полностью выгружает Мувы и востанавливает первоначальную текстуру</p> | |||
<p><b>PARCEL_MEDIA_COMMAND_AUTO_ALIGN</b></p> | |||
<p>Установить пакет опций "автоматический масштаб содержимого"</p> | |||
<p> </p> | |||
</div> | |||
=============================================================================== | =============================================================================== |
Revision as of 07:20, 8 June 2013
Справочный портал: |
Аватары | Устранённые ошибки | Коммуникация | Сообщество | Глоссарий | Земля и Симы | Мультимедиа | Навигация | Объект | Видеоуроки | Вьювер | Wiki | Остальное |
Linden Scripting Language (LSL) - встроенный в систему скриптовый язык программирования, позволяет добавлять предметам определенные автономные возможности и контролировать поведение объектов. Например, сделать так, чтобы дверь автоматически открывалась, когда к ней кто-то приближается. С помощью LSL создаются не только простые функции, но и проводятся серьезные эксперименты. LSL имеет аналогичный синтаксис с C.
Вся информация о "Linden Scripting Language" является доступной на LSL портале.
КРАТКИЙ СПРАВОЧНИК ПО LSL
2007 Октябрь
ЯЗЫК LSL
Constants
Константы в LSL это заранее заданные глобальные преременные определенного типа которые используются для удобства восприятия каких либо числовых значений.
Константы описаны в приложении : «C. КОНСТАНТЫ»
Events
LSL событийный язык и в любой вашей программе должно быть хотябы одно обьявленное и описанное событие. Все команды языка бутут выполнятся в теле события.
События описаны в приложении : «B. СОБЫТИЯ»
Functions
Набор из более чем трехсот функций опысывается в приложении: «A. БИБЛИОТЕЧНЫЕ ЛИНДЕН-ФУНКЦИИ»
Flow Control
Команды контроля выполнения программы:
if(условие){программа выполняется если истина} else {программа выполняется если ложь}
if(условие){программа выполняется если истина}
while(условие){программа выполняющаяся циклически пока условие не будет истинно - условие проверяется перед итерацией}
do{программа выполняющаяся циклически пока условие не будет истинно - условие проверяется после итеррации}while(условие)
for(инициализация переменной; условие; операция над переменной например инкремент){программа выполняющаяся циклически пока условие не будет истинно - условие проверяется после итеррации}
jump метка_места_перехода;
...
...
метка_места_перехода@;
...
return значение; вернуть значение функции если функция была обьявлена как функция возвращающая какоето значение.
return; выход из цикла, из функции , из события , после выхода продолжается выполнение дальнейшей программы.
Operators
Список операторов:
() [] . Parenthesis, Brackets, and Dot do this second (do this first)
(type) Typecasting message = "The result is:" + (string) result;
! ~ ++ -- NOT, One's Complement, Increment, Decrement counter++;
* / % Multiply, Divide, Modulus rollover = (count + 1)%5;
- Subtraction one = 3 - 2;
+ Addition or joining Strings two = 1+1; text = "Hello" + "World"; myList = [1, 2, 3] + [4, 5]; newList = oldList + addList;
<< >> Left Shift, Right Shift eight = 4 << 1;
< <= > >= Less Than, Less Than Or Equal To, isFalse = (6 <= 4);
& Bitwise AND zero = 4 & 2;four = 4 & 4;
^ Bitwise XOR zero = 4 ^ 4; six = 4 ^ 2;
| Bitwise OR four = 4 | 4; six = 4 | 2;
&& Comparison AND isFalse = (FALSE && TRUE);
|| Comparison OR isTrue = (FALSE || TRUE);
= += -= *= /= %= Assignment four = 4;
States
В любой программе написанной на LSL обязательно должно быть хотябы одно состояние. Начальное состояние в котором обявляются и описываются все события называется default состоянием.
Форма записи состояний:
default{событие1{}событие2{}событиеN{}} -- так описывается начальное состояние
state состояние1{событие1{}событие2{}событиеN{}} -- так описывается любое состояние определенное пользователем
Вызов любого из обьявленных и описанных состояних может быть произведен из любого места в программе описанной в событиях.
Форма вызова события:
default
{
событие1 { ... }
событие2 { ... ; state состояние2 ; ... ; }
событиеN { ... }
}
state состояние2
{
событие1 { ... }
событие2 { ... ; state default ; ... ; }
событиеN { ... }
}
Обьявление состояния default не требует ключевого слова state.
Types
integer - целочисленный тип данных
float - тип данных с плавающей точкой
string - строковый тип данных а также и символьный
key - тип данных использующийся для хранения уникальных ключей ID
vector - тип данных использующийся для хранения коордитат или схожих данных в виде < x, y, z >
rotation - тип данных использующийся для хранения угловых параметров или схожих данных в виде < x, y, z, s >
list - смешаный тип данных обьеденяющий в себе понятия структуры и масива. Можно хранить списки любых типов данных в любом порядке.
Variables
Примеры записи значений переменных разных типов:
integer - 1234567
float - 123456.789
string - "stroka"
key - "a822ff2b-ff02-461d-b45d-dcd10a2de0c2"
vector - < 0.35, 1.456, 234.23 >
rotation - < 0.35, 1.456, 234.23, 12.3 >
list - [1234567, "stroka", "a822ff2b-ff02-461d-b45d-dcd10a2de0c2", < 0.35, 1.456, 234.23, 12.3 >, < 0.35, 1.456, 234.23 >]
Errors
Сообщения о ошибках происходящих в работе програмы отправляются по специальному каналу DEBUG_CHANNEL и они все будут отображатся в тексте чата.
Приложение A. БИБЛИОТЕЧНЫЕ ЛИНДЕН-ФУНКЦИИ
A.1. llAbs
integer llAbs(integer val);
Возвращает абсолютное число
A.2. llAcos
float llAcos(float val);
Возвращает арккосинус числа
A.3. llAddToLandPassList
llAddToLandPassList(key avatar, float hours);
Добавить аватара avatar к пропускному списку Этой земли на время hours.
A.4. llAdjustSoundVolume
llAdjustSoundVolume(float volume);
Настроить громкость проигрывания звука прикрепленного к обьекту с этим скриптом и запущенного с помощью llPlaySound или llLoopSound. Эта функция не дает эффекта если не установлен тригер звука с помошью функции llTriggerSound.
A.5. llAllowInventoryDrop
llAllowInventoryDrop(integer add);
Если add = TRUE, юзер не сможет модифицировать права доступа для выбрасывания из инвентаря
A.6. llAngleBetween
float llAngleBetween(rotation a, rotation b);
Возвращает угол в радианах между поворотами a и b.
A.7. llApplyImpulse
llApplyImpulse(vector force, integer local);
Применить импульс force к локальной системе координат local если local = TRUE. Иначе приложенный импульс будет приложен к глобальной системе координат. Эта функция работает только с физическими обьектами.
A.8. llApplyRotationalImpulse
llApplyRotationalImpulse(vector force, integer local);
Задать импульс вращения force к системе координат local если local = TRUE. Иначе приложенный импульс будет приложен к глобальной системе координат. Эта функция работает только с физическими обьектами.
A.9. llAsin
float llAsin(float val);
Возвращает арксинус в радианах
A.10. llAtan2
float llAtan2(float y, float x);
Возвращает arctangent2 из y, x
A.11. llAttachToAvatar
llAttachToAvatar(key avatar, integer attachment);
Прикрепить к аватару в точку attachment. Требуется PERMISSION_ATTACH разрешение аватара на выполнения данной функции.
A.12. llAvatarOnSitTarget
key llAvatarOnSitTarget(void);
Если аватар сидит на обьекте предназначенном для сидения , возврашается ключ аватара, иначе возвращается NULL_KEY. Это единственная возможность обнаружить сидит ли аватар на обьекте определенном с помощью функции llSitTarget для сидения.
A.13. llAxes2Rot
rotation llAxes2Rot(vector fwd, vector left, vector up);
Возвращает свойства вращение обьекта , представленное в осевых координатах. Возвращает поворот системы заданной тремя координатами.
A.14. llAxisAngle2Rot
rotation llAxisAngle2Rot(vector axis, float angle);
Возвращает поворот rotation сгенерированный по углу angle на оси axis.
A.15. llBase64ToString
string llBase64ToString(string str);
Конвертирует строку Base 64 string в обычную строку. Если преабразование создает непонятный символ то функция конвертирует его в пробел.
A.16. llBreakAllLinks
llBreakAllLinks(void);
Разорвать связь всех обьектов в установленной связи(залинкованых или обьединеных в оди составной). Требует получения PERMISSION_CHANGE_LINKS разрешения.
A.17. llBreakLink
llBreakLink(integer linknum);
Разорвать связь с сгрупированным(залинкованным) обьектом linknum. Требует получения PERMISSION_CHANGE_LINKS разрешения после которого у нас будет право на разгрупировку.
A.18. llCSV2List
list llCSV2List(string src);
Создать список list из строки srс , данные в которой перечисляются через запятую.
A.19. llCeil
integer llCeil(float val);
Возвращает наибольшее integer значение >= val.
A.20. llCloseRemoteDataChannel
llCloseRemoteDataChannel(key channel);
Закрывает XML-RPC канал открытый с помощью функции llOpenRemoteDataChannel .
A.21. llCloud
float llCloud(vector offset);
Возвращает плотность облака по текущим координатам смещенным на вектор offset .
A.22. llCollisionFilter
llCollisionFilter(string name, key id, integer accept);
Если допуск accept == TRUE, допускается только столкновение с обьектом name и id , иначе с обьектом без имени name или id. Спецификаторы могут принимать любую последовательность или NULL_KEY если не нужен фильтр на передачу параметра.
A.23. llCollisionSound
llCollisionSound(string impact_sound, float impact_volume);
Выключить звук столкновения по умолчанию, и заменить звуком удара с impact_sound находящимся в object inventory.
A.24. llCollisionSprite
llCollisionSprite(string impact_sprite);
Запретить появление спрайта при столкновения установленный по умолчанию, заменить толчковый спрайт на установленный по умолчанию impact_sprite из инвентаря обьекта. Только запретить спрайт столкновения установленный по умолчанию если строка пуста.
A.25. llCos
float llCos(float theta);
Возвращает косинус угла theta в заданного в радианах
A.26. llCreateLink
llCreateLink(key target, integer parent);
Создает связь(линк) обьекта с другим обектом по его ключу target. Требуется получить разрешение PERMISSION_CHANGE_LINKS . Если параметр parent = TRUE , то обьект прикрепится к корневому обьекту.
A.27. llDeleteSubList
list llDeleteSubList(list src, integer start, integer end);
Удаляет елементы из списка src начиная с позиции start и заканчивая позицией end. Если промежуток между конечной и начальной позицией равен 0,-1 то удалится весь список, если 0,0 то удалится первый элемент , если напимер нач позиция больше конечной то удалится все (включая и позиции старта и конца)кроме того что было межу этими позициями.
A.28. llDeleteSubString
string llDeleteSubString(string src, integer start, integer end);
Удаляет елементы из строки src начиная с позиции start и заканчивая позицией end. Если промежуток между конечной и начальной позицией равен 0,-1 то удалится все символы, если 0,0 то удалится первый символ , если напимер нач позиция больше конечной то удалится все (включая и позиции старта и конца)кроме того что было межу этими позициями.
A.29. llDetachFromAvatar
llDetachFromAvatar(key avatar);
Отсоединяет от автара присоединеную к нему вещь содержащую этот срипт с этой функцией по его ID.
A.30. llDetectedGrab
vector llDetectedGrab(integer number);
Возвращает вектор мгновенного движения обнаруженного обьекта по его номеру обнаружения. (не ID) . Возвращает <0,0,0> если номер не действительный.
A.31. llDetectedGroup
integer llDetectedGroup(integer number);
Возвращает TRUE если обнаруженный обьект number это участник группы владельца этого скрипта.
A.32. llDetectedKey
key llDetectedKey(integer number);
Возвращает ключ обнаруженного обьекта по его номеру обнаружения(маркеру) number. Возвращает NULL_KEY если номер не действительный.
A.33. llDetectedLinkNumber
integer llDetectedLinkNumber(integer number);
Возвращает номер обьединеного(залинкованного) обьекта по которобу было произведено нажатие и в результате чего было запущенно touches событие. 0 - если обьект не залинкован(необнаружен), 1 - если корневой обьект, 2,3,4... и т.д. - если обьект дочерний .
A.34. llDetectedName
string llDetectedName(integer number);
Возвращает имя по номеру обнаружения number обьекта. Возвращает пустую строку если номер не действительный и не совпадает с обнаруженными обьтектами.
A.35. llDetectedOwner
key llDetectedOwner(integer number);
Возвращает ключ обнаруженного обьекта владельца по номеру обнаружения number. Возвращает NULL_KEY если номер недействительный.
A.36. llDetectedPos
vector llDetectedPos(integer number);
Возвращает положение обнаруженного обьекта по его номеру обнаружения number .Возвращает <0,0,0> если number недействительный.
A.37. llDetectedRot
rotation llDetectedRot(integer number);
Возвращает поворот обнаруженного обьекта по его номеру обнаружения number .Возвращает <0,0,0,1> если number недействительный.
A.38. llDetectedType
integer llDetectedType(integer number);
Возвращает тип обнаруженного обьекта по его номеру обнаружения(маркеру) number . Тип является битовым полем содержащим в себе одну или несколько констант (AGENT, ACTIVE, PASSIVE, SCRIPTED). Возвращает 0 если указанный маркер number недействительный(т.е. Указан маркер несуществующего обьекта).
Пример:
integer type = llDetectedType(0);//получаем параметр состояния обекта
if (type & AGENT)//сравниваем с помощю побитового И
{
// ...do stuff with the agent
}
A.39. llDetectedVel
vector llDetectedVel(integer number);
Возвращает вектор скорости обнаруженного обьекта по его номеру обнаружения(маркеру) number .Возвращает <0,0,0> если number недействительный.
A.40. llDialog
llDialog(key avatar, string message, list buttons, integer channel);
Открывает "бокс сообщения" в верхнем правом углу для данного аватара и выводит на экран сообщение. В сообщение может входить до 12 кнопок которые определяются в списке buttons. Когда аватар нажимает на кнопку имя кнопки передается по определенному каналу channel. Каналы используются такиеже как функцией llSay(), таким образом канал 0 может быть услышан каждым если он находится рядом так как это общественный канал.
LLDialog(who, "Are you a boy or a girl?", [ "Boy", "Girl" ], 4913);
LLDialog(who, "This shows only an OK button.", [], 192);
llDialog(who, "This chats so you can hear it.", ["Hooray"], 0);
A.41. llDie
llDie(void);
Удалить обьект содержащий этот скрипт.
A.42. llDumpList2String
string llDumpList2String(list src, string separator);
Создает строку из списка SRC используя SEPARATOR как разделитель элементов списка в строке
A.43. llEscapeURL
string llEscapeURL(string url);
Возвращает строку преобразованную в строку из escape кодов(например ( " )прямые ковычки преобразуются вот в такую последовательность .
Экономит 20% пространства.
A.44. llEdgeOfWorld
integer llEdgeOfWorld(vector pos, vector dir);
Возвращает TRUE если линия от начальных координат pos до конечных координат dir выходит за края текущего сима (земли ) . Возвращает FALSE если концы линии находятся за пределами сима.
A.45. llEjectFromLand
llEjectFromLand(key pest);
Выбросить вредителя pest с земельной собственности по его ключу.
A.46. llEmail
llEmail(string address, string subject, string message);
Послать email по адрессу address от субьекта subject и сообщение message.
A.47. llEuler2Rot
rotation llEuler2Rot(vector vec);
Возвращает поворот представленный в системе Эйлера vec.
A.48. llFabs
float llFabs(float val);
Возвращает абсолютное значение числа val.
A.49. llFloor
integer llFloor(float val);
Возвращает наибольшее integer значение <= val.
A.50. llFrand
float llFrand(float mag);
Возвращает случайное число в диапазоне [0, mag).
A.51. llGetAccel
vector llGetAccel(void);
Получает ускорение.
A.52. llGetAttached
integer llGetAttached(void);
Возвращает точку крепления обьекта к аватару или возвращает 0 если обьект не прикреплен.
A.53. llGetAgentInfo
integer llGetAgentInfo(key id);
Возвращает информацию о данном агенте по его ID. Возвращает в виде битового поля которое можно прочитать с помощью констант agent info constants.
A.54. llGetAgentSize
vector llGetAgentSize(key id);
Если ключ id агента находится в этомже симе что и обьект с этим скриптом, возвращает размер аватара.
A.55. llGetAlpha
float llGetAlpha(integer face);
Возвращает коофициент прозрачности alpha данной стороны face. Если сторона face является ALL_SIDES возвращает значение среднего числа альфы всех сторон.
A.56. llGetAndResetTime
float llGetAndResetTime(void);
Возвращает в секундах продолжительность во внутренем хронометре скрипта. Таймер сбрасывается в ноль при вызове этой функции. Таймер также сбрасывает on rez, симулятор перезапускается , скрипт сбрасывается , и вызывается функция llResetTime. Выберите функцию llSetTimerEvent если вы хотите надежный механизм выбора времени.
A.57. llGetAnimation
string llGetAnimation(key id);
Возвращает имя анимации происхдящей в данное с аватаром по его ID.
A.58. llGetAnimationList
list llGetAnimationList(key id);
Возвращает список анимаций аватара происхдящих в данное время по его ID.
A.59. llGetBoundingBox
list llGetBoundingBox(key object);
Возвращает ограничивающий прямоугольник вокруг обьекта object (включающий любой соединеный примитив) по отношению к корневому примитиву. Возвращает значение в списке list в форме : [ (vector) min_corner, (vector) max_corner ]
A.60. llGetCenterOfMass
vector llGetCenterOfMass(void);
Возвращает центр массы коренного обьекта.
A.61. llGetColor
vector llGetColor(integer face);
Возвращает цвет данной стороны face. Если сторона face является ALL_SIDES возвращает среднее значение каждого цветового канала.
A.62. llGetCreator
key llGetCreator(void);
Возвращает ключ создателя обьекта который имеет этот скрипт.
A.63. llGetDate
string llGetDate(void);
Возвращает текущую UTC(универсальную) дату в виде --- YYYY-MM-DD.
A.64. llGetEnergy
float llGetEnergy(void);
Возвращает энергию обьекта как процент от максимума.
A.65. llGetForce
vector llGetForce(void);
Возвращает поток силы если скрипт физический.
A.66. llGetFreeMemory
integer llGetFreeMemory(void);
Возвращает доступное пространство скриптового потока(т.е. Оставшуюся свободную память которую может использовать текущий скрипт).
A.67. llGetGeometricCenter
vector llGetGeometricCenter(void);
Возвращает геометрический центр сгрупированных(залинкованых) и прикрепленных к аватару обьектов.
A.68. llGetGMTclock
float llGetGMTclock(void);
Возвращает время в секундах начиная с GMT полночи.
A.69. llGetInventoryCreator
key llGetInventoryCreator(string name);
Возвращает ключ(идентификатор) создателя обьекта name находящегося в личном инвентаре текущего обьекта.
A.70. llGetInventoryKey
key llGetInventoryKey(string name);
Возвращает ключ по заданному имени name записи(или обьекта) в личном инвентаре текущего обьекта.
A.71. llGetInventoryName
string llGetInventoryName(integer type, integer number);
Получает имя записи в личном инвентаре текущего обьекта по заданому порядковому номеру number и типу type. Выбери константу inventory constants для точного определения типа type.
A.72. llGetInventoryNumber
integer llGetInventoryNumber(integer type);
Получает количество записей в личном инвентаре текущего обьекта по заданому типу type. Выбери константу inventory constants для точного определения типа type.
A.73. llGetInventoryPermMask
integer llGetInventoryPermMask(string item, integer mask);
Возвращает ответ на запрос о разрешение mask на использование обьекта для указанного обьекта в инвентаре. Ответ возвращается в виде битовых констант Permission Mask Constants по которым можно определить какие разрешения доступны для пользователя.
Пример использования:
integer JeansPerms = llGetInventoryPermMask("Black Jeans", MASK_NEXT);
if (JeansPerms & PERM_COPY)
{
llSay(0, "Следующи владелец может копировать 'Black Jeans'":);
}
A.74. llGetInventoryType
integer llGetInventoryType(string name);
Возвращает тип обьекта name находящегося в инвентаре обьекта. Константа INVENTORY_NONE возвращается если в инвентаре не было найдено обьекта по имени name. Выбери константу inventory constants для сравнения с возвращенными функцией данными.
A.75. llGetKey
key llGetKey(void);
Получить ключ(идентификатор) обьекта с этим скриптом.
A.76. llGetLandOwnerAt
key llGetLandOwnerAt(vector pos);
Возвращает ключ владельца земли в точке этой земли pos или NULL_KEY если земля общественная.
A.77. llGetLinkKey
key llGetLinkKey(integer linknum);
Возвращает ключ обьединеного (залинкованного) обьекта по его порядковому номеру linknum . 0 -если не залинкован 1-если корневой 2- если дочерний. И т.д.
A.78. llGetLinkName
string llGetLinkName(integer linknum);
Возвращает имя обьединеного (залинкованного) обьекта по его порядковому номеру linknum . 0 -если не залинкован 1-если корневой 2- если дочерний. И т.д.
A.79. llGetLinkNumber
integer llGetLinkNumber(void);
Возвращает личный порядковый номер обьекта который обьединен с другими обьектами(залинкован) . 0 -если не залинкован 1-если корневой 2- если дочерний. И т.д.
A.80. llGetListEntryType
integer llGetListEntryType(list src, integer index);
Возвращает тип type переменной по индексу index в списке src.
A.81. llGetListLength
integer llGetListLength(list src);
Возвращает количество элементов в списке src.
A.82. llGetLocalPos
vector llGetLocalPos(void);
Возвращает локальную позицию обьекта относительно корневого обьекта .
A.83. llGetLocalRot
rotation llGetLocalRot(void);
Возвращает локальный угол поворота обьекта относительно корневого обьекта.
A.84. llGetMass
float llGetMass(void);
Возвращает массу обьекта в киллограммах. Многие материалы в SL немного меньшей плотности чем в жизни , таким образом возвращается масса немного меньше чем вы можете представить.
A.85. llGetObjectMass
float llGetObjectMass(key id);
Возвращает массу обьекта в киллограммах по его идентификатору ID. Многие материалы в SL немного меньшей плотности чем в жизни , таким образом возвращается масса немного меньше чем вы можете представить.
A.86. llGetNextEmail
llGetNextEmail(string address, string subject);
Получает следующий ожидаемый емайл с соответствующего адреса address и/или от соответствующего субьекта subject. Если параметры не заданы то данные не будут отфильтрованы и поступит первый попавшийся емайл.
A.87. llGetNotecardLine
key llGetNotecardLine(string name, integer line);
Эта функция по номеру строки line блокнота name получает содержимое одной строки через dataserver событие . Нумерация строк начинается с нуля. Если линия запроса подошла к концу блокнота dataserver событие вернет константу EOF string. Ключ возвращенный этой функцией это идетификатор который будет передаваатся dataserver событию в requested параметре.
A.88. llGetNumberOfNotecardLines
key llGetNumberOfNotecardLines(string name);
Эта функция подсчитывает количество строк блокнота name (находящегося в инвентаре обьекта) и возвращает их количество через dataserver событие . Ключ возвращенный этой функцией это идетификатор который будет передаваатся dataserver событию в requested параметре , его можно использовать для сверки - на какой запрос был получен ответ.
A.89. llGetNumberOfPrims
integer llGetNumberOfPrims(void);
Возвращает количество примитивов в сгрупированном(залинкованном или составном) обьекте .
A.90. llGetNumberOfSides
integer llGetNumberOfSides(void);
Возвращает количество сторон(граней) обьекта который содержит этот скрипт.
A.91. llGetObjectDesc
string llGetObjectDesc(void);
Возвращает дескриптор (описание такоеже примерно как name) обьекта который содержит этот скрипт.
A.92. llGetObjectName
string llGetObjectName(void);
Возвращает имя обьекта который содержит этот скрипт.
A.93. llGetObjectPermMask
integer llGetObjectPermMask(integer mask);
Возвращает ответ на запрос о разрешении маски mask для прикрепления корневого обьекта . Смотри Permission Mask Constants для большей информации. Возвращаемое значение является битовым полем.
Пример использования:
integer ObjectPerms = llGetObjectPermMask(MASK_NEXT);
if (ObjectPerms & PERM_COPY)
{
llSay(0, "The next owner may copy this item":);
}
A.94. llGetOmega
vector llGetOmega(void);
Возвращает омегу - Скорость вращения по трем осям.
A.95. llGetOwner
key llGetOwner(void);
Возвращает ключ(идетификатор) владельца обьекта (владелец это не тоже самое что создатель владелец это тот аватар который имеет текущий предмет у себя в инвентаре).
A.96. llGetOwnerKey
key llGetOwnerKey(key id);
Возвращает ключ(идентификатор) владельца обьекта по id(идентификатору) этого обьекта.
A.97. llGetPermissions
integer llGetPermissions(void);
Возвращает информацию о том какие права permissions были разрешены(выданны) . Возвращаемое значение является битовым полем (тоесть может содержать множественный ответ каждый из которых сверяется с константой).
Пример:
integer perm = llGetPermissions();
if((perm & PERMISSION_DEBIT) == PERMISSION_DEBIT)
{
// code goes here
}
A.98. llGetPermissionsKey
key llGetPermissionsKey(void);
Возвращает ключ аватара если для него разрешены права (у нешо есть право). Возвращает NULL_KEY если нет разрешения.
A.99. llGetPos
vector llGetPos(void);
Возвращает позицию обьекта в глобальных координатах сима(острова).
A.100. llGetPrimitiveParams
list llGetPrimitiveParams(list parameters);
Эта функция получает список установленых параметров текущего примитива. В списке parameters используются константы Primitive Constants обозначающие имя каждого параметра.
Пример:
llGetPrimitiveParams([PRIM_TYPE, PRIM_MATERIAL, PRIM_COLOR, ALL_SIDES, PRIM_POSITION]);
Эта функция веозвращает вот такой список параметров:
[PRIM_TYPE_BOX, PRIM_HOLE_DEFAULT, <0, 1, 0>, 0.0, <0, 0, 0>, <1, 1, 0>, <0, 0, 0>, // PRIM_TYPE
PRIM_MATERIAL_WOOD, // PRIM_MATERIAL
0, <1, 1, 1>, 1.0, // PRIM_COLOR (ALL_SIDES спцификатор, который обозначает все 6 сторон)
1, <1, 0, 0>, 0.5,
2, <0, 0, 1>, 1.0,
3, <0, 1, 0>, 1.0,
4, <0, 0, 0>, 0.5,
5, <1, 1, 1>, 1.0,
<37.341, 195.283, 31.239>] // PRIM_POSITION
A.101. llGetRegionCorner
llGetRegionCorner(void);
Возвращает вектор юго-западного угла текущего региона.
A.102. llGetRegionFPS
llGetRegionFPS(void);
Возвращает среднюю частоту кадров в текущем регионе (тоесть возвращает FPS текущего сима).
A.103. llGetRegionName
string llGetRegionName(void);
Возвращает имя текущего региона.
A.104. llGetRegionTimeDilation
float llGetRegionTimeDilation(void);
Возвращает текущее расширенное время в виде числа в промежутке от 0 до 1.
A.105. llGetRootPosition
vector llGetRootPosition(void);
Возвращает глобальное положение коренного обьекта из прикрепленного(залинкованного) к нему обьекта в котором находится этот скрипт.
A.106. llGetRootRotation
rotation llGetRootRotation(void);
Возвращает глобальное поворот коренного обьекта из прикрепленного(залинкованного) к нему обьекта в котором находится этот скрипт.
A.107. llGetRot
rotation llGetRot(void);
Возвращает поворот обьекта с этим скриптом.
A.108. llGetScale
vector llGetScale(void);
Возвращает масштаб обьекта с этим скриптом.
A.109. llGetScriptName
string llGetScriptName(void);
Возвращает имя текущего скрипта.
A.110. llGetStartParameter
integer llGetStartParameter(void);
Возвращает стартовые параметры переданные при вызове функций llRezObject или llRezAtRoot. Если обьект создан из инвентаря агента, то эта функция возвращает 0.
A.111. llGetScriptState
integer llGetScriptState(string name);
Установить Rest TRUE если скипт name запущен.
A.112. llGetStatus
integer llGetStatus(integer status);
Возвращает значение статуса status. Единственное значение будет в виде константы status constants. С помощью этой функции можно получить такие данные об оьекте как: физический обьект или нет, является ли обьект фантомом, по каким осям заблокирован поворот обьекта, можно ли его передвигать с помощью курсора мышки «Рука» и т.д.
A.113. llGetSubString
string llGetSubString(string src, integer start, integer end);
Возвращает часть строки src начиная от стартовой позиции start до конечной end, таким образом 0, 1 длина захватывает всю строку и 0,0 захватывает первый символ. Использование отрицательного номера start и/или end подсчитывает в обратном направлении в результате 0,-1 захватывает всю строку. Если start больше end то захватится вся строка за исключением символов в диапазоне от start до end. Например 6,4 захватит всю строку кроме 5 символов.
A.114. llGetSunDirection
vector llGetSunDirection(void);
Возвращает вектор направления солнца всимуляторе.
A.115. llGetTexture
string llGetTexture(integer face);
Возвращает имя текстуры с заданой стороны обьекта если такая тектстура присутствует в инвентаре обьекта
A.116. llGetTextureOffset
vector llGetTextureOffset(integer side);
Возвращает смещение текстуры на стороне обьекта side в X и Y компонентах вектора.
A.117. llGetTextureRot
float llGetTextureRot(integer side);
Возвращает поворот текстуры на стороне side.
A.118. llGetTextureScale
vector llGetTextureScale(integer side);
Возвращает маштаб текстуры на стороне side в X и Y компонентах вектора.
A.119. llGetTime
float llGetTime(void);
Возвращает второе астрономическое время из внутреннего таймера связанного со скриптом. Таймер сбрасывается on rez, симулятор перестартовывает, скрипт сбрасывается, и в вызове llGetAndResetTime или llResetTime. Выбераем llSetTimerEvent если вы хотите надежный временной механизм.
A.120. llGetTimeOfDay
float llGetTimeOfDay(void);
Получить времяв секундах осчитывая с полночи в SECOND LIFE.
A.121. llGetTimestamp
string llGetTimestamp(void);
Получить время в формате : YYYY-MM-DDThh:mm:ss.ff..fZ.
A.122. llGetTorque
vector llGetTorque(void);
Получить момент вращения если скрипт физический.
A.123. llGetVel
vector llGetVel();
Возвращает скорость.
A.124. llGetWallclock
float llGetWallclock(void);
Возвращает время в секундах с тех пор как в симуляторе наступила полночь. В настоящее время это PST.
A.125. llGiveInventory
llGiveInventory(key destination, string inventory);
Выдать деталь из инвентаря inventory Аватару или обьекту ключ которого указан в destination. Если получатель является Аватаром, тогда аватар после этого следует нормальной процедуре принятия или отказа от предложения. Если получатель является какимлибо обьектом то права доступа будут применятся как будто это были вы и перемещали в инвентаре обьекты вручную, если функция llAllowInventoryDrop была вызвана с TRUE параметрами любой другой обьект может быть пропущен в инвентарь.
A.126. llGiveInventoryList
llGiveInventoryList(key destination, string category, list inventory);
Выдать указанный перечень деталей из инвентаря аватару или обьекту ключ которого destination в томже симуляторе где находится обьект у которого это берут. Если получатель является аватаром, то он после этого следует нормальной процедуре принятия или отказа от предложения. Предложенный инвентарь после этого помещяется в папку названную category в инвентаре получателя. Если получатель является любым обьектом то к нему применяются права также как если бы это были вы и перемещали в инвентаре обьекты вручную, если llAllowInventoryDrop была вызвана с TRUE параметрами любой другой обьект может быть пропущен в инвентарь.
A.127. llGiveMoney
llGiveMoney(key destination, integer amount);
Передает сумму amount с помощью скрипта владельца в пункту назначения destination . Это вызов не будет успешным если не был установленно разрешение PERMISSION_DEBIT
A.128. llGround
float llGround(vector offset);
Возвращает высоту земли по кординатам обьекта со смещение координат offset
A.129. llGroundContour
vector llGroundContour(vector offset);
Возвращает контур земли по кординатам обьекта со смещение координат offset
A.130. llGroundNormal
vector llGroundNormal(vector offset);
Возвращает вектор нормалей земли по кординатам обьекта со смещение координат offset
A.131. llGroundRepel
llGroundRepel(float height, integer water, float tau);
Критическая аммортизация(тормоз) по высоте height , если высота в пределах height * 0.5 уровня. Height выше уровня земли вода water - FALSE , или выше уровня земли и вода если water - TRUE
A.132. llGroundSlope
vector llGroundSlope(vector offset);
Возвращает уклон земли под позицией обьекта со смещением offset
A.133. llInsertString
string llInsertString(string dst, integer position, string src);
Вставить строку src в строку dst на позицию position и вернуть результат.
A.134. llInstantMessage
llInstantMessage(key user, string message);
Послать сообщение message юзеру(по ключу) user согласно мнгновенному сообщению.
A.135. llKey2Name
string llKey2Name(key id);
Если обьект с этим ID находится в этомже симуляторе(територии), возвращается имя обьекта.
A.136. llList2CSV
string llList2CSV(list src);
Создает строку отделенную запятыми со значениями из списка src.
A.137. llList2Float
float llList2Float(list src, integer index);
Возвращает значение с плав точкой float по индексу index из списка src.
A.138. llList2Integer
integer llList2Integer(list src, integer index);
Возвращает целое integer по индексу index из списка src.
A.139. llList2Key
key llList2Key(list src, integer index);
Возвращает ключ key по индексу index из списка src.
A.140. llList2List
list llList2List(list src, integer start, integer end);
Возвращает новый список как часть списка от стартовой позиции start до конечной end из списка src . Если промежуток между конечной и начальной позицией равен 0,-1 то вернется весь список, если 0,0 то вернется первый элемент , если напимер начальная позиция больше конечной то вернется все (включая и позиции старта и конца)кроме того что было межу этими позициями.
A.141. llList2ListStrided
list llList2ListStrided(list src, integer start, integer end, integer stride);
Копирует равные доли из списка src начиная от позиции start до позиции end c шагом stride.
A.142. llList2Rot
rotation llList2Rot(list src, integer index);
Возвращает переменную типа ротация по индексу index из списка src.
A.143. llList2String
string llList2String(list src, integer index);
Возвращает строку по индексу index из списка src.
A.144. llList2Vector
llList2Vector(list src, integer index);
Возвращает вектор по индексу index из списка src.
A.145. llListFindList
integer llListFindList(list src, list test);
Возвращает позицию первого встретившегося значения test из списка src. - 1(минус один) - возвращается если в списке src нет ни одного элемента из списка test.
A.146. llListInsertList
list llListInsertList(list dest, list src, integer pos);
Возвращает созданный лист list при вставке src в dest на позицию pos.
A.147. llListRandomize
list llListRandomize(list src, integer stride);
Возвращает случайное значение из списка src в виде блока размером stride. Если длина указанного блока равна 0 то функция не производит рандомизацию.
A.148. llListReplaceList
list llListReplaceList(list dest, list src, integer start, integer end);
Возвращает созданный список после замены сегмента из dest списка на сегмент из src списка , начальная позиция которого - start и конечная - end.
A.149. llListSort
list llListSort(list src, integer stride, integer ascending);
Возвращает отсортированный список src в порядке возростания (если ascending TRUE)или убывания (если ascending FALSE) .Сортировка производится блоками с размером в ascending элементов. Запись этой сортировки работает только с одним и тем-же типом заголовка каждого сортируемого блока.
A.150. llListen
integer llListen(integer channel, string name, key id, string msg);
Активирует вызов прослушивающего Listen события при появлении сообщения msg на канале chanel от обьекта (аватара)name и обьекта(аватара)ключ которого id, можно использовать для деактивации или активации прослушивающего события Listen. Name , id и / или msn параметры могут быть пустыми если вы не хотите использовать какие либо аргументы для фильтрации прослушки. Канал 0 это канал ощественного чата , текст чата будет виден всем аватарам. Каналы от 1 до 2,147,483,648 скрытые каналы которые не посылаются аватарам.
Функция возвращает маркер который нужен для использования в таких функциях как llListenControl и llListenRemove.
A.151. llListenControl
llListenControl(integer number, integer active);
Активирует или дезактивирует Listen событие. Использует маркер полученный функцией llListen в параметре number для того чтобы определить какое событие вы контролируете. Используйте boolean значения для установки параметра active.
A.152. llListenRemove
llListenRemove(integer number);
Удаляет Listen событие. Использует маркер полученный функцией llListen в параметре number для того чтобы определить какое событие нужно удалить.
A.153. llLoadURL
llLoadURL(key avatar_id, string message, string url);
Показывает диалоговое окно юзеру avatar_id С сообщением message и предлагает перейти на вэб страницу по адресу url. Если юзер нажимает кнопку "Перейти на страницу" - запускается установленный по умолчанию браузер и направляетс на url.
url должен начинатся с "http:" или "https:", другой протокол в настоящее время не поддерживается. Диалоговый бокс показывает имя Владельца обьекта так что при злоупотреблении о спалме можно легко сообщить. Эта функция имеет 10 сек задержку.
A.154. llLog
float llLog(float val);
Возвращает натуральный логарифм (base e) числа val если val > 0 иначе возвращает ноль.
A.155. llLog10
float llLog10(float val);
Возвращает десятичный логарифм числа (base 10) val если val > 0 иначе возвращает ноль.
A.156. llLookAt
llLookAt(vector target, float strength, float damping);
Установить поворот обьекта по направлению к цели (направить взгляд или прицелится) координаты которой заносятся в параметр target - после выполнения этой функции обьект повернется к цели и ось Z обьекта будет направленна в центр цели target. Подходящее значение strength лучше установить приблизетельно равной половине массы обьекта , и подходящее значение damping лучше установить менее чем 1/10 силы. Асимметричные формы обьектов требуют меньшего демпфирования damping. Сила strength равная 0.0 отменяет поворот взгляда обьекта на цель.
A.157. llLoopSound
llLoopSound(string sound, float volume);
Эта функция подобна llPlaySound и также проигрывает музыкальный файл с именем sound и громкостью volume прикрепленный к обьекту, но как только проигрывание файла завершается файл начинает проигрыватся снова по кругу без остановок. Остановить циклическое проигрывание файла можно с помощью функции llStopSound либо перейти на одноразовое прогигрывание м помощью функции llPlaySound. Только один музыкальный файл прикрепленный к обьекту может проигрыватся одновременно . Повторный вызов этой фунции с тем-же именем файла не будет вызывать его проигрывание сначала, но новый параметр звука volume будет использован. Это позволяет контролировать излишнюю громкость звука воспроизведения файла. Установка громкости звука в ноль не тоже самое что использование функции llStopSound; звук с нулевой громкость также будет циклически воспроизводится но не будет слышен. Для рестарта проигрывания звука сначало вызовите фцнкцию llStopSound и после нее можете вызывать функцию llLoopSound снова.
A.158. llLoopSoundMaster
llLoopSoundMaster(string sound, float volume);
Поведение этой функции идентично поведению llLoopSound, но с дополнительной маркировкой источника как "Sync Master", с использованием "Slave" музыкальной синхронизации. Если будет много источников такого звука в пределах области интересов зрителя, то самый слышимый звук (с помощью механизма расстояния и объема) будет звук владельца . Использование большого количества источников в пределах маленькой области вряд ли произведет желательный эффект.
A.159. llLoopSoundSlave
llLoopSoundSlave(string sound, float volume);
Поведение этой функции идентично поведению llLoopSound, Если нет "Sync Master" звуковых файлов. Если Sync Master будет уже играть, то звук Slave начнет играть с того же самого пункта, владелеца находящегося в цикле, пункты зацикливания обоих звуков будут синхронны. Если звук Master начнет играть, когда Slave уже играет, то Slave будет пропускатся и синхронизироватся с Master.
A.160. llMakeExplosion
llMakeExplosion(integer particles, float scale, float velocity, float lifetime, float arc, string texture, vector offset);
Создать шарообразный взрыв частиц с использованием texture находящуюся в инвентаре обьекта.
A.161. llMakeFire
llMakeFire(integer particles, float scale, float velocity, float lifetime, float arc, string texture, vector offset);
Создать огненные частицы с использованием texture находящуюся в инвентаре обьекта.
A.162. llMakeFountain
llMakeFountain(integer particles, float scale, float velocity, float lifetime, float arc, string texture, vector offset);
Создать фонтан из частиц с использованием texture находящуюся в инвентаре обьекта.
A.163. llMakeSmoke
llMakeSmoke(integer particles, float scale, float velocity, float lifetime, float arc, string texture, vector offset);
Создать частицы дыма с использованием texture находящуюся в инвентаре обьекта.
A.164. llMD5String *****
string llMD5String(string str, integer nonce);
Выполняет защиту данных RSA, Inc. MD5 Message-Digest Algorithm on str with nonce. The function returns the digest as a 32 character hex string. The digest is computed on the string in the following format:
str + ":" + (string)nonce
A.165. llMessageLinked
llMessageLinked(integer linknum, integer num, string str, key id);
Послать num, str , и ID всем примитивам в установленном обьединении(залинкованным). Linknum параметр это один из двух числовых коофициентов полученых с помощью функцию llGetLinkNumber или константы link constant .
A.166. llMinEventDelay
llMinEventDelay(float delay);
Установить минимум времени между обработчиками событий.
A.167. llModifyLand
llModifyLand(integer action, integer size);
Модифицировать землю с action согласно размеру size площади параметры могут быть выбраны из land constants. Констант.
A.168. llModPow
integer llModPow(integer a, integer b, integer c);
Увеличить силу от a до b используя счетчик с. b может принимать максимум 16-и битное значение 0xFFFF (16 bits).
A.169. llMoveToTarget
llMoveToTarget(vector target, float tau);
Затухающее движение с текущей позиции в позицию target , затухание в tau секундах . Работает только с физическими обьектами. Подходящее значение для tau приблизительно = 0.2. Если tau = 0.0 то затухающее движение будет остановленно.
A.170. llOffsetTexture
llOffsetTexture(float offset_s, float offset_t, integer face);
Установить смещение текстуры S и T на стороне face. Если установлена константа ALL_SIDES текстура сместится на всех сторонах.
A.171. llOpenRemoteDataChannel
llOpenRemoteDataChannel(void);
Создать(Открыть) канал для прослушивания XML-RPC вызовов . Будет запускатся remote_data событие с типом type = REMOTE_DATA_CHANNEL и ID канала когдато может пригодится.
A.172. llOverMyLand
integer llOverMyLand(key id);
Возвращает TRUE если Обект с ключом ID не принадлежит этой земле и FALSE если принадлежит.
A.173. llParcelMediaCommandList
llParcelMediaCommandList(list command_list);
Контролирует воспроизведение видеороликов и других multimedia ресурсов на парцелле земли. Использует константы: PARCEL_MEDIA_COMMAND_PLAY, PARCEL_MEDIA_COMMAND_LOOP, PARCEL_MEDIA_COMMAND_TEXTURE, PARCEL_MEDIA_COMMAND_URL, PARCEL_MEDIA_COMMAND_TIME, PARCEL_MEDIA_COMMAND_AGENT, PARCEL_MEDIA_COMMAND_UNLOAD, or PARCEL_MEDIA_COMMAND_AUTO_ALIGN.
Возможно использовать только один видеоролик (или "media" ресур) на одной земляной парцеле(територии). Ролик будет проигрыватся, заменяя текстуру на объекте на видеоэкран. Пользователи будут видеть ролик, только тогда когда они будут находится на вашей части земли. Иначе они будут видеть статическую текстуру.
В проигрыватель мультимедиа включенна поддержка большинства QuickTime форматов например:
- QuickTime movies (.mov)
- Streamable stored QuickTime movies (.mov)
- Real time QuickTime streams (rtsp://)
- MPEG4 movies (.mp4, .mpeg4) (толко простого профиля)
- QuickTime VR scenes and objects (.mov)
- Flash movies (.swf) (только не интерактивных, версии 5 и выше)
- И множество других о которых можно узнать с сайта <a href="http://www.apple.com/quicktime/products/qt/specifications.html" rel="nofollow">http://www.apple.com/quicktime/products/qt/specifications.html</a>
Есть хорошее правило гласящее , что если это будет проигрывать плеер QuickTime Media Player, то и в Second Life это тоже будет проигрыватся.
Вы можете установить воспроизведение ролика как указано ниже:
- Выберите текстуру из вашего инвентаря для статичной видеотекстуры. Эта текстура не должна быть общей и присутствовать гдето еще так как видеопоток отобразится на всех таких текстурах.
- Примените эту текстуру к обьекту.
- Правой кнопкой мыши нажмите на вашей землю и выберите закладку "About Land...".
- В нижней "Options" выберите статичную текстуру которую вы заранее подобрали для видеопотока.
- Введите URL Вашего медиа потока.
- Создайте обьект и нажмите на кнопках PLAY, STOP, PAUSE и LOOP (на стандартно меню плеера)
- Прикрепите этот скрипт к обьекту.
default
{
touch_start ( integer total_number )
{
// Будет проигрывать текущий ролик для всех агентов на вашей части земли.
llParcelMediaCommandList( [PARCEL_MEDIA_COMMAND_LOOP] );
}
}
Или более функциональный пример:
float START_TIME = 30.0;
float RUN_LENGTH = 10.0;
default
{
state_entry()
{
llParcelMediaCommandList( [PARCEL_MEDIA_COMMAND_URL, "<a href="http://enter_your.url/here" rel="nofollow">http://enter_your.url/here</a>", PARCEL_MEDIA_COMMAND_TEXTURE, (key) llGetTexture(0) ] );
}
touch_start(integer num_detected)
{
llParcelMediaCommandList( [
PARCEL_MEDIA_COMMAND_AGENT, llDetectedKey(0),
PARCEL_MEDIA_COMMAND_TIME, START_TIME,
PARCEL_MEDIA_COMMAND_PLAY ] );
list Info = llParcelMediaQuery([PARCEL_MEDIA_COMMAND_URL, PARCEL_MEDIA_COMMAND_TEXTURE]);
llSay(0, "Playing '" + llList2String(Info, 0) + "' on texture '" + (string)llList2Key(Info, 1) + "' for agent " + llDetectedName(0));
llSetTimerEvent(RUN_LENGTH);
}
timer()
{
llParcelMediaCommandList( [ PARCEL_MEDIA_COMMAND_STOP ] );
llSetTimerEvent(0.0);
}
}
A.174. llParcelMediaQuery
list llParcelMediaQuery(list query_list);
Контролирует воспроизведение роликов и других мультимедиа ресурсов на Собственной земле. Команда может быть одной из констант PARCEL_MEDIA_COMMAND_TEXTURE или PARCEL_MEDIA_COMMAND_URL.
Это функция позволяет вам сделать запрос на текстуру или URL для медиа пакета. Для примера использования рассмотрите функцию llParcelMediaCommandList .
A.175. llParseString2List
list llParseString2List(string src, list separators, list spacers);
Разбивает строку src используя разделители описанные в списке separators и прерыватели spacers .Выдает результат в виде списка. Разделителей и прерывателей можно использовать по 8 параметров.
Пример:
llParseString2List("Parsethisnow! I dare:you to.", ["this", "!", " "], [":"]);
Результат в виде списка:
["Parse", "now", "I", "dare", ":", "you", "to"]
A.176. llParseStringKeepNulls
list llParseStringKeepNulls(string src, list separators, list spacers);
Разбивает строку src используя разделители описанные в списке separators и прерыватели spacers .Выдает результат в виде списка. Разделителей и прерывателей можно использовать по 8 параметров. Любой нулевой результат будет сохранен в виде нуля.
Пример:
llParseString2List("!Parsethisthisnow I dare::you to.", ["this", "!", " "], [":"]);
Результат в виде списка.
[NULL, "Parse", NULL, "now", "I", "dare", ":", NULL, ":", "you", "to"]
A.177. llParticleSystem
llParticleSystem(list parameters);
Создать систему частиц базирующуюся на параметрах перечисленных в List parameters. Параметры используют специальный ордер а потом его значение. Действительные параметры и значения могут быть выбранны с помошью констант particle system constants.
Пример:
llParticleSystem([PSYS_PART_FLAGS, PSYS_PART_WIND_MASK,
PSYS_PART_START_COLOR, <1,0,0>,
PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE]);
A.178. llPassCollisions
llPassCollisions(integer pass);
Если параметр pass установлен в TRUE соприкосновение с обьектом передается также и дочерним залинкованым обьектам
A.179. llPassTouches
llPassTouches(integer pass);
Если pass установлен в TRUE все клики по потомственным обьектам передаются родительскому обьекту
A.180. llPlaySound
llPlaySound(string sound, float volume);
Проигрывает музыкальный файл с именем sound и громкостью volume прикрепленный к обьекту один раз. Остановить проигрывание файла можно с помощью функции llStopSound либо перейти на многоразовое прогигрывание м помощью функции llLoopSound. Только один музыкальный файл прикрепленный к обьекту может проигрыватся одновременно . Повторный вызов этой фунции с тем-же именем файла не будет вызывать его проигрывание сначала, но новый параметр звука volume будет использован. Это позволяет контролировать излишнюю громкость звука воспроизведения файла. Установка громкости звука в ноль не тоже самое что использование функции llStopSound; звук с нулевой громкость также будет воспроизводится но не будет слышен. Для рестарта проигрывания звука сначало вызовите фцнкцию llStopSound и после нее можете вызывать функцию llPlaySound снова.
A.181. llPlaySoundSlave
llPlaySoundSlave(string sound, float volume);
Поведение этой функции идентично поведению llPlaySound, Если нет "Sync Master" звуковых файлов. Если Sync Master будет уже играть, то звук Slave начнет играть с того же самого пункта, владелеца , пункты обоих звуков будут синхронны. Если звук Master начнет играть, когда Slave уже играет, то Slave будет пропускатся и синхронизироватся с Master.
A.182. llPointAt
llPointAt(vector pos);
Сделать аватара владельцем обьекта на позиции pos // в настоящее время устарела и не работает
A.183. llPow
llPow(float base, float exp);
Возвращает результат числа base в степени exp.
A.184. llPreloadSound
llPreloadSound(string sound);
Предварительная загрузка звукового файла sound из инвентаря неподалеку от слушателя.
A.185. llPushObject
llPushObject(key id, vector impulse, vector angular_impulse, integer local);
Применить импульс(толчок) impulse и импульс вращения angular_impulse к обьекту или аватару с ключем id
Для получения массы llGetObjectMass может быть применен гденибудь в пределах сима.
Параметр local принимает булеан значение TRUE либо FALSE и включает вращение вокруг обьекта с заданым id или нет.
A.186. llReleaseControls
llReleaseControls(key avatar);
Остановить опрос команд ввода с клавиатуры для аватара.
A.187. llRemoteDataReply
llRemoteDataReply(key channel, key message_id, string sdata);
Послать XML-RPC ответное сообщение message_id по каналу со полезными строковыми данными sdata.
A.188. llRemoteDataSetRegion
llRemoteDataSetRegion(void);
В случае если любой обьект испльзуя удаленных какнал данных remote data channels, то вы должны вызвать эту функцию чтобы зарегистрировать удаленный канал данных. Вы не сможете вызывать функцию если ваш обьект не находится за пределами вашего региона и не использует дистанционный канал remote data channels.
A.189. llRemoteLoadScript
llRemoteLoadScript(void);
Устраевший(глючный). Пожалуйста выберите llRemoteLoadScriptPin
A.190. llRemoteLoadScriptPin
llRemoteLoadScriptPin(key target, string name, integer pin, integer running, integer param);
Если у владельца этого обьекта есть права на передачу скрипта в инвентарь другого обьекта, ключ которого target, и владелец имеет правильный код pin и обьекты находятся в томже регионе что и обьект передающий скрипт, то скрипт name будет скопирован из инвентаря текущего обьекта в инвентарь указанного обьекта target, если параметр running == TRUE то после того как скрипт скопируется в другой обьект он сразу запустится, параметр param (которые можно получит в созданном скрипте с помощью функции llGetStartParameter). Если имя name уже существует в инвентаре цели, то скрипт будет заменен только что полученным скриптом.
A.191. llRemoveInventory
llRemoveInventory(string inventory);
Удалить обьект или запись name из инвентаря.
A.192. llRemoveVehicleFlags
llRemoveVehicleFlags(integer flags);
Установить флаг транспортного средства в FALSE.
Используемые параметры нужно выбрать из набора констант vehicle flags constants .
A.193. llRequestAgentData
key llRequestAgentData(key id, integer data);
Эта функция нужна для запроса данных об каком либо аватаре по его id. Если информация об автаре будет собрана то результат будет возвращен через событие dataserver. Ключ который возвращает функция будет в точности такойже как и ключ возвращенный событием - это можно использовать для сверки для какого запроса были полученны данные. В параметре data и данных полученных в событии споьзуется набор констант agent data constants . По которым можно разобрать полученные данные.
A.194. llRequestInventoryData
key llRequestInventoryData(string name);
Запрашивает данные об обьекте name из инвентаря текущего обьекта. Результат запроса будет получен в событии dataserver. Если были запршенны данные о landmark то вернется результат в форме "<...,...,...>" это будут координаты земли. Ключ возвращаемый фунцией исползуется для проверки соответствия полученного ответа в событии.
A.195. llRequestPermissions
llRequestPermissions(key avatar, integer perm);
Узнать есть ли права доступа у аватара по ключу avatar на изменение чего - либо заданного константой perm. Perm параметр использует константы permission constant. Резултат будет возвращен в событии run_time_permissions
A.196. llRequestSimulatorData
key llRequestSimulatorData(string sim_name, integer data);
Эта функция запрашивает данные о симуляторе sim_name . Когда иформация собрана , запускается dataserver событие которое возвращает ключ переданный функцией в параметре requested. Смотрите simulator data constants для уточнения деталей насчет значений параметра data и значений которые возвращает dataserver событие.
A.197. llResetScript
llResetScript(void);
Перезапустить скрипт.
A.198. llResetOtherScript
llResetOtherScript(string name);
Перезапустить скрипт по его имени name.
A.199. llResetTime
llResetTime(void);
Установить внутренний скрипт таймер в ноль.
A.200. llRezAtRoot
llRezAtRoot(string inventory, vector pos, vector vel, rotation rot, integer param);
Создать обьект из инвентаря inventory, в позиции pos со скоростью vel и поворотом rot. Последний выбранный корневой обьект координируется в мультиобьект и веделение придет к позиции pos выделенный. Все другие обьекты в выделении будут создаватся Родственными (дочерними) до конца выделения коренной позиции. Значение Param доступно недавно созданным обьектом в on_rez событии или библиотечной функции llGetStartParameter . Параметр vel игнорируется если создаваемый обьект не физический.
A.201. llRezObject
llRezObject(string inventory, vector pos, vector vel, rotation rot, integer param);
Создать обьект из инвентаря inventory, в позиции pos со скоростью vel и поворотом rot. Значение Param доступно недавно созданным обьектом в on_rez событии или библиотечной функции llGetStartParameter . Параметр vel игнорируется если создаваемый обьект не физический.
A.202. llRot2Angle
float llRot2Angle(rotation rot);
Возвращает угол вращения представленный в виде rot.
A.203. llRot2Axis
vector llRot2Axis(rotation rot);
Возвращает поворотные оси представленные в rot.
A.204. llRot2Euler
vector llRot2Euler(rotation rot);
Возвращает угол Эйлера представленный в виде rot.
A.205. llRot2Fwd
vector llRot2Fwd(rotation rot);
Возвращает направление осей представленных в виде rot.
A.206. llRot2Left
llRot2Left(rotation rot);
Возвращает левую ось представленных в виде rot.
A.207. llRot2Up
llRot2Up(rotation rot);
Возвращает ось вращения представленную в виде rot.
A.208. llRotBetween
rotation llRotBetween(vector a, vector b);
Возвращает угол поворота между векторами a и b.
A.209. llRotLookAt
llRotLookAt(rotation rot, float strength, float damping);
Установить поворот обьекта .Эта функция работает также как llLookAt только без использование прицела . Обьект повернется на угол заданный в параметре rotation rot. Подходящее значение strength лучше установить приблизетельно равной половине массы обьекта , и подходящее значение damping лучше установить менее чем 1/10 силы. Асимметричные формы обьектов требуют меньшего демпфирования damping. Сила strength равная 0.0 отменяет поворот обьекта.
A.210. llRotTarget
integer llRotTarget(rotation rot, float error);
Установить постоянное вращение обьекта(цели) в пределах error с коэфициентом вращения rotation после чего обьект будет рассматриватся как цель вращения и функция вернет маркер(типа ключа) цели. После чего можно будет использовать этот маргер как указатель на обьект и производит разннообразные операции над ним например с помощью функции llRotTargetRemove - котрорая остановит вращение цели по ее маркеру.
A.211. llRotTargetRemove
llRotTargetRemove(integer number);
Остановить постоянное вращение цели(обьекта) по его маркеру number.
A.212. llRotateTexture
llRotateTexture(float radians, integer face);
Установить поворот текстуры в радианах radians на стороне face.
A.213. llRound
integer llRound(float val);
Возвращает округленное целое значение числа val
A.214. llSameGroup
integer llSameGroup(key id);
Возвращает TRUE если обьект или аватар id входит в Группу которой принадлежит текущая земля . Иначе вернет FALSE.
A.215. llSay
llSay(integer channel, string text);
Сказать текст text по каналу channel .
A.216. llScaleTexture
llScaleTexture(integer scale_s, integer scale_t, integer face);
Установить масштаб текстуры на стороне face по scale_s и scale_t параметрам. Если в параметре face используется константа ALL_SIDES масштаб текстур будет установлен на всех сторонах обьекта
A.217. llScriptDanger
integer llScriptDanger(vector pos);
Возвращает true если коррдинаты pos находятся на чужой територии
A.218. llSendRemoteData
key llSendRemoteData(key channel, string dest, integer idata, string sdata);
Посылает XML-RPC запрос в dest через канал chennel с полезным грузом в виде целого числа idata и строки sdata.
Любой XML-RPC ответ запускает remote_data событие с типом type = REMOTE_DATA_REPLY. Событие возвращает message_id который может быть использован для идентификации XML-RPC ответа соответстыует ли он своему запросу.
A.219. llSensor
llSensor(string name, key id, integer type, float range, float arc);
Выполняет одиночное сканирование(т.е. Сканирование производится только один раз ) по имени обьекта name и по его ID по типу искомого обьекта type в радиусе range метров и в пределах угла arc в радианах из переданного вектора . Задавая пустое имя или ключ, не будут фильтроватся результаты по этим параметрам. Дистанция 0.0 делает сканирование не выполнимым. Дистанция ограничена 96.0 метрами. Параметр type должен быть соответствовать одной из констант object type constant . Если что нибудь обнаружено запускаетс событие sensor .Максимум 16 обнаруженных обьектов может быть переданно в событие. Если при сканировании ничего не обнаруженно запускается событие no_sensor . После того как цель была обнаружена и ее параметы были переданны событию sensor , с помощью разнообразных функций типа llDetection* можно собрать обширную информацию об обнаруженном обьекте.
Замечания: Сенсор не обнаруживает обьект где находится сам сенсор и не обнаруживает агента к которому прикреплен этот сенсор(других агентов и обьекты он обнаруживает).
Тип искомого обьекта должен быт определенн с помощю одной или несколгих констант из набора: AGENT, ACTIVE, PASSIVE и/или SCRIPTED.
Типы искомого обьекта можно комбинировать с помощью побитового OR (|). Например, AGENT | ACTIVE.
Сочетание типа SCRIPTED с другими может привести к несколько неожиданным результатам:
SCRIPTED будет обнаруживать активные скрипты или двигающиеся объекты, содержащие скрипт.
AGENT | SCRIPTED будет обнаруживать активные скрипты или двигающиеся объекты, содержащие скрипт; АГЕНТЫ НЕ БУДУТ НАЙДЕНЫ!
ACTIVE | SCRIPTED будет обнаруживать активные скрипты или двигающиеся объекты, которые содержат скрипт; не будут найдены физические перемещающиеся объекты без скриптов.
PASSIVE | SCRIPTED будет обнаруживать активные скрипты, нефизические объекты без скриптов и физические объекты, содержащие скрипт; не будут найдены физические неподвижные объекты, в которых нет скрипта.
A.220. llSensorRemove
llSensorRemove(void);
Удалить сенсор установленный с помощью функции llSensorRepeat
A.221. llSensorRepeat
llSensorRepeat(string name, key id, integer type, float range, float arc, float rate);
Выполняет сканирование пространства на нахождение обьекта имя которого name и ID , сканирование можно фильтровать выберая одну или несколько масок из набора констант Object Type Constants, помимо этого нужно задать дальность сканирования range и угол в пределах которого производить сканирование в заданном радиусе периметра сканирования, Эта функция включает сканирование каждые заданные rate секунд. Пустое имя определяется NULL_KEY и индефикация не фильтрует результаты ID и работает для любых имен и ID. C диапазоном range равным 0.0 сканирование будет приостановленно. Предел радиуса сканирования 96.0 метров. Параметры типа должны быть любыми
object type constant значениями. Если что либо найдено во время сканирования запускается событие sensor . Максимум , возможно передать 16 предметов к этому событию. Если ничего не найдено во время сканирования то взамен будет запущено событие no sensor. Работает абсолютно также как и llSensor за исключение того что сканирование будут атоматически повторятся через заданный промежуток времени
A.222. llSetAlpha
llSetAlpha(float alpha, integer face);
Установить альфа значение на сторону face. Если fase является ALL_SIDES , устанавливает альфу на все стороны
A.223. llSetBuoyancy
llSetBuoyancy(float buoyancy);
Установить плавучесть buoyancy обьекта. Значение 0 - неплавучий, меньше чем 1.0 плавучий, и больше чем 1.0 повышенная плавучесть.
A.224. llSetCameraAtOffset
llSetCameraAtOffset(vector offset);
Установить смещение камеры относительно обьекта на который присел аватар.
A.225. llForceMouselook
llForceMouselook(integer mouselook);
Перевести камеру в MouseLook-вид относительно обьекта на котором сидит аватар. Параметр mouselook может принимать значение TRUE либо FALSE.
A.226. llSetCameraEyeOffset
llSetCameraEyeOffset(vector offset);
Установить смещение координат камеры если аватар сидит на этом обьекте.
A.227. llSetColor
llSetColor(vector color, integer face);
Установить цвет color на сторону face. Если в параметре face написать константу ALL_SIDES то цвет будет установлен на все стороны обьекта.
A.228. llSetDamage
llSetDamage(float damage);
Установить индикатор повреждения. Этот обьект будет разрушен если он будет задет другим оьектом наносящим повреждения.
A.229. llSetForce
llSetForce(vector force, integer local);
Если обьект физический то эта функция устанавливает силу force. Чтобы установить вектор в локальных координатах параметр local надо установить в TRUE, а в глобальн коорд в FALSE.
A.230. llSetForceAndTorque
llSetForceAndTorque(vector force, vector torque, integer local);
Если обьект физический то эта функция задает силу force и вращающий момент torque обьекта. Чтобы установить вектор в локальных координатах параметр local надо установить в TRUE, а в глобальн коорд в FALSE.
A.231. llSetHoverHeight
llSetHoverHeight(float height, float water, float tau);
Установить минимальную высоту от земли и от воды на которой будет находится(парить) физический обьект. Высота будет установленна для земли и воды если флаг water будет TRUE.
A.232. llSetLinkAlpha
llSetLinkAlpha(integer linknumber, float alpha, integer face);
Устанавливает прозрачность связаного(залинкованного) обьекта с текушим по его номере связи linknumber , прозрачность можно установить на определенную сторону обекта по указателю face Ели использовать константу ALL_SIDES, то прозрачность будет установлена на все стороны.
A.233. llSetLinkColor
llSetLinkColor(integer linknumber, vector color, integer face);
Устанавливает цвет связаного(залинкованного) обьекта с текушим по его номере связи linknumber , цвет монжо установить на определенную сторону обекта по указателю face Ели использовать константу ALL_SIDES, то цвет будет установлен на все стороны.
A.234. llSetLocalRot
llSetLocalRot(rotation rot);
Устанавливает поворот обьекта относительно локальных координат оьекта(относительно координат корневого обьекта)
A.235. llSetObjectDesc
llSetObjectDesc(string description);
Установить описание description обьекта.
A.236. llSetObjectName
llSetObjectName(string name);
Установить Имя name обьекта.
A.237. llSetParcelMusicURL
llSetParcelMusicURL(string url);
Установить URL audio поток для той земли где расположен в настоящее время обьект в котором этот скрипт. URL должен быть любой http указывающий на поток mp3 или ogg данных.
A.238. llSetPayPrice
llSetPayPrice(integer default_price, list quick_pay_buttons);
Установить цену по умолчанию из прайса и добавочную цену .И установить кнопки в платежном окне когда кто то платит обьекту. Смотрите Pay Button Constants.
A.239. llSetPos
llSetPos(vector pos);
Если обьект не физический, эта функция устанавливает его положение в региональных координатах. Если обьект дочерний(залинкованный), координаты расматриваютс как локальные (относительно коренного обьекта).
A.240. llSetPrimitiveParams
llSetPrimitiveParams(list rules);
Установить базовые парметры(параметры которые используются для редактирования обьекта) примитива по правилу rules. Rules это точно определенный список параметров и значений. Действующие значения могут быть выбранны и из констант Primitive Constants . Вот простой пример:
llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_BOX, PRIM_HOLE_DEFAULT, <0,1,0>,0.5, <-0.2, 0.2, 0>, <0.5,0.5,0>,<-0.5,0.5,0>]);
A.241. llSetRemoteScriptAccessPin
llSetRemoteScriptAccessPin(integer pin);
Если pin установлен не в-ноль, задача будет принята отдаленным скриптом загружаемым через llRemoteLoadScriptPin если пин корректный. Иначе функция llRemoteLoadScriptPin будет проигнорированна.
A.242. llSetRot
llSetRot(rotation rot);
Если обьект не физический, эта функция установит поворот обьекта. Если обьект дочерний(залинкованный), то поворот будет произведен относительно локальных координат(или координат корневого обьекта).
A.243. llSetScale
llSetScale(vector scale);
Установить маштаб(размер) обьекта.
A.244. llSetScriptState
llSetScriptState(string name, integer run);
Установить состояние запуска скрипта name, в состояние "запущен" либо "незапущен" TRUE либо FALSE
A.245. llSetSitText
llSetSitText(string text);
Установить (заменить) текстовую команду "Присесть" которая отображается в меню после нажатия правой клавиши мыши на предмете.
A.246. llSetSoundQueueing
llSetSoundQueueing(integer queue);
Настройка свойств звука - прерываются ли звуки игры функциями llPlaySound, llLoopSound . По умолчанию для всех обьектов это свойство звука равно FALSE. Установите значение TRUE для того чтобы ожидать окончания игрового звука а затем продолжать по очереди пользовательский звук. Параметр queue является уровнем глубины очереди.
A.247. llSetStatus
llSetStatus(integer status, integer value);
Установить статус обьекта с помощью констант status constants переданных в параметр status со значением value. С помощью этой функции можно устанновить статус обьекта такой как: физический обьект или нет, является ли обьект фантомом, по каким осям заблокирован поворот обьекта, можно ли его передвигать с помощью курсора мышки «Рука» и т.д.
A.248. llSetText
llSetText(string text, vector color, float alpha);
Установить текст text который будет парить над обьектом, текст будет указанного цвета color и прозрачности alpha.
A.249. llSetTexture
llSetTexture(string texture, integer face);
Установить текстуру texture из инвентаря (либо по ключу текстуры который надо написать в каквычках) на сторону face. Если face задан константой ALL_SIDES текстура установится на все стороны.
A.250. llSetTextureAnim
llSetTextureAnim(integer mode, integer face, integer sizex, integer sizey, float start, float length, float rate);
Включает анимацию текстуры с установленными параметрами маштаба и смещения тайла(одного кадра из множества размещенных в одной картинке). Параметр mode используетс для передачи одной из констант из набора texture animation constants. Вы можете выбрать толбьо один набор текстурных анимаций для одного обьекта. Повторный вызов этой функции сбросит текущую анимацию и установит новую. Вы можете одновременно использовать только одну традиционную анимацию ROTATE или SCALE. Вы не можете комбинировать маски друг с другом. Анимации ROTATE или SCALE будут игнорировать параметры sizex и sizey, а параметры start и lenght будут использованны для анимации. Для вращения start и length нужно задавать в радианах.
Параметр face определяет на каких сторонах(гранях) примитива будет происходить анимация. Если face равен константе ALL_SIDES то анимация будет со всеми текстурами на всех сторонах обьекта. Параметр sizex и sizey описывают размер одного кадра(фрэйма,тайла) анимации в пределах одной текстуры (т.е. Все кадры должны распологатся на одной текстуре). Фреймы нумеруются в порядке слева на право и сверху вниз , номер стартового фрейма будет 0. Фреймы должны вписыватся в одну текстуру тоесть не выходить за ее края.
Параметр rate задается в секундах и определяет сколько времени будет длится один кадр анимации. Например этот параметр равен 1.0 секунде а кадров у нас в текстуре поместилось 10 то анимация всей текстуры будет происходить 10 секунд.
Пример 1:
llSetTextureAnim(ANIM_ON | SMOOTH | ROTATE | LOOP, ALL_SIDES,1,1,0, TWO_PI, 2*TWO_PI);
Пример 2:
llSetTextureAnim(ANIM_ON | SMOOTH | LOOP , ALL_SIDES, 1, 1, 1, 1, 1);
Пример 3:
llSetTextureAnim(ANIM_ON | SMOOTH | SCALE | PING_PONG | LOOP, ALL_SIDES, 1, 1, 1, 3, 2);
A.251. llSetTimerEvent
llSetTimerEvent(float sec);
Установить вызов timer события с переодичностью указанной в параметре sec. Значение параметра равное 0.0 прекратит вызов события.
A.252. llSetTorque
llSetTorque(vector torque, integer local);
Если обьект физический то эта функция устанавливает момент вращения по вектору torque . Вектор вращения будет определятся локальными координатами если local = TRUE и глобальными если FALSE
A.253. llSetTouchText
llSetTouchText(string text);
Установить (заменить) текстовую команду "Дотронутся" которая отображается в меню после нажатия правой клавиши мыши на предмете.
A.254. llSetVehicleFlags
llSetVehicleFlags(integer flags);
Устанавливает Флаг транспортного средства в TRUE. Доступные параметры нужно использовать из vehicle flags constants констант.
A.255. llSetVehicleFloatParam
llSetVehicleFloatParam(integer param_name, float param_value);
Устанавливает динамические параметры передвижного средства param_name c параметрами param_value. Доступные параметры могут быть найдены в секции vehicle parameter constants констант.
A.256. llSetVehicleType
llSetVehicleType(integer type);
Активирует передвижное средство и выбирает его тип type. Доступные параметры и разьяснения их особенностей могут быть найдены в секции vehicle type constants констант.
A.257. llSetVehicleRotationParam
llSetVehicleRotationParam(integer param_name, rotation param_value);
Устанавливает параметры вращения передвижного средства param_name c параметрами param_value. Доступные параметры могут быть выбраны и констант vehicle parameter constants .
A.258. llSetVehicleVectorParam
llSetVehicleVectorParam(integer param_name, vector param_value);
Устанавливает вектор передвижного средства param_name c параметрами param_value. Доступные параметры могут быть найдены в секции vehicle parameter constants констант.
A.259. llShout
llShout(integer channel, string text);
Крикнуть текст text по каналу channel .
A.260. llSin
float llSin(float theta);
Возвращает синус тэта в радианах
A.261. llSitTarget
llSitTarget(vector offset, rotation rot);
Устанавливает положение(координаты) и поворот аватара после того как он присел на этот обьект . Если offset == ZERO_VECTOR то изменение положения аватара анулируется.
A.262. llSleep
llSleep(float sec);
Установить спящий режим скрипта на sec секунд. (Пауза)
A.263. llSqrt
float llSqrt(float val);
Возвращает квадратный корень числа val. Если параметр val меньше 0.0 то функци вернет значение 0.0 и выдаст математическую ошибку во время выполнения.
A.264. llStartAnimation
llStartAnimation(string anim);
Эта функция зпускает анимацию anim аватара владеющего этим обьектом.
Значение переменной anim может быть именем анимации вложенной в инвентарь или можно использовать значения из стандартного набора встроеных анимаций:
hold_R_bazooka, hold_R_handgun, hold_R_rifle
Holds the appropriately shaped weapon in the right hand. Automatically switches to the aims (below) when user enters mouse look
aim_R_bazooka, aim_R_handgun, aim_R_rifle
Aims the appropriately shaped weapon along the direction the avatar is looking.
away
Flops over in "away from keyboard" state.
backflip
Performs a backflip.
bow
Bows at waist.
brush
Brushes dirt from shirt.
clap
Applauds.
courtbow
Bows with a courtly flourish.
crouch
Crouches in place.
crouchwalk
Walks in place while crouching.
dance1, dance2, dance3, dance4, dance5, dance6, dance7, dance8
Various dance maneuvers.
falldown
Freefall falling animation.
female_walk
Walks with hip sway.
fly
Flies forward.
flyslow
Flies forward at a less aggressive angle.
hello
Waves.
hold_throw_R
Hold object in right hand, prepared to throw it.
hover
Hovers in place.
hover_down
Pretends to hover straight down.
hover_up
Pretends to hover straight up.
jump
Midair jump position.
kick_roundhouse_R
Roundhouse kick with right leg.
land
Lands after flying.
prejump
Prepares to jump.
punch_L
Punch with left hand.
punch_R
Punch with right hand.
punch_onetwo
Punch with one hand then the other.
run
Runs in place.
salute
Salutes with right hand.
sit
Sits on object at knee height.
sit_ground
Sits down on ground.
slowwalk
Walks in place slowly.
smoke_idle
Leans on imaginary prop while holding cigarette.
smoke_inhale
Leans on imaginary prop and smokes a cigarette.
smoke_throw_down
Leans on imaginary prop, throws down a cigarette, and stamps it out.
snapshot
Pantomimes taking a picture.
soft_land
Stumbles a bit as if landing.
stand
Stands in place.
standup
Falls on face and stands up.
stride
Legs extended as if stepping off of a ledge.
sword_strike_R
Strike with sword in right hand.
talk
Head moves as if talking.
throw_R
Throws object in right hand.
tryon_shirt
Turns around and models a new shirt.
turnleft
Pretends to turn left.
turnright
Pretends to turn right.
type
Makes typing motion.
uphillwalk
Walks uphill in place.
walk
Walks in place.
whisper
Whispers behind hand.
whistle
Whistles with hands in mouth.
yell
Shouts between cupped hands.
A.265. llStopAnimation
llStopAnimation(string anim);
Останавливает анимацию anim для аватара владельца этого обьекта.
A.266. llStopHover
llStopHover(void);
Останавливает парение по высоте.
A.267. llStopLookAt
llStopLookAt(void);
Останавливает установленный обьектом проспотр цели.
A.268. llStopMoveToTarget
llStopMoveToTarget(void);
Остановка движения обьекта заданного с помощью функции llMoveToTarget.
A.269. llStopPointAt
llStopPointAt(void);
Остановить аватара в этой точке.
A.270. llStopSound
llStopSound(void);
Остановить текущее проигрывание прикрепленной музыки запущенной с помощью llPlaySound или llLoopSound. Запускать или выключать звук можно с помощью функции llTriggerSound.
A.271. llStringLength
integer llStringLength(string src);
Возвращает количество символов в строке src.
A.272. llSubStringIndex
integer llSubStringIndex(string source, string pattern);
Поиск индекса в строке sourse по первому обнаружению в ней образца pattern. Возвращает (-1) если не найден.
A.273. llStringToBase64
string llStringToBase64(string str);
Конвертировать строку src в Base 64 представление.
A.274. llTakeControls
llTakeControls(integer controls, integer accept, integer pass_on);
If (accept == (controls & input)), посылается данные ввода с клавиатуры обьекту. Если boolean pass_on равен TRUE, то вводимые данные будут посланы аватару аватара.
Используется для опроса клавиатуры.
A.275. llTan
float llTan(float theta);
Возвращает тангенс в радианах.
A.276. llTarget
integer llTarget(vector position, float range);
Устанавливает положение обьекта который должен находится в пределах радиуса range , на позицию position и получает маркер(наподобии ключа) цели.
A.277. llTargetOmega
integer llTargetOmega(vector axis, float spinrate, float gain);
Запустить вращение со скоростью spinrate с нарастанием gain на оси axis. Значение spinrate равное 0,0 анулирует вращение. Эта функция работает с локальными координатами обьекта если обьект залинкован и является потомком, и работает с мировыми координатами для корневого обьекта.
Возвращает маркер(наподобии ключа) который может понадобится для сылки на этот обьект с целью произвести какието операции над ним например функции llTargetRemove.
A.278. llTargetRemove
llTargetRemove(integer tnumber);
Удалить движения которые происходят с обьектом маркер которого передается в параметр tnumber.
A.279. llTeleportAgentHome
llTeleportAgentHome(key id);
Телепортировать агента находящегося на земле владельца к дому этого агента по его ключу id.
A.280. llToLower
string llToLower(string src);
Возвращает строку src со всеми строчными символами.
A.281. llToUpper
string llToUpper(string src);
Возвращает строку src со всеми Заглавными символами.
A.282. llTriggerSound
llTriggerSound(string sound, float volume);
Играет переходный звук, НЕ прикрепленный к объекту. Звук проигрывается с одного постоянного положения, расположенного в центре объекта во время спускового механизма. Нет никакого предела числу вызванных звуков, которые могут быть сгенерированы объектом, и вызваные звуки с помошью llTriggerSound не затрагивают прикрепленные звуки, созданные с помощью функций llPlaySound и llLoopSound. Это очень полезно для вещей как шумы столкновения, взрывы, и т.д. Нет никакого способа остановить или изменять громкость звука, вызванного этой функцией.
A.283. llTriggerSoundLimited
llTriggerSoundLimited(string sound, float volume, vector tne, vector bsw);
Проигрывает переходный звук, НЕ прикрепленный к объекту с определеным диапазоном слышимости, ограниченным ровным прямоугольником по осям tne(вершина-северо-восток) и bsw (юго-запад основания). Звук проигрывается с одного постоянного положения, расположенного в центре объекта во время спускового механизма. Нет никакого предела числу вызванных звуков, которые могут быть сгенерированы объектом, и вызваные звуки с помошью llTriggerSoundLimited не затрагивают прикрепленные звуки, созданные с помощью функций llPlaySound и llLoopSound. Это очень полезно для вещей как шумы столкновения, взрывы, и т.д. Нет никакого способа остановить или изменять громкость звука, вызванного этой функцией.
A.284. llUnescapeURL
string llUnescapeURL(string url);
Преобразует специальные символы URL обратно в ASCII. Полезна для возвращения нормального вида URL, внедренным в другие URL (распространенный трюк, который используют многие сайты для отслеживания ссылок, на которые вы нажимаете). Часто символы типа ":" и "/" преобразуются в их hex-эквивалент ("%3A" и "%2F":), что усложняет использование URL.
Экономит 20% свободного пространства
A.285. llUnSit
llUnSit(key id);
Если идентифицированный id агент сидит на обьекте с этим скриптом или на земле находящейся в собственности владельца обьекта , агент будет вынужден встать.
A.286. llVecDist
float llVecDist(vector a, vector b);
Возвращает дистанцию от координаты а до б .
A.287. llVecMag
float llVecMag(vector vec);
Возврщает длину вектора vec.
A.288. llVecNorm
vector llVecNorm(vector vec);
Возвращает нормали vec.
A.289. llVolumeDetect
llVolumeDetect(integer detect);
Когда параметр detect = TRUE, эта функция связывает скрипт с обьектом который является ФАНТОМОМ()беспрепятственным, и если другой объект(или аватар) глубоко проникнет в этот обьект, то будет запущенно collision_start событие . Скрипт должен быть прикреплен к корневому обьекту для того чтобы связать и получать события столкновения для всех дочерних обьектов.
A.290. llWater
float llWater(vector offset);
Возвращает высоту воды на позиции обьекта со смещением координат offset.
A.291. llWhisper
llWhisper(integer channel, string text);
Шепнуть текст text по каналу channel.
A.292. llWind
vector llWind(vector offset);
Возвращает скорость ветра на позиции обьекта со смещением координат offset.
A.293. llXorBase64Strings
string llXorBase64Strings(string s1, string s2);
Выполняет особое исключительное - ИЛИ с двумя строками 64string , и возвращает одну строку 64string. Строка S2 повторяется если она короче чем S1.
llSetObjectPermMask
llSetObjectPermMask( integer mask, integer value );
Установит новые значения (разрешения) масок permission mask эта задача будет прикреплена к родительскому обьекту . В параметре mask нужно использовать одну или несколько констант из набора Permission Mask Constants. Так как параметр mask является битовым полем то можно одновременно установить несколько масок.
llStringTrim
string llStringTrim( string src, integer type );
Returns a string that is src with leading and/or trailing white space (spaces, tabs, and line feeds) trimmed from it.
- string src
- integer type - STRING_TRIM* flag(s)
Constant Description
STRING_TRIM_HEAD 0x01 Trims spaces off the beginning.
STRING_TRIM_TAIL 0x02 Trims spaces off the end
STRING_TRIM 0x03 Trims spaces off the beginning and end.
This function is available in 1.13.4 onwards...
The following examples will make the same result.
string src = " Dah ";
st = llStringTrim(src, STRING_TRIM_HEAD);
st = llStringTrim(st , STRING_TRIM_TAIL);
string src = " Dah ";
st = llStringTrim(src, STRING_TRIM);
This is because (STRING_TRIM_HEAD | STRING_TRIM_TAIL) == STRING_TRIM.
llListStatistics
float llListStatistics( integer operation, list src );
Returns a float that is the result of performing statistical aggregate function operation on src.
- integer operation - a LIST_STAT_* flag
If a list entry type is not a float or an integer it is silently ignored.
Constant Description
LIST_STAT_RANGE 0 Returns the range.
LIST_STAT_MIN 1 Retrieves the smallest number.
LIST_STAT_MAX 2 Retrieves the largest number.
LIST_STAT_MEAN 3 Retrieves the mean (average).
LIST_STAT_MEDIAN 4 Retrieves the median number.
LIST_STAT_STD_DEV 5 Calculates the standard deviation.
LIST_STAT_SUM 6 Calculates the sum.
LIST_STAT_SUM_SQUARES 7 Calculates the sum of the squares.
LIST_STAT_NUM_COUNT 8 Retrieves the number of float and integer elements.
LIST_STAT_GEOMETRIC_MEAN 9 Calculates the geometric mean.
llMapDestination
llMapDestination( string simname, vector pos, vector look_at );
Открыть мировую карту и отпозиционировать в центре этой карты указанный регион simname.
Работает только в скрипте которых находится в обьекте прикрепленном к аватару, или в touch событии.
llRegionSay
llRegionSay( integer channel, string msg );
Сказать или послать сообщение msg на весь текущий регион , сообщение будет услышано всеми обьектами в пределах границ этого региона.
Параметр метод указывает на номер канала по которому будет переданно сообщение. Канал может быть любым integer значением кроме 0. Общественный канал 0 не поддерживается.
llHTTPRequest
key llHTTPRequest(string url, list parameters, string body)
Посылает HTTP запрос на URL с описанием body и параметрами parameters
url должен всегда быть HTTP или HTTPS URL, не указывать на локацию Linden Lab и Second Life серверов.
параметры List состоят из пар - <integer key, string value>
parameter
Value
Default
Description
HTTP_METHOD
0
"GET"
"GET", "POST", "PUT" and "DELETE"
HTTP_MIMETYPE
1
"text/plain;charset=utf-8"
text/* MIME types should specify a charset. To emulate HTML forms use application/x-www-form-urlencoded. This allows you to set the body to a properly escaped (llEscapeURL) sequence of <name,value> pairs in the form var=value&var2=value2 and have them automatically parsed by web frameworks (PHP will allow you to retrieve them from $_POST) (Supported in version 1.10.4)
text/*MIME специальный тип.Эмулирующий HTML форму используйте application/x-www-form-urlencoded.
HTTP_BODY_MAXLENGTH
2
2048
(Setting HTTP_BODY_MAXLENGTH is not yet supported)
HTTP_VERIFY_CERT
?
TRUE
If TRUE, the server SSL certificate must be verifiable using one of the standard certificate authorities when making HTTPS requests. If FALSE, any server SSL certificate will be accepted. (Supported in version 1.10.4)
body ---- специалльное описание используется только с методом HTTP_METHOD и POST или PUT. Спецификатор body ограничен по количеству используемой памяти.
Ключ возвращаемый функцией запроса llHTTPRequest является уникальным ключом дубликат которого будет получен событием http_response() вместе с полученым результатом запроса.
HTTP запрос использует llHTTPRequest только на територии владельца обьекта который содержит скрипт с этим запросом. Максимум за 100 секунд выполнится 20 запросов.
ПРИМЕЧАНИЕ: Это было изменено к 100 запросам за 100 секунд сейчас.
Если какие либо ошибки существуют в параметрах передаваемых llHTTPRequest или просто HTTP запрос не может быть выполнен по пречине превышения нормы запроса владельцем , то по этой причине возвращенный ключ будет нулевой NULL_KEY и сообщение об ошибке будет послано по дебаг каналу
Следующий заголовок добавляется к HTTP запросу в llHTTPRequest:
Header
Value
Description
Accept
text/*
Accept-Charset
utf-8;q=1.0, *;q=0.5
User-Agent
Second Life LSL/VERSION (<a href="http://secondlife.com/" title="http://secondlife.com/" rel="nofollow">http://secondlife.com/</a>)
simulator version making the request
X-SecondLife-Shard
SHARD
"Production" if the HTTP request is made from SL; otherwise, "Testing"
X-SecondLife-Object-Name
NAME
object name making the HTTP request
X-SecondLife-Object-Key
KEY
object UUID making the HTTP request
X-SecondLife-Region
NAME(X,Y)
region containing the object making the request; X,Y is its grid location
X-SecondLife-Local-Position
(X,Y,Z)
object region coordinates making the request
X-SecondLife-Local-Rotation
(X,Y,Z, W)
object quaternion rotation making the request
X-SecondLife-Local-Velocity
(X,Y,Z)
object velocity making the request
X-SecondLife-Owner-Name
NAME
object owner name making the HTTP request This will be group if the object is deeded to group
X-SecondLife-Owner-Key
KEY
object owner key making the HTTP request This will be group if the object is deeded to group
Note, some languages may export the X-SecondLife-* variables differently, however the HTTP headers send it as X-SecondLife-Shard and simular, with a ASCII hyphen, and no prefix before X, these are also not LSL constants in the variables and conform to HTTP header specifications, not LSL specifications. - Ice
llClearCameraParams llClearCameraParams( );
Сбросить все параметры камеры установленные с помощью функции llSetCameraParams.
Требует разрешение PERMISSION_CONTROL_CAMERA .
Если разрешение PERMISSION_TRACK_CAMERA, не было полученно то по каналу DEBUG_CHANNEL будет отправлено оповещение об ошибке и скрипт продолжит работу.
llGetCameraPos
vector llGetCameraPos( );
Возвращает ориентировочное положение камеры если агент дал разрешение на запрос PERMISSION_TRACK_CAMERA
Если разрешение PERMISSION_TRACK_CAMERA, не было полученно то по каналу DEBUG_CHANNEL будет отправлено оповещение об ошибке и скрипт продолжит работу.
llGetCameraRot
rotation llGetCameraRot( );
Возвращает ориентировочный поворот камеры если агент разрешил запрос PERMISSION_TRACK_CAMERA
Если разрешение PERMISSION_TRACK_CAMERA, не было полученно то по каналу DEBUG_CHANNEL будет отправлено оповещение об ошибке и скрипт продолжит работу.
llSetCameraParams
llSetCameraParams( list rules );
Устанавливает сразу все параметры камеры в формате [ rule1, data1, rule2, data2 . . . rulen, datan ]
Использование камеры требует разрешение на запрос с константой PERMISSION_CONTROL_CAMERA .
Если ращрешение PERMISSION_CONTROL_CAMERA, не было полученно то по каналу DEBUG_CHANNEL будет отправленно сообщение об ошибке.
Пример в котором привидены все параметры функции:
llSetCameraParams([
CAMERA_ACTIVE, 1, // 1 - Камера активна, 0 - не активна
CAMERA_BEHINDNESS_ANGLE, 10.0, // (0 to 180) Устанавливает степень угла, в пределах которого камера не будет вращатся .
CAMERA_BEHINDNESS_LAG, 0.0, // (0 to 3) секунд. Устанавливает сколько секунд камера будет остоватся позади цели. Если она находится за преднлами угла BEHINDNESS
CAMERA_DISTANCE, 3.0, // ( 0.5 to 10) метров . Устанавливает на каком расстоянии камера будет от цели
// CAMERA_FOCUS, <0,0,0>, // положение фокуса камеры в региональных координатах
CAMERA_FOCUS_LAG, 0.1 , // (0 to 3) секунды. На сколько секунд будет отставать камера, при фокусировке на цель.
CAMERA_FOCUS_LOCKED, FALSE, // (TRUE или FALSE) Блокирует фокус камеры , так что он не сможет передвигаться.
CAMERA_FOCUS_THRESHOLD, 1.0, // (0 to 4) метров. Устанавливает радиус сферы вокруг цели камеры, в пределах которой на его центр не воздействует целевое движение.
CAMERA_PITCH, 0.0, // (-45 to 80) Регулирует угловой коэфициент, который камера нацеливает прямо вперед против прямого вниз, поддерживая то же самое расстояние аналогичный 'сфере действия'.
// CAMERA_POSITION, <0,0,0>, // Полжение камеры в региональных координатах
CAMERA_POSITION_LAG, 0.1, // (0 до 3)секунд. Насколько будет задерживатся камера, перед перемещением к основному положению.
CAMERA_POSITION_LOCKED, FALSE, // (TRUE или FALSE) Блокирует положение камеры после чего перемещение камеры приостанавливается и остается в одном положении.
CAMERA_POSITION_THRESHOLD, 1.0, // (0 до 4) метров. Устанавливает радиус сферы вокруг исходного положения камеры, в пределах которого камера не будет фокусироватся на цель.
CAMERA_FOCUS_OFFSET, ZERO_VECTOR // Регулирует позицию фокуса камеры относительно цели (Смещение фокуса камеры) от <-10,-10,-10> до <10,10,10> метров
]);
llGetObjectDetails
list llGetObjectDetails( key id, list params );
Возвращает список параметров обьекта по его уникальному ключу id. Константа OBJECT_UNKNOWN_DETAIL будет возвращена в одном или нескольких записях в списке если были запрошены несуществующие параметры. Если id не находится в этом симе то возвращается пустой список.
OBJECT_NAME - Возвращает имя обьекта , возвращает String
OBJECT_DESC - Возвращает дескриптор обьекта , возвращает String
OBJECT_POS - Возвращает позицию обьекта в региональных координатах , возвращает vector
OBJECT_ROT - Возвращает поворот обьекта , возвращает rotational
OBJECT_VELOCITY - Возвращает скорость обьекта , возвращает vector
OBJECT_OWNER - Возвращает ключ владельца обьекта , если владельцем является группа то будет возвращен NULL_KEY , возвращает key
OBJECT_GROUP - Возвращает ключ группы владеющей этим обьектом , если владельцем является не группа а один аватар то будет возвращен NULL_KEY , возвращает key
OBJECT_CREATOR - Возвращает ключ создателя обьекта , если создателем является не один аватар то будет возвращен NULL_KEY , возвращает key
Пример:
default
{
collision_start(integer i)
{
list a = llGetObjectDetails(llDetectedKey(0), ([OBJECT_NAME,
OBJECT_DESC, OBJECT_POS, OBJECT_ROT, OBJECT_VELOCITY,
OBJECT_OWNER, OBJECT_GROUP, OBJECT_CREATOR]));
llWhisper(0,"UUID: " + (string)llDetectedKey(0) +
"\nName: \"" + llList2String(a,0)+ "\"" +
"\nDecription: \"" + llList2String(a,1) + "\"" +
"\nPosition: " + llList2String(a,2) +
"\nRotation: " + llList2String(a,3) +
"\nVelocity: " + llList2String(a,4) +
"\nOwner: " + llList2String(a,5) +
"\nGroup: " + llList2String(a,6) +
"\nCreator: " + llList2String(a,7));
}
}
llGetParcelDetails
list llGetParcelDetails( vector pos, list params );
Возвращает список деталей земли которая находится на позиции pos по специальным параметрам.
Список параметров:
PARCEL_DETAILS_NAME Имя територии , возвращает string
PARCEL_DETAILS_DESC Дескриптор територии , возвращает string
PARCEL_DETAILS_OWNER Ключ владельца этой територии , возвращает key
PARCEL_DETAILS_GROUP Ключ группы влдельцев територии , возвращает key
PARCEL_DETAILS_AREA Размер територии в кадратных метрах , возвращает integer
Пример:
list landinforeqd = [PARCEL_DETAILS_NAME, PARCEL_DETAILS_DESC];
vector regionbase;
default
{
state_entry()
{
regionbase = llGetPos(); // llGetRegionCorner();
}
touch_start(integer total_number)
{
list details = llGetParcelDetails(regionbase,landinforeqd);
llSay(0, "Local Parcel Name:" + llList2String(details ,0));
llSay(0, "Local Parcel Desc:" + llList2String(details ,1));
}
}
llGetParcelFlags
integer llGetParcelFlags( vector pos );
Возвращает битовое поле с значениями различных флагов для територии.
PARCEL_FLAG_ALLOW_FLY
PARCEL_FLAG_ALLOW_SCRIPTS
PF_FOR_SALE†
PARCEL_FLAG_ALLOW_LANDMARK
PARCEL_FLAG_ALLOW_TERRAFORM
PARCEL_FLAG_ALLOW_DAMAGE
PARCEL_FLAG_ALLOW_CREATE_OBJECTS
PF_FOR_SALE_OBJECTS†
PARCEL_FLAG_USE_ACCESS_GROUP
PARCEL_FLAG_USE_ACCESS_LIST
PARCEL_FLAG_USE_BAN_LIST
PARCEL_FLAG_USE_LAND_PASS_LIST
PF_SHOW_DIRECTORY†
PF_ALLOW_DEED_TO_GROUP†
PF_CONTRIBUTE_WITH_DEED†
PARCEL_FLAG_LOCAL_SOUND_ONLY
PF_SELL_PARCEL_OBJECTS†
PF_ALLOW_PUBLISH†
PF_MATURE_PUBLISH†
PF_URL_WEB_PAGE†
PF_URL_RAW_HTML†
PARCEL_FLAG_RESTRICT_PUSHOBJECT
PF_DENY_ANONYMOUS†
PF_DENY_IDENTIFIED†
PF_DENY_TRANSACTED†
PARCEL_FLAG_ALLOW_GROUP_SCRIPTS
PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS
PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY
PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY
PF_ALLOW_VOICE_CHAT†
PF_USE_ESTATE_VOICE_CHAN†
llGetRegionFlags
integer llGetRegionFlags( );
Возвращает битовое поле с значениями различных флагов для региона.
REGION_FLAG_ALLOW_DAMAGE
REGION_FLAG_FIXED_SUN
REGION_FLAG_BLOCK_TERRAFORM
REGION_FLAG_SANDBOX
REGION_FLAG_DISABLE_COLLISIONS
REGION_FLAG_DISABLE_PHYSICS
REGION_FLAG_BLOCK_FLY
REGION_FLAG_ALLOW_DIRECT_TELEPORT
REGION_FLAG_RESTRICT_PUSHOBJECT
REGION_FLAGS_ALLOW_LANDMARK†
REGION_FLAGS_ALLOW_SET_HOME†
REGION_FLAGS_RESET_HOME_ON_TELEPORT†
REGION_FLAGS_TAX_FREE†
REGION_FLAGS_BLOCK_LAND_RESELL†
REGION_FLAGS_NULL_LAYER†
REGION_FLAGS_SKIP_AGENT_ACTION†
REGION_FLAGS_SKIP_UPDATE_INTEREST_LIST†
REGION_FLAGS_SKIP_SCRIPTS†
REGION_FLAGS_EXTERNALLY_VISIBLE†
REGION_FLAGS_MAINLAND_VISIBLE†
REGION_FLAGS_PUBLIC_ALLOWED†
REGION_FLAGS_BLOCK_DWELL†
REGION_FLAGS_ESTATE_SKIP_SCRIPTS†
REGION_FLAGS_DENY_ANONYMOUS†
REGION_FLAGS_DENY_IDENTIFIED†
REGION_FLAGS_DENY_TRANSACTED†
REGION_FLAGS_ALLOW_PARCEL_CHANGES†
REGION_FLAGS_ABUSE_EMAIL_TO_ESTATE_OWNER†
llGetParcelMaxPrims
integer llGetParcelMaxPrims( vector pos, integer sim_wide );
Возвращает максимальное количество примитивов на участке земли по координатам pos. Параметр sim_wide является булевым и если он установлен в FALSE то будут полученны данные о всей земле либо только о кусочке земли тоесть одном симе.
llGetParcelPrimOwners
list llGetParcelPrimOwners( vector pos );
Возвращает список всем резидентам которые владеют обьектами на этой територии по координатам места на этой територии pos.
Формат списка: [ key agentKey1, integer agentCount1, key agentKey2, integer agentCount2, ... ], сортирует по ключу агента , максимально может быть до 100 записей.
llGodLikeRezObject
llGodLikeRezObject( key inventory, vector pos );
Создать обьект inventory из инвентаря в позиции pos.
llAddToLandBanList
llAddToLandBanList( key avatar, float hours );
Добавить аватара по его ключу avatar в бан-списка на время в часах hours.
llRemoveFromLandBanList
llRemoveFromLandBanList( key avatar );
Удалить аватара по его ключу avatar из бан-списка.
llRemoveFromLandPassList
llRemoveFromLandPassList( key avatar );
Удалить аватара по его ключу avatar из пропускного-списка.
llResetLandBanList
llResetLandBanList( key avatar );
Удалить всех резидентов из бан-списка
llResetLandPassList
llResetLandPassList( key avatar );
Удалить всех резидентов из пропускного-списка.
llGetObjectPrimCount
integer llGetObjectPrimCount( key object_id );
Возвращает количество примитивов в обьединеном(залинкованом) обьекте по его ID и если он находится в текущем симе.
llGetSimulatorHostname
string llGetSimulatorHostname( );
Получает имя хоста текущего симулятора.
// The beginnings of a region-info script.
string region;
string sim;
default
{
state_entry()
{
llSetTimerEvent(1.0);
}
timer()
{
string here = llGetRegionName();
if(region != here)
{
sim = llGetSimulatorHostname();
region = here;
}
llSetText(
" REGION NAME : " + region +
"\n SIM HOSTNAME : " + sim +
"\nTIME DIALATION : " + (string)llGetRegionTimeDilation() +
"\n REGION FPS : " + (string)llGetRegionFPS(),
<0,1,0>, 1.0};
}
}
Приложение B. СОБЫТИЯ
Каждое состояние должно иметь по крайней мере один обработчик. Вы можете отрегулировать событие путем выбора одного из зарезервированных Событий перечисленных ниже.
B.1. at_rot_target
at_rot_target(integer number, rotation target_rotation, rotation our_rotation);
Это событие вызывается когда обьект определенный как цель(Target) достигает заданного в функции llRotTarget угла . Угловой диапазон устанавливается путем вызова функции llRotTarget.
B.2. at_target
at_target(integer number, vector target_position, vector our_position);
Это событие запускается когда обьект находится в пределах заданного радиуса относительно заданной позиции с помощью функции llTarget . Диапазон и позиция устанавливаются с помощью функции llTarget.
B.3. attach
attach(key attached);
Это событие запускается когда обьект с этим скриптом прикрепляется или отсоединяется от аватара . Если обьект прикрепляется то событию передается ключ аватара , если отсоединяется то передается NULL_KEY.
B.4. changed
changed(integer changed);
Это событие запускается когда производится какое либо действие над обьектом. Параметр changed принимает значение одной константы из набора change constants.
B.5. collision
collision(integer total_number);
Это событие запускается тогда когда происходит столкновение этого обьекта с другими обьектами или аватарами. Номера(маркера) обнаруженных обьектов столкновения передаются событию. Информация об этих обьектах может быть получена с помощью библиотечной функции llDetected*.
B.6. collision_end
collision_end(integer total_number);
Это событие запускается тогда когда столкновение этого обьекта с другими обьектами или аватарами прекращено. Номера(маркера) обнаруженных обьектов столкновения передаются событию. Информация об этих обьектах может быть получена с помощью библиотечной функции llDetected*.
B.7. collision_start
collision_start(integer total_number);
Это событие запускается тогда когда столкновение этого обьекта с другими обьектами или аватарами только что произошло. Номера(маркера) обнаруженных обьектов столкновения передаются событию. Информация об этих обьектах может быть получена с помощью библиотечной функции llDetected*.
B.8. control
control(key name, integer levels, integer edges);
Как только скрипт получил возможность захватывать команды ввода от аватара это событие будет запускатся каждый раз при очерредном вводе команды (с клавиатуры). Параметры Level (уровни) и edges (края) принимают значения констант control constants.
B.9. dataserver
dataserver(key requested, string data);
Это событие запускается когда скипт получает запрошенные данные . Запросы данных можно создавать с помощью функций llRequestAgentData , llRequestSimulatorData, llRequestInventoryData, и llGetNotecardLine.
B.10. email
email(string time, string address, string subject, string body, integer remaining);
Это событие запускается когда скрипт получает любой емаил . Параметр remaining говорит сколько емайлов осталось еще в очереди.
B.11. land_collision
land_collision(vector position);
Это событие запускается когда обьект сталкивается с землей.
B.12. land_collision_end
land_collision_end(vector position);
Это событие запускается когда обьект прекращает сталкиватся с землей
B.13. land_collision_start
land_collision_start(vector position);
Это событие запускается когда обьект начал сталкиватся с землей
B.14. link_message
link_message(integer sender_number, integer number, string message, key id);
Это событие запускается когда обьект получает сообщение по линии для обьединеных обьектов(залинкованных) через функцию посылки сообщения llMessageLinked .
B.15. listen
listen(integer channel, string name, key id, string message);
Это событие запускается каждый раз когда приходит определенное сообщение по заданному каналу, соответствуя ограничениям, переданным в функцию llListen. Имя Name и идентификатор id также как и сообщения message говорящего, передаются во входных параметрах события. Канал 0 это общественный чатовый канал в котором все аватары видят чат текс. Каналы от 1 до 2,147,483,648 - частные(приватные) каналы, которые не используются аватарами, но при этом скрипты могут прослушивать и отправлять сообщения по этим каналы.
B.16. money
money(key giver, integer amount);
Это событие запускается каждый раз когда пользователь giver передаё сумму линден долларов amount обьекту.
B.17. moving_end
moving_end(void);
Это событие запускается каждый раз когда обект с этим скриптом прекращает движение.
B.18. moving_start
moving_start(void);
Это событие запускается каждый раз когда обект с этим скриптом только что начал движение.
B.19. no_sensor
no_sensor(void);
Это событие запускается каждый раз когда датчики активны (посредствам библиотечной функции llSensor) но ничего не воспринимают.
B.20. not_at_rot_target
not_at_rot_target(void);
Это событие запускается каждый раз когда цель установленная с помощью функции llRotTarget находится вне указанного угла.
B.21. not_at_target
not_at_target(void);
Это событие запускается каждый раз когда цель установленная с помощью функции llTarget находится вне указанного диапазона.
B.22. object_rez
object_rez(key id);
Вызывается когда обьект создает другой обьект из своего инвентаря с помощью функции llRezObject . Параметр id это уникальный ключ этого обьекта.
B.23. on_rez
on_rez(integer start_param);
Вызывается всякий раз когда обьект создается из инвентаря обьекта возле другого обьекта. Входной параметр start_param это параметр переданный вызванной функции llRezObject или llRezAtRoot. Скрипт обработчика этого события может быть расположен в только что созданном обьекте.
B.24. run_time_permissions
run_time_permissions(integer permissions);
Если скрипт нуждается в разрешении аватара получить какие либо права на какие либо действия прежде чем выплнится определенная функция, такая как снятие средств с текущего щета аккаунта владельца или включение анимации аватара или захват и контроль управления. С помощью функции llRequestPermissions и разнообразных констант permissions integer constants посылаются запросы на получение прав доступа. Обработчик события получает константу текущего набора флагов прав доступа, если возвращается 0 то права доступа не полученны.
B.25. sensor
sensor(integer total_number);
Это событие запускается всякий раз когда обьект сочетается с ограничениями заданными в функции llSensor -функцией обнаружения. Число обнаруженых предметов передается в параметре total_number . Максимум 16 обьектов может быть переданно в это событие. Информация об этих обьектах может быть получена с помощью библиотечной функции llDetected*
B.26. state_entry
state_entry(void);
Событие запускается всякий раз когда запускается новое состояние, в том числе и когда стартует программа, и всегда когда запускается первый обработчик событий.
B.27. state_exit
state_exit(void);
Событие state_exit вызывается когда запускается команда перехода в другое состояние . Оно выполняется перед переходом в новое состояние state_entry события.
B.28. timer
timer(void);
Это событие постоянно вызывается через заданный интервал времени установленный с помощью библиотечной функции llSetTimerEvent
B.29. touch
touch(integer total_number);
Это событие запускается когда пользователь продолжительно дотрагиваетя до обьекта. Число обьектов к которым прикоснулся пользователь передается в параметре total_number. Информация об этих пользователях может быть собрана с помощью функции llDetected* .
B.30. touch_end
touch_end(integer total_number);
Это событие запускается когда пользователь перестал дотрагиваетя до обьекта. Маркер(номер) Аватара который прикоснулся к обьекту передается в параметре total_number. Информация об этих пользователях может быть собрана с помощью библиот функции llDetected* .
B.31. touch_start
touch_start(integer total_number);
Это событие запускается когда пользователь начал дотрагиваетя до обьекта. Маркер(номер) Аватара который прикоснулся к обьекту передается в параметре total_number. Информация об этих пользователях может быть собрана с помощью библиот функции llDetected* .
B.32. remote_data
remote_data(integer type, key channel, key message_id, string sender, integer ival, string sval);
This event is raised when a user creates an XML-RPC channel via llOpenRemoteDataChannel, a remote XML-RPC server replies to a llSendRemoteData, or a remote XML-RPC client sends in an XML-RPC request. In the open case, type = REMOTE_DATA_CHANNEL, channel = NULL_KEY, message_id = NULL_KEY, sender is an empty string, ival = 0, and sval is an empty string. In the reply case, type = REMOTE_DATA_REPLY, channel is set to the channel that the request was sent on, message_id is set to the id of the message, sender is an empty string, ival = 0, and sval is a string. In the remote request case, type = REMOTE_DATA_REQUEST, channel is set to the channel that sent the message, message_id is set to the id of the message, sender is set by the sender, ival is an integer, and sval is a string. parameter.
Это событие запускается когда пользователь создает XML-RPC канал с помощью функции llOpenRemoteDataChannel
Http_response
http_response(key request_id, integer status, list metadata, string body)
Это событие запускается когда ожидается HTTP ответ на запрос llHTTPRequest или если ожидаемый ответ прерван по ошибке, или если вышло время ответа .
request_id - получает тотже ключ что был получен в при инициализации запроса с помощью функции llHTTPRequest . Он может быть использован для сверки определенного запроса с определенным ответом на этот запрос .Особенно это полезно когда запросы шлются постоянно и мы не знаем на какой запрос пришел текущщий ответ.
status - получает информацию о статусе HTTP либо возвращает HTTP ответ или детали о возникшей ошибке если запрос потерпел неудачу.
metadata - возвращается описание ответа в форме пары <key, value>. В настоящее время может быть возвращен только один ключ HTTP_BODY_TRUNCATED который обозначает длину полученного блока данных если пришлось его обрезать.
body - is set to the body of the HTTP response as long as the response includes a "Content-Type" header specifying a text mime type. If a mime type is not specified or the type is not a text type, body is set to "Unsupported or unknown Content-Type." If the "Content-Type" header specifies a character set, body will be set to the body of the response transcoded to UTF-8, or to "Unsupported or unknown character set." if the character set is unsupported. The body is currently limited to 2049 bytes.
Приложение C. КОНСТАНТЫ
Чтобы упростить порограмирование на LSL существуют специальные константы перечисленные ниже.
C.1. Boolean Constants
Булевые константы представляются в двух значениях TRUE и FALSE. В языке LSL булевые константы заменяют значения 1 и 0 для удобства. Так как специальный булевый тип данных отсутствует то эти константы созданы чисто для сохранения класического стиля програмирования и соответственно могут быт заменены 1 и 0.
- TRUE
- FALSE
C.2. Status Constants
Статус константы используются при вызове функции llSetStatus и llGetStatus . Эти константы являются битовыми полями поэтому можно устанавливать и получать сразу по несколько констант
Константы статуса:
STATUS_PHYSICS
Контролирует будет ли передвижение обьекта по физическим законам или нет. По умалчанию он установлен в меню обьекта в чекбоксе 'Physical' в состояние FALSE.
STATUS_PHANTOM
Контролирует будет ли обьект являтся фантомом или нет. Установив значение TRUE обьект не будет препятствовать прохождению других обьектов и агентов. Хорошо использовать включать этот флаг если обьект с этим свойством является перемешаемым или вращающимся но не физически. И это также полезно для моделирования обьемного освещения. Значение по умолчанию равно FALSE.
STATUS_ROTATE_X, STATUS_ROTATE_Y, STATUS_ROTATE_Z
Контролирует может ли обьект физически вращатся вокруг определенной оси или нет. Этот флаг не имеет смысла если обьект не является физическим. Установите значение FALSE для остановки вращения вокруг определенной оси. По умолчанию значение флага равно TRUE для физических обьектов.
Полезный пример отображения эффекта 'Сидеть и крутится' устройства. Они вращаются по оси Z и не вращаются по осям X или Y .
STATUS_BLOCK_GRAB
Контролирует, можно ли захватить текущий обьект. Действие захвата установленно по умолчанию в режиме третего лица, и доступно поскольку установлен инсрумент 'рука' в строительном режиме. Это полезно использовать для физических объектов, если Вы не хотите, чтобы другие люди их могли случайно нарушить. По умолчанию FALSE
STATUS_SANDBOX
Контролирует, может ли объект пересечь границы области и переместить обьект больше чем на 20 метров от пункта где его создали. По умолчанию FALSE.
STATUS_DIE_AT_EDGE
Контролирует, возвращен ли объект в инвентарь владельца, если он оказался за краем територии владельца. Полезно установить этот статус в TRUE для таких обьектов как - пули или ракеты. По умолчанию флаг установлен в FALSE
C.3. Object Type Constants
Эти константы комбинируются с помощью бинарной операции '|' и предназначены для функции llSensor и других родственных вызовов.
Константы описывающие тип обьекта:
AGENT
Мировые обьекты агента
ACTIVE
Мировые обьекты с запущенным скриптом и физическим перемещением.
PASSIVE
Статические мировые обьекты.
SCRIPTED
Скриптовые мировые обьекты.
C.4. Permission Constants
Permission константы (константы разрешения) используютс для описания запроса на получение прав с помощью функции llRequestPermissions, Определяются с помощью функций llGetPermissions и передаются событию run_time_permissions . Для большей рабочей функциональности основных библиотечных функции -- константы permission должны быть разрешены. Константы permission могут быть обьеденены так как константы являютя битовыми полями.
Константы получения прав доступа:
PERMISSION_DEBIT
Если было полученно это разрешение то обьект может успешно вызвать функцию llGiveMoney для дебитовых операций владельца этого акаунта.
PERMISSION_TAKE_CONTROLS
Если было полученно это разрешение то обьект может успешно вызвать функцию llTakeControls.
PERMISSION_REMAP_CONTROLS
(not yet implemented)
PERMISSION_TRIGGER_ANIMATION
Если было полученно это разрешение то обьект может успешно вызвать функцию llStartAnimation для аватара являющегося владельцем этого обьекта.
PERMISSION_ATTACH
Если было полученно это разрешение то обьект может успешно вызвать функцию llAttachToAvatar чтобы прикрепить обект к аватару.
PERMISSION_RELEASE_OWNERSHIP
(not yet implemented)
PERMISSION_CHANGE_LINKS
Если было полученно это разрешение то обьект может успешно вызвать функции llCreateLink, llBreakLink, и llBreakAllLinks для изменения связей(обьединений) с другими обьектами.
PERMISSION_CHANGE_JOINTS
(not yet implemented)
PERMISSION_CHANGE_PERMISSIONS
(not yet implemented)
PERMISSION_CONTROL_CAMERA
Если было полученно это разрешение то можно будет пользоватся функцией llSetCameraParams которая меняет положение и др. параметры камеры
PERMISSION_TRACK_CAMERA
Если было получено это разрешение то можно будет работать с координатами и поворотом камеры.
C.5. Inventory Constants
Эти константы могут быть выбраны во время обращения к специальным функциям инвентаря llGetInventoryNumber и llGetInventoryName. Они возвращаются с помощью функции llGetInventoryType.
Константы инвентаря.
INVENTORY_TEXTURE, INVENTORY_SOUND, INVENTORY_OBJECT, INVENTORY_SCRIPT, INVENTORY_LANDMARK, INVENTORY_CLOTHING, INVENTORY_NOTECARD, INVENTORY_BODYPART, INVENTORY_ANIMATION, INVENTORY_GESTURE, INVENTORY_ALL, INVENTORY_NONE
Каждая константа ссылается на названный тип обьекта из инвентаря.
C.6. Pay Price Constants
Эти константы могут быть выбраны для функции llSetPayPrice
Константы платежей по прайсу:
PAY_HIDE
Не показывать кномки для быстрой оплаты
PAY_DEFAULT
Используется по умолчанию для показа кнопок быстрого оплаты
C.7. Attachment Constants
Эти константы используются для определения точки на аватаре куда будет прикреплен обьект с помощью функции llAttachToAvatar.
Константы прикрепления обьекта к аватару:
ATTACH_CHEST
Прикрепить к груди
ATTACH_HEAD
Прикрепить к голове
ATTACH_LSHOULDER
Прикрепить к левому плечу
ATTACH_RSHOULDER
Прикрепить к правому плечу
ATTACH_LHAND
Прикрепить к левой руке
ATTACH_RHAND
Прикрепить к правой руке
ATTACH_LFOOT
Прикрепить к левой ступне
ATTACH_RFOOT
Прикрепить к правой ступне
ATTACH_BACK
Прикрепить к спине
ATTACH_PELVIS
Прикрепить к тазу
ATTACH_MOUTH
Прикрепить ко рту
ATTACH_CHIN
Прикрепит к подбородку
ATTACH_LEAR
Прикрепить к левому уху
ATTACH_REAR
Прикрепить к правому уху
ATTACH_LEYE
Прикрепить к левому глазу
ATTACH_REYE
Прикрепить к правому уху
ATTACH_NOSE
Прикрепить к носу
ATTACH_RUARM
Прикрепить к левому предплечью
ATTACH_RLARM
Прикрепить к правому предплечью
ATTACH_LUARM
Прикрепить к левой руке
ATTACH_LLARM
Прикрепить к правой руке
ATTACH_RHIP
Прикрепить к правому бедру
ATTACH_RULEG
Прикрепить к левой ноге
ATTACH_RLLEG
Прикрепить к правой ноге
ATTACH_LHIP
Прикрепить к левому бедру
ATTACH_LULEG
Прикрепить к лодыжке
ATTACH_LLLEG
Прикрепить к левой лодыжке
ATTACH_BELLY
Прикрепить к животу
ATTACH_RPEC
Прикрепить к правой груди
ATTACH_LPEC
Прикрепить к левой груди
C.8. Land Constants
Эти константы используются для функции llModifyLand.
Константы для модификации поверхности земли:
LAND_LEVEL
Действие выравнивоюще землю по одной высоте (для создания плоских ровных площадок).
LAND_RAISE
Действие увеличивающее высоту земли
LAND_LOWER
Действие уменьшающее высоту земли
LAND_SMOOTH
Действие сглаживающее резкие перепады высоты земли
LAND_NOISE
Действие создающее перепады высоты(шум) в случайном порядке на поверности земли.
LAND_REVERT
Действие возвращающее земли в исходную начальную форму (возвращается к последнему изменению формы земли).
LAND_SMALL_BRUSH
Установить маленький размер кисти-экскаватора.
LAND_MEDIUM_BRUSH
Установить средний размер кисти-экскаватора.
LAND_LARGE_BRUSH
Установить большой размер кисти-экскаватора.
C.9. Link Constants
Эти константы используются при вызове функций llSetLinkColor и llMessageLinked.
Константы для сгрупированных(залинкованных) обьектов:
LINK_SET
Нацелится на все обьекты находящемся в соединении (групировке).
LINK_ROOT
Нацелится на все корневые обьекты в соединении (групировке).
LINK_ALL_OTHERS
Нацелится на все другие обьекты кроме текущего в этом соединении(групировке).
LINK_ALL_CHILDREN
Нацелится на все обьекты в соединении (групировке) кроме корневых обьектов со скриптом.
LINK_THIS
Нацелится исключительно на текущий обьект.
C.10. Control Constants
Эти константы используются при вызове функции llTakeControls а также возвращаются в событии control .
Константы управления клавишами движения аватара:
CONTROL_FWD
Тест на движение аватара вперед в контроле управления.
CONTROL_BACK
Тест на движение аватара назад в контроле управления.
CONTROL_LEFT
Тест на движение аватара влево в контроле управления.
CONTROL_RIGHT
Тест на движение аватара вправо в контроле управления.
CONTROL_ROT_LEFT
Тест на вращение аватара влево в контроле управления.
CONTROL_ROT_RIGHT
Тест на вращение аватара вправо в контроле управления.
CONTROL_UP
Тест на движение аватара вверх в контроле управления.
CONTROL_DOWN
Тест на движение аватара вниз в контроле управления.
CONTROL_LBUTTON
Тест на нажатие левой кнопки в контроле управления.
CONTROL_ML_BUTTON
Тест на нажатие левой кнопки когда включен вид "Mouse viev" в контроле управления.
C.11. Change Constants
Эти константы получает changed событие.
Константы каких либо изменений происходящих с обьектом:
CHANGED_INVENTORY
Обьект из инвентаря был изменен(вообще если произошли какие-либо изменения в инвентаре)
CHANGED_ALLOWED_DROP
Обьект инвентаря имеет изменения потому как любой пункт был добавлен через интерфейс llAllowInventoryDrop
CHANGED_COLOR
Цвет обьекта изменен
CHANGED_SHAPE
Обьект поменял свою форму (например из цилиндра в шар)
CHANGED_SCALE
Был изменен масштаб обьекта
CHANGED_TEXTURE
Смещение текстуры , маштабирование вращение, или просто выбор текстуры.
CHANGED_LINK
Обьект имеет связь или эти связи были разорваны.
CHANGED_REGION
Обьек сменил регион
CHANGED_TELEPORT
Обьект был телепортирован
C.12. Type Constants
Эти константы используются для определения типа переменной являющейся элементом списка. Значение констант возвращаются при вызове функции llGetListEntryType и может быть выбранна для сравнения с константами.
Константы представления типов данных:
TYPE_INTEGER
Целое число.
TYPE_FLOAT
Число с плавающей точкой (вещественное).
TYPE_STRING
Строковый тип данных
TYPE_KEY
Тип данных использующийся для идентификаторов или ключей
TYPE_VECTOR
Вектор
TYPE_ROTATION
Поворот
TYPE_INVALID
Недействительный тип ошибочный
C.13. Agent Info Constants
Эти константы представляют собой битовое поле и возвращаются функцией llGetAgentInfo и позволяют узнать информацию об агенте проверяя пределенные битовые поля.
Константы информирующие о состоянии агента:
AGENT_FLYING
Агент находится в состоянии полета.
AGENT_ATTACHMENTS
К телу агента прикреплены какието обьекты.
AGENT_SCRIPTED
К телу агента прикреплены какието обьекты содержащие скрипт.
AGENT_SITTING
Агент сидит на земле.
AGENT_ON_OBJECT
Агент сидит на обьекте.
AGENT_WALKING
Агент находится в режиме ходьбы.
AGENT_IN_AIR
Агент находится в воздухе.
AGENT_MOUSELOOK
Агент включил вид мышью ( mouselook ).
AGENT_AWAY
Агент находится в режиме отсутствия (когда игрок долго не нажимает на клавиатуру или свернул окно прграммы SL) (AFK).
AGENT_TYPING
Агент находится в режиме печатания сообщения.
AGENT_CROUCHING
Агент находится в режиме приседания.
C.14. Texture Animation Constants
Эти константы используются функцией llSetTextureAnim для контроля разных способов анимации.
Константы предназначенные для анимации тектуры:
ANIM_ON
Включить анимацию текстуры.
LOOP
Анимация текстуры с автоповтором.
REVERSE
Проирывать анимацию в обратном направлении.
PING_PONG
Проигрывать анимацию сначала до конца и наоборот(Туда-сюда)
SMOOTH
Дополнять (сглаживать) направление движения вместо проигрывания отдельными фреймами.
ROTATE
Анимация текстуры вращением.
SCALE
Анимацию текстуры маштабированием.
C.15. Particle System Constants
Эти константы используются в описании специальных параметров для описания системы частиц
ПАРАМЕТРЫ СИСТЕМЫ ЧАСТИЦ:
Универсальная программа в которой используются все константы и приводится описание каждой(вы можете скопировать и запустить эту программу):
default
{
state_entry()
{
llParticleSystem([ //KPSv1.0 ГЕНЕРАТОР ЧАСТИЦ (ПАРТИКЛОВ)
PSYS_PART_FLAGS , 0 //Коментарий для дезактивации любой из следующих масок, по умолчанию ноль
//| PSYS_PART_BOUNCE_MASK //Сильный поток по оси Z обьекта
//| 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_SRC_TARGET_KEY методе. Метод PSYS_SRC_ACCEL,
// и PSYS_SRC_BURST_RADIUS, и возможно другие будут игнорироватся.
,PSYS_SRC_TARGET_KEY, llGetKey() //Ключ цели на которую будет направлен поток частиц
//,PSYS_SRC_TARGET_KEY, NULL_KEY //если NULL_KEY поток не будет иметь направления на конкретную цель
,
//Можно выбрать только один образец для правильной работы
PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_DROP //Частица генерируются в источнике без скорости
//PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE //Частицы взрываются от источника
//PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE //Частицы испускаются в плоскости от источника расходясь под 2D углом
//PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE //Частицы испускаются из источника в виде 3D конуса с заданным 3D углом
//PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY //Частицы испускаются из источника во все стороны кроме заданного 3D конуса
,PSYS_SRC_TEXTURE, "" //UUID(уникальный ключ) текстуры либо ее имя в инвентаре обьекта источника если
,PSYS_SRC_MAX_AGE, 0.0 //Время испускания частиц, если значение 0 то испускание будет постоянным
,PSYS_PART_MAX_AGE, 1.0 //Врямя в сукундах существование сгенерированной частицы
,PSYS_SRC_BURST_RATE, 0.0 //Временная задержка в секундах между каждым испусканием частиц
,PSYS_SRC_BURST_PART_COUNT, 1 //Число одновременно испускаемых частиц
,PSYS_SRC_BURST_RADIUS, 0.0 //Радиус пространства испускания частиц
,PSYS_SRC_BURST_SPEED_MIN, 0.0 //Минимальная скорость испускания частицы
,PSYS_SRC_BURST_SPEED_MAX, 0.00 //Максимальная скорость испускания частицы
,PSYS_SRC_ACCEL, <0.0,0.0,0.0> //Ускорение частиц каждую секунду
,PSYS_PART_START_COLOR, <1.0,1.0,1.0> //Стартовый RGB цвет частицы
,PSYS_PART_END_COLOR, <1.0,1.0,1.0> //Конечный RGB цвет частицы, если константа INTERP_COLOR_MASK активирована
,PSYS_PART_START_ALPHA, 0.0 //Стартовая прозрачность частиц, 1 - непрозрачные, 0 прозрачные, либо промежуточные значения.
,PSYS_PART_END_ALPHA, 1.0 //Конечная прозрачность частиц
,PSYS_PART_START_SCALE, <2.0,2.0,2.0> //Стартовый размер частиц
,PSYS_PART_END_SCALE, <2.0,2.0,2.0> //Конечный размер частиц, если константа INTERP_SCALE_MASK активирована
,PSYS_SRC_ANGLE_BEGIN, -PI //Внутренний угол, используется только для ANGLE образцов
,PSYS_SRC_ANGLE_END, PI //Внешний угол, используется только для ANGLE образцов
,PSYS_SRC_OMEGA, <0.0,0.0,0.0> //Вращение источника испускания, только для ANGLE образцов, используется подобно вращению llTargetOmega() для обьектов
]);
}
}
C.16. Agent Data Constants
Эти константы используются при вызове функции llRequestAgentData для сбора информации об агентеб, результат будет получен dataserver событием.
Константы данных состояния агента:
DATA_ONLINE
"1" если агент online "0" если агент offline.
DATA_NAME
Имя этого агента.
DATA_BORN
дата рождения агента в кодировке ISO 8601 формат: YYYY-MM-DD.
DATA_RATING
Возвращает рейтинг агента в виде одного из шести целых чисел.
Которые обозначают:
1. Положительный рейтинг поведения
2. Отрицательный рейтинг поведения
3. Положительный рейтинг внешнего вида
4. Отрицательный рейтинг внешнего вида
5. Положительный рейтинг строительства
6. Отрицательный рейтинг строительства
C.17. Float Constants
LSL обеспечивает небольшую коллекцию арифметических констант с плавающей точкой. Эти константы обычно используются для сокращения выполнения тригонометрических вычислений, за исключением полезности использования их в определения радианов дуги на датчик или функции системы частицы.
Константы с плавающей точкой:
PI
3.14159265 - Половинв круга в радианах.
TWO_PI
6.28318530 - Целый круг в радианах.
PI_BY_TWO
1.57079633 - Четверть круга в радианах.
DEG_TO_RAD
0.01745329 - Число радианов в степени. Вы можете использовать это число или константу , для преобразования степени в радианы, умножая степень на это число.
RAD_TO_DEG
57.2957795 - Число степеней в радианах. Вы можете использовать это число или константу , для преобразования радиан в степень, умножая радианы на это числом.
SQRT2
1.41421356 - Квадратный корень двух 2.
C.18. Key Constant
Это единственная кей константа которая показывает недействительность ключа NULL_KEY.
C.19. Miscellaneous Integer Constants
Эта константа используется в параметрах обьекта для указания всех сторон ALL_SIDES
C.20. Miscellaneous String Constants
Это одна раскатегориная стринг константа которая используется в dataserver событии : EOF
C.21. Vector Constant
Эта константа заменяет нулевой вектор: ZERO_VECTOR = <0,0,0>.
C.22. Rotation Constant
Эта константа заменяет обнуленную ротацию: ZERO_ROTATION = <0,0,0,1>.
C.23. Simulator Data Constants
Эти константы используются для вызова функции llRequestSimulatorData Для получения данных используется событие dataserver event.
Константы данных симулятора(земли владельца):
DATA_SIM_POS
Глобальное положение симулятора . Форма значенния пердается в векторе
DATA_SIM_STATUS
Статус симулятора. В настоящее время это может быть один из седующих номеров.
- up
- down
- stopping
- starting
- crashed
C.24. Vehicle Parameters
ПАРАМЕТРЫ ТРАНСПОРТНЫХ СРЕДСТВ:
VEHICLE_LINEAR_FRICTION_TIMESCALE
Вектор постоянных времени экспоненциального ослабления линейной скорости объекта по его предпочтительным осям движения (прямо, влево, вверх). Диапазон = [0,07, беск.) секунд для каждого элемента вектора.
VEHICLE_ANGULAR_FRICTION_TIMESCALE
Вектор постоянных времени экспоненциального затухания угловой скорости объекта вокруг его предпочтительных осей движения (прямо, влево, вверх). Диапазон = [0,07, беск.) секунд для каждого элемента вектора.
VEHICLE_LINEAR_MOTOR_DIRECTION
Направление и амплитуда (относительно предпочтительного каркаса) воздействия линейного двигателя. Транспортное средство будет ускоряться или замедляться для достижения указанной скорости. Диапазон амплитуды = [0, 30] м/с.
VEHICLE_LINEAR_MOTOR_OFFSET
Точка, смещенная относительно центра масс транспортного средства, в которой прилагается усилие линейного двигателя. Позволяет линейному двигателю создавать вращательный момент. Диапазон амплитуды = [0, 100] м.
VEHICLE_LINEAR_MOTOR_TIMESCALE
Постоянная времени экспоненциального приближения к полной скорости линейного двигателя.
VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE
Постоянная времени экспоненциального ослабления амплитуды линейного двигателя.
VEHICLE_ANGULAR_MOTOR_DIRECTION
Направление и амплитуда (относительно предпочтительного каркаса) углового двигателя транспортного средства. Транспортное средство будет ускоряться или замедляться для достижения указанной скорости.
VEHICLE_ANGULAR_MOTOR_TIMESCALE
Постоянная времени экспоненциального приближения к полной скорости углового двигателя.
VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE
Постоянная времени экспоненциального ослабления амплитуды углового двигателя.
VEHICLE_HOVER_HEIGHT
Высота (над поверхностью земли или воды, или глобальная высота), на которой транспортное средство будет стремиться парить.
VEHICLE_HOVER_EFFICIENCY
Уровень демпфирования парения. Значение лежит в диапазоне от 0,0 (минимум демпфирования) до 1,0.
VEHICLE_HOVER_TIMESCALE
Период колебаний высоты (или постоянная времени экспоненциального приближения, в зависимости от значения параметра VEHICLE_HOVER_EFFICIENCY) в процессе приближения транспортного средства к заданной высоте.
VEHICLE_BUOYANCY
Плавучесть. Значение изменяется от 0,0 до 1,0 (максимальная антигравитация).
VEHICLE_LINEAR_DEFLECTION_EFFICIENCY
Скалярная величина, определяющая интенсивность линейного смещения. Диапазон значений простирается от 0,0 до 1,0 (максимум смещения линейной скорости).
VEHICLE_LINEAR_DEFLECTION_TIMESCALE
Постоянная времени процесса линейного смещения. Это еще один способ определить насколько быстро произойдет перенаправление линейной скорости транспортного средства к предпочтительной оси движения.
VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY
Параметр изменяется от минимального (0,0) до максимального (1,0) смещения угловой ориентации. Это скалярная величина, определяющая интенсивность углового смещения предпочтительной оси движения объекта до совпадения с направлением его истинной скорости.
VEHICLE_ANGULAR_DEFLECTION_TIMESCALE
Постоянная времени процесса углового смещения. Это еще один способ задать интенсивность процесса переориентирования объекта к состоянию, когда его предпочтительная ось движения совпадает с направлением его истинной скорости.
VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY
Значение параметра изменяется от минимального (0,0 = шаткий) до (1,0 = устойчивый) максимального уровня стабильности поддержания транспортного средства в положении верхней частью вверх.
VEHICLE_VERTICAL_ATTRACTION_TIMESCALE
Период колебаний (или постоянная времени экспоненциального приближения) направления оси "вверх" транспортного средства в процессе переориентирования ее вдоль мировой оси "вверх".
VEHICLE_BANKING_EFFICIENCY
Значение параметра изменяется от обратного (-1,0) виража через его отсутствие (0,0) до максимальной (1,0) величины виража.
VEHICLE_BANKING_MIX
Значение параметра изменяется от статичного (0,0) до динамичного (1,0) виража. "Статичный" означает, что вираж зависит только от угла крена, а "динамичный" значит, что вираж еще зависит еще и от линейной скорости объекта.
VEHICLE_BANKING_TIMESCALE
Постоянная времени процесса экспоненциального приближения эффекта виража к его максимальному значению. Это еще один способ масштабировать интенсивность эффекта виража, однако это касается только компоненты, которая пропорциональна разнице между целевым и текущим состоянием транспортного средства.
VEHICLE_REFERENCE_FRAME
Поворот предпочтительных осей движения и ориентации транспортного средства (прямо, влево, вверх) относительно локального каркаса (X, Y, Z).
C.25. Vehicle Flags
ФЛАГИ ТРАНСПОРТНЫХ СРЕДСТВ:
VEHICLE_FLAG_NO_DEFLECTION_UP
Этот флаг предотвращает линейное смещение, параллельное мировой оси Z. Полезен для наземных транспортных средств с большим линейным смещением, например, таких как аттракционные электрические автомобильчики с бампером. В этом случае установленный флаг предотвращает их вертикальное линейное смещение.
Значение равно 1.
VEHICLE_FLAG_LIMIT_ROLL_ONLY
Для транспорта с вертикальным притяжением (vertical attractor), который должен обладать способностью набора/снижения высоты, например самолетов, использующих свойство виража.
Значение равно 2.
VEHICLE_FLAG_HOVER_WATER_ONLY
Игнорирование высоты местности при парении.
Значение равно 4.
VEHICLE_FLAG_HOVER_TERRAIN_ONLY
Игнорирование уровня водной поверхности при парении.
Значение равно 8.
VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
Парение на глобальной высоте вместо высоты над уровнем земли или воды.
Значение равно 16.
VEHICLE_FLAG_HOVER_UP_ONLY
Используйте этот флаг для парящих транспортных средств, которые должны обладать возможностью подниматься выше своей высоты парения.
Значение равно 32.
VEHICLE_FLAG_LIMIT_MOTOR_UP
Флаг предотвращает воздействие двигателя на наземное транспортное средство в воздухе. Этот флаг имеет тонкий эффект при использовании совместно со свойством виража: интенсивность виража уменьшается, когда объект больше не испытывает сцепления с землей. Постоянная времени ослабления та же, что и VEHICLE_BANKING_TIMESCALE. Служит для предотвращения поворота транспортного средства во время прыжка.
Значение равно 64.
VEHICLE_FLAG_MOUSELOOK_STEER
Поворот транспортного средства мышью. Угловой двигатель будет стремиться повернуть объект так, чтобы его локальная ось X совпадала с направлением взгляда камеры.
Значение равно 128.
VEHICLE_FLAG_MOUSELOOK_BANK
Поворот транспортного мышью с помощью виражей. Движения мыши влево-вправо преобразуются в поворот транспорта вокруг его локальной оси X.
Значение равно 256.
VEHICLE_FLAG_CAMERA_DECOUPLED
Камера будет вращаться независимо от транспортного средства. По умолчанию камера вращается совместно с объектом.
Значение равно 512.
C.26. Vehicle Types
Типы:
VEHICLE_TYPE_SLED
Простое транспортное средство будет трястись на земляных ухабах и стремится к движению вперед по локальной оси абсцисс
// 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 (doesn't 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 );
VEHICLE_TYPE_CAR
Еще одно траспортное средство будет трястись на земляных ухабах за исключением необходимости приводного двигателя для внешнего контроя или timer события.
// 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 );
VEHICLE_TYPE_BOAT
Парить над водой с трением и с угловым смещением
// 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 bouncy 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 );
VEHICLE_TYPE_AIRPLANE
Использует линейное отклонение для подьема тяжести и крена при повороте.
// 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 );
VEHICLE_TYPE_BALLOON
Парение и трение за изключением отклонения от прямого направления
// 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 );
C.27. Primitive Constants
Эти константы используются привызове функции llSetPrimitiveParams и llGetPrimitiveParams для точного определения параметров.
Параметры визуализации и формы примитива:
PRIM_TYPE
Это константа позволяет управлять различным параметрам формы примитива. PRIM_TYPE контанта должна сопровождаться соответствующими аргументами, для этой константы PRIM_TYPE Values
PRIM_TYPE_BOX
Установить примитив бокс, с формой отверстия integer, вырез vector, пустотой float, закрученность vector , верхний размер vector , и вершинным срезом vector .
PRIM_TYPE_CYLINDER
Установить примитив цилиндр, с формой отверстия integer, вырез vector, пустотой float, закрученность vector , верхний размер vector , и вершинным срезом vector .
PRIM_TYPE_PRISM
Установить примитив призма, с формой отверстия integer, вырез vector, пустотой float, закрученность vector , верхний размер vector , и вершинным срезом vector .
PRIM_TYPE_SPHERE
Установить примитив сфера, с формой отверстия integer, вырез vector, пустотой float, закрученность vector , и ямкой vector.
PRIM_TYPE_TORUS
Установить примитив торус, с формой отверстия integer, вырез vector, пустотой float, закрученность vector , верхний размер vector , и вершинным срезом vector, с конусным сужением vector , float revolutions, float radius offset, and float skew.
PRIM_TYPE_TUBE
Установить примитив тубус, с формой отверстия integer, вырез vector, пустотой float, закрученность vector , диаметром отверстия vector , вершинным срезом vector, выдвинутое сечение vector, конусностью vector, float revolutions, смещение радиуса float, и уклоном float .
PRIM_TYPE_RING
Установить примитив кольцо, с формой отверстия integer, вырез vector, пустотой float, закрученность vector , диаметром отверстия vector , вершинным срезом vector, выдвинутое сечение vector, конусностью vector, float revolutions, смещение радиуса float, и уклоном float.
Для выбора формы отверстия используй одну из констант PRIM_HOLE_DEFAULT, PRIM_HOLE_CIRCLE, PRIM_HOLE_SQUARE, или PRIM_HOLE_TRIANGLE.
PRIM_MATERIAL
Выбрать один из материалов для обьекта PRIM_MATERIAL_STONE, PRIM_MATERIAL_METAL, PRIM_MATERIAL_GLASS, PRIM_MATERIAL_WOOD, PRIM_MATERIAL_FLESH, PRIM_MATERIAL_PLASTIC, PRIM_MATERIAL_RUBBER, or PRIM_MATERIAL_LIGHT.
PRIM_PHYSICS
Установить параметр - физический обьект или нет TRUE или FALSE.
PRIM_TEMP_ON_REZ
Установить параметр - временный обьект или нет TRUE или FALSE.
PRIM_PHANTOM
Установить параметр - обьект является фантомом(безпрепятственным) или нет TRUE или FALSE.
PRIM_POSITION
Установить положение(координаты) задаваемые вектором vector.
PRIM_SIZE
Установить размер задаваемый вектором vector.
PRIM_ROTATION
Установить поворот задаваемые задаваемый с помощью rotation типа данных.
PRIM_TEXTURE
Устанавливает тектстуру на сторону integer, key id, с повторениями vector, смещением vector, и поворотом float rotation в радианах.
PRIM_COLOR
Устанавливает цвет тектстуры на сторону integer, с цветом vector, и прозрачностью float.
PRIM_BUMP_SHINY
Устанавливает бамп - тектстуру и блик - текстуру на сторону integer, одну из PRIM_SHINY_NONE, PRIM_SHINY_LOW, PRIM_SHINY_MEDIUM, или PRIM_SHINY_HIGH, и одну из PRIM_BUMP_NONE, PRIM_BUMP_BRIGHT, PRIM_BUMP_DARK, PRIM_BUMP_WOOD, PRIM_BUMP_BARK, PRIM_BUMP_BRICKS, PRIM_BUMP_CHECKER, PRIM_BUMP_CONCRETE, PRIM_BUMP_TILE, PRIM_BUMP_STONE, PRIM_BUMP_DISKS, PRIM_BUMP_GRAVEL, PRIM_BUMP_BLOBS, PRIM_BUMP_SIDING, PRIM_BUMP_LARGETILE, PRIM_BUMP_STUCCO, PRIM_BUMP_SUCTION, or PRIM_BUMP_WEAVE.
C.28. XML-RPC Constants
Эти константы получает событие remote_data: REMOTE_DATA_CHANNEL, REMOTE_DATA_REQUEST, и REMOTE_DATA_REPLY.
C.29. Permission Mask Constants
Эти MASK_* константы используются в качестве аргумента в функциях llGetObjectPermMask и llGetInventoryPermMask . Эти функции возвращают комбинацию PERM_* констант.
Константы масок и разрешений:
MASK_BASE
Точно определяет базовые права дступа. Эти права идентичны для владельца за исключением заблокированных обьектов. Когда обьект заблокирован права владелеца на передвижение и модификацию закрыты. После разблокировки обьекта права возвращаются владельцу.
MASK_OWNER
Точно пределяет права доступа владельца которые ни когда не привысят дозволеного(базовых прав).
MASK_GROUP
Точно определеет права доступа группы . Они ни когда не привысят права владельца.
MASK_EVERYONE
Точно определяет права всех. Они ни когда не привысят права владельца.
MASK_NEXT
Точно определяет права доступа следующего владельца которые ни когда не привысят дозволеного(базовых прав).
PERM_MOVE
Установлен если позволено двигать
PERM_MODIFY
Установлен если позволено модифицировать
PERM_COPY
Установлен если позволено копировать
PERM_TRANSFER
Установлен если позволено передавать
PERM_ALL
Эта константа устанавливается если установленны все константы вида PERM_*
C.30. Parcel Media Constants (Movies)
Эти константы передаются в функцию llParcelMediaCommand для управления проигрыванием мультимедиа ресурсов в пределах територии владельца.
Медиа константы которые используются только на частной територии:
PARCEL_MEDIA_COMMAND_STOP
Остановка медиа потока и возврат на начальный фрейм.
PARCEL_MEDIA_COMMAND_PAUSE
Пауза медиа потока (Остановка медиа потока и пребывание на текущем фрейме)
PARCEL_MEDIA_COMMAND_PLAY
Старт медиа потока и проигрывание начиная с текущего фрейма и остановка при достижении конца.
PARCEL_MEDIA_COMMAND_LOOP
Старт медиа потока с текущего фрэйма и проигрывание при достижении конца возвращается на начальный фрейм и проигрывает все заново.
PARCEL_MEDIA_COMMAND_TEXTURE
Эта константа используется для получения или установки медиа текстуры по умолчанию.
PARCEL_MEDIA_COMMAND_URL
Эта константа испльзуется для получения или установки URL адреса медиа пакета
PARCEL_MEDIA_COMMAND_TIME
Это испльзуется для запуска видеопотока в определенное время
PARCEL_MEDIA_COMMAND_AGENT
Применяет средства управления Медиа потоком только к одному текщему агенту(для каждого агента будут показыватся разные видео потоки если создать выбор из списка)
PARCEL_MEDIA_COMMAND_UNLOAD
Полностью выгружает Мувы и востанавливает первоначальную текстуру
PARCEL_MEDIA_COMMAND_AUTO_ALIGN
Установить пакет опций "автоматический масштаб содержимого"
===============================================================================