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 的格式注意事項:
為方便解說,以下增加行號,以綠色標示之。
補充說明:
不管是在物件的 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 {} 的敘述,換言之,這是主程式所在。
- 可以自訂使用者的全域變數與函式。
為方便解說,以下增加行號,以綠色標示之。
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 }
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 有兩個參數,第一個是頻道、第二個是要說的訊息。頻道的參數可以是任何整數,如果是零,則代表使用公共頻道,附近的任何人都可以看到。第二個參數是要說字串,要以雙引號前後框起來。llSay(頻道,要說的字串);
你可能會有興趣的文章:
限會員,要發表迴響,請先登入


