Linden Scripting Language/ru

From Second Life Wiki
Jump to navigation Jump to search

Linden Scripting Language (LSL) - встроенный в систему скриптовый язык программирования, позволяет добавлять предметам определенные автономные возможности и контролировать поведение объектов. Например, сделать так, чтобы дверь автоматически открывалась, когда к ней кто-то приближается. С помощью LSL создаются не только простые функции, но и проводятся серьезные эксперименты. LSL имеет аналогичный синтаксис с C.

Вся информация о "Linden Scripting Language" является доступной на LSL портале.

КРАТКИЙ СПРАВОЧНИК ПО ЯЗЫКУ LSL (отформатированная )(перевод HELP c некоторыми дополнениями)

КРАТКИЙ СПРАВОЧНИК ПО LSL


ЯЗЫК 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);

== != Comparison Equal, Comparison Not Equal isFalse = ("this" == "that"irony;

& 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 кодов(например ( " )прямые ковычки преобразуются вот в такую последовательность &quotirony.

Экономит 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'"irony;

}

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"irony;

}

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 и выше)
   И множество других о которых можно узнать с сайта http://www.apple.com/quicktime/products/qt/specifications.html


Есть хорошее правило гласящее , что если это будет проигрывать плеер 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, "http://enter_your.url/here", 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"irony, что усложняет использование 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 (http://secondlife.com/)

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

Установить пакет опций "автоматический масштаб содержимого"


===============================================================================