Contents ...
udn網路城邦
LSL 初步:New Script
2009/02/25 18:43
瀏覽1,100
迴響0
推薦0
引用0
本篇是針對新手所作的說明,有經驗的請跳過本篇。

不管是在物件的 Content 中按下「New Script..」的按紐,或是在身上任何目錄(Library 除外,那是只能由林登控制的)中按右鍵選「 New Script」,都會產生一支預設名為 New Script 的 LSL 手稿範本。當你要自己從頭設計 Script 時,都是以這為根本去進行修改,儲存後就會進行編譯與執行。New Script 的內容如下:

default
{
    state_entry()
    {
        llSay(0, "Hello, Avatar!");
    }

    touch_start(integer total_number)
    {
        llSay(0, "Touched.");
    }
}

Second Life 的 Script

LSL 的格式注意事項:
  • 使用成對的大括弧 { } 來包含所要的敘述。
  • 每一指令敘述行的最末,是以分號(;)做結尾。
  • 註解使用雙斜線 // 表示,後面的文字或指令並不會被解讀與執行。在 LSL 編輯器中會以橘色顯示。註解可以放在任一行,或是指令後面。不過請注意,若是放在指令前面,因為被當作是註解內容,而不會被執行。
  • 每一支 Script 都必須包括一個且只能有一個 default {} 的敘述,換言之,這是主程式所在。
  • 可以自訂使用者的全域變數與函式。
New Script 的解說

為方便解說,以下增加行號,以綠色標示之。
01 default
02 {
03  state_entry()
04  {
05   llSay(0, "Hello, Avatar!");
06  }
07
08  touch_start(integer total_number)
09  {
10  llSay(0, "Touched.");
11  }
12 }

  • 第 01、02、12 行,為宣告主程式 default 所在及其範圍。第 02 與 12 行之間所含的範圍,即為主程式。
  • 第 03 行為宣告 state_entry() 事件管理,第 04 、06 是其範圍,而 05 行是其區塊內的指令敘述。state_entry() 的意思,是指當程式進入、開始執行後,所要做的反應。 當然你也可以添加你自己要的命令,而這個範本中,第 05 行是它預設所包含的指令。
  • 第 05 行,這個 Script 讓物件說出 Hello, Avatar! 這句話。
  • 第 07 行,空行。Script 中可以空行,它的作用只是編排讓人容意分辨與區隔理解,也可以不空行,或是空多行,對這支 Script 的執行並沒有影響。
  • 第 08 行,宣告 touch_start() 事件管理,第 09、11 是其範圍,而第 10 行是其區塊內的指令敘述。touch_start() 的意思,是指有人 Touch 觸碰之後,所要做的反應。如果沒有被觸碰,則不會執行裡頭的敘述。
  • 第 10 行,這個 Script 讓物件說出 Touched. 這句話。
-----
補充說明:
Function: llSay( integer channel, string msg );
llSay(頻道,要說的字串);
llSay 有兩個參數,第一個是頻道、第二個是要說的訊息。頻道的參數可以是任何整數,如果是零,則代表使用公共頻道,附近的任何人都可以看到。第二個參數是要說字串,要以雙引號前後框起來。

限會員,要發表迴響,請先登入