Направо към съдържанието

Linden Scripting Language

от Уикипедия, свободната енциклопедия
(пренасочване от LSL)

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.);
  }
}

Източници и външни препратки

[редактиране | редактиране на кода]