Linden Scripting Language

programovací jazyk

Linden Scripting Language (LSL) je programovací jazyk užívaný ve virtuálním světě Second Life. LSL má syntax podobnou jazyku C. Dokáže ovládat objekty ve virtuálním světě a může komunikovat nejen s uživateli a objekty v tomto virtuálním světě, ale i se servery mimo Second Life. Ke komunikaci vně SL využívá E-mail, XML-RPC a HTTP.

Vlastnosti jazyka editovat

LSL událostmi řízený jazyk. Skript vytvořený v tomto jazyce může obsahovat více stavů v nichž může využívat libovolné z následujících událostí:

  • At rot target
  • At target
  • Attach - objekt s tímto skriptem byl připojen nebo odpojen od avatara
  • Changed - změna, která je blíže specifikována parametrem (například změna obsahu inventáře objektu, změna vlastníka)
  • Collision - kolize s jiným objektem nebo avatarem
  • Collision end - konec kolize
  • Collision start - začátek kolize
  • Control - uživatel stiskl/drží/uvolnil klávesu (nutné zažádat o práva na sledování klávesnice)
  • Dataserver - získávání dat ze serveru (například čtení textových souborů)
  • Email - komunikace pomocí elektronické pošty
  • Http response - příchozí odpověď na odeslaný HTTP dotaz
  • Land collision - kolize s povrchem
  • Land collision end - konec kolize s povrchem
  • Land collision start - začátek kolize s povrchem
  • Link message - interní komunikace objektu
  • Listen - záznam zprávy (nutné nastavit listener na určitý kanál)
  • Money - uživatel zaplatil objektu
  • Moving start - začátek pohybu
  • No sensor - sensor nenašel žádný odpovídající objekt/avatara
  • Not at rot target
  • Not at target
  • Object rez
  • On rez
  • Remote data - komunikace pomocí XML-RPC
  • Run time permissions - získání práv (například pro posílání peněz, sledování klávesnice, ovládání kamery...)
  • Sensor - sensor objevil odpovídající objekt/avatara
  • State entry - vstup do stavu
  • State exit - přechod do jiného stavu
  • Timer
  • Touch
  • Touch end
  • Touch start

Skript je možné zkompilovat pomocí LSL2 nebo Mono. Z testů je patrné, že LSL2 je rychlejší na práci s objekty, zatímco Mono je výhodnější pro výpočty. Při zkompilování pomocí LSL2 získá skript kapacitu paměti 16KB, při využití Mono skript získá 64KB paměti, ale na druhou stranu Mono využívá více paměti.

LSL užívá následující typy proměnných:

  • Float - rozsah: <1.175494351E-38 ; 3.402823466E+38>
  • Integer - rozsah: <−2147483648 ; 2147483647>, užívá se též jako boolean
  • Key - formát: "00000000-0000-0000-0000-000000000000"
  • List - seznam značený [], může obsahovat hodnoty různých typů, hodnoty se získávají pomocí indexů
  • Rotation - formát: <0.0, 0.0, 0.0, 1.0>
  • String - textový řetězec limitovaný pamětí skriptu
  • Vector - formát: <0.00000, 0.00000, 0.00000>

Externí odkazy editovat