2008年3月28日 星期五

啥SL—【利用llGetObjectDetails得知物件相關訊息】

  list llGetObjectDetails(key id, list params)這個method可以得知一個物件以下訊息:

1.物件或人物名稱

2.物件或人物位置

3.物件或人物的角度

4.物件或人物的速度

5.物件的擁有者

6.物件的Group

7.物件的創造者

8.物件的敘述

  這個method是會回傳一個list屬性,而你必須輸入一個key值的參數和一個list的參數。key值的參數就是一個物件或人物的id,在Second Life裡面每個人事物都有個id,其實也就是老師上課提到的UUID。而另一個list是要輸入什麼呢?就是你想要知道的 資訊,比如說,你想要知道該key值為"00000000-0000-0000-0000-000000000000"的物件名稱,你可以寫:


key id= "00000000-0000-0000-0000-000000000000";

list testList=llGetObjectDetails( id,[OBJECT_NAME]);


  他就會把這個key值名稱放入testList了,而想要say出來變成字串,只要多多利用List的llList2String(list src, integer index)(或llList2Key、llList2Rot、llList2Float、llList2Vector、llList2Integer),總之相當於get(index)取LinkedList裡面的東西就是了,只是LSL這個list他裡面能放的東西屬性不唯一。

所有的參數如下表格:

參數 變數型態 如果key值為物件 如果key值為人
OBJECT_NAME string

回傳物件名稱,有一點像 llKey2Name

這個method。

回傳該key值的人物名稱。
OBJECT_DESC string 回傳該物件敘述 回傳空字串
OBJECT_POS vector 回傳該物件位置 回傳該人物位置
OBJECT_ROT rotation 回傳該物件角度 回傳該人物角度
OBJECT_VELOCITY vector 回傳該物件的速度 Returns agent velocity.
OBJECT_OWNER key 回傳擁有者的key值

如果該物件被Deed給某Grouo的話,回傳NULL_KEY

回傳該人的key值
OBJECT_GROUP key 回傳該物件的Group 回傳NULL_KEY
OBJECT_CREATOR key 回傳該物件的創造者 回傳NULL_KEY

  其實和這個類似的method有:llGetKey、llGetCreator、llGetObjectName……等,但是這些都是只能得知該Script的物件相關訊息而已。 並不像我現在介紹的llGetObjectDetails那麼廣。

  而得知這些訊息有什麼用?像是llGetCreator我就認為超有用的,這個在我們專題開發時並沒有這個method,害我們不能百分之百過濾不是我們 的武器打到怪物不會損血(我們是判斷物件名字與物件的Group)。而像是得知一個人的位置,我也可以寫一個一直追你的Robot。

沒有留言: