Linden Scripting Language
Linden Scripting Language, или LSL, е програмен език, използван от потребителите на Second Life (SL), виртуален свят създаден от компанията Linden Lab. LSL е скриптов език. Скриптовете могат да контролират поведението на обекти които се намират в SL. LSL има синтаксис подобен на „C“. Той позволява обектите да взаимодействат със Second Life и с интернет чрез имейл, XML-RPC, и HTTP.
Характеристики на LSL
[редактиране | редактиране на кода]LSL е събитийно-ориентиран скриптов език. Един скрипт се състои от променливи, функции, дефиниции и състояния. Във всяко състояние се съдържа описание на това, как да се реагира на събитията, които се случват докато програмата е във въпросното състояние. SL-системата изпраща събития на скрипта, като например време, движение, чат (от други аватари), електронна поща или контакти/сблъсъци (с други обекти във виртуалния свят). Скриптове могат да променят повечето аспекти на състоянието на обекта и да общуват с други предмети или аватари. След като един скрипт е добавен към даден обект и е стартиран, той започва да се изпълнява.
Скриптовете са тясно свързани с обектите от виртуалния свят (3D-обекти, модели). Обект в Second Life представлява някакъв предмет или аватар или напр. нещо невидимо за потребителя. Ако в един обект има няколко скрипта, те всички се изпълняват едновременно. Скриптовете могат да се поставят, като просто се пуснат върху обекта (drag & drop).
LSL разполага с над 300 функции. Потребителите могат да определят също така и допълнителни функции. Скриптовете в LSL се превръщат в машинен код след стартирането им от потребителя, чрез виртуалната машина на Second Life, която работи на сървърите на Linden Lab.
В LSL се използват цели числа (integers), числа с плаваща запетая, низове, ключове (UUID), вектори (използвани за 3D координация и RGB-настройки), и ротации. Няма масиви, вместо това се използват списъци с множество функции за адаптиране на програми, които изискват масиви. В LSL не се използват бази данни или файлове за съхранение на данни, скриптовете обаче продължават да работят, дори и когато потребителят не е онлайн, а ако един обект е запазен в личната директория, наречена Inventory, а след това повторно въведен в SL, той все още поддържа предишно си състояние. Механизмите за комуникация чрез HTTP, правят възможно и запазването на състоянието извън самия обект.
Някои функции в LSL имат вградено забавяне, което варира от 0.1-секундно закъснение, например при искане на данни от текстов файл (notecard) до 20-секундна пауза след изпращане на имейл. Забавянето предотвратява писане на скриптове, които биха могли да претоварят системните ресурси. Паметта, която е на разположение на LSL скриптове е ограничена на около 64 KiB, което е лимит за това, какво може да се направи с един скрипт, но все пак ако един скрипт се обръща към други скриптове се позволява на потребителя да заобиколи лимита от 64 KiB.
Действия с разрешение от потребителя
[редактиране | редактиране на кода]Някои специфични действия на LSL скриптовете изискват разрешение от потребителя. Това са:
- вземане на пари от сметката на потребителя
- контрол над клавиатурата
- стартиране и спиране на анимациите върху аватара
- закачане и сваляне на обекти от аватара
- смяна на линк, пренасочване
- проследяване на камерата
- контролиране на камерата
Пример
[редактиране | редактиране на кода]Примерната програма „Hello world“ написана на LSL:
default { state_entry() { llSay(0, „Hello, Avatar!“); } touch_start(integertotal_number) { llSay(0, „Touched.“); } }
Вижте също
[редактиране | редактиране на кода]Източници и външни препратки
[редактиране | редактиране на кода]- LSL Portal
- LSL Tutorial
- LSL Wiki Архив на оригинала от 2009-11-23 в Wayback Machine.