Темы:
КРАТКИЙ СПРАВОЧНИК ПО 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"
;
& Bitwise AND zero = 4 & 2;four = 4 & 4;
^ Bitwise XOR zero = 4 ^ 4; six = 4 ^ 2;
| Bitwise OR four = 4 | 4; six = 4 | 2;
&& Comparison AND isFalse = (FALSE && TRUE);
|| Comparison OR isTrue = (FALSE || TRUE);
= += -= *= /= %= Assignment four = 4;
States
В любой программе написанной на LSL обязательно должно быть хотябы одно состояние. Начальное состояние в котором обявляются и описываются все события называется default состоянием.
Форма записи состояний:
default{событие1{}событие2{}событиеN{}} -- так описывается начальное состояние
state состояние1{событие1{}событие2{}событиеN{}} -- так описывается любое состояние определенное пользователем
Вызов любого из обьявленных и описанных состояних может быть произведен из любого места в программе описанной в событиях.
Форма вызова события:
default
{
событие1 { ... }
событие2 { ... ; state состояние2 ; ... ; }
событиеN { ... }
}
state состояние2
{
событие1 { ... }
событие2 { ... ; state default ; ... ; }
событиеN { ... }
}
Обьявление состояния default не требует ключевого слова state.
Types
integer - целочисленный тип данных
float - тип данных с плавающей точкой
string - строковый тип данных а также и символьный
key - тип данных использующийся для хранения уникальных ключей ID
vector - тип данных использующийся для хранения коордитат или схожих данных в виде < x, y, z >
rotation - тип данных использующийся для хранения угловых параметров или схожих данных в виде < x, y, z, s >
list - смешаный тип данных обьеденяющий в себе понятия структуры и масива. Можно хранить списки любых типов данных в любом порядке.
Variables
Примеры записи значений переменных разных типов:
integer - 1234567
float - 123456.789
string - "stroka"
key - "a822ff2b-ff02-461d-b45d-dcd10a2de0c2"
vector - < 0.35, 1.456, 234.23 >
rotation - < 0.35, 1.456, 234.23, 12.3 >
list - [1234567, "stroka", "a822ff2b-ff02-461d-b45d-dcd10a2de0c2", < 0.35, 1.456, 234.23, 12.3 >, < 0.35, 1.456, 234.23 >]
Errors
Сообщения о ошибках происходящих в работе програмы отправляются по специальному каналу DEBUG_CHANNEL и они все будут отображатся в тексте чата.
Приложение A. БИБЛИОТЕЧНЫЕ ЛИНДЕН-ФУНКЦИИ
A.1. llAbs
integer llAbs(integer val);
Возвращает абсолютное число
A.2. llAcos
float llAcos(float val);
Возвращает арккосинус числа
A.3. llAddToLandPassList
llAddToLandPassList(key avatar, float hours);
Добавить аватара avatar к пропускному списку Этой земли на время hours.
A.4. llAdjustSoundVolume
llAdjustSoundVolume(float volume);
Настроить громкость проигрывания звука прикрепленного к обьекту с этим скриптом и запущенного с помощью llPlaySound или llLoopSound. Эта функция не дает эффекта если не установлен тригер звука с помошью функции llTriggerSound.
A.5. llAllowInventoryDrop
llAllowInventoryDrop(integer add);
Если add = TRUE, юзер не сможет модифицировать права доступа для выбрасывания из инвентаря
A.6. llAngleBetween
float llAngleBetween(rotation a, rotation b);
Возвращает угол в радианах между поворотами a и b.
A.7. llApplyImpulse
llApplyImpulse(vector force, integer local);
Применить импульс force к локальной системе координат local если local = TRUE. Иначе приложенный импульс будет приложен к глобальной системе координат. Эта функция работает только с физическими обьектами.
A.8. llApplyRotationalImpulse
llApplyRotationalImpulse(vector force, integer local);
Задать импульс вращения force к системе координат local если local = TRUE. Иначе приложенный импульс будет приложен к глобальной системе координат. Эта функция работает только с физическими обьектами.
A.9. llAsin
float llAsin(float val);
Возвращает арксинус в радианах
A.10. llAtan2
float llAtan2(float y, float x);
Возвращает arctangent2 из y, x
A.11. llAttachToAvatar
llAttachToAvatar(key avatar, integer attachment);
Прикрепить к аватару в точку attachment. Требуется PERMISSION_ATTACH разрешение аватара на выполнения данной функции.
A.12. llAvatarOnSitTarget
key llAvatarOnSitTarget(void);
Если аватар сидит на обьекте предназначенном для сидения , возврашается ключ аватара, иначе возвращается NULL_KEY. Это единственная возможность обнаружить сидит ли аватар на обьекте определенном с помощью функции llSitTarget для сидения.
A.13. llAxes2Rot
rotation llAxes2Rot(vector fwd, vector left, vector up);
Возвращает свойства вращение обьекта , представленное в осевых координатах. Возвращает поворот системы заданной тремя координатами.
A.14. llAxisAngle2Rot
rotation llAxisAngle2Rot(vector axis, float angle);
Возвращает поворот rotation сгенерированный по углу angle на оси axis.
A.15. llBase64ToString
string llBase64ToString(string str);
Конвертирует строку Base 64 string в обычную строку. Если преабразование создает непонятный символ то функция конвертирует его в пробел.
A.16. llBreakAllLinks
llBreakAllLinks(void);
Разорвать связь всех обьектов в установленной связи(залинкованых или обьединеных в оди составной). Требует получения PERMISSION_CHANGE_LINKS разрешения.
A.17. llBreakLink
llBreakLink(integer linknum);
Разорвать связь с сгрупированным(залинкованным) обьектом linknum. Требует получения PERMISSION_CHANGE_LINKS разрешения после которого у нас будет право на разгрупировку.
A.18. llCSV2List
list llCSV2List(string src);
Создать список list из строки srс , данные в которой перечисляются через запятую.
A.19. llCeil
integer llCeil(float val);
Возвращает наибольшее integer значение >= val.
A.20. llCloseRemoteDataChannel
llCloseRemoteDataChannel(key channel);
Закрывает XML-RPC канал открытый с помощью функции llOpenRemoteDataChannel .
A.21. llCloud
float llCloud(vector offset);
Возвращает плотность облака по текущим координатам смещенным на вектор offset .
A.22. llCollisionFilter
llCollisionFilter(string name, key id, integer accept);
Если допуск accept == TRUE, допускается только столкновение с обьектом name и id , иначе с обьектом без имени name или id. Спецификаторы могут принимать любую последовательность или NULL_KEY если не нужен фильтр на передачу параметра.
A.23. llCollisionSound
llCollisionSound(string impact_sound, float impact_volume);
Выключить звук столкновения по умолчанию, и заменить звуком удара с impact_sound находящимся в object inventory.
A.24. llCollisionSprite
llCollisionSprite(string impact_sprite);
Запретить появление спрайта при столкновения установленный по умолчанию, заменить толчковый спрайт на установленный по умолчанию impact_sprite из инвентаря обьекта. Только запретить спрайт столкновения установленный по умолчанию если строка пуста.
A.25. llCos
float llCos(float theta);
Возвращает косинус угла theta в заданного в радианах
A.26. llCreateLink
llCreateLink(key target, integer parent);
Создает связь(линк) обьекта с другим обектом по его ключу target. Требуется получить разрешение PERMISSION_CHANGE_LINKS . Если параметр parent = TRUE , то обьект прикрепится к корневому обьекту.
A.27. llDeleteSubList
list llDeleteSubList(list src, integer start, integer end);
Удаляет елементы из списка src начиная с позиции start и заканчивая позицией end. Если промежуток между конечной и начальной позицией равен 0,-1 то удалится весь список, если 0,0 то удалится первый элемент , если напимер нач позиция больше конечной то удалится все (включая и позиции старта и конца)кроме того что было межу этими позициями.
A.28. llDeleteSubString
string llDeleteSubString(string src, integer start, integer end);
Удаляет елементы из строки src начиная с позиции start и заканчивая позицией end. Если промежуток между конечной и начальной позицией равен 0,-1 то удалится все символы, если 0,0 то удалится первый символ , если напимер нач позиция больше конечной то удалится все (включая и позиции старта и конца)кроме того что было межу этими позициями.
A.29. llDetachFromAvatar
llDetachFromAvatar(key avatar);
Отсоединяет от автара присоединеную к нему вещь содержащую этот срипт с этой функцией по его ID.
A.30. llDetectedGrab
vector llDetectedGrab(integer number);
Возвращает вектор мгновенного движения обнаруженного обьекта по его номеру обнаружения. (не ID) . Возвращает <0,0,0> если номер не действительный.
A.31. llDetectedGroup
integer llDetectedGroup(integer number);
Возвращает TRUE если обнаруженный обьект number это участник группы владельца этого скрипта.
A.32. llDetectedKey
key llDetectedKey(integer number);
Возвращает ключ обнаруженного обьекта по его номеру обнаружения(маркеру) number. Возвращает NULL_KEY если номер не действительный.
A.33. llDetectedLinkNumber
integer llDetectedLinkNumber(integer number);
Возвращает номер обьединеного(залинкованного) обьекта по которобу было произведено нажатие и в результате чего было запущенно touches событие. 0 - если обьект не залинкован(необнаружен), 1 - если корневой обьект, 2,3,4... и т.д. - если обьект дочерний .
A.34. llDetectedName
string llDetectedName(integer number);
Возвращает имя по номеру обнаружения number обьекта. Возвращает пустую строку если номер не действительный и не совпадает с обнаруженными обьтектами.
A.35. llDetectedOwner
key llDetectedOwner(integer number);
Возвращает ключ обнаруженного обьекта владельца по номеру обнаружения number. Возвращает NULL_KEY если номер недействительный.
A.36. llDetectedPos
vector llDetectedPos(integer number);
Возвращает положение обнаруженного обьекта по его номеру обнаружения number .Возвращает <0,0,0> если number недействительный.
A.37. llDetectedRot
rotation llDetectedRot(integer number);
Возвращает поворот обнаруженного обьекта по его номеру обнаружения number .Возвращает <0,0,0,1> если number недействительный.
A.38. llDetectedType
integer llDetectedType(integer number);
Возвращает тип обнаруженного обьекта по его номеру обнаружения(маркеру) number . Тип является битовым полем содержащим в себе одну или несколько констант (AGENT, ACTIVE, PASSIVE, SCRIPTED). Возвращает 0 если указанный маркер number недействительный(т.е. Указан маркер несуществующего обьекта).
Пример:
integer type = llDetectedType(0);//получаем параметр состояния обекта
if (type & AGENT)//сравниваем с помощю побитового И
{
// ...do stuff with the agent
}
A.39. llDetectedVel
vector llDetectedVel(integer number);
Возвращает вектор скорости обнаруженного обьекта по его номеру обнаружения(маркеру) number .Возвращает <0,0,0> если number недействительный.
A.40. llDialog
llDialog(key avatar, string message, list buttons, integer channel);
Открывает "бокс сообщения" в верхнем правом углу для данного аватара и выводит на экран сообщение. В сообщение может входить до 12 кнопок которые определяются в списке buttons. Когда аватар нажимает на кнопку имя кнопки передается по определенному каналу channel. Каналы используются такиеже как функцией llSay(), таким образом канал 0 может быть услышан каждым если он находится рядом так как это общественный канал.
LLDialog(who, "Are you a boy or a girl?", [ "Boy", "Girl" ], 4913);
LLDialog(who, "This shows only an OK button.", [], 192);
llDialog(who, "This chats so you can hear it.", ["Hooray"], 0);
A.41. llDie
llDie(void);
Удалить обьект содержащий этот скрипт.
A.42. llDumpList2String
string llDumpList2String(list src, string separator);
Создает строку из списка SRC используя SEPARATOR как разделитель элементов списка в строке
A.43. llEscapeURL
string llEscapeURL(string url);
Возвращает строку преобразованную в строку из escape кодов(например ( " )прямые ковычки преобразуются вот в такую последовательность "
.
Экономит 20% пространства.
A.44. llEdgeOfWorld
integer llEdgeOfWorld(vector pos, vector dir);
Возвращает TRUE если линия от начальных координат pos до конечных координат dir выходит за края текущего сима (земли ) . Возвращает FALSE если концы линии находятся за пределами сима.
A.45. llEjectFromLand
llEjectFromLand(key pest);
Выбросить вредителя pest с земельной собственности по его ключу.
A.46. llEmail
llEmail(string address, string subject, string message);
Послать email по адрессу address от субьекта subject и сообщение message.
A.47. llEuler2Rot
rotation llEuler2Rot(vector vec);
Возвращает поворот представленный в системе Эйлера vec.
A.48. llFabs
float llFabs(float val);
Возвращает абсолютное значение числа val.
A.49. llFloor
integer llFloor(float val);
Возвращает наибольшее integer значение <= val.
A.50. llFrand
float llFrand(float mag);
Возвращает случайное число в диапазоне [0, mag).
A.51. llGetAccel
vector llGetAccel(void);
Получает ускорение.
A.52. llGetAttached
integer llGetAttached(void);
Возвращает точку крепления обьекта к аватару или возвращает 0 если обьект не прикреплен.
A.53. llGetAgentInfo
integer llGetAgentInfo(key id);
Возвращает информацию о данном агенте по его ID. Возвращает в виде битового поля которое можно прочитать с помощью констант agent info constants.
A.54. llGetAgentSize
vector llGetAgentSize(key id);
Если ключ id агента находится в этомже симе что и обьект с этим скриптом, возвращает размер аватара.
A.55. llGetAlpha
float llGetAlpha(integer face);
Возвращает коофициент прозрачности alpha данной стороны face. Если сторона face является ALL_SIDES возвращает значение среднего числа альфы всех сторон.
A.56. llGetAndResetTime
float llGetAndResetTime(void);
Возвращает в секундах продолжительность во внутренем хронометре скрипта. Таймер сбрасывается в ноль при вызове этой функции. Таймер также сбрасывает on rez, симулятор перезапускается , скрипт сбрасывается , и вызывается функция llResetTime. Выберите функцию llSetTimerEvent если вы хотите надежный механизм выбора времени.
A.57. llGetAnimation
string llGetAnimation(key id);
Возвращает имя анимации происхдящей в данное с аватаром по его ID.
A.58. llGetAnimationList
list llGetAnimationList(key id);
Возвращает список анимаций аватара происхдящих в данное время по его ID.
A.59. llGetBoundingBox
list llGetBoundingBox(key object);
Возвращает ограничивающий прямоугольник вокруг обьекта object (включающий любой соединеный примитив) по отношению к корневому примитиву. Возвращает значение в списке list в форме : [ (vector) min_corner, (vector) max_corner ]
A.60. llGetCenterOfMass
vector llGetCenterOfMass(void);
Возвращает центр массы коренного обьекта.
A.61. llGetColor
vector llGetColor(integer face);
Возвращает цвет данной стороны face. Если сторона face является ALL_SIDES возвращает среднее значение каждого цветового канала.
A.62. llGetCreator
key llGetCreator(void);
Возвращает ключ создателя обьекта который имеет этот скрипт.
A.63. llGetDate
string llGetDate(void);
Возвращает текущую UTC(универсальную) дату в виде --- YYYY-MM-DD.
A.64. llGetEnergy
float llGetEnergy(void);
Возвращает энергию обьекта как процент от максимума.
A.65. llGetForce
vector llGetForce(void);
Возвращает поток силы если скрипт физический.
A.66. llGetFreeMemory
integer llGetFreeMemory(void);
Возвращает доступное пространство скриптового потока(т.е. Оставшуюся свободную память которую может использовать текущий скрипт).
A.67. llGetGeometricCenter
vector llGetGeometricCenter(void);
Возвращает геометрический центр сгрупированных(залинкованых) и прикрепленных к аватару обьектов.
A.68. llGetGMTclock
float llGetGMTclock(void);
Возвращает время в секундах начиная с GMT полночи.
A.69. llGetInventoryCreator
key llGetInventoryCreator(string name);
Возвращает ключ(идентификатор) создателя обьекта name находящегося в личном инвентаре текущего обьекта.
A.70. llGetInventoryKey
key llGetInventoryKey(string name);
Возвращает ключ по заданному имени name записи(или обьекта) в личном инвентаре текущего обьекта.
A.71. llGetInventoryName
string llGetInventoryName(integer type, integer number);
Получает имя записи в личном инвентаре текущего обьекта по заданому порядковому номеру number и типу type. Выбери константу inventory constants для точного определения типа type.
A.72. llGetInventoryNumber
integer llGetInventoryNumber(integer type);
Получает количество записей в личном инвентаре текущего обьекта по заданому типу type. Выбери константу inventory constants для точного определения типа type.
A.73. llGetInventoryPermMask
integer llGetInventoryPermMask(string item, integer mask);
Возвращает ответ на запрос о разрешение mask на использование обьекта для указанного обьекта в инвентаре. Ответ возвращается в виде битовых констант Permission Mask Constants по которым можно определить какие разрешения доступны для пользователя.
Пример использования:
integer JeansPerms = llGetInventoryPermMask("Black Jeans", MASK_NEXT);
if (JeansPerms & PERM_COPY)
{
llSay(0, "Следующи владелец может копировать 'Black Jeans'"
;
}
A.74. llGetInventoryType
integer llGetInventoryType(string name);
Возвращает тип обьекта name находящегося в инвентаре обьекта. Константа INVENTORY_NONE возвращается если в инвентаре не было найдено обьекта по имени name. Выбери константу inventory constants для сравнения с возвращенными функцией данными.
A.75. llGetKey
key llGetKey(void);
Получить ключ(идентификатор) обьекта с этим скриптом.
A.76. llGetLandOwnerAt
key llGetLandOwnerAt(vector pos);
Возвращает ключ владельца земли в точке этой земли pos или NULL_KEY если земля общественная.
A.77. llGetLinkKey
key llGetLinkKey(integer linknum);
Возвращает ключ обьединеного (залинкованного) обьекта по его порядковому номеру linknum . 0 -если не залинкован 1-если корневой 2- если дочерний. И т.д.
A.78. llGetLinkName
string llGetLinkName(integer linknum);
Возвращает имя обьединеного (залинкованного) обьекта по его порядковому номеру linknum . 0 -если не залинкован 1-если корневой 2- если дочерний. И т.д.
A.79. llGetLinkNumber
integer llGetLinkNumber(void);
Возвращает личный порядковый номер обьекта который обьединен с другими обьектами(залинкован) . 0 -если не залинкован 1-если корневой 2- если дочерний. И т.д.
A.80. llGetListEntryType
integer llGetListEntryType(list src, integer index);
Возвращает тип type переменной по индексу index в списке src.
A.81. llGetListLength
integer llGetListLength(list src);
Возвращает количество элементов в списке src.
A.82. llGetLocalPos
vector llGetLocalPos(void);
Возвращает локальную позицию обьекта относительно корневого обьекта .
A.83. llGetLocalRot
rotation llGetLocalRot(void);
Возвращает локальный угол поворота обьекта относительно корневого обьекта.
A.84. llGetMass
float llGetMass(void);
Возвращает массу обьекта в киллограммах. Многие материалы в SL немного меньшей плотности чем в жизни , таким образом возвращается масса немного меньше чем вы можете представить.
A.85. llGetObjectMass
float llGetObjectMass(key id);
Возвращает массу обьекта в киллограммах по его идентификатору ID. Многие материалы в SL немного меньшей плотности чем в жизни , таким образом возвращается масса немного меньше чем вы можете представить.
A.86. llGetNextEmail
llGetNextEmail(string address, string subject);
Получает следующий ожидаемый емайл с соответствующего адреса address и/или от соответствующего субьекта subject. Если параметры не заданы то данные не будут отфильтрованы и поступит первый попавшийся емайл.
A.87. llGetNotecardLine
key llGetNotecardLine(string name, integer line);
Эта функция по номеру строки line блокнота name получает содержимое одной строки через dataserver событие . Нумерация строк начинается с нуля. Если линия запроса подошла к концу блокнота dataserver событие вернет константу EOF string. Ключ возвращенный этой функцией это идетификатор который будет передаваатся dataserver событию в requested параметре.
A.88. llGetNumberOfNotecardLines
key llGetNumberOfNotecardLines(string name);
Эта функция подсчитывает количество строк блокнота name (находящегося в инвентаре обьекта) и возвращает их количество через dataserver событие . Ключ возвращенный этой функцией это идетификатор который будет передаваатся dataserver событию в requested параметре , его можно использовать для сверки - на какой запрос был получен ответ.
A.89. llGetNumberOfPrims
integer llGetNumberOfPrims(void);
Возвращает количество примитивов в сгрупированном(залинкованном или составном) обьекте .
A.90. llGetNumberOfSides
integer llGetNumberOfSides(void);
Возвращает количество сторон(граней) обьекта который содержит этот скрипт.
A.91. llGetObjectDesc
string llGetObjectDesc(void);
Возвращает дескриптор (описание такоеже примерно как name) обьекта который содержит этот скрипт.
A.92. llGetObjectName
string llGetObjectName(void);
Возвращает имя обьекта который содержит этот скрипт.
A.93. llGetObjectPermMask
integer llGetObjectPermMask(integer mask);
Возвращает ответ на запрос о разрешении маски mask для прикрепления корневого обьекта . Смотри Permission Mask Constants для большей информации. Возвращаемое значение является битовым полем.
Пример использования:
integer ObjectPerms = llGetObjectPermMask(MASK_NEXT);
if (ObjectPerms & PERM_COPY)
{
llSay(0, "The next owner may copy this item"
;
}
A.94. llGetOmega
vector llGetOmega(void);
Возвращает омегу - Скорость вращения по трем осям.
A.95. llGetOwner
key llGetOwner(void);
Возвращает ключ(идетификатор) владельца обьекта (владелец это не тоже самое что создатель владелец это тот аватар который имеет текущий предмет у себя в инвентаре).
A.96. llGetOwnerKey
key llGetOwnerKey(key id);
Возвращает ключ(идентификатор) владельца обьекта по id(идентификатору) этого обьекта.
A.97. llGetPermissions
integer llGetPermissions(void);
Возвращает информацию о том какие права permissions были разрешены(выданны) . Возвращаемое значение является битовым полем (тоесть может содержать множественный ответ каждый из которых сверяется с константой).
Пример:
integer perm = llGetPermissions();
if((perm & PERMISSION_DEBIT) == PERMISSION_DEBIT)
{
// code goes here
}
A.98. llGetPermissionsKey
key llGetPermissionsKey(void);
Возвращает ключ аватара если для него разрешены права (у нешо есть право). Возвращает NULL_KEY если нет разрешения.
A.99. llGetPos
vector llGetPos(void);
Возвращает позицию обьекта в глобальных координатах сима(острова).
A.100. llGetPrimitiveParams
list llGetPrimitiveParams(list parameters);
Эта функция получает список установленых параметров текущего примитива. В списке parameters используются константы Primitive Constants обозначающие имя каждого параметра.
Пример:
llGetPrimitiveParams([PRIM_TYPE, PRIM_MATERIAL, PRIM_COLOR, ALL_SIDES, PRIM_POSITION]);
Эта функция веозвращает вот такой список параметров:
[PRIM_TYPE_BOX, PRIM_HOLE_DEFAULT, <0, 1, 0>, 0.0, <0, 0, 0>, <1, 1, 0>, <0, 0, 0>, // PRIM_TYPE
PRIM_MATERIAL_WOOD, // PRIM_MATERIAL
0, <1, 1, 1>, 1.0, // PRIM_COLOR (ALL_SIDES спцификатор, который обозначает все 6 сторон)
1, <1, 0, 0>, 0.5,
2, <0, 0, 1>, 1.0,
3, <0, 1, 0>, 1.0,
4, <0, 0, 0>, 0.5,
5, <1, 1, 1>, 1.0,
<37.341, 195.283, 31.239>] // PRIM_POSITION
A.101. llGetRegionCorner
llGetRegionCorner(void);
Возвращает вектор юго-западного угла текущего региона.
A.102. llGetRegionFPS
llGetRegionFPS(void);
Возвращает среднюю частоту кадров в текущем регионе (тоесть возвращает FPS текущего сима).
A.103. llGetRegionName
string llGetRegionName(void);
Возвращает имя текущего региона.
A.104. llGetRegionTimeDilation
float llGetRegionTimeDilation(void);
Возвращает текущее расширенное время в виде числа в промежутке от 0 до 1.
A.105. llGetRootPosition
vector llGetRootPosition(void);
Возвращает глобальное положение коренного обьекта из прикрепленного(залинкованного) к нему обьекта в котором находится этот скрипт.
A.106. llGetRootRotation
rotation llGetRootRotation(void);
Возвращает глобальное поворот коренного обьекта из прикрепленного(залинкованного) к нему обьекта в котором находится этот скрипт.
A.107. llGetRot
rotation llGetRot(void);
Возвращает поворот обьекта с этим скриптом.
A.108. llGetScale
vector llGetScale(void);
Возвращает масштаб обьекта с этим скриптом.
A.109. llGetScriptName
string llGetScriptName(void);
Возвращает имя текущего скрипта.
A.110. llGetStartParameter
integer llGetStartParameter(void);
Возвращает стартовые параметры переданные при вызове функций llRezObject или llRezAtRoot. Если обьект создан из инвентаря агента, то эта функция возвращает 0.
A.111. llGetScriptState
integer llGetScriptState(string name);
Установить Rest TRUE если скипт name запущен.
A.112. llGetStatus
integer llGetStatus(integer status);
Возвращает значение статуса status. Единственное значение будет в виде константы status constants. С помощью этой функции можно получить такие данные об оьекте как: физический обьект или нет, является ли обьект фантомом, по каким осям заблокирован поворот обьекта, можно ли его передвигать с помощью курсора мышки «Рука» и т.д.
A.113. llGetSubString
string llGetSubString(string src, integer start, integer end);
Возвращает часть строки src начиная от стартовой позиции start до конечной end, таким образом 0, 1 длина захватывает всю строку и 0,0 захватывает первый символ. Использование отрицательного номера start и/или end подсчитывает в обратном направлении в результате 0,-1 захватывает всю строку. Если start больше end то захватится вся строка за исключением символов в диапазоне от start до end. Например 6,4 захватит всю строку кроме 5 символов.
A.114. llGetSunDirection
vector llGetSunDirection(void);
Возвращает вектор направления солнца всимуляторе.
A.115. llGetTexture
string llGetTexture(integer face);
Возвращает имя текстуры с заданой стороны обьекта если такая тектстура присутствует в инвентаре обьекта
A.116. llGetTextureOffset
vector llGetTextureOffset(integer side);
Возвращает смещение текстуры на стороне обьекта side в X и Y компонентах вектора.
A.117. llGetTextureRot
float llGetTextureRot(integer side);
Возвращает поворот текстуры на стороне side.
A.118. llGetTextureScale
vector llGetTextureScale(integer side);
Возвращает маштаб текстуры на стороне side в X и Y компонентах вектора.
A.119. llGetTime
float llGetTime(void);
Возвращает второе астрономическое время из внутреннего таймера связанного со скриптом. Таймер сбрасывается on rez, симулятор перестартовывает, скрипт сбрасывается, и в вызове llGetAndResetTime или llResetTime. Выбераем llSetTimerEvent если вы хотите надежный временной механизм.
A.120. llGetTimeOfDay
float llGetTimeOfDay(void);
Получить времяв секундах осчитывая с полночи в SECOND LIFE.
A.121. llGetTimestamp
string llGetTimestamp(void);
Получить время в формате : YYYY-MM-DDThh:mm:ss.ff..fZ.
A.122. llGetTorque
vector llGetTorque(void);
Получить момент вращения если скрипт физический.
A.123. llGetVel
vector llGetVel();
Возвращает скорость.
A.124. llGetWallclock
float llGetWallclock(void);
Возвращает время в секундах с тех пор как в симуляторе наступила полночь. В настоящее время это PST.
A.125. llGiveInventory
llGiveInventory(key destination, string inventory);
Выдать деталь из инвентаря inventory Аватару или обьекту ключ которого указан в destination. Если получатель является Аватаром, тогда аватар после этого следует нормальной процедуре принятия или отказа от предложения. Если получатель является какимлибо обьектом то права доступа будут применятся как будто это были вы и перемещали в инвентаре обьекты вручную, если функция llAllowInventoryDrop была вызвана с TRUE параметрами любой другой обьект может быть пропущен в инвентарь.
A.126. llGiveInventoryList
llGiveInventoryList(key destination, string category, list inventory);
Выдать указанный перечень деталей из инвентаря аватару или обьекту ключ которого destination в томже симуляторе где находится обьект у которого это берут. Если получатель является аватаром, то он после этого следует нормальной процедуре принятия или отказа от предложения. Предложенный инвентарь после этого помещяется в папку названную category в инвентаре получателя. Если получатель является любым обьектом то к нему применяются права также как если бы это были вы и перемещали в инвентаре обьекты вручную, если llAllowInventoryDrop была вызвана с TRUE параметрами любой другой обьект может быть пропущен в инвентарь.
A.127. llGiveMoney
llGiveMoney(key destination, integer amount);
Передает сумму amount с помощью скрипта владельца в пункту назначения destination . Это вызов не будет успешным если не был установленно разрешение PERMISSION_DEBIT
A.128. llGround
float llGround(vector offset);
Возвращает высоту земли по кординатам обьекта со смещение координат offset
A.129. llGroundContour
vector llGroundContour(vector offset);
Возвращает контур земли по кординатам обьекта со смещение координат offset
A.130. llGroundNormal
vector llGroundNormal(vector offset);
Возвращает вектор нормалей земли по кординатам обьекта со смещение координат offset
A.131. llGroundRepel
llGroundRepel(float height, integer water, float tau);
Критическая аммортизация(тормоз) по высоте height , если высота в пределах height * 0.5 уровня. Height выше уровня земли вода water - FALSE , или выше уровня земли и вода если water - TRUE
A.132. llGroundSlope
vector llGroundSlope(vector offset);
Возвращает уклон земли под позицией обьекта со смещением offset
A.133. llInsertString
string llInsertString(string dst, integer position, string src);
Вставить строку src в строку dst на позицию position и вернуть результат.
A.134. llInstantMessage
llInstantMessage(key user, string message);
Послать сообщение message юзеру(по ключу) user согласно мнгновенному сообщению.
A.135. llKey2Name
string llKey2Name(key id);
Если обьект с этим ID находится в этомже симуляторе(територии), возвращается имя обьекта.
A.136. llList2CSV
string llList2CSV(list src);
Создает строку отделенную запятыми со значениями из списка src.
A.137. llList2Float
float llList2Float(list src, integer index);
Возвращает значение с плав точкой float по индексу index из списка src.
A.138. llList2Integer
integer llList2Integer(list src, integer index);
Возвращает целое integer по индексу index из списка src.
A.139. llList2Key
key llList2Key(list src, integer index);
Возвращает ключ key по индексу index из списка src.
A.140. llList2List
list llList2List(list src, integer start, integer end);
Возвращает новый список как часть списка от стартовой позиции start до конечной end из списка src . Если промежуток между конечной и начальной позицией равен 0,-1 то вернется весь список, если 0,0 то вернется первый элемент , если напимер начальная позиция больше конечной то вернется все (включая и позиции старта и конца)кроме того что было межу этими позициями.
A.141. llList2ListStrided
list llList2ListStrided(list src, integer start, integer end, integer stride);
Копирует равные доли из списка src начиная от позиции start до позиции end c шагом stride.
A.142. llList2Rot
rotation llList2Rot(list src, integer index);
Возвращает переменную типа ротация по индексу index из списка src.
A.143. llList2String
string llList2String(list src, integer index);
Возвращает строку по индексу index из списка src.
A.144. llList2Vector
llList2Vector(list src, integer index);
Возвращает вектор по индексу index из списка src.
A.145. llListFindList
integer llListFindList(list src, list test);
Возвращает позицию первого встретившегося значения test из списка src. - 1(минус один) - возвращается если в списке src нет ни одного элемента из списка test.
A.146. llListInsertList
list llListInsertList(list dest, list src, integer pos);
Возвращает созданный лист list при вставке src в dest на позицию pos.
A.147. llListRandomize
list llListRandomize(list src, integer stride);
Возвращает случайное значение из списка src в виде блока размером stride. Если длина указанного блока равна 0 то функция не производит рандомизацию.
A.148. llListReplaceList
list llListReplaceList(list dest, list src, integer start, integer end);
Возвращает созданный список после замены сегмента из dest списка на сегмент из src списка , начальная позиция которого - start и конечная - end.
A.149. llListSort
list llListSort(list src, integer stride, integer ascending);
Возвращает отсортированный список src в порядке возростания (если ascending TRUE)или убывания (если ascending FALSE) .Сортировка производится блоками с размером в ascending элементов. Запись этой сортировки работает только с одним и тем-же типом заголовка каждого сортируемого блока.
A.150. llListen
integer llListen(integer channel, string name, key id, string msg);
Активирует вызов прослушивающего Listen события при появлении сообщения msg на канале chanel от обьекта (аватара)name и обьекта(аватара)ключ которого id, можно использовать для деактивации или активации прослушивающего события Listen. Name , id и / или msn параметры могут быть пустыми если вы не хотите использовать какие либо аргументы для фильтрации прослушки. Канал 0 это канал ощественного чата , текст чата будет виден всем аватарам. Каналы от 1 до 2,147,483,648 скрытые каналы которые не посылаются аватарам.
Функция возвращает маркер который нужен для использования в таких функциях как llListenControl и llListenRemove.
A.151. llListenControl
llListenControl(integer number, integer active);
Активирует или дезактивирует Listen событие. Использует маркер полученный функцией llListen в параметре number для того чтобы определить какое событие вы контролируете. Используйте boolean значения для установки параметра active.
A.152. llListenRemove
llListenRemove(integer number);
Удаляет Listen событие. Использует маркер полученный функцией llListen в параметре number для того чтобы определить какое событие нужно удалить.
A.153. llLoadURL
llLoadURL(key avatar_id, string message, string url);
Показывает диалоговое окно юзеру avatar_id С сообщением message и предлагает перейти на вэб страницу по адресу url. Если юзер нажимает кнопку "Перейти на страницу" - запускается установленный по умолчанию браузер и направляетс на url.
url должен начинатся с "http:" или "https:", другой протокол в настоящее время не поддерживается. Диалоговый бокс показывает имя Владельца обьекта так что при злоупотреблении о спалме можно легко сообщить. Эта функция имеет 10 сек задержку.
A.154. llLog
float llLog(float val);
Возвращает натуральный логарифм (base e) числа val если val > 0 иначе возвращает ноль.
A.155. llLog10
float llLog10(float val);
Возвращает десятичный логарифм числа (base 10) val если val > 0 иначе возвращает ноль.
A.156. llLookAt
llLookAt(vector target, float strength, float damping);
Установить поворот обьекта по направлению к цели (направить взгляд или прицелится) координаты которой заносятся в параметр target - после выполнения этой функции обьект повернется к цели и ось Z обьекта будет направленна в центр цели target. Подходящее значение strength лучше установить приблизетельно равной половине массы обьекта , и подходящее значение damping лучше установить менее чем 1/10 силы. Асимметричные формы обьектов требуют меньшего демпфирования damping. Сила strength равная 0.0 отменяет поворот взгляда обьекта на цель.
A.157. llLoopSound
llLoopSound(string sound, float volume);
Эта функция подобна llPlaySound и также проигрывает музыкальный файл с именем sound и громкостью volume прикрепленный к обьекту, но как только проигрывание файла завершается файл начинает проигрыватся снова по кругу без остановок. Остановить циклическое проигрывание файла можно с помощью функции llStopSound либо перейти на одноразовое прогигрывание м помощью функции llPlaySound. Только один музыкальный файл прикрепленный к обьекту может проигрыватся одновременно . Повторный вызов этой фунции с тем-же именем файла не будет вызывать его проигрывание сначала, но новый параметр звука volume будет использован. Это позволяет контролировать излишнюю громкость звука воспроизведения файла. Установка громкости звука в ноль не тоже самое что использование функции llStopSound; звук с нулевой громкость также будет циклически воспроизводится но не будет слышен. Для рестарта проигрывания звука сначало вызовите фцнкцию llStopSound и после нее можете вызывать функцию llLoopSound снова.
A.158. llLoopSoundMaster
llLoopSoundMaster(string sound, float volume);
Поведение этой функции идентично поведению llLoopSound, но с дополнительной маркировкой источника как "Sync Master", с использованием "Slave" музыкальной синхронизации. Если будет много источников такого звука в пределах области интересов зрителя, то самый слышимый звук (с помощью механизма расстояния и объема) будет звук владельца . Использование большого количества источников в пределах маленькой области вряд ли произведет желательный эффект.
A.159. llLoopSoundSlave
llLoopSoundSlave(string sound, float volume);
Поведение этой функции идентично поведению llLoopSound, Если нет "Sync Master" звуковых файлов. Если Sync Master будет уже играть, то звук Slave начнет играть с того же самого пункта, владелеца находящегося в цикле, пункты зацикливания обоих звуков будут синхронны. Если звук Master начнет играть, когда Slave уже играет, то Slave будет пропускатся и синхронизироватся с Master.
A.160. llMakeExplosion
llMakeExplosion(integer particles, float scale, float velocity, float lifetime, float arc, string texture, vector offset);
Создать шарообразный взрыв частиц с использованием texture находящуюся в инвентаре обьекта.
A.161. llMakeFire
llMakeFire(integer particles, float scale, float velocity, float lifetime, float arc, string texture, vector offset);
Создать огненные частицы с использованием texture находящуюся в инвентаре обьекта.
A.162. llMakeFountain
llMakeFountain(integer particles, float scale, float velocity, float lifetime, float arc, string texture, vector offset);
Создать фонтан из частиц с использованием texture находящуюся в инвентаре обьекта.
A.163. llMakeSmoke
llMakeSmoke(integer particles, float scale, float velocity, float lifetime, float arc, string texture, vector offset);
Создать частицы дыма с использованием texture находящуюся в инвентаре обьекта.
A.164. llMD5String *****
string llMD5String(string str, integer nonce);
Выполняет защиту данных RSA, Inc. MD5 Message-Digest Algorithm on str with nonce. The function returns the digest as a 32 character hex string. The digest is computed on the string in the following format:
str + ":" + (string)nonce
A.165. llMessageLinked
llMessageLinked(integer linknum, integer num, string str, key id);
Послать num, str , и ID всем примитивам в установленном обьединении(залинкованным). Linknum параметр это один из двух числовых коофициентов полученых с помощью функцию llGetLinkNumber или константы link constant .
A.166. llMinEventDelay
llMinEventDelay(float delay);
Установить минимум времени между обработчиками событий.
A.167. llModifyLand
llModifyLand(integer action, integer size);
Модифицировать землю с action согласно размеру size площади параметры могут быть выбраны из land constants. Констант.
A.168. llModPow
integer llModPow(integer a, integer b, integer c);
Увеличить силу от a до b используя счетчик с. b может принимать максимум 16-и битное значение 0xFFFF (16 bits).
A.169. llMoveToTarget
llMoveToTarget(vector target, float tau);
Затухающее движение с текущей позиции в позицию target , затухание в tau секундах . Работает только с физическими обьектами. Подходящее значение для tau приблизительно = 0.2. Если tau = 0.0 то затухающее движение будет остановленно.
A.170. llOffsetTexture
llOffsetTexture(float offset_s, float offset_t, integer face);
Установить смещение текстуры S и T на стороне face. Если установлена константа ALL_SIDES текстура сместится на всех сторонах.
A.171. llOpenRemoteDataChannel
llOpenRemoteDataChannel(void);
Создать(Открыть) канал для прослушивания XML-RPC вызовов . Будет запускатся remote_data событие с типом type = REMOTE_DATA_CHANNEL и ID канала когдато может пригодится.
A.172. llOverMyLand
integer llOverMyLand(key id);
Возвращает TRUE если Обект с ключом ID не принадлежит этой земле и FALSE если принадлежит.
A.173. llParcelMediaCommandList
llParcelMediaCommandList(list command_list);
Контролирует воспроизведение видеороликов и других multimedia ресурсов на парцелле земли. Использует константы: PARCEL_MEDIA_COMMAND_PLAY, PARCEL_MEDIA_COMMAND_LOOP, PARCEL_MEDIA_COMMAND_TEXTURE, PARCEL_MEDIA_COMMAND_URL, PARCEL_MEDIA_COMMAND_TIME, PARCEL_MEDIA_COMMAND_AGENT, PARCEL_MEDIA_COMMAND_UNLOAD, or PARCEL_MEDIA_COMMAND_AUTO_ALIGN.
Возможно использовать только один видеоролик (или "media" ресур) на одной земляной парцеле(територии). Ролик будет проигрыватся, заменяя текстуру на объекте на видеоэкран. Пользователи будут видеть ролик, только тогда когда они будут находится на вашей части земли. Иначе они будут видеть статическую текстуру.
В проигрыватель мультимедиа включенна поддержка большинства QuickTime форматов например:
- QuickTime movies (.mov)
- Streamable stored QuickTime movies (.mov)
- Real time QuickTime streams (rtsp://)
- MPEG4 movies (.mp4, .mpeg4) (толко простого профиля)
- QuickTime VR scenes and objects (.mov)
- Flash movies (.swf) (только не интерактивных, версии 5 и выше)
- И множество других о которых можно узнать с сайта 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. Доступные параметры и разьяснения их особенностей могут быть н







